On Sat, Dec 11, 2010 at 03:13:35PM +0000, Blue Swirl wrote:
> On Wed, Dec 8, 2010 at 11:34 AM, Gleb Natapov <g...@redhat.com> wrote:
> > Forget to save a couple of buffers before sending version 7 :(
> >
> > Anthony, Blue can this be applied now?
> 
> I made some more tests, this time with PPC. I modified OpenBIOS to
> print out the boot device list:
> 
> $ qemu-system-ppc -drive if=none,id=hda,file=/dev/null -device
> ide-drive,drive=hda,bootindex=1 -drive if=none,id=cd,file=/dev/null
> -device ide-drive,drive=cd,bootindex=0 -nographic -prom-env
> 'auto-boot?=false' -L .
> qemu-system-ppc: pci_add_option_rom: failed to find romfile 
> "vgabios-stdvga.bin"
> Could not open option rom 'pxe-ne2k_pci.bin': No such file or directory
> 
> >> =============================================================
> >> OpenBIOS 1.0 [Nov 28 2010 19:37]
> >> Configuration device id QEMU version 1 machine id 2
> >> CPUs: 1
> >> Memory: 128M
> >> UUID: 00000000-0000-0000-0000-000000000000
> >> CPU type PowerPC,750
> >> bootindex /grac...@fec00000/i...@3/dr...@1/d...@1
> >> /grac...@fec00000/i...@3/dr...@1/d...@0
> Welcome to OpenBIOS v1.0 built on Nov 28 2010 19:37
> 
> 0 > show-devs
> 7be6324 /
> 7be6440 /aliases
> 7be64e4 /openprom (BootROM)
> 7bebfa0 /openprom/client-services
> 7be668c /options
> 7be6704 /chosen
> 7be67e8 /builtin
> 7be688c /builtin/console
> 7bebcac /packages
> 7becda8 /packages/cmdline
> 7becee8 /packages/disk-label
> 7bedb58 /packages/terminal-emulator
> 7bee548 /packages/deblocker
> 7bee89c /packages/hfsplus-files
> 7beeb3c /packages/hfs-files
> 7beedd8 /packages/ext2-files
> 7bef010 /packages/iso9660-files
> 7bef248 /packages/grubfs-files
> 7bef480 /packages/mac-parts
> 7bef6b8 /packages/pc-parts
> 7bef8ec /packages/xcoff-loader
> 7bef9b8 /packages/elf-loader
> 7befa80 /packages/bootinfo-loader
> 7bed958 /cpus
> 7bf2fe8 /cpus/PowerPC,7...@0 (cpu)
> 7beda58 /mem...@0 (memory)
> 7befb4c /p...@80000000 (pci)
> 7beff64 /p...@80000000/QEMU,v...@1 (display)
> 7bf0438 /p...@80000000/ne2...@2 (network)
> 7bf0814 /p...@80000000/pci-...@3 (pci-ide)
> 7bf0c50 /p...@80000000/pci-...@3/at...@500 (ata)
> 7bf0dd0 /p...@80000000/pci-...@3/at...@600 (ata)
> 7bf0f50 /p...@80000000/pci-...@3/at...@600/d...@1 (block)
> 7bf131c /p...@80000000/pci-...@3/at...@600/d...@0 (block)
> 7bf1674 /p...@80000000/mac...@4 (mac-io)
> 7bf1b54 /p...@80000000/mac...@4/via-c...@16000 (via-cuda)
> 7bf1d70 /p...@80000000/mac...@4/via-c...@16000/adb (adb)
> 7bf1ed8 /p...@80000000/mac...@4/via-c...@16000/adb/keybo...@8 (keyboard)
> 7bf2080 /p...@80000000/mac...@4/via-c...@16000/adb/mo...@9 (mouse)
> 7bf220c /p...@80000000/mac...@4/via-c...@16000/rtc (rtc)
> 7bf23f4 /p...@80000000/mac...@4/nv...@60000 (nvram)
> 7bf2614 /p...@80000000/mac...@4/e...@13000 (escc)
> 7bf271c /p...@80000000/mac...@4/e...@13000/c...@13020 (serial)
> 7bf29b4 /p...@80000000/mac...@4/e...@13000/c...@13000 (serial)
> 7bf2c20 /p...@80000000/mac...@4/at...@20000 (ata)
>  ok
> 
> /grac...@fec00000/i...@3/dr...@1/d...@1 does not match
> /p...@80000000/pci-...@3/at...@600/d...@1.
> 
hw/ppc_oldworld.c has:
pci_bus = pci_grackle_init(0xfec00000, pic);
i.e it registers pci controller at MMIO address 0xfec00000. 0x80000000
is isa mmio base. Why OpenBIOS uses 80000000 as address of pci
controller? May be on real HW all memory access above 0x80000000 is
redirected to pci controller and it emulates isa? Then we should fix
qemu to do the same.

> I wonder where '@80000000' comes from. A dump of original g3beige
> device tree is here:
> http://penguinppc.org/historical/dev-trees-html/g3_beige_300.html
> 
> But actually the tree generated by OpenBIOS looks more like g3bw one:
> http://penguinppc.org/historical/dev-trees-html/g3bw_400.html
> 
> How can we get the names to be more compatible? At least
> s/grackle/pci/ is easy to do in QEMU, but which instance (QEMU or
> OpenBIOS) should handle pci-ata vs ide change?
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
> at...@600 vs dr...@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 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/
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 p...@80000000/pci-bri...@d/pci-...@1/ata-4. 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.

--
                        Gleb.

Reply via email to