diff mbox series

[2/2] rockchip: Add SF distro bootcmd

Message ID 20200203091924.15385-2-jagan@amarulasolutions.com
State New
Headers show
Series [1/2] rk3399: Add boot flash script offet, size | expand

Commit Message

Jagan Teki Feb. 3, 2020, 9:19 a.m. UTC
Add distro boot command support for SPI flash in Rockchip.

This distro boot will read the boot script at specific
location at the flash and start sourcing the same.

Included the SF device at the last of the target devices
list since all the rest of the devices on the list have
more possibility to boot the distribution due to the
size of the SPI flash is concern.

Signed-off-by: Jagan Teki <jagan at amarulasolutions.com>
---
 include/configs/rockchip-common.h | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

Comments

Tom Rini Feb. 4, 2020, 5 p.m. UTC | #1
On Mon, Feb 03, 2020 at 02:49:24PM +0530, Jagan Teki wrote:

> Add distro boot command support for SPI flash in Rockchip.
> 
> This distro boot will read the boot script at specific
> location at the flash and start sourcing the same.
> 
> Included the SF device at the last of the target devices
> list since all the rest of the devices on the list have
> more possibility to boot the distribution due to the
> size of the SPI flash is concern.
> 
> Signed-off-by: Jagan Teki <jagan at amarulasolutions.com>
> ---
>  include/configs/rockchip-common.h | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/include/configs/rockchip-common.h b/include/configs/rockchip-common.h
> index b55e09a9ca..8e7c994266 100644
> --- a/include/configs/rockchip-common.h
> +++ b/include/configs/rockchip-common.h
> @@ -41,11 +41,26 @@
>  	#define BOOT_TARGET_DHCP(func)
>  #endif
>  
> +#if CONFIG_IS_ENABLED(CMD_SF)
> +	#define BOOT_TARGET_SF(func)	func(SF, sf, na)
> +#else
> +	#define BOOT_TARGET_SF(func)
> +#endif
> +
> +#define BOOTENV_DEV_SF(devtypeu, devtypel, instance) \
> +	"bootcmd_sf=sf probe 0 0 0 && " \
> +		"sf read ${scriptaddr} ${script_offset_f} ${script_size_f} && " \
> +		"source ${scriptaddr}; echo SCRIPT FAILED: continuing...;\0"
> +
> +#define BOOTENV_DEV_NAME_SF(devtypeu, devtypel, instance) \
> +	"sf "
> +
>  #define BOOT_TARGET_DEVICES(func) \
>  	BOOT_TARGET_MMC(func) \
>  	BOOT_TARGET_USB(func) \
>  	BOOT_TARGET_PXE(func) \
> -	BOOT_TARGET_DHCP(func)
> +	BOOT_TARGET_DHCP(func) \
> +	BOOT_TARGET_SF(func)
>  
>  #ifdef CONFIG_ARM64
>  #define ROOT_UUID "B921B045-1DF0-41C3-AF44-4C6F280D3FAE;\0"

Something I lamented in another thread is that we need to move things to
include/environment/ so that they can be re-used easily.  Lets start by
putting the "distro boot" SF stuff in to include/environment/distro/sf.h
and #include that here.  That way anything else that really does have
something written to SPI flash in this manner can opt-in without
duplication of the logic.

Thanks!
diff mbox series

Patch

diff --git a/include/configs/rockchip-common.h b/include/configs/rockchip-common.h
index b55e09a9ca..8e7c994266 100644
--- a/include/configs/rockchip-common.h
+++ b/include/configs/rockchip-common.h
@@ -41,11 +41,26 @@ 
 	#define BOOT_TARGET_DHCP(func)
 #endif
 
+#if CONFIG_IS_ENABLED(CMD_SF)
+	#define BOOT_TARGET_SF(func)	func(SF, sf, na)
+#else
+	#define BOOT_TARGET_SF(func)
+#endif
+
+#define BOOTENV_DEV_SF(devtypeu, devtypel, instance) \
+	"bootcmd_sf=sf probe 0 0 0 && " \
+		"sf read ${scriptaddr} ${script_offset_f} ${script_size_f} && " \
+		"source ${scriptaddr}; echo SCRIPT FAILED: continuing...;\0"
+
+#define BOOTENV_DEV_NAME_SF(devtypeu, devtypel, instance) \
+	"sf "
+
 #define BOOT_TARGET_DEVICES(func) \
 	BOOT_TARGET_MMC(func) \
 	BOOT_TARGET_USB(func) \
 	BOOT_TARGET_PXE(func) \
-	BOOT_TARGET_DHCP(func)
+	BOOT_TARGET_DHCP(func) \
+	BOOT_TARGET_SF(func)
 
 #ifdef CONFIG_ARM64
 #define ROOT_UUID "B921B045-1DF0-41C3-AF44-4C6F280D3FAE;\0"