[meta-freescale] Kernel 3.10.31 and SD card numbering and boot scripts

Eric Nelson eric.nelson at boundarydevices.com
Thu Oct 9 18:45:00 PDT 2014


Thanks for the feedback Otavio,

On 10/09/2014 06:18 PM, Otavio Salvador wrote:
> On Thu, Oct 9, 2014 at 9:00 PM, Eric Nelson
> <eric.nelson at boundarydevices.com> wrote:
>> The 3.10.31 kernel contains a nifty bit of code from Sascha Hauer
>> that addresses the question of SD card numbering (device naming)
>> quite well:
>>
>>         http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/commit/drivers/mmc/card/block.c?h=imx_3.10.31_1.1.0_beta&id=5f9447e5d97060207c4742d5a06e5548de45972d
>>         https://www.mail-archive.com/linux-mmc@vger.kernel.org/msg26472.html
>>
>> Unfortunately, it also changes the requirements for the kernel
>> command-line and breaks our boot scripts.
> 
> Yes.
> 
>> This is probably a good time to ask a related question about
>> where we're keeping boot scripts.
>>
>> We have been compiling boot scripts out of our U-Boot tree
>> from a Yocto-specific "6x_bootscript-yocto.txt" that implements
>> the conventions of the Freescale Community BSP (kernel in
>> the root of partition 1 and rootfs in partition 2).
>>
>> Since boot scripts have dependencies on a lot of things, it's
>> not clear to me that they belong in the U-Boot source tree
>> and that a Yocto-specific boot script really belongs directly
>> in the Yocto tree somewhere.
>>
>> Since a Yocto build knows about the PREFERRED_VERSION of the
>> kernel, it would be straightforward to have multiple versions
>> of a boot script.
>>
>> Otherwise, we'd need to place a couple of versions in the
>> U-Boot tree:
>>         6x_bootscript-yocto.txt
>>         6x_bootscript-yocto-after-3.10.17.txt
>> and we'd also need some logic in u-boot-script-boundary.bb
>> to choose between them.
>>
>> Before crafting a patch to do this, I'd like to get some feedback.
> 
> It is harder than it seems to be. The providing system does not track
> versions so you'd need to do some "uglyness" to make this work.
> 

I haven't tried, but it seems generally useful to allow
conditionals based on kernel versions in Yocto/OE and I'm
surprised that there isn't a stock way of doing this.

> Personally I think it is easier to address this on the bootscript
> itself using the setexpr command in U-Boot and with the REGEX config
> enabled. So you could try to match the kernel version on it somehow.
> 
> Not sure if we have a command to 'ask' for the kernel version loaded though...
> 

Not currently.

Using a root=PARTUUID=blah would also be nice and might allow the same
command-line on multiple kernel versions.

Unfortunately, this doesn't seem to work:
	https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.10.31_1.1.0_beta/init/do_mounts.c#L213




More information about the meta-freescale mailing list