[v2,2/8] rockchip: rk3399: Support common spl_board_init

Message ID 20190620185506.11449-3-jagan@amarulasolutions.com
State New
Headers show
Series
  • rockchip: rk3399: Use spl_board_init in SPL, TPL
Related show

Commit Message

Jagan Teki June 20, 2019, 6:55 p.m. UTC
Support common spl_board_init by moving code from puma
board file into, common rk3399-board-spl.c.

Part of the code has sysreset-gpio, regulators_enable_boot_on
but right now only puma board is using this with relevant
config options rest remains common for all targets.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 arch/arm/mach-rockchip/rk3399-board-spl.c     | 63 +++++++++++++++++++
 board/rockchip/evb_rk3399/evb-rk3399.c        |  8 ---
 .../puma_rk3399/puma-rk3399.c                 | 58 -----------------
 board/vamrs/rock960_rk3399/rock960-rk3399.c   |  8 ---
 4 files changed, 63 insertions(+), 74 deletions(-)

Comments

Kever Yang June 22, 2019, 1:47 p.m. UTC | #1
Hi Jagan,


On 06/21/2019 02:55 AM, Jagan Teki wrote:
> Support common spl_board_init by moving code from puma
> board file into, common rk3399-board-spl.c.
>
> Part of the code has sysreset-gpio, regulators_enable_boot_on
> but right now only puma board is using this with relevant
> config options rest remains common for all targets.
>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>

Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

