[OpenBIOS] [Qemu-devel] Re: [PATCHv8 00/16] boot order specification

Andreas Färber andreas.faerber at web.de
Tue Dec 14 20:59:13 CET 2010


Am 12.12.2010 um 00:22 schrieb Benjamin Herrenschmidt:

> On Sat, 2010-12-11 at 18:06 +0200, Gleb Natapov wrote:
>> http://playground.sun.com/pub/p1275/bindings/pci/pci2_1.pdf has table
>> on
>> page 10 that defines how pci class code should be translated into OF
>> name. This is what my patch is using. pci-ata does not look spec
>> compliant (or is there more up-to-date spec?)
>>
>>>                                               What should we do
>> with
>>> ata-2 at 600 vs drive at 1?
>> There is no available IDE OF binding spec, so I when with the way
>> OpenBIOS reports ata on qemu-x86. I have no idea what 600 in  
>> ata-2 at 600
>> may mean, but looking at g3_beige_300.html there is no such node  
>> there
>> and looking at any other device tree in
>> http://penguinppc.org/historical/dev-trees-html/
>
> Those are old and I wouldn't look too closely at what Apple does.

The only working system emulation we have are Macs (G3 beige, G4, G5),  
so we can't just ignore Apple.
Alex even made me stick to their odd 0x41 rtas-version property. ;)

> ATA doesn't really need anything complex, mostly the ata controller,
> generally named "ata" nowadays with a #address-cells of 1 and a
> #size-cells of 0. Children are then typically disk, cdrom, ... (ie  
> block
> devices) with a unit address of 0 for master and 1 for slave.
>
> In the case of controllers with multiple ports, typically you have one
> such "ata" node per bus. "pci-ata" is a liberal use by Apple here
> representing the actual host controller PCI device.
>
> In any case, what matters is the "compatible" property. This is what
> defines the programming interface of a device.
>
>> I haven't found one that use this kind of addressing for pci-ata.
>> http://penguinppc.org/historical/dev-trees-html/g3bw_400.html for
>> instance has pci at 80000000/pci-bridge at d/pci-ata at 1/ata-4. ata-2 at 600  
>> kind
>> of
>> addressing is used by devices on mac-io bus which I do not think we
>> emulate in qemu. So it looks like OpneBIOS is wrong here.
>
> Well, it's possible that the @600 represents a register offset within
> pci-ata, this is entirely up to pci-ata to do as it wishes there to
> define it's own internal binding. Is there a "ranges" property  
> defining
> translation accross "pci-ata" ?

No, but that may be OpenBIOS' fault. Here's its reg, in case it helps:

reg                       00001800 00000000 00000000   00000000 00000000
                          01001810 00000000 00000000   00000000 00000008
                          01001814 00000000 00000000   00000000 00000004
                          01001818 00000000 00000000   00000000 00000008
                          0100181c 00000000 00000000   00000000 00000004
                          01001820 00000000 00000000   00000000 00000010

Regards,
Andreas



More information about the OpenBIOS mailing list