[U-Boot] Machine ID

Hi All.
I'm having difficulty with getting a board booting Linux from U-boot. This is an existing unit, so I don't get much choice over changing versions of kernel of U-boot.
bdinfo gives me the machine ID I expect, but when I try to boot my newly-built kernel, I get an "unsupported machine ID" error; the vlaue it prints is not what U-boot gives me, and not what I expect. The supported types for this kernel do include the machine ID I'm tryin to use...
Would someone walk me through the process by which U-boot sends the machine ID to the kernel, please? That's clearly gone wrong somewhere.
Many thanks,
Vic.

On Fri, May 12, 2017 at 9:53 PM, Vic vic@chamsys.co.uk wrote:
Hi All.
I'm having difficulty with getting a board booting Linux from U-boot. This is an existing unit, so I don't get much choice over changing versions of kernel of U-boot.
bdinfo gives me the machine ID I expect, but when I try to boot my newly-built kernel, I get an "unsupported machine ID" error; the vlaue it prints is not what U-boot gives me, and not what I expect. The supported types for this kernel do include the machine ID I'm tryin to use...
Would someone walk me through the process by which U-boot sends the machine ID to the kernel, please? That's clearly gone wrong somewhere.
You haven't specified which u-boot or Linux versions you're using so I'm going to assume a recent version of each.
The machid is passed to the kernel in r1 see boot_jump_linux[1], it is possible to override it with the "machid" environment variable.
Most arm platforms supported by Linux these days use a device-tree which basically makes the machid redundant, but it does mean u-boot needs to be passing a device-tree blob for the platform. If you are using a version of u-boot that can't pass a device-tree blob to the kernel you will need to build your kernel with CONFIG_ARM_APPENDED_DTB.
-- [1] - http://git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/lib/bootm.c;hb=HEAD#l390
participants (2)
-
Chris Packham
-
Vic