Thanks,
- Kever
> ---
>  arch/arm/mach-rockchip/rk3399-board-spl.c     | 63 +++++++++++++++++++
>  board/rockchip/evb_rk3399/evb-rk3399.c        |  8 ---
>  .../puma_rk3399/puma-rk3399.c                 | 58 -----------------
>  board/vamrs/rock960_rk3399/rock960-rk3399.c   |  8 ---
>  4 files changed, 63 insertions(+), 74 deletions(-)
>
> diff --git a/arch/arm/mach-rockchip/rk3399-board-spl.c b/arch/arm/mach-rockchip/rk3399-board-spl.c
> index 800ca80022..65c98b697d 100644
> --- a/arch/arm/mach-rockchip/rk3399-board-spl.c
> +++ b/arch/arm/mach-rockchip/rk3399-board-spl.c
> @@ -11,13 +11,16 @@
>  #include <spl.h>
>  #include <spl_gpio.h>
>  #include <syscon.h>
> +#include <asm/gpio.h>
>  #include <asm/io.h>
>  #include <asm/arch-rockchip/bootrom.h>
>  #include <asm/arch-rockchip/clock.h>
> +#include <asm/arch-rockchip/cru_rk3399.h>
>  #include <asm/arch-rockchip/grf_rk3399.h>
>  #include <asm/arch-rockchip/hardware.h>
>  #include <asm/arch-rockchip/periph.h>
>  #include <asm/arch-rockchip/sys_proto.h>
> +#include <power/regulator.h>
>  #include <dm/pinctrl.h>
>  
>  void board_return_to_bootrom(void)
> @@ -202,6 +205,66 @@ void board_init_f(ulong dummy)
>  	}
>  }
>  
> +#if defined(SPL_GPIO_SUPPORT)
> +static void rk3399_force_power_on_reset(void)
> +{
> +	ofnode node;
> +	struct gpio_desc sysreset_gpio;
> +
> +	debug("%s: trying to force a power-on reset\n", __func__);
> +
> +	node = ofnode_path("/config");
> +	if (!ofnode_valid(node)) {
> +		debug("%s: no /config node?\n", __func__);
> +		return;
> +	}
> +
> +	if (gpio_request_by_name_nodev(node, "sysreset-gpio", 0,
> +				       &sysreset_gpio, GPIOD_IS_OUT)) {
> +		debug("%s: could not find a /config/sysreset-gpio\n", __func__);
> +		return;
> +	}
> +
> +	dm_gpio_set_value(&sysreset_gpio, 1);
> +}
> +#endif
> +
> +void spl_board_init(void)
> +{
> +#if defined(SPL_GPIO_SUPPORT)
> +	struct rk3399_cru *cru = rockchip_get_cru();
> +
> +	/*
> +	 * The RK3399 resets only 'almost all logic' (see also in the TRM
> +	 * "3.9.4 Global software reset"), when issuing a software reset.
> +	 * This may cause issues during boot-up for some configurations of
> +	 * the application software stack.
> +	 *
> +	 * To work around this, we test whether the last reset reason was
> +	 * a power-on reset and (if not) issue an overtemp-reset to reset
> +	 * the entire module.
> +	 *
> +	 * While this was previously fixed by modifying the various places
> +	 * that could generate a software reset (e.g. U-Boot's sysreset
> +	 * driver, the ATF or Linux), we now have it here to ensure that
> +	 * we no longer have to track this through the various components.
> +	 */
> +	if (cru->glb_rst_st != 0)
> +		rk3399_force_power_on_reset();
> +#endif
> +
> +#if defined(SPL_DM_REGULATOR)
> +	/*
> +	 * Turning the eMMC and SPI back on (if disabled via the Qseven
> +	 * BIOS_ENABLE) signal is done through a always-on regulator).
> +	 */
> +	if (regulators_enable_boot_on(false))
> +		debug("%s: Cannot enable boot on regulator\n", __func__);
> +#endif
> +
> +	preloader_console_init();
> +}
> +
>  #ifdef CONFIG_SPL_LOAD_FIT
>  int board_fit_config_name_match(const char *name)
>  {
> diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c
> index 769b5d146f..c600553ff6 100644
> --- a/board/rockchip/evb_rk3399/evb-rk3399.c
> +++ b/board/rockchip/evb_rk3399/evb-rk3399.c
> @@ -8,7 +8,6 @@
>  #include <dm/pinctrl.h>
>  #include <asm/arch-rockchip/periph.h>
>  #include <power/regulator.h>
> -#include <spl.h>
>  
>  int board_init(void)
>  {
> @@ -64,10 +63,3 @@ int board_init(void)
>  out:
>  	return 0;
>  }
> -
> -void spl_board_init(void)
> -{
> -	preloader_console_init();
> -
> -	return;
> -}
> diff --git a/board/theobroma-systems/puma_rk3399/puma-rk3399.c b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
> index c6b509c109..251cd2d566 100644
> --- a/board/theobroma-systems/puma_rk3399/puma-rk3399.c
> +++ b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
> @@ -13,10 +13,8 @@
>  #include <dm/pinctrl.h>
>  #include <dm/uclass-internal.h>
>  #include <asm/io.h>
> -#include <asm/gpio.h>
>  #include <asm/setup.h>
>  #include <asm/arch-rockchip/clock.h>
> -#include <asm/arch-rockchip/cru_rk3399.h>
>  #include <asm/arch-rockchip/hardware.h>
>  #include <asm/arch-rockchip/grf_rk3399.h>
>  #include <asm/arch-rockchip/periph.h>
> @@ -38,62 +36,6 @@ int board_init(void)
>  	return 0;
>  }
>  
> -static void rk3399_force_power_on_reset(void)
> -{
> -	ofnode node;
> -	struct gpio_desc sysreset_gpio;
> -
> -	debug("%s: trying to force a power-on reset\n", __func__);
> -
> -	node = ofnode_path("/config");
> -	if (!ofnode_valid(node)) {
> -		debug("%s: no /config node?\n", __func__);
> -		return;
> -	}
> -
> -	if (gpio_request_by_name_nodev(node, "sysreset-gpio", 0,
> -				       &sysreset_gpio, GPIOD_IS_OUT)) {
> -		debug("%s: could not find a /config/sysreset-gpio\n", __func__);
> -		return;
> -	}
> -
> -	dm_gpio_set_value(&sysreset_gpio, 1);
> -}
> -
> -void spl_board_init(void)
> -{
> -	int  ret;
> -	struct rk3399_cru *cru = rockchip_get_cru();
> -
> -	/*
> -	 * The RK3399 resets only 'almost all logic' (see also in the TRM
> -	 * "3.9.4 Global software reset"), when issuing a software reset.
> -	 * This may cause issues during boot-up for some configurations of
> -	 * the application software stack.
> -	 *
> -	 * To work around this, we test whether the last reset reason was
> -	 * a power-on reset and (if not) issue an overtemp-reset to reset
> -	 * the entire module.
> -	 *
> -	 * While this was previously fixed by modifying the various places
> -	 * that could generate a software reset (e.g. U-Boot's sysreset
> -	 * driver, the ATF or Linux), we now have it here to ensure that
> -	 * we no longer have to track this through the various components.
> -	 */
> -	if (cru->glb_rst_st != 0)
> -		rk3399_force_power_on_reset();
> -
> -	/*
> -	 * Turning the eMMC and SPI back on (if disabled via the Qseven
> -	 * BIOS_ENABLE) signal is done through a always-on regulator).
> -	 */
> -	ret = regulators_enable_boot_on(false);
> -	if (ret)
> -		debug("%s: Cannot enable boot on regulator\n", __func__);
> -
> -	preloader_console_init();
> -}
> -
>  static void setup_macaddr(void)
>  {
>  #if CONFIG_IS_ENABLED(CMD_NET)
> diff --git a/board/vamrs/rock960_rk3399/rock960-rk3399.c b/board/vamrs/rock960_rk3399/rock960-rk3399.c
> index 018e4b55b8..2eb7120e84 100644
> --- a/board/vamrs/rock960_rk3399/rock960-rk3399.c
> +++ b/board/vamrs/rock960_rk3399/rock960-rk3399.c
> @@ -6,7 +6,6 @@
>  #include <common.h>
>  #include <dm.h>
>  #include <power/regulator.h>
> -#include <spl.h>
>  
>  int board_init(void)
>  {
> @@ -18,10 +17,3 @@ int board_init(void)
>  
>  	return 0;
>  }
> -
> -void spl_board_init(void)
> -{
> -	preloader_console_init();
> -
> -	return;
> -}
Vasily Khoruzhick Nov. 28, 2019, 4:30 a.m. UTC | #2
On Thu, Jun 20, 2019 at 11:57 AM Jagan Teki <jagan@amarulasolutions.com> wrote:
>
> Support common spl_board_init by moving code from puma
> board file into, common rk3399-board-spl.c.
>
> Part of the code has sysreset-gpio, regulators_enable_boot_on
> but right now only puma board is using this with relevant
> config options rest remains common for all targets.
>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>  arch/arm/mach-rockchip/rk3399-board-spl.c     | 63 +++++++++++++++++++
>  board/rockchip/evb_rk3399/evb-rk3399.c        |  8 ---
>  .../puma_rk3399/puma-rk3399.c                 | 58 -----------------
>  board/vamrs/rock960_rk3399/rock960-rk3399.c   |  8 ---
>  4 files changed, 63 insertions(+), 74 deletions(-)
>
> diff --git a/arch/arm/mach-rockchip/rk3399-board-spl.c b/arch/arm/mach-rockchip/rk3399-board-spl.c
> index 800ca80022..65c98b697d 100644
> --- a/arch/arm/mach-rockchip/rk3399-board-spl.c
> +++ b/arch/arm/mach-rockchip/rk3399-board-spl.c
> @@ -11,13 +11,16 @@
>  #include <spl.h>
>  #include <spl_gpio.h>
>  #include <syscon.h>
> +#include <asm/gpio.h>
>  #include <asm/io.h>
>  #include <asm/arch-rockchip/bootrom.h>
>  #include <asm/arch-rockchip/clock.h>
> +#include <asm/arch-rockchip/cru_rk3399.h>
>  #include <asm/arch-rockchip/grf_rk3399.h>
>  #include <asm/arch-rockchip/hardware.h>
>  #include <asm/arch-rockchip/periph.h>
>  #include <asm/arch-rockchip/sys_proto.h>
> +#include <power/regulator.h>
>  #include <dm/pinctrl.h>
>
>  void board_return_to_bootrom(void)
> @@ -202,6 +205,66 @@ void board_init_f(ulong dummy)
>         }
>  }
>
> +#if defined(SPL_GPIO_SUPPORT)

