Message ID | 1444407352-1847-1-git-send-email-hdegoede@redhat.com |
---|---|
State | Accepted |
Delegated to: | Hans de Goede |
Headers | show |
On Fri, 2015-10-09 at 18:15 +0200, Hans de Goede wrote: > Add a bootcmd_old value to the default environment when building with > CONFIG_OLD_SUNXI_KERNEL_COMPAT, this way people who occasionally want > to boot an old kernel can do so by simply typing "run bootcmd_old" > rather then needing to have 2 separe setups / sdcards for old and "separate"? "old" is a bit non-specific (e.g. there are also old mainline kernels). Perhaps bootcmd_sunxi_compat? It's a bit of a mouthful but it will tab complete b<tab>sun<tab> or close to that. > +#ifdef CONFIG_OLD_SUNXI_KERNEL_COMPAT > +#define BOOTCMD_OLD \ > + "root=/dev/mmcblk0p3 rootwait\0" \ Does something other than the below setenv bootargs rely on this? It'd be better not to pollute the default env with such a generically named thing. I suggest following the naming of the command, so root_sunxi_compat. If it is important to have root= present e.g. for script.bin or uEnv.txt then perhaps put setenv root ${root_sunxi_compat} at the start of the command? > + "bootcmd_old=" \ > + "if ext2load mmc 0 0x44000000 uEnv.txt; then " \ > + "echo Loaded environment from uEnv.txt; " \ > + "env import -t 0x44000000 ${filesize}; " \ > + "fi; " \ > + "setenv bootargs console=${console} root=${root} > ${extraargs}; " \ > + "ext2load mmc 0 0x43000000 script.bin && " \ > + "ext2load mmc 0 0x48000000 uImage && " \ > + "bootm 0x48000000\0" > +#else > +#define BOOTCMD_OLD > +#endif > + > #include <config_distro_bootcmd.h> > > #ifdef CONFIG_USB_KEYBOARD > @@ -495,6 +511,7 @@ extern int soft_i2c_gpio_scl; > MTD_ENV_SETTINGS \ > "fdtfile=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ > "console=ttyS0,115200\0" \ > + BOOTCMD_OLD \ > BOOTENV > > #else /* ifndef CONFIG_SPL_BUILD */
Hi, On 11-10-15 11:12, Ian Campbell wrote: > On Fri, 2015-10-09 at 18:15 +0200, Hans de Goede wrote: >> Add a bootcmd_old value to the default environment when building with >> CONFIG_OLD_SUNXI_KERNEL_COMPAT, this way people who occasionally want >> to boot an old kernel can do so by simply typing "run bootcmd_old" >> rather then needing to have 2 separe setups / sdcards for old and > > "separate"? Yep, my bad. > "old" is a bit non-specific (e.g. there are also old mainline kernels). > Perhaps bootcmd_sunxi_compat? It's a bit of a mouthful but it will tab > complete b<tab>sun<tab> or close to that. Ok, bootcmd_sunxi_compat it is. >> +#ifdef CONFIG_OLD_SUNXI_KERNEL_COMPAT >> +#define BOOTCMD_OLD \ >> + "root=/dev/mmcblk0p3 rootwait\0" \ > > Does something other than the below setenv bootargs rely on this? It'd > be better not to pollute the default env with such a generically named > thing. I suggest following the naming of the command, so > root_sunxi_compat. > > If it is important to have root= present e.g. for script.bin or > uEnv.txt then perhaps put setenv root ${root_sunxi_compat} at the start > of the command? Right, we need this because it is typically set from uEnv.txt, using setenv before importing uEnv.txt is a good idea though. And there is no need for the root_sunxi_compat indirection there IMHO. Patch v2 with all this fixed coming up. > >> + "bootcmd_old=" \ >> + "if ext2load mmc 0 0x44000000 uEnv.txt; then " \ >> + "echo Loaded environment from uEnv.txt; " \ >> + "env import -t 0x44000000 ${filesize}; " \ >> + "fi; " \ >> + "setenv bootargs console=${console} root=${root} >> ${extraargs}; " \ >> + "ext2load mmc 0 0x43000000 script.bin && " \ >> + "ext2load mmc 0 0x48000000 uImage && " \ >> + "bootm 0x48000000\0" >> +#else >> +#define BOOTCMD_OLD >> +#endif >> + >> #include <config_distro_bootcmd.h> >> >> #ifdef CONFIG_USB_KEYBOARD >> @@ -495,6 +511,7 @@ extern int soft_i2c_gpio_scl; >> MTD_ENV_SETTINGS \ >> "fdtfile=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ >> "console=ttyS0,115200\0" \ >> + BOOTCMD_OLD \ >> BOOTENV >> >> #else /* ifndef CONFIG_SPL_BUILD */ Regards, Hans
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h index 29745fe..37e9c6b 100644 --- a/include/configs/sunxi-common.h +++ b/include/configs/sunxi-common.h @@ -464,6 +464,22 @@ extern int soft_i2c_gpio_scl; func(PXE, pxe, na) \ func(DHCP, dhcp, na) +#ifdef CONFIG_OLD_SUNXI_KERNEL_COMPAT +#define BOOTCMD_OLD \ + "root=/dev/mmcblk0p3 rootwait\0" \ + "bootcmd_old=" \ + "if ext2load mmc 0 0x44000000 uEnv.txt; then " \ + "echo Loaded environment from uEnv.txt; " \ + "env import -t 0x44000000 ${filesize}; " \ + "fi; " \ + "setenv bootargs console=${console} root=${root} ${extraargs}; " \ + "ext2load mmc 0 0x43000000 script.bin && " \ + "ext2load mmc 0 0x48000000 uImage && " \ + "bootm 0x48000000\0" +#else +#define BOOTCMD_OLD +#endif + #include <config_distro_bootcmd.h> #ifdef CONFIG_USB_KEYBOARD @@ -495,6 +511,7 @@ extern int soft_i2c_gpio_scl; MTD_ENV_SETTINGS \ "fdtfile=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ "console=ttyS0,115200\0" \ + BOOTCMD_OLD \ BOOTENV #else /* ifndef CONFIG_SPL_BUILD */
Add a bootcmd_old value to the default environment when building with CONFIG_OLD_SUNXI_KERNEL_COMPAT, this way people who occasionally want to boot an old kernel can do so by simply typing "run bootcmd_old" rather then needing to have 2 separe setups / sdcards for old and new kernels. Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- include/configs/sunxi-common.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)