Message ID | 20200203091924.15385-2-jagan@amarulasolutions.com |
---|---|
State | New |
Headers | show |
Series | [1/2] rk3399: Add boot flash script offet, size | expand |
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 --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"
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(-)