diff mbox series

[2/2] board: Add Vamrs Limited Rock960 board support

Message ID 20180821170945.18898-3-manivannan.sadhasivam@linaro.org
State Superseded
Headers show
Series Add Rock960 board support | expand

Commit Message

Manivannan Sadhasivam Aug. 21, 2018, 5:09 p.m. UTC
Add board support for Vamrs Limited Rock960 board, which is
one of the 96Boards Consumer Edition platform.

Rock960 features:
        * CPU: ARMv8 64bit Big-Little architecture,
                * Big: dual-core Cortex-A72
                * Little: quad-core Cortex-A53
                * IRAM: 200KB
        * DRAM: 2GB/4GB LPDDR3 @ 1866MHz
        * eMMC: 16/32GB eMMC 5.1
        * PMU: RK808
        * SD/MMC
        * USB:
                * 1x USB 3.0 type A, 1x USB 2.0 type A (host mode only) and
                  1x USB 3.0 type C OTG
        * Display:
                * 1x HDMI 2.0(Type A - full) up to 4Kx2K@60Hz,
                  1x 4L - MIPI DSI up to 1080p@60Hz,
                  1x DP 1.2(Type C) up to 4Kx2K@60
        * Camera: 2x 4-lane MIPI CSI
	* PCI-E: 4- lane M.2 PCI-E 2.1
        * Low Speed Expansion Connector
        * High Speed Expansion Connector

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
---
 arch/arm/mach-rockchip/rk3399/Kconfig       | 16 +++++
 board/vamrs/rock960_rk3399/Kconfig          | 15 ++++
 board/vamrs/rock960_rk3399/MAINTAINERS      |  6 ++
 board/vamrs/rock960_rk3399/Makefile         |  6 ++
 board/vamrs/rock960_rk3399/README           | 79 +++++++++++++++++++++
 board/vamrs/rock960_rk3399/rock960-rk3399.c | 50 +++++++++++++
 configs/rock960-rk3399_defconfig            | 62 ++++++++++++++++
 include/configs/rock960_rk3399.h            | 15 ++++
 8 files changed, 249 insertions(+)
 create mode 100644 board/vamrs/rock960_rk3399/Kconfig
 create mode 100644 board/vamrs/rock960_rk3399/MAINTAINERS
 create mode 100644 board/vamrs/rock960_rk3399/Makefile
 create mode 100644 board/vamrs/rock960_rk3399/README
 create mode 100644 board/vamrs/rock960_rk3399/rock960-rk3399.c
 create mode 100644 configs/rock960-rk3399_defconfig
 create mode 100644 include/configs/rock960_rk3399.h

Comments

Ezequiel Garcia Aug. 29, 2018, 6:11 a.m. UTC | #1
On 21 August 2018 at 14:09, Manivannan Sadhasivam
<manivannan.sadhasivam@linaro.org> wrote:
> Add board support for Vamrs Limited Rock960 board, which is
> one of the 96Boards Consumer Edition platform.
>
> Rock960 features:
>         * CPU: ARMv8 64bit Big-Little architecture,
>                 * Big: dual-core Cortex-A72
>                 * Little: quad-core Cortex-A53
>                 * IRAM: 200KB
>         * DRAM: 2GB/4GB LPDDR3 @ 1866MHz
>         * eMMC: 16/32GB eMMC 5.1
>         * PMU: RK808
>         * SD/MMC
>         * USB:
>                 * 1x USB 3.0 type A, 1x USB 2.0 type A (host mode only) and
>                   1x USB 3.0 type C OTG
>         * Display:
>                 * 1x HDMI 2.0(Type A - full) up to 4Kx2K@60Hz,
>                   1x 4L - MIPI DSI up to 1080p@60Hz,
>                   1x DP 1.2(Type C) up to 4Kx2K@60
>         * Camera: 2x 4-lane MIPI CSI
>         * PCI-E: 4- lane M.2 PCI-E 2.1
>         * Low Speed Expansion Connector
>         * High Speed Expansion Connector
>
> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> ---
>  arch/arm/mach-rockchip/rk3399/Kconfig       | 16 +++++
>  board/vamrs/rock960_rk3399/Kconfig          | 15 ++++
>  board/vamrs/rock960_rk3399/MAINTAINERS      |  6 ++
>  board/vamrs/rock960_rk3399/Makefile         |  6 ++
>  board/vamrs/rock960_rk3399/README           | 79 +++++++++++++++++++++
>  board/vamrs/rock960_rk3399/rock960-rk3399.c | 50 +++++++++++++
>  configs/rock960-rk3399_defconfig            | 62 ++++++++++++++++
>  include/configs/rock960_rk3399.h            | 15 ++++
>  8 files changed, 249 insertions(+)
>  create mode 100644 board/vamrs/rock960_rk3399/Kconfig
>  create mode 100644 board/vamrs/rock960_rk3399/MAINTAINERS
>  create mode 100644 board/vamrs/rock960_rk3399/Makefile
>  create mode 100644 board/vamrs/rock960_rk3399/README
>  create mode 100644 board/vamrs/rock960_rk3399/rock960-rk3399.c
>  create mode 100644 configs/rock960-rk3399_defconfig
>  create mode 100644 include/configs/rock960_rk3399.h
>
> diff --git a/arch/arm/mach-rockchip/rk3399/Kconfig b/arch/arm/mach-rockchip/rk3399/Kconfig
> index 415466a49bb..ce4605187e3 100644
> --- a/arch/arm/mach-rockchip/rk3399/Kconfig
> +++ b/arch/arm/mach-rockchip/rk3399/Kconfig
> @@ -28,6 +28,21 @@ config TARGET_PUMA_RK3399
>            * HDMI, eDP, MIPI-DSI, MIPI-DSI/CSI and MIPI-CSI
>            * SPI, I2C, I2S, UART, GPIO, ...
>
> +config TARGET_ROCK960_RK3399
> +       bool "Vamrs Limited Rock960 board"
> +       help
> +         Support for Rock960 board. This board complies with
> +         96Board Consumer Edition Specification.
> +
> +         Features:
> +          * Rockchip RK3399 SoC (2xCortex A72, 4xCortex A53, ARM Mali T860MP4)
> +          * 2GiB/4GiB RAM
> +          * 16/32GB eMMC, uSD slot
> +          * WiFi, Bluetooth
> +          * 1x USB 3.0 type A, 1x USB 2.0 type A (host mode only), 1x USB 3.0 type C OTG
> +          * HDMI
> +          * 20-pin low speed and 40-pin high speed expanders, 6 LED, 3 buttons
> +
>  endchoice
>
>  config SYS_SOC
> @@ -38,5 +53,6 @@ config SYS_MALLOC_F_LEN
>
>  source "board/rockchip/evb_rk3399/Kconfig"
>  source "board/theobroma-systems/puma_rk3399/Kconfig"
> +source "board/vamrs/rock960_rk3399/Kconfig"
>
>  endif
> diff --git a/board/vamrs/rock960_rk3399/Kconfig b/board/vamrs/rock960_rk3399/Kconfig
> new file mode 100644
> index 00000000000..cacc53f3780
> --- /dev/null
> +++ b/board/vamrs/rock960_rk3399/Kconfig
> @@ -0,0 +1,15 @@
> +if TARGET_ROCK960_RK3399
> +
> +config SYS_BOARD
> +       default "rock960_rk3399"
> +
> +config SYS_VENDOR
> +       default "vamrs"
> +
> +config SYS_CONFIG_NAME
> +       default "rock960_rk3399"
> +
> +config BOARD_SPECIFIC_OPTIONS # dummy
> +       def_bool y
> +
> +endif
> diff --git a/board/vamrs/rock960_rk3399/MAINTAINERS b/board/vamrs/rock960_rk3399/MAINTAINERS
> new file mode 100644
> index 00000000000..9f3fe75f4fb
> --- /dev/null
> +++ b/board/vamrs/rock960_rk3399/MAINTAINERS
> @@ -0,0 +1,6 @@
> +ROCK960-RK3399
> +M:      Manivannan Sadhasivam manivannan.sadhasivam@linaro.org
> +S:      Maintained
> +F:      board/rockchip/rock960_rk3399
> +F:      include/configs/rock960_rk3399.h
> +F:      configs/rock960-rk3399_defconfig
> diff --git a/board/vamrs/rock960_rk3399/Makefile b/board/vamrs/rock960_rk3399/Makefile
> new file mode 100644
> index 00000000000..6c3e475b3a8
> --- /dev/null
> +++ b/board/vamrs/rock960_rk3399/Makefile
> @@ -0,0 +1,6 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# Copyright (C) 2018 Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> +#
> +
> +obj-y  += rock960-rk3399.o
> diff --git a/board/vamrs/rock960_rk3399/README b/board/vamrs/rock960_rk3399/README
> new file mode 100644
> index 00000000000..be6b5cd1d34
> --- /dev/null
> +++ b/board/vamrs/rock960_rk3399/README
> @@ -0,0 +1,79 @@
> +Introduction
> +============
> +
> +Rock960 is a 96Boards Consumer Edition platform featuring the Rockchip
> +RK3399 SoC.
> +
> +Rock960 features:
> +       * CPU: ARMv8 64bit Big-Little architecture,
> +               * Big: dual-core Cortex-A72
> +               * Little: quad-core Cortex-A53
> +               * IRAM: 200KB
> +       * DRAM: 2GB/4GB LPDDR3 @ 1866MHz
> +       * eMMC: 16/32GB eMMC 5.1
> +       * PMU: RK808
> +       * SD/MMC
> +       * USB:
> +               * 1x USB 3.0 type A, 1x USB 2.0 type A (host mode only) and
> +                 1x USB 3.0 type C OTG
> +       * Display:
> +               * 1x HDMI 2.0(Type A - full) up to 4Kx2K@60Hz,
> +                 1x 4L - MIPI DSI up to 1080p@60Hz,
> +                 1x DP 1.2(Type C) up to 4Kx2K@60
> +       * Camera: 2x 4-lane MIPI CSI
> +       * PCI-E: 4- lane M.2 PCI-E 2.1
> +       * Low Speed Expansion Connector
> +       * High Speed Expansion Connector
> +
> +Here is the step-by-step to boot to U-Boot on rk3399.
> +
> +Get the Source and prebuild binary
> +==================================
> +
> +  > git clone https://github.com/96rocks/rkbin.git
> +  > git clone https://github.com/rockchip-linux/rkdeveloptool.git
> +
> +Compile the U-Boot
> +==================
> +
> +  > cd ../u-boot
> +  > export ARCH=arm64
> +  > export CROSS_COMPILE=aarch64-linux-gnu-
> +  > make rock960-rk3399_defconfig
> +  > make
> +
> +Compile the rkdeveloptool
> +=========================
> +  Follow instructions in latest README
> +  > cd ../rkdeveloptool
> +  > autoreconf -i
> +  > ./configure
> +  > make
> +  > sudo make install
> +
> +Package the image
> +=================
> +
> +Package the image for Rockchip miniloader

Is there any reason to use the miniloader instead of SPL?

Regards,
Ezequiel
Manivannan Sadhasivam Aug. 30, 2018, 2:54 a.m. UTC | #2
Hi Ezequiel,

On Wed, Aug 29, 2018 at 03:11:07AM -0300, Ezequiel Garcia wrote:
> On 21 August 2018 at 14:09, Manivannan Sadhasivam
> <manivannan.sadhasivam@linaro.org> wrote:
> > Add board support for Vamrs Limited Rock960 board, which is
> > one of the 96Boards Consumer Edition platform.
> >
> > Rock960 features:
> >         * CPU: ARMv8 64bit Big-Little architecture,
> >                 * Big: dual-core Cortex-A72
> >                 * Little: quad-core Cortex-A53
> >                 * IRAM: 200KB
> >         * DRAM: 2GB/4GB LPDDR3 @ 1866MHz
> >         * eMMC: 16/32GB eMMC 5.1
> >         * PMU: RK808
> >         * SD/MMC
> >         * USB:
> >                 * 1x USB 3.0 type A, 1x USB 2.0 type A (host mode only) and
> >                   1x USB 3.0 type C OTG
> >         * Display:
> >                 * 1x HDMI 2.0(Type A - full) up to 4Kx2K@60Hz,
> >                   1x 4L - MIPI DSI up to 1080p@60Hz,
> >                   1x DP 1.2(Type C) up to 4Kx2K@60
> >         * Camera: 2x 4-lane MIPI CSI
> >         * PCI-E: 4- lane M.2 PCI-E 2.1
> >         * Low Speed Expansion Connector
> >         * High Speed Expansion Connector
> >
> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > ---
> >  arch/arm/mach-rockchip/rk3399/Kconfig       | 16 +++++
> >  board/vamrs/rock960_rk3399/Kconfig          | 15 ++++
> >  board/vamrs/rock960_rk3399/MAINTAINERS      |  6 ++
> >  board/vamrs/rock960_rk3399/Makefile         |  6 ++
> >  board/vamrs/rock960_rk3399/README           | 79 +++++++++++++++++++++
> >  board/vamrs/rock960_rk3399/rock960-rk3399.c | 50 +++++++++++++
> >  configs/rock960-rk3399_defconfig            | 62 ++++++++++++++++
> >  include/configs/rock960_rk3399.h            | 15 ++++
> >  8 files changed, 249 insertions(+)
> >  create mode 100644 board/vamrs/rock960_rk3399/Kconfig
> >  create mode 100644 board/vamrs/rock960_rk3399/MAINTAINERS
> >  create mode 100644 board/vamrs/rock960_rk3399/Makefile
> >  create mode 100644 board/vamrs/rock960_rk3399/README
> >  create mode 100644 board/vamrs/rock960_rk3399/rock960-rk3399.c
> >  create mode 100644 configs/rock960-rk3399_defconfig
> >  create mode 100644 include/configs/rock960_rk3399.h
> >
> > diff --git a/arch/arm/mach-rockchip/rk3399/Kconfig b/arch/arm/mach-rockchip/rk3399/Kconfig
> > index 415466a49bb..ce4605187e3 100644
> > --- a/arch/arm/mach-rockchip/rk3399/Kconfig
> > +++ b/arch/arm/mach-rockchip/rk3399/Kconfig
> > @@ -28,6 +28,21 @@ config TARGET_PUMA_RK3399
> >            * HDMI, eDP, MIPI-DSI, MIPI-DSI/CSI and MIPI-CSI
> >            * SPI, I2C, I2S, UART, GPIO, ...
> >
> > +config TARGET_ROCK960_RK3399
> > +       bool "Vamrs Limited Rock960 board"
> > +       help
> > +         Support for Rock960 board. This board complies with
> > +         96Board Consumer Edition Specification.
> > +
> > +         Features:
> > +          * Rockchip RK3399 SoC (2xCortex A72, 4xCortex A53, ARM Mali T860MP4)
> > +          * 2GiB/4GiB RAM
> > +          * 16/32GB eMMC, uSD slot
> > +          * WiFi, Bluetooth
> > +          * 1x USB 3.0 type A, 1x USB 2.0 type A (host mode only), 1x USB 3.0 type C OTG
> > +          * HDMI
> > +          * 20-pin low speed and 40-pin high speed expanders, 6 LED, 3 buttons
> > +
> >  endchoice
> >
> >  config SYS_SOC
> > @@ -38,5 +53,6 @@ config SYS_MALLOC_F_LEN
> >
> >  source "board/rockchip/evb_rk3399/Kconfig"
> >  source "board/theobroma-systems/puma_rk3399/Kconfig"
> > +source "board/vamrs/rock960_rk3399/Kconfig"
> >
> >  endif
> > diff --git a/board/vamrs/rock960_rk3399/Kconfig b/board/vamrs/rock960_rk3399/Kconfig
> > new file mode 100644
> > index 00000000000..cacc53f3780
> > --- /dev/null
> > +++ b/board/vamrs/rock960_rk3399/Kconfig
> > @@ -0,0 +1,15 @@
> > +if TARGET_ROCK960_RK3399
> > +
> > +config SYS_BOARD
> > +       default "rock960_rk3399"
> > +
> > +config SYS_VENDOR
> > +       default "vamrs"
> > +
> > +config SYS_CONFIG_NAME
> > +       default "rock960_rk3399"
> > +
> > +config BOARD_SPECIFIC_OPTIONS # dummy
> > +       def_bool y
> > +
> > +endif
> > diff --git a/board/vamrs/rock960_rk3399/MAINTAINERS b/board/vamrs/rock960_rk3399/MAINTAINERS
> > new file mode 100644
> > index 00000000000..9f3fe75f4fb
> > --- /dev/null
> > +++ b/board/vamrs/rock960_rk3399/MAINTAINERS
> > @@ -0,0 +1,6 @@
> > +ROCK960-RK3399
> > +M:      Manivannan Sadhasivam manivannan.sadhasivam@linaro.org
> > +S:      Maintained
> > +F:      board/rockchip/rock960_rk3399
> > +F:      include/configs/rock960_rk3399.h
> > +F:      configs/rock960-rk3399_defconfig
> > diff --git a/board/vamrs/rock960_rk3399/Makefile b/board/vamrs/rock960_rk3399/Makefile
> > new file mode 100644
> > index 00000000000..6c3e475b3a8
> > --- /dev/null
> > +++ b/board/vamrs/rock960_rk3399/Makefile
> > @@ -0,0 +1,6 @@
> > +# SPDX-License-Identifier: GPL-2.0+
> > +#
> > +# Copyright (C) 2018 Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > +#
> > +
> > +obj-y  += rock960-rk3399.o
> > diff --git a/board/vamrs/rock960_rk3399/README b/board/vamrs/rock960_rk3399/README
> > new file mode 100644
> > index 00000000000..be6b5cd1d34
> > --- /dev/null
> > +++ b/board/vamrs/rock960_rk3399/README
> > @@ -0,0 +1,79 @@
> > +Introduction
> > +============
> > +
> > +Rock960 is a 96Boards Consumer Edition platform featuring the Rockchip
> > +RK3399 SoC.
> > +
> > +Rock960 features:
> > +       * CPU: ARMv8 64bit Big-Little architecture,
> > +               * Big: dual-core Cortex-A72
> > +               * Little: quad-core Cortex-A53
> > +               * IRAM: 200KB
> > +       * DRAM: 2GB/4GB LPDDR3 @ 1866MHz
> > +       * eMMC: 16/32GB eMMC 5.1
> > +       * PMU: RK808
> > +       * SD/MMC
> > +       * USB:
> > +               * 1x USB 3.0 type A, 1x USB 2.0 type A (host mode only) and
> > +                 1x USB 3.0 type C OTG
> > +       * Display:
> > +               * 1x HDMI 2.0(Type A - full) up to 4Kx2K@60Hz,
> > +                 1x 4L - MIPI DSI up to 1080p@60Hz,
> > +                 1x DP 1.2(Type C) up to 4Kx2K@60
> > +       * Camera: 2x 4-lane MIPI CSI
> > +       * PCI-E: 4- lane M.2 PCI-E 2.1
> > +       * Low Speed Expansion Connector
> > +       * High Speed Expansion Connector
> > +
> > +Here is the step-by-step to boot to U-Boot on rk3399.
> > +
> > +Get the Source and prebuild binary
> > +==================================
> > +
> > +  > git clone https://github.com/96rocks/rkbin.git
> > +  > git clone https://github.com/rockchip-linux/rkdeveloptool.git
> > +
> > +Compile the U-Boot
> > +==================
> > +
> > +  > cd ../u-boot
> > +  > export ARCH=arm64
> > +  > export CROSS_COMPILE=aarch64-linux-gnu-
> > +  > make rock960-rk3399_defconfig
> > +  > make
> > +
> > +Compile the rkdeveloptool
> > +=========================
> > +  Follow instructions in latest README
> > +  > cd ../rkdeveloptool
> > +  > autoreconf -i
> > +  > ./configure
> > +  > make
> > +  > sudo make install
> > +
> > +Package the image
> > +=================
> > +
> > +Package the image for Rockchip miniloader
> 
> Is there any reason to use the miniloader instead of SPL?
> 