That hasn't been compile tested since "defined(SPL_GPIO_SUPPORT)"
ensures that this code never compiles.

It should be CONFIG_SPL_GPIO_SUPPORT instead, and it won't compile due
to missing header in this case.

Unfortunately code won't work even with missing include added since
something else is broken and it fails to request gpio.

> +static void rk3399_force_power_on_reset(void)
> +{
> +       ofnode node;
> +       struct gpio_desc sysreset_gpio;
> +
> +       debug("%s: trying to force a power-on reset\n", __func__);
> +
> +       node = ofnode_path("/config");
> +       if (!ofnode_valid(node)) {
> +               debug("%s: no /config node?\n", __func__);
> +               return;
> +       }
> +
> +       if (gpio_request_by_name_nodev(node, "sysreset-gpio", 0,
> +                                      &sysreset_gpio, GPIOD_IS_OUT)) {
> +               debug("%s: could not find a /config/sysreset-gpio\n", __func__);
> +               return;
> +       }
> +
> +       dm_gpio_set_value(&sysreset_gpio, 1);
> +}
> +#endif
> +
> +void spl_board_init(void)
> +{
> +#if defined(SPL_GPIO_SUPPORT)
> +       struct rk3399_cru *cru = rockchip_get_cru();
> +
> +       /*
> +        * The RK3399 resets only 'almost all logic' (see also in the TRM
> +        * "3.9.4 Global software reset"), when issuing a software reset.
> +        * This may cause issues during boot-up for some configurations of
> +        * the application software stack.
> +        *
> +        * To work around this, we test whether the last reset reason was
> +        * a power-on reset and (if not) issue an overtemp-reset to reset
> +        * the entire module.
> +        *
> +        * While this was previously fixed by modifying the various places
> +        * that could generate a software reset (e.g. U-Boot's sysreset
> +        * driver, the ATF or Linux), we now have it here to ensure that
> +        * we no longer have to track this through the various components.
> +        */
> +       if (cru->glb_rst_st != 0)
> +               rk3399_force_power_on_reset();
> +#endif
> +
> +#if defined(SPL_DM_REGULATOR)
> +       /*
> +        * Turning the eMMC and SPI back on (if disabled via the Qseven
> +        * BIOS_ENABLE) signal is done through a always-on regulator).
> +        */
> +       if (regulators_enable_boot_on(false))
> +               debug("%s: Cannot enable boot on regulator\n", __func__);
> +#endif
> +
> +       preloader_console_init();
> +}
> +
>  #ifdef CONFIG_SPL_LOAD_FIT
>  int board_fit_config_name_match(const char *name)
>  {
> diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c
> index 769b5d146f..c600553ff6 100644
> --- a/board/rockchip/evb_rk3399/evb-rk3399.c
> +++ b/board/rockchip/evb_rk3399/evb-rk3399.c
> @@ -8,7 +8,6 @@
>  #include <dm/pinctrl.h>
>  #include <asm/arch-rockchip/periph.h>
>  #include <power/regulator.h>
> -#include <spl.h>
>
>  int board_init(void)
>  {
> @@ -64,10 +63,3 @@ int board_init(void)
>  out:
>         return 0;
>  }
> -
> -void spl_board_init(void)
> -{
> -       preloader_console_init();
> -
> -       return;
> -}
> diff --git a/board/theobroma-systems/puma_rk3399/puma-rk3399.c b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
> index c6b509c109..251cd2d566 100644
> --- a/board/theobroma-systems/puma_rk3399/puma-rk3399.c
> +++ b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
> @@ -13,10 +13,8 @@
>  #include <dm/pinctrl.h>
>  #include <dm/uclass-internal.h>
>  #include <asm/io.h>
> -#include <asm/gpio.h>
>  #include <asm/setup.h>
>  #include <asm/arch-rockchip/clock.h>
> -#include <asm/arch-rockchip/cru_rk3399.h>
>  #include <asm/arch-rockchip/hardware.h>
>  #include <asm/arch-rockchip/grf_rk3399.h>
>  #include <asm/arch-rockchip/periph.h>
> @@ -38,62 +36,6 @@ int board_init(void)
>         return 0;
>  }
>
> -static void rk3399_force_power_on_reset(void)
> -{
> -       ofnode node;
> -       struct gpio_desc sysreset_gpio;
> -
> -       debug("%s: trying to force a power-on reset\n", __func__);
> -
> -       node = ofnode_path("/config");
> -       if (!ofnode_valid(node)) {
> -               debug("%s: no /config node?\n", __func__);
> -               return;
> -       }
> -
> -       if (gpio_request_by_name_nodev(node, "sysreset-gpio", 0,
> -                                      &sysreset_gpio, GPIOD_IS_OUT)) {
> -               debug("%s: could not find a /config/sysreset-gpio\n", __func__);
> -               return;
> -       }
> -
> -       dm_gpio_set_value(&sysreset_gpio, 1);
> -}
> -
> -void spl_board_init(void)
> -{
> -       int  ret;
> -       struct rk3399_cru *cru = rockchip_get_cru();
> -
> -       /*
> -        * The RK3399 resets only 'almost all logic' (see also in the TRM
> -        * "3.9.4 Global software reset"), when issuing a software reset.
> -        * This may cause issues during boot-up for some configurations of
> -        * the application software stack.
> -        *
> -        * To work around this, we test whether the last reset reason was
> -        * a power-on reset and (if not) issue an overtemp-reset to reset
> -        * the entire module.
> -        *
> -        * While this was previously fixed by modifying the various places
> -        * that could generate a software reset (e.g. U-Boot's sysreset
> -        * driver, the ATF or Linux), we now have it here to ensure that
> -        * we no longer have to track this through the various components.
> -        */
> -       if (cru->glb_rst_st != 0)
> -               rk3399_force_power_on_reset();
> -
> -       /*
> -        * Turning the eMMC and SPI back on (if disabled via the Qseven
> -        * BIOS_ENABLE) signal is done through a always-on regulator).
> -        */
> -       ret = regulators_enable_boot_on(false);
> -       if (ret)
> -               debug("%s: Cannot enable boot on regulator\n", __func__);
> -
> -       preloader_console_init();
> -}
> -
>  static void setup_macaddr(void)
>  {
>  #if CONFIG_IS_ENABLED(CMD_NET)
> diff --git a/board/vamrs/rock960_rk3399/rock960-rk3399.c b/board/vamrs/rock960_rk3399/rock960-rk3399.c
> index 018e4b55b8..2eb7120e84 100644
> --- a/board/vamrs/rock960_rk3399/rock960-rk3399.c
> +++ b/board/vamrs/rock960_rk3399/rock960-rk3399.c
> @@ -6,7 +6,6 @@
>  #include <common.h>
>  #include <dm.h>
>  #include <power/regulator.h>
> -#include <spl.h>
>
>  int board_init(void)
>  {
> @@ -18,10 +17,3 @@ int board_init(void)
>
>         return 0;
>  }
> -
> -void spl_board_init(void)
> -{
> -       preloader_console_init();
> -
> -       return;
> -}
> --
> 2.18.0.321.gffc6fa0e3
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> https://lists.denx.de/listinfo/u-boot

Patch

diff --git a/arch/arm/mach-rockchip/rk3399-board-spl.c b/arch/arm/mach-rockchip/rk3399-board-spl.c
index 800ca80022..65c98b697d 100644
--- a/arch/arm/mach-rockchip/rk3399-board-spl.c
+++ b/arch/arm/mach-rockchip/rk3399-board-spl.c
@@ -11,13 +11,16 @@ 
 #include <spl.h>
 #include <spl_gpio.h>
 #include <syscon.h>
+#include <asm/gpio.h>
 #include <asm/io.h>
 #include <asm/arch-rockchip/bootrom.h>
 #include <asm/arch-rockchip/clock.h>
+#include <asm/arch-rockchip/cru_rk3399.h>
 #include <asm/arch-rockchip/grf_rk3399.h>
 #include <asm/arch-rockchip/hardware.h>
 #include <asm/arch-rockchip/periph.h>
 #include <asm/arch-rockchip/sys_proto.h>
+#include <power/regulator.h>
 #include <dm/pinctrl.h>
 
 void board_return_to_bootrom(void)
@@ -202,6 +205,66 @@  void board_init_f(ulong dummy)
 	}
 }
 
