qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v12 4/4] arm: SoC model for Calxeda Highbank


From: Rob Herring
Subject: Re: [Qemu-devel] [PATCH v12 4/4] arm: SoC model for Calxeda Highbank
Date: Fri, 20 Jan 2012 07:48:09 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111124 Thunderbird/8.0

On 01/20/2012 02:47 AM, Peter Maydell wrote:
> On 19 January 2012 23:17, Rob Herring <address@hidden> wrote:
>> On 01/19/2012 03:44 PM, Peter Maydell wrote:
>>> On 19 January 2012 21:31, Mark Langsdorf <address@hidden> wrote:
>>>> +    highbank_binfo.board_id = 0xEC10100f; /* provided by deviceTree */
>>>
>>> Where does this number come from? It's not in
>>> http://www.arm.linux.org.uk/developer/machines/
>>>
>>> Is 3027 (==0xbd3) you?
>>> http://www.arm.linux.org.uk/developer/machines/list.php?id=3027
>>>
>>
>> Much of the data there is wrong as none of it is used. 0 or -1 is the
>> right value as those are obviously meaningless. A highbank kernel will
>> never be booted without devicetree and in that case this number is
>> irrelevant. This is the legacy boot interface and qemu really needs to
>> learn to boot with a separate dtb.
> 
> Yeah, but the documentation even for DTB boot says we should pass
> in a machine number. If 0 or -1 are right then there should be
> some documentation that says so. I'll accept "mailing list post
> from some authoritative person [eg Grant Likely]" if necessary.

Kernel DT co-maintainer is not authoritative enough for you?

The documentation needs some clarification.

> But this is an ABI between boot loaders and the kernel so I don't
> want to just have something random that happens to work. (And in
> particular if -1 is the officially sanctioned number then we need
> to fix arm_boot to be able to pass values >16 bits wide.)
> 

Here's were the kernel sets the mach #. nr is from the database for
non-DT and ~0 for DT machines.

#define MACHINE_START(_type,_name)                      \
static const struct machine_desc __mach_desc_##_type    \
 __used                                                 \
 __attribute__((__section__(".arch.info.init"))) = {    \
        .nr             = MACH_TYPE_##_type,            \
        .name           = _name,

#define MACHINE_END                             \
};

#define DT_MACHINE_START(_name, _namestr)               \
static const struct machine_desc __mach_desc_##_name    \
 __used                                                 \
 __attribute__((__section__(".arch.info.init"))) = {    \
        .nr             = ~0,                           \
        .name           = _namestr,

In any case, the kernel ignores the value passed in if a valid dtb is
passed in.

Rob



reply via email to

[Prev in Thread] Current Thread [Next in Thread]