On Sat, Dec 11, 2010 at 4:06 PM, Gleb Natapov <g...@redhat.com> wrote: > 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?)
There could be a FCode Program which sets the name. >> 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. We have PMAC IDE, but this device is CMD646, so mac-io bus addressing rules should not be used. In this tree there are two disks connected to CMD646, named /p...@80000000/pci-bri...@d/pci-...@1/ata-4/disk and /p...@80000000/pci-bri...@d/pci-...@1/ata-4/d...@1: http://penguinppc.org/historical/dev-trees-html/g4_pci_350.html