* [U-Boot] [PATCH] sunxi: Add a bootcmd_old to the default environment to boot old kernels
@ 2015-10-09 16:15 Hans de Goede
2015-10-11 9:12 ` Ian Campbell
0 siblings, 1 reply; 3+ messages in thread
From: Hans de Goede @ 2015-10-09 16:15 UTC (permalink / raw)
To: u-boot
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(+)
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 */
--
2.5.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* [U-Boot] [PATCH] sunxi: Add a bootcmd_old to the default environment to boot old kernels
2015-10-09 16:15 [U-Boot] [PATCH] sunxi: Add a bootcmd_old to the default environment to boot old kernels Hans de Goede
@ 2015-10-11 9:12 ` Ian Campbell
2015-10-11 10:38 ` Hans de Goede
0 siblings, 1 reply; 3+ messages in thread
From: Ian Campbell @ 2015-10-11 9:12 UTC (permalink / raw)
To: u-boot
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 */
^ permalink raw reply [flat|nested] 3+ messages in thread* [U-Boot] [PATCH] sunxi: Add a bootcmd_old to the default environment to boot old kernels
2015-10-11 9:12 ` Ian Campbell
@ 2015-10-11 10:38 ` Hans de Goede
0 siblings, 0 replies; 3+ messages in thread
From: Hans de Goede @ 2015-10-11 10:38 UTC (permalink / raw)
To: u-boot
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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-10-11 10:38 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-09 16:15 [U-Boot] [PATCH] sunxi: Add a bootcmd_old to the default environment to boot old kernels Hans de Goede
2015-10-11 9:12 ` Ian Campbell
2015-10-11 10:38 ` Hans de Goede
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox