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_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.

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 ROCKCHIP_BOOT_MODE_REG
	default 0xfd588080

config ROCKCHIP_STIMER_BASE
	default 0xfd8c8000

config SYS_SOC
	default "rk3588"

config SYS_MALLOC_F_LEN
	default 0x80000

source board/edgeble/neural-compute-module-6/Kconfig
source board/rockchip/evb_rk3588/Kconfig
source board/radxa/rock5b-rk3588/Kconfig

endif
