if ROCKCHIP_RK3399

choice
	prompt "RK3399 board select"

config TARGET_CHROMEBOOK_BOB
	bool "Asus Flip C101PA Chromebook (RK3399)"
	select HAS_ROM
	select ROCKCHIP_SPI_IMAGE
	help
	  Bob is a small RK3299-based device similar in apperance to Minnie.
	  It has two USB 3.0 type-C ports, 4GB of SDRAM, WiFi and a 10.1",
	  1280x800 display. It uses its USB ports for both power and external
	  display. It includes a Chrome OS EC (Cortex-M3) to provide access to
	  the keyboard and battery functions.

config TARGET_EVB_RK3399
	bool "RK3399 evaluation board"
	help
	  RK3399evb is a evaluation board for Rockchip RK3399,
	  with full function and physical connectors support like Type-C ports,
	  USB.0 host ports, LVDS, JTAG, MAC, SD card, HDMI, USB-to-serial...

config TARGET_PINEBOOK_PRO_RK3399
	bool "Pinebook Pro"
	help
	  Pinebook Pro is a laptop based on the Rockchip rk3399 SoC
	  with 4Gb RAM, onboard eMMC, USB-C, a USB3 and USB2 port,
	  1920*1080 screen and all the usual laptop features.

config TARGET_PUMA_RK3399
	bool "Theobroma Systems RK3399-Q7 (Puma)"
	help
	  The RK3399-Q7 (Puma) is a system-on-module (designed and
	  marketed by Theobroma Systems) featuring the Rockchip RK3399
	  in a Qseven-compatible form-factor (running of a single 5V
	  supply and exposing its external interfaces on a MXM-230
	  connector).

	  Key features of the RK3399-Q7 include:
	   * on-module USB 3.0 hub (2x USB 3.0 host + 1x USB 2.0 host)
	   * USB 3.0 dual-role
	   * on-module Micrel KSZ9031 GbE PHY
	   * on-module eMMC (up to 256GB configurations available)
	   * on-module DDR3 (1GB, 2GB and 4GB configurations available)
	   * HDMI, eDP, MIPI-DSI, MIPI-DSI/CSI and MIPI-CSI
	   * SPI, I2C, I2S, UART, GPIO, ...

config TARGET_ROCK960_RK3399
	bool "Vamrs Limited Rock960 board family"
	help
	  Support for Rock960 board family by Vamrs Limited. This board
	  family consists of Rock960 (Consumer Edition) and Ficus
	  (Enterprise Edition) 96Boards.

	  Common features implemented on both boards:
	   * Rockchip RK3399 SoC (2xCortex A72, 4xCortex A53, ARM Mali T860MP4)
	   * 16/32GB eMMC, uSD slot
	   * HDMI/DP/MIPI
	   * 20-pin low speed and 40-pin high speed expanders, 6 LED, 3 buttons

	  Additional features of Rock960:
	   * 2GiB/4GiB LPDDR3 RAM
	   * 1x USB 3.0 type A, 1x USB 2.0 type A (host mode only),
	     1x USB 3.0 type C OTG

	  Additional features of Ficus:
	   * 2GiB/4GiB DDR3 RAM
	   * Ethernet
	   * Dual SATA
	   * 2x USB 3.0 type A, 2x USB 2.0 type A (host mode only),
	     1x USB 3.0 type C OTG

config TARGET_ROCKPRO64_RK3399
	bool "Pine64 Rockpro64 board"
	help
	  Rockro64 is SBC produced by Pine64. Key features:

	   * Rockchip RK3399
	   * 2/4GB Dual-Channel LPDDR3
	   * SD card slot
	   * eMMC socket
	   * 128Mb SPI Flash
	   * Gigabit ethernet
	   * PCIe 4X slot
	   * WiFI/BT module socket
	   * HDMI In/Out, DP, MIPI DSI/CSI, eDP
	   * USB 3.0, 2.0
	   * USB Type C power and data
	   * GPIO expansion ports
	   * DC 12V/2A

config TARGET_ROC_PC_RK3399
	bool "Firefly ROC-RK3399-PC board"
	help
	  ROC-RK3399-PC is SBC produced by Firefly. Key features:

	   * Rockchip RK3399
	   * 4GB Dual-Channel LPDDR4 64-bit
	   * SD card slot
	   * eMMC socket
	   * 16MB SPI Flash
	   * Gigabit ethernet
	   * PCIe
	   * HDMI In/Out, DP, MIPI DSI/CSI, eDP
	   * USB 3.0, 2.0
	   * USB Type C power and data
	   * GPIO expansion ports
	   * wide voltage input(5V-15V), dual cell battery
	   * Wifi/BT accessible via expansion board M.2

endchoice

config ROCKCHIP_BOOT_MODE_REG
	default 0xff320300

config SYS_SOC
	default "rk3399"

config SYS_MALLOC_F_LEN
	default 0x4000

config SPL_LIBCOMMON_SUPPORT
	default y

config SPL_LIBGENERIC_SUPPORT
	default y

config TPL_LDSCRIPT
	default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"

config TPL_MAX_SIZE
        default 188416

config TPL_STACK
        default 0xff8effff

config TPL_TEXT_BASE
        default 0xff8c2000

config SPL_STACK_R_ADDR
	default 0x04000000

if BOOTCOUNT_LIMIT

config BOOTCOUNT_BOOTLIMIT
	default 3

config SYS_BOOTCOUNT_ADDR
	default 0xff3100f0	# PMU_SYS_REG0

endif # BOOTCOUNT_LIMIT

source "board/firefly/roc-pc-rk3399/Kconfig"
source "board/google/gru/Kconfig"
source "board/pine64/pinebook-pro-rk3399/Kconfig"
source "board/pine64/rockpro64_rk3399/Kconfig"
source "board/rockchip/evb_rk3399/Kconfig"
source "board/theobroma-systems/puma_rk3399/Kconfig"
source "board/vamrs/rock960_rk3399/Kconfig"

endif
