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_CHROMEBOOK_KEVIN
	bool "Samsung Chromebook Plus (RK3399)"
	select HAS_ROM
	select ROCKCHIP_SPI_IMAGE
	help
	  Kevin is a RK3399-based convertible chromebook. It has two USB 3.0
	  Type-C ports, 4GB of SDRAM, WiFi and a 12.3" 2400x1600 display. It
	  uses its USB ports for both power and external display. It includes
	  a Chromium 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 ROCKCHIP_STIMER_BASE
	default 0xff8680a0

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