[U-Boot] Machine ID

Chris Packham judge.packham at gmail.com
Sat May 13 08:47:58 UTC 2017


On Fri, May 12, 2017 at 9:53 PM, Vic <vic at 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


More information about the U-Boot mailing list