[U-Boot] [PATCH] sunxi: Add a bootcmd_old to the default environment to boot old kernels

Hans de Goede hdegoede at redhat.com
Sun Oct 11 12:38:33 CEST 2015


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


More information about the U-Boot mailing list