I had some issues flashing the image using SPL initially. So decided
to use miniloader till I'm able to find time for it.

Thanks,
Mani

> Regards,
> Ezequiel
> 
> -- 
> Ezequiel GarcĂ­a, VanguardiaSur
> www.vanguardiasur.com.ar
diff mbox series

Patch

diff --git a/arch/arm/mach-rockchip/rk3399/Kconfig b/arch/arm/mach-rockchip/rk3399/Kconfig
index 415466a49bb..ce4605187e3 100644
--- a/arch/arm/mach-rockchip/rk3399/Kconfig
+++ b/arch/arm/mach-rockchip/rk3399/Kconfig
@@ -28,6 +28,21 @@  config TARGET_PUMA_RK3399
 	   * HDMI, eDP, MIPI-DSI, MIPI-DSI/CSI and MIPI-CSI
 	   * SPI, I2C, I2S, UART, GPIO, ...
 
+config TARGET_ROCK960_RK3399
+	bool "Vamrs Limited Rock960 board"
+	help
+	  Support for Rock960 board. This board complies with
+	  96Board Consumer Edition Specification.
+
+	  Features:
+	   * Rockchip RK3399 SoC (2xCortex A72, 4xCortex A53, ARM Mali T860MP4)
+	   * 2GiB/4GiB RAM
+	   * 16/32GB eMMC, uSD slot
+	   * WiFi, Bluetooth
+	   * 1x USB 3.0 type A, 1x USB 2.0 type A (host mode only), 1x USB 3.0 type C OTG
+	   * HDMI
+	   * 20-pin low speed and 40-pin high speed expanders, 6 LED, 3 buttons
+
 endchoice
 
 config SYS_SOC
@@ -38,5 +53,6 @@  config SYS_MALLOC_F_LEN
 
 source "board/rockchip/evb_rk3399/Kconfig"
 source "board/theobroma-systems/puma_rk3399/Kconfig"
+source "board/vamrs/rock960_rk3399/Kconfig"
 
 endif
diff --git a/board/vamrs/rock960_rk3399/Kconfig b/board/vamrs/rock960_rk3399/Kconfig
new file mode 100644
index 00000000000..cacc53f3780
--- /dev/null
+++ b/board/vamrs/rock960_rk3399/Kconfig
@@ -0,0 +1,15 @@ 
+if TARGET_ROCK960_RK3399
+
+config SYS_BOARD
+	default "rock960_rk3399"
+
+config SYS_VENDOR
+	default "vamrs"
+
+config SYS_CONFIG_NAME
+	default "rock960_rk3399"
+
+config BOARD_SPECIFIC_OPTIONS # dummy
+	def_bool y
+
+endif
diff --git a/board/vamrs/rock960_rk3399/MAINTAINERS b/board/vamrs/rock960_rk3399/MAINTAINERS
new file mode 100644
index 00000000000..9f3fe75f4fb
--- /dev/null
+++ b/board/vamrs/rock960_rk3399/MAINTAINERS
@@ -0,0 +1,6 @@ 
+ROCK960-RK3399
+M:      Manivannan Sadhasivam manivannan.sadhasivam@linaro.org
+S:      Maintained
+F:      board/rockchip/rock960_rk3399
+F:      include/configs/rock960_rk3399.h
+F:      configs/rock960-rk3399_defconfig
diff --git a/board/vamrs/rock960_rk3399/Makefile b/board/vamrs/rock960_rk3399/Makefile
new file mode 100644
index 00000000000..6c3e475b3a8
--- /dev/null
+++ b/board/vamrs/rock960_rk3399/Makefile
@@ -0,0 +1,6 @@ 
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (C) 2018 Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+#
+
+obj-y	+= rock960-rk3399.o
diff --git a/board/vamrs/rock960_rk3399/README b/board/vamrs/rock960_rk3399/README
new file mode 100644
index 00000000000..be6b5cd1d34
--- /dev/null
+++ b/board/vamrs/rock960_rk3399/README
@@ -0,0 +1,79 @@ 
+Introduction
+============
+
+Rock960 is a 96Boards Consumer Edition platform featuring the Rockchip
+RK3399 SoC.
+
+Rock960 features:
+	* CPU: ARMv8 64bit Big-Little architecture,
+		* Big: dual-core Cortex-A72
+		* Little: quad-core Cortex-A53
+		* IRAM: 200KB
+	* DRAM: 2GB/4GB LPDDR3 @ 1866MHz
+	* eMMC: 16/32GB eMMC 5.1
+	* PMU: RK808
+	* SD/MMC
+	* USB:
+		* 1x USB 3.0 type A, 1x USB 2.0 type A (host mode only) and
+		  1x USB 3.0 type C OTG
+	* Display:
+		* 1x HDMI 2.0(Type A - full) up to 4Kx2K@60Hz,
+		  1x 4L - MIPI DSI up to 1080p@60Hz,
+		  1x DP 1.2(Type C) up to 4Kx2K@60
+	* Camera: 2x 4-lane MIPI CSI
+	* PCI-E: 4- lane M.2 PCI-E 2.1
+	* Low Speed Expansion Connector
+	* High Speed Expansion Connector
+
+Here is the step-by-step to boot to U-Boot on rk3399.
+
+Get the Source and prebuild binary
+==================================
+
+  > git clone https://github.com/96rocks/rkbin.git
+  > git clone https://github.com/rockchip-linux/rkdeveloptool.git
+
+Compile the U-Boot
+==================
+
+  > cd ../u-boot
+  > export ARCH=arm64
+  > export CROSS_COMPILE=aarch64-linux-gnu-
+  > make rock960-rk3399_defconfig
+  > make
+
+Compile the rkdeveloptool
+=========================
+  Follow instructions in latest README
+  > cd ../rkdeveloptool
+  > autoreconf -i
+  > ./configure
+  > make
+  > sudo make install
+
+Package the image
+=================
+
+Package the image for Rockchip miniloader
+------------------------------------------
+  > cd ../rkbin
+  > ./tools/loaderimage --pack --uboot u-boot/u-boot-dtb.bin uboot.img 0x200000
+
+  > ../u-boot/tools/mkimage -n rk3399 -T rksd -d rk3399_ddr_933MHz_v1.08.bin idbloader.img
+  > cat ./rk33/rk3399_miniloader_v1.06.bin >> idbloader.img
+
+  Get uboot.img and idbloader.img in this step.
+
+Flash the image to eMMC
+=======================
+
+Flash the image with Rockchip miniloader
+----------------------------------------
+Power on(or reset with RESET KEY) with MASKROM KEY preesed, and then:
+  > rkdeveloptool db ./rk33/rk3399_loader_v1.08.106.bin
+  > rkdeveloptool wl 0x40 idbloader.img
+  > rkdeveloptool wl 0x4000 uboot.img
+  > rkdeveloptool wl 0x6000 ./img/rk3399/trust.img
+  > rkdeveloptool rd
+
+You should be able to get U-Boot log in console/UART2(baurdrate 1500000)
diff --git a/board/vamrs/rock960_rk3399/rock960-rk3399.c b/board/vamrs/rock960_rk3399/rock960-rk3399.c
new file mode 100644
index 00000000000..d3775b22191
--- /dev/null
+++ b/board/vamrs/rock960_rk3399/rock960-rk3399.c
@@ -0,0 +1,50 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <dm/pinctrl.h>
+#include <dm/uclass-internal.h>
+#include <asm/arch/periph.h>
+#include <power/regulator.h>
+#include <spl.h>
+
+int board_init(void)
+{
+	int ret;
+
+	ret = regulators_enable_boot_on(false);
+	if (ret)
+		debug("%s: Cannot enable boot on regulator\n", __func__);
+
+	return 0;
+}
+
+void spl_board_init(void)
+{
+	struct udevice *pinctrl;
+	int ret;
+
+	ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
+	if (ret) {
+		debug("%s: Cannot find pinctrl device\n", __func__);
+		goto err;
+	}
+
+	/* Enable debug UART */
+	ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_UART_DBG);
+	if (ret) {
+		debug("%s: Failed to set up console UART\n", __func__);
+		goto err;
+	}
+
+	preloader_console_init();
+	return;
+err:
+	printf("%s: Error %d\n", __func__, ret);
+
+	/* No way to report error here */
+	hang();
+}
diff --git a/configs/rock960-rk3399_defconfig b/configs/rock960-rk3399_defconfig
new file mode 100644
index 00000000000..998c7a4b707
--- /dev/null
+++ b/configs/rock960-rk3399_defconfig
@@ -0,0 +1,62 @@ 
+CONFIG_ARM=y
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_SYS_TEXT_BASE=0x00200000
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_ROCKCHIP_RK3399=y
+CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
+CONFIG_TARGET_ROCK960_RK3399=y
+CONFIG_DEBUG_UART_BASE=0xFF1A0000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_DEBUG_UART_SHIFT=2
+CONFIG_BAUDRATE=1500000
+CONFIG_SPL_STACK_R_ADDR=0x80000
+CONFIG_DEFAULT_DEVICE_TREE="rk3399-rock960"
+CONFIG_DEBUG_UART=y
+CONFIG_FIT=y
+CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.py"
+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rock960.dtb"
+CONFIG_SYS_PROMPT="rock960 => "
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_SPL_STACK_R=y
+CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000
+CONFIG_SPL_ATF=y
+CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_SF=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_TIME=y
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+CONFIG_SPL_OF_PLATDATA=y
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_REGMAP=y
+CONFIG_SPL_REGMAP=y
+CONFIG_SYSCON=y
+CONFIG_SPL_SYSCON=y
+CONFIG_CLK=y
+CONFIG_SPL_CLK=y
+CONFIG_ROCKCHIP_GPIO=y
+CONFIG_SYS_I2C_ROCKCHIP=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_ROCKCHIP=y
+CONFIG_PINCTRL=y
+CONFIG_SPL_PINCTRL=y
+CONFIG_PINCTRL_ROCKCHIP_RK3399=y
+CONFIG_DM_PMIC=y
+CONFIG_PMIC_RK8XX=y
+CONFIG_REGULATOR_PWM=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_REGULATOR_RK8XX=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_RAM=y
+CONFIG_SPL_RAM=y
+CONFIG_SYSRESET=y
+CONFIG_USE_TINY_PRINTF=y
+CONFIG_ERRNO_STR=y
diff --git a/include/configs/rock960_rk3399.h b/include/configs/rock960_rk3399.h
new file mode 100644
index 00000000000..746d24cbff5
--- /dev/null
+++ b/include/configs/rock960_rk3399.h
@@ -0,0 +1,15 @@ 
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2018 Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+ */
+
+#ifndef __ROCK960_RK3399_H
+#define __ROCK960_RK3399_H
+
+#include <configs/rk3399_common.h>
+
+#define CONFIG_SYS_MMC_ENV_DEV		1
+
+#define SDRAM_BANK_SIZE			(2UL << 30)
+
+#endif