+#if defined(SPL_GPIO_SUPPORT)
+static void rk3399_force_power_on_reset(void)
+{
+	ofnode node;
+	struct gpio_desc sysreset_gpio;
+
+	debug("%s: trying to force a power-on reset\n", __func__);
+
+	node = ofnode_path("/config");
+	if (!ofnode_valid(node)) {
+		debug("%s: no /config node?\n", __func__);
+		return;
+	}
+
+	if (gpio_request_by_name_nodev(node, "sysreset-gpio", 0,
+				       &sysreset_gpio, GPIOD_IS_OUT)) {
+		debug("%s: could not find a /config/sysreset-gpio\n", __func__);
+		return;
+	}
+
+	dm_gpio_set_value(&sysreset_gpio, 1);
+}
+#endif
+
+void spl_board_init(void)
+{
+#if defined(SPL_GPIO_SUPPORT)
+	struct rk3399_cru *cru = rockchip_get_cru();
+
+	/*
+	 * The RK3399 resets only 'almost all logic' (see also in the TRM
+	 * "3.9.4 Global software reset"), when issuing a software reset.
+	 * This may cause issues during boot-up for some configurations of
+	 * the application software stack.
+	 *
+	 * To work around this, we test whether the last reset reason was
+	 * a power-on reset and (if not) issue an overtemp-reset to reset
+	 * the entire module.
+	 *
+	 * While this was previously fixed by modifying the various places
+	 * that could generate a software reset (e.g. U-Boot's sysreset
+	 * driver, the ATF or Linux), we now have it here to ensure that
+	 * we no longer have to track this through the various components.
+	 */
+	if (cru->glb_rst_st != 0)
+		rk3399_force_power_on_reset();
+#endif
+
+#if defined(SPL_DM_REGULATOR)
+	/*
+	 * Turning the eMMC and SPI back on (if disabled via the Qseven
+	 * BIOS_ENABLE) signal is done through a always-on regulator).
+	 */
+	if (regulators_enable_boot_on(false))
+		debug("%s: Cannot enable boot on regulator\n", __func__);
+#endif
+
+	preloader_console_init();
+}
+
 #ifdef CONFIG_SPL_LOAD_FIT
 int board_fit_config_name_match(const char *name)
 {
diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c
index 769b5d146f..c600553ff6 100644
--- a/board/rockchip/evb_rk3399/evb-rk3399.c
+++ b/board/rockchip/evb_rk3399/evb-rk3399.c
@@ -8,7 +8,6 @@ 
 #include <dm/pinctrl.h>
 #include <asm/arch-rockchip/periph.h>
 #include <power/regulator.h>
-#include <spl.h>
 
 int board_init(void)
 {
@@ -64,10 +63,3 @@  int board_init(void)
 out:
 	return 0;
 }
-
-void spl_board_init(void)
-{
-	preloader_console_init();
-
-	return;
-}
diff --git a/board/theobroma-systems/puma_rk3399/puma-rk3399.c b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
index c6b509c109..251cd2d566 100644
--- a/board/theobroma-systems/puma_rk3399/puma-rk3399.c
+++ b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
@@ -13,10 +13,8 @@ 
 #include <dm/pinctrl.h>
 #include <dm/uclass-internal.h>
 #include <asm/io.h>
-#include <asm/gpio.h>
 #include <asm/setup.h>
 #include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/cru_rk3399.h>
 #include <asm/arch-rockchip/hardware.h>
 #include <asm/arch-rockchip/grf_rk3399.h>
 #include <asm/arch-rockchip/periph.h>
@@ -38,62 +36,6 @@  int board_init(void)
 	return 0;
 }
 
-static void rk3399_force_power_on_reset(void)
-{
-	ofnode node;
-	struct gpio_desc sysreset_gpio;
-
-	debug("%s: trying to force a power-on reset\n", __func__);
-
-	node = ofnode_path("/config");
-	if (!ofnode_valid(node)) {
-		debug("%s: no /config node?\n", __func__);
-		return;
-	}
-
-	if (gpio_request_by_name_nodev(node, "sysreset-gpio", 0,
-				       &sysreset_gpio, GPIOD_IS_OUT)) {
-		debug("%s: could not find a /config/sysreset-gpio\n", __func__);
-		return;
-	}
-
-	dm_gpio_set_value(&sysreset_gpio, 1);
-}
-
-void spl_board_init(void)
-{
-	int  ret;
-	struct rk3399_cru *cru = rockchip_get_cru();
-
-	/*
-	 * The RK3399 resets only 'almost all logic' (see also in the TRM
-	 * "3.9.4 Global software reset"), when issuing a software reset.
-	 * This may cause issues during boot-up for some configurations of
-	 * the application software stack.
-	 *
-	 * To work around this, we test whether the last reset reason was
-	 * a power-on reset and (if not) issue an overtemp-reset to reset
-	 * the entire module.
-	 *
-	 * While this was previously fixed by modifying the various places
-	 * that could generate a software reset (e.g. U-Boot's sysreset
-	 * driver, the ATF or Linux), we now have it here to ensure that
-	 * we no longer have to track this through the various components.
-	 */
-	if (cru->glb_rst_st != 0)
-		rk3399_force_power_on_reset();
-
-	/*
-	 * Turning the eMMC and SPI back on (if disabled via the Qseven
-	 * BIOS_ENABLE) signal is done through a always-on regulator).
-	 */
-	ret = regulators_enable_boot_on(false);
-	if (ret)
-		debug("%s: Cannot enable boot on regulator\n", __func__);
-
-	preloader_console_init();
-}
-
 static void setup_macaddr(void)
 {
 #if CONFIG_IS_ENABLED(CMD_NET)
diff --git a/board/vamrs/rock960_rk3399/rock960-rk3399.c b/board/vamrs/rock960_rk3399/rock960-rk3399.c
index 018e4b55b8..2eb7120e84 100644
--- a/board/vamrs/rock960_rk3399/rock960-rk3399.c
+++ b/board/vamrs/rock960_rk3399/rock960-rk3399.c
@@ -6,7 +6,6 @@ 
 #include <common.h>
 #include <dm.h>
 #include <power/regulator.h>
-#include <spl.h>
 
 int board_init(void)
 {
@@ -18,10 +17,3 @@  int board_init(void)
 
 	return 0;
 }
-
-void spl_board_init(void)
-{
-	preloader_console_init();
-
-	return;
-}