mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 09:54:35 +00:00

Currently the following memory layout is typically used on RK3588: [ 0, 256K) - SPL binary [ 256K, 2M) - TF-A / reserved [ -X, 4M) - SPL pre-reloc stack (SPL_STACK) [ 3.5M, 4M) - pre-reloc malloc heap (SPL_SYS_MALLOC_F_LEN) [ -X, 6M) - SPL reloc stack (SPL_STACK_R_ADDR) [ 5M, 6M) - reloc malloc heap (SPL_STACK_R_MALLOC_SIMPLE_LEN) [ 10M, +X) - U-Boot proper binary (TEXT_BASE) [ -X, 12M) - U-Boot proper pre-reloc stack (CUSTOM_SYS_INIT_SP_ADDR) [11.5M, 12M) - pre-reloc malloc heap (SYS_MALLOC_F_LEN) [ 64M, +16K) - SPL bss (SPL_BSS_START_ADDR, SPL_BSS_MAX_SIZE) SPL can safely load U-Boot proper + FDT to [10M, 11.5M) with this layout. However, on ROCK 5A the SPL stacks is overlapping: [ -X, 16M) - SPL pre-reloc stack (SPL_STACK) [15.5M, 16M) - pre-reloc malloc heap (SPL_SYS_MALLOC_F_LEN) [ -X, 16M) - SPL reloc stack (SPL_STACK_R_ADDR) [ 15M, 16M) - reloc malloc heap (SPL_STACK_R_MALLOC_SIMPLE_LEN) Because bind and probe udevice instanses is allocated on the pre-reloc malloc heap, there is going to be an overlap when reloc malloc heap reaches close to 512 KiB of usage. Migrate to use common bss, stack and malloc heap size and addresses to mitigate these limitations and allow for a larger U-Boot proper size. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> (Update for new boards defconfig) Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
234 lines
7.4 KiB
Text
234 lines
7.4 KiB
Text
if ROCKCHIP_RK3588
|
||
|
||
config TARGET_EVB_RK3588
|
||
bool "Rockchip EVB1 v10"
|
||
select BOARD_LATE_INIT
|
||
help
|
||
RK3588 EVB is a evaluation board for Rockchp RK3588.
|
||
|
||
config TARGET_JAGUAR_RK3588
|
||
bool "Theobroma Systems SBC-RK3588-AMR (Jaguar)"
|
||
select BOARD_LATE_INIT
|
||
help
|
||
The SBC-RK3588-AMR is a Single Board Computer designed by
|
||
Theobroma Systems for autonomous mobile robots.
|
||
|
||
It provides the following features:
|
||
* up to 32GB LDDR4
|
||
* up to 128GB on-module eMMC (with 8-bit 1.8V interface)
|
||
* SD card
|
||
* Gigabit Ethernet
|
||
* 1x USB-A 2.0 host
|
||
* PCIe M.2 2230 Key M (Gen 2 1-lane) for WiFi+BT
|
||
* PCIe M.2 2280 Key M (Gen 3 4-lane) for NVMe
|
||
* CAN
|
||
* RS485 UART
|
||
* 2x USB Type-C 3.1 host/device
|
||
* HDMI output
|
||
* 2x camera connectors (MIPI-CSI 2-lane + I2C/SPI for IMUs + GPIOs)
|
||
* EEPROM
|
||
* Secure Element
|
||
* ATtiny companion controller implementing:
|
||
- low-power RTC functionality (ISL1208 emulation)
|
||
- fan controller (AMC6821 emulation)
|
||
* 80-pin Mezzanine connector
|
||
|
||
config TARGET_NANOPCT6_RK3588
|
||
bool "FriendlyElec NanoPC-T6 RK3588 board"
|
||
select BOARD_LATE_INIT
|
||
help
|
||
The NanoPC-T6 is a Rockchip RK3588 based SBC by FriendlyElec.
|
||
|
||
There are four variants depending on the DRAM size: 4G/32GB eMMC,
|
||
8G/64GB eMMC, 16G/16MB SPI NOR, and 16G/256GB eMMC/16MB SPI NOR
|
||
|
||
Specifications:
|
||
|
||
CPU: Rockchip RK3588, 4x Cortex-A76 (up to 2.4GHz)
|
||
+ 4x Cortex-A55 (up to 1.8GHz)
|
||
GPU: Mali-G610 MP4
|
||
VPU: 8K@60fps H.265 and VP9 decoder, 8K@30fps H.264 decoder,
|
||
4K@60fps AV1 decoder, 8K@30fps H.264 and H.265 encoder
|
||
NPU: 6TOPs, supports INT4/INT8/INT16/FP16
|
||
RAM: 64-bit 4GB/8GB/16GB LPDDR4X at 2133MHz
|
||
eMMC: 0GB/32GB/64GB/256GB HS400
|
||
MicroSD Slot: MicroSD SDR104
|
||
PCIe 3.0: M.2 M-Key x1, PCIe 3.0 x4 for NVMe SSDs up to 2,500 MB/s
|
||
Ethernet: PCIe 2.5G 2x Ethernet (RTL8125BG)
|
||
PCIe 2.1: M.2 E-Key x1, PCIe 2.1 x1 and USB2.0 Host,
|
||
supports M.2 WiFi and Bluetooth
|
||
4G Module: MiniPCIe x1, MicroSIM Card Slot x1
|
||
Audio Out: 3.5mm jack for stereo headphone output
|
||
Audio In: 2.0mm PH-2A connector for analog microphone input
|
||
Video Input: standard HDMI input port, up to 4Kp60
|
||
2x 4-lane MIPI-CSI, compatible with MIPI V1.2
|
||
Video Output: 2x standard HDMI output ports compatible with HDMI2.1,
|
||
HDMI2.0, and HDMI1.4
|
||
2x 4-lane MIPI-DSI, compatible with MIPI DPHY 2.0 or CPHY 1.1
|
||
USB-A: USB 3.0, Type A
|
||
USB-C: Full function USB Type‑C port, DP display up to 4Kp60, USB 3.0
|
||
40-pin 2.54mm header connector: up to 2x SPIs, 6x UARTs, 1x I2Cs,
|
||
8x PWMs, 2x I2Ss, 28x GPIOs
|
||
Debug UART: 3 Pin 2.54mm header, 3V level, 1500000bps
|
||
Onboard IR receiver: 38KHz carrier frequency
|
||
RTC Battery: 2 Pin 1.27/1.25mm RTC battery connector for low power
|
||
RTC IC HYM8563TS
|
||
5V Fan connector
|
||
Working Temperature: 0C to 70C
|
||
Power: 5.5*2.1mm DC Jack, 12VDC input
|
||
Dimensions: 110x80x1.6mm (without case) / 86x114.5x30mm (with case)
|
||
|
||
config TARGET_RK3588_NEU6
|
||
bool "Edgeble Neural Compute Module 6(Neu6) SoM"
|
||
select BOARD_LATE_INIT
|
||
help
|
||
Neu6A:
|
||
Neural Compute Module 6A(Neu6A) is a 96boards SoM-CB compute module
|
||
based on Rockchip RK3588 from Edgeble AI.
|
||
|
||
Neu6A-IO:
|
||
Neural Compute Module 6A(Neu6A) IO board is an industrial form factor
|
||
IO board and Neu6a needs to mount on top of this IO board in order to
|
||
create complete Edgeble Neural Compute Module 6A(Neu6A) IO platform.
|
||
|
||
Neu6B:
|
||
Neural Compute Module 6B(Neu6B) is a 96boards SoM-CB compute module
|
||
based on Rockchip RK3588J from Edgeble AI.
|
||
|
||
Neu6A-IO:
|
||
Neural Compute Module 6B(Neu6B) IO board is an industrial form factor
|
||
IO board and Neu6a needs to mount on top of this IO board in order to
|
||
create complete Edgeble Neural Compute Module 6B(Neu6B) IO platform.
|
||
|
||
config TARGET_ROCK5A_RK3588
|
||
bool "Radxa ROCK5A RK3588 board"
|
||
select BOARD_LATE_INIT
|
||
help
|
||
Radxa ROCK5A is a Rockchip RK3588S based SBC (Single Board Computer)
|
||
by Radxa.
|
||
|
||
There are tree variants depending on the DRAM size : 4G, 8G and 16G.
|
||
|
||
Specification:
|
||
|
||
Rockchip Rk3588S SoC
|
||
4x ARM Cortex-A76, 4x ARM Cortex-A55
|
||
4/8/16GB memory LPDDR4x
|
||
Mali G610MC4 GPU
|
||
MIPI CSI 2 multiple lanes connector
|
||
4-lane MIPI DSI connector
|
||
Audio – 3.5mm earphone jack
|
||
eMMC module connector
|
||
uSD slot (up to 128GB)
|
||
2x USB 2.0, 2x USB 3.0
|
||
2x micro HDMI 2.1 ports, one up to 8Kp60, the other up to 4Kp60
|
||
Gigabit Ethernet RJ45 with optional PoE support
|
||
40-pin IO header including UART, SPI, I2C and 5V DC power in
|
||
USB PD over USB Type-C
|
||
Size: 85mm x 56mm (Raspberry Pi 4 form factor)
|
||
|
||
config TARGET_ROCK5B_RK3588
|
||
bool "Radxa ROCK5B RK3588 board"
|
||
select BOARD_LATE_INIT
|
||
help
|
||
Radxa ROCK5B is a Rockchip RK3588 based SBC (Single Board Computer)
|
||
by Radxa.
|
||
|
||
There are tree variants depending on the DRAM size : 4G, 8G and 16G.
|
||
|
||
Specification:
|
||
|
||
Rockchip Rk3588 SoC
|
||
4x ARM Cortex-A76, 4x ARM Cortex-A55
|
||
4/8/16GB memory LPDDR4x
|
||
Mali G610MC4 GPU
|
||
2x MIPI CSI 2 multiple lanes connector
|
||
eMMC module connector
|
||
uSD slot (up to 128GB)
|
||
2x USB 2.0 Type-A, 2x USB 3.0 Type-A, 1x USB 3.0 Type-C
|
||
2x HDMI 2.1 output, 1x micro HDMI input
|
||
2.5 Gbps Ethernet port
|
||
40-pin IO header including UART, SPI, I2C and 5V DC power in
|
||
USB PD over USB Type-C
|
||
Size: 100mm x 72mm (Pico-ITX form factor)
|
||
|
||
config TARGET_QUARTZPRO64_RK3588
|
||
bool "Pine64 QuartzPro64 RK3588 board"
|
||
select BOARD_LATE_INIT
|
||
help
|
||
Pine64 QuartzPro64 is a Rockchip RK3588 based SBC (Single Board
|
||
Computer) by Pine64.
|
||
|
||
config TARGET_TURINGRK1_RK3588
|
||
bool "Turing Machines RK1 RK3588 board"
|
||
select BOARD_LATE_INIT
|
||
help
|
||
The Turing RK1 is a Rockchip RK3588 based SoM from Turing Machines.
|
||
|
||
There are three variants depending on the DRAM size : 8G, 16G and 32G.
|
||
|
||
Specifications:
|
||
|
||
Rockchip RK3588 SoC
|
||
4x ARM Cortex-A76, 4x ARM Cortex-A55
|
||
8/16/32GB memory LPDDR4x
|
||
Mali G610MC4 GPU
|
||
32GB eMMC HS400
|
||
2x USB 2.0, 2x USB 3.0
|
||
2x MIPI CSI 4x lanes
|
||
1x MIPI-DSI DPHY 2x lanes
|
||
PCIe 2.0 x1, PCIe 3.0 x4
|
||
1x HDMI 2.1 output, 1x DP 1.4 output
|
||
Gigabit Ethernet
|
||
Size: 69.6mm x 45mm (260-pin SO-DIMM connector)
|
||
|
||
config TARGET_TOYBRICK_RK3588
|
||
bool "Toybrick TB-RK3588X board"
|
||
select BOARD_LATE_INIT
|
||
help
|
||
Rockchip Toybrick TB-RK3588X is a Rockchip RK3588 based development board.
|
||
TB-RK3588X adopts core board and mainboard design. The core board is connected
|
||
with the mainboard through the MXM314Pin standard interface, which can form
|
||
a complete industry development board.
|
||
|
||
Specifications:
|
||
|
||
Rockchip RK3588 SoC
|
||
4x ARM Cortex-A76, 4x ARM Cortex-A55
|
||
8/16GB Memory LPDDR4x
|
||
Mali G610MC4 GPU
|
||
2× MIPI-CSI0 Connector
|
||
1x 2Lanes PCIe3.0 Connector
|
||
1x SATA3.0 Connector
|
||
32GB eMMC Module
|
||
2x USB2.0, 2x USB3.0
|
||
1x HDMI Output, 1x HDMI Input
|
||
2x Ethernet Port
|
||
|
||
|
||
config ROCKCHIP_BOOT_MODE_REG
|
||
default 0xfd588080
|
||
|
||
config ROCKCHIP_STIMER_BASE
|
||
default 0xfd8c8000
|
||
|
||
config SYS_SOC
|
||
default "rk3588"
|
||
|
||
config ROCKCHIP_COMMON_STACK_ADDR
|
||
default y
|
||
|
||
config TEXT_BASE
|
||
default 0x00a00000
|
||
|
||
source board/edgeble/neural-compute-module-6/Kconfig
|
||
source board/friendlyelec/nanopc-t6-rk3588/Kconfig
|
||
source board/pine64/quartzpro64-rk3588/Kconfig
|
||
source board/turing/turing-rk1-rk3588/Kconfig
|
||
source board/radxa/rock5a-rk3588s/Kconfig
|
||
source board/radxa/rock5b-rk3588/Kconfig
|
||
source board/rockchip/evb_rk3588/Kconfig
|
||
source board/rockchip/toybrick_rk3588/Kconfig
|
||
source board/theobroma-systems/jaguar_rk3588/Kconfig
|
||
|
||
endif
|