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_NOVA_RK3588
	bool "Indiedroid Nova RK3588"
	select BOARD_LATE_INIT
	help
	  Indiedroid Nova is a Rockchip RK3588s based SBC by Indiedroid.
	  It comes in configurations from 4GB of RAM to 16GB of RAM,
	  includes socket for eMMC storage, an SDMMC slot, and a 40-pin
	  GPIO header for expansion.

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
	  2x 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/indiedroid/nova/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
