Re: [Qemu-devel] Data bus error with redeonfb on mips_fulong2e
Hello, On Fri, 15 Mar 2019, Philippe Mathieu-Daudé wrote: Hi Zoltan, On 3/14/19 11:08 PM, BALATON Zoltan wrote: On Thu, 14 Mar 2019, Aleksandar Markovic wrote: From: BALATON Zoltan Subject: Data bus error with redeonfb on mips_fulong2e Hello, Trying to debug the Linux kernel oops with radeonfb I've added some more debug logs and got this: radeonfb_pci_register BEGIN pci_host_data: pci_data_read: ati-vga: addr=04 val= len=4 PCI: Enabling device :00:06.0 ( -> 0003) pci_host_data: pci_data_read: ati-vga: addr=04 val= len=4 pci_host_data: pci_data_write: ati-vga: addr=04 val=0003 len=4 pci_update_mappings: adding bar 0 to pci.mem @ 0x1400 pci_update_mappings: adding bar 1 to io @ 0x4000 pci_update_mappings: adding bar 2 to pci.mem @ 0x1505 pci_host_data: pci_data_read: ati-vga: addr=3c val= len=4 radeonfb_pci_register fb_base_phys=1400 radeonfb_pci_register mmio_base_phys=1505 radeonfb_pci_register request mem regions radeonfb_pci_register map regions radeonfb_pci_register mmio_base=90001505 Data bus error, epc == 80418e4c, ra == 80418e4c (full oops dump in previous message but I couldn't find anything useful in there so omitted here) (qemu) info mtree memory-region: system - (prio 0, i/o): system -0fff (prio 0, ram): fulong2e.ram 1000-1bff (prio 0, i/o): pci.mem 100a-100b (prio 1, i/o): vga-lowmem 2400-24ff (prio 1, ram): vga.vram 2505-25053fff (prio 1, i/o): ati.mmregs 1fc0-1fc7 (prio 0, rom): fulong2e.bios The CPU bus is right, there is nothing mapped at 0x0.1505. (IO is 36bit wide on mips64). I look at the kernel and it doesn't configure the PCI but expect the display to be there already, so I checked the BIOS you cited in another thread and ran the same command con the "PMON>" prompt was reached: (qemu) info mtree memory-region: system - (prio 0, i/o): system -0fff (prio 0, ram): fulong2e.ram 1000-1bff (prio 0, i/o): pci.mem 100a-100a (prio 2, i/o): alias vga.chain4 @vga.vram - 100a-100b (prio 1, i/o): vga-lowmem 1400-14ff (prio 1, ram): vga.vram 1500-1503 (prio 1, rom): rtl8139.rom 1504-1504 (prio 1, rom): ati-vga.rom 1505-15053fff (prio 1, i/o): ati.mmregs ^ remapped Thanks a lot for finding this. Indeed this makes sense that we may need to do further init of hardware normally done by firmware if we load kernel with -kernel option but I haven't thought about that. This explains the error we get. $ fgrep 'pci_cfg_write ati-vga' trace.log ... 23023@1552615560.106226:pci_cfg_write ati-vga 06:0 @0x10 <- 0x408 23023@1552615560.106337:pci_cfg_write ati-vga 06:0 @0x18 <- 0x505 23023@1552615560.106823:pci_cfg_write ati-vga 06:0 @0x30 <- 0x5040001 23023@1552615560.107271:pci_cfg_write ati-vga 06:0 @0x14 <- 0xa101 23023@1552615560.119752:pci_cfg_write ati-vga 06:0 @0x4 <- 0x147 PCI_BASE_ADDRESS_0 = 0x408 PCI_BASE_ADDRESS_2 = 0x505 PCI_ROM_ADDRESS= 0x5040001 PCI_BASE_ADDRESS_1 = 0xa101 PCI_COMMAND= IO|MEMORY|MASTER|PARITY|SERR I dunno where we have to plug that. Maybe in mips_fulong2e.c:main_cpu_reset() where it has a comment: /* TODO: 2E reset stuff */ within the if (loaderparams.kernel_filename) so we only do it when kernel is loaded via -kernel? Can someone come up with a patch? BTW you should: /* GPU */ -dev = DEVICE(pci_create(pci_bus, -1, "ati-vga")); +dev = DEVICE(pci_create(pci_bus, PCI_DEVFN(6, 0), "ati-vga")); I was trying to find info on where the hardware has the ati-vga chip but could not find any logs showing this on-line. Now I've noticed there are some defines at the beginning of mips_fulong2e.c I haven't found before: /* PCI SLOT in fulong 2e */ #define FULONG2E_VIA_SLOT5 #define FULONG2E_ATI_SLOT6 #define FULONG2E_RTL8139_SLOT7 so that's probably correct and we could use this define. Thank you, BALATON Zoltan
Re: [Qemu-devel] Data bus error with redeonfb on mips_fulong2e
On Fri, 15 Mar 2019, Philippe Mathieu-Daudé wrote: $ fgrep 'pci_cfg_write ati-vga' trace.log ... 23023@1552615560.106226:pci_cfg_write ati-vga 06:0 @0x10 <- 0x408 23023@1552615560.106337:pci_cfg_write ati-vga 06:0 @0x18 <- 0x505 23023@1552615560.106823:pci_cfg_write ati-vga 06:0 @0x30 <- 0x5040001 23023@1552615560.107271:pci_cfg_write ati-vga 06:0 @0x14 <- 0xa101 23023@1552615560.119752:pci_cfg_write ati-vga 06:0 @0x4 <- 0x147 Linux seems to do: 2239@1552652004.544147:pci_cfg_write ati-vga 06:0 @0x10 <- 0x1408 2239@1552652004.547172:pci_cfg_write ati-vga 06:0 @0x18 <- 0x1505 2239@1552652004.547840:pci_cfg_write ati-vga 06:0 @0x14 <- 0x4001 2239@1552652005.123332:pci_cfg_write ati-vga 06:0 @0x3c <- 0x0 2239@1552652005.125489:pci_cfg_write ati-vga 06:0 @0x4 <- 0x3 Not sure where the difference comes from and why this fails. Regards, BALATON Zoltan
Re: [Qemu-devel] Data bus error with redeonfb on mips_fulong2e
On Fri, 15 Mar 2019, Philippe Mathieu-Daudé wrote: On 3/14/19 11:08 PM, BALATON Zoltan wrote: On Thu, 14 Mar 2019, Aleksandar Markovic wrote: From: BALATON Zoltan Subject: Data bus error with redeonfb on mips_fulong2e Hello, Trying to debug the Linux kernel oops with radeonfb I've added some more debug logs and got this: radeonfb_pci_register BEGIN pci_host_data: pci_data_read: ati-vga: addr=04 val= len=4 PCI: Enabling device :00:06.0 ( -> 0003) pci_host_data: pci_data_read: ati-vga: addr=04 val= len=4 pci_host_data: pci_data_write: ati-vga: addr=04 val=0003 len=4 pci_update_mappings: adding bar 0 to pci.mem @ 0x1400 pci_update_mappings: adding bar 1 to io @ 0x4000 pci_update_mappings: adding bar 2 to pci.mem @ 0x1505 pci_host_data: pci_data_read: ati-vga: addr=3c val= len=4 radeonfb_pci_register fb_base_phys=1400 radeonfb_pci_register mmio_base_phys=1505 radeonfb_pci_register request mem regions radeonfb_pci_register map regions But wait, Shouldn't this map regions meant to map the PCI BARs at the correct address? Why is that not happening? Regards, BALATON Zoltan radeonfb_pci_register mmio_base=90001505 Data bus error, epc == 80418e4c, ra == 80418e4c (full oops dump in previous message but I couldn't find anything useful in there so omitted here) (qemu) info mtree memory-region: system - (prio 0, i/o): system -0fff (prio 0, ram): fulong2e.ram 1000-1bff (prio 0, i/o): pci.mem 100a-100b (prio 1, i/o): vga-lowmem 2400-24ff (prio 1, ram): vga.vram 2505-25053fff (prio 1, i/o): ati.mmregs 1fc0-1fc7 (prio 0, rom): fulong2e.bios The CPU bus is right, there is nothing mapped at 0x0.1505. (IO is 36bit wide on mips64). I look at the kernel and it doesn't configure the PCI but expect the display to be there already, so I checked the BIOS you cited in another thread and ran the same command con the "PMON>" prompt was reached: (qemu) info mtree memory-region: system - (prio 0, i/o): system -0fff (prio 0, ram): fulong2e.ram 1000-1bff (prio 0, i/o): pci.mem 100a-100a (prio 2, i/o): alias vga.chain4 @vga.vram - 100a-100b (prio 1, i/o): vga-lowmem 1400-14ff (prio 1, ram): vga.vram 1500-1503 (prio 1, rom): rtl8139.rom 1504-1504 (prio 1, rom): ati-vga.rom 1505-15053fff (prio 1, i/o): ati.mmregs ^ remapped 15054000-150540ff (prio 1, i/o): alias rtl8139-mem @rtl8139 -00ff 1fc0-1fc7 (prio 0, rom): fulong2e.bios 1fd0-1fd0 (prio 0, i/o): alias isa_mmio @io - 1fe0-1fe000ff (prio 0, i/o): north-bridge-pci-config 1fe00100-1fe0016f (prio 0, i/o): north-bridge-register 1fe8-1fef (prio 0, i/o): south-bridge-pci-config 1ff0-1fff (prio 0, i/o): alias isa_mmio @io -000f bfe00200-bfe002ff (prio 0, i/o): ldma bfe00300-bfe003ff (prio 0, i/o): cop I then traced it to check PMON do the PCI initialization Linux expects: $ qemu-system-mips64el -M fulong2e -bios pmon_2e.bin \ -serial stdio -d trace:pci\* ... PPCIH ... PCI bus 0 slot 5/6: reg 0x24 = 0x0 18936@1552613792.124336:pci_cfg_read VT82C686B_MC97 05:6 @0x30 -> 0x0 18936@1552613792.124342:pci_cfg_read VT82C686B_MC97 05:6 @0x30 -> 0x0 18936@1552613792.124344:pci_cfg_write VT82C686B_MC97 05:6 @0x30 <- 0xfffe 18936@1552613792.124349:pci_cfg_read VT82C686B_MC97 05:6 @0x30 -> 0x0 18936@1552613792.124354:pci_cfg_read VT82C686B_MC97 05:6 @0x30 -> 0x0 18936@1552613792.124357:pci_cfg_write VT82C686B_MC97 05:6 @0x30 <- 0x0 18936@1552613792.124408:pci_cfg_read ati-vga 06:0 @0x0 -> 0x51591002 18936@1552613792.124414:pci_cfg_read ati-vga 06:0 @0xc -> 0x0 18936@1552613792.124441:pci_cfg_read ati-vga 06:0 @0x8 -> 0x300 18936@1552613792.124446:pci_cfg_read ati-vga 06:0 @0x0 -> 0x51591002 18936@1552613792.124574:pci_cfg_read ati-vga 06:0 @0x4 -> 0x0 18936@1552613792.124580:pci_cfg_read ati-vga 06:0 @0x4 -> 0x0 18936@1552613792.124582:pci_cfg_write ati-vga 06:0 @0x4 <- 0x0 18936@1552613792.124588:pci_cfg_read ati-vga 06:0 @0x3c -> 0x0 18936@1552613792.124593:pci_cfg_read ati-vga 06:0 @0x3c -> 0x0 18936@1552613792.124597:pci_cfg_read ati-vga 06:0 @0x3c -> 0x0 18936@1552613792.124602:pci_cfg_read ati-vga 06:0 @0x3c -> 0x0 18936@1552613792.124604:pci_cfg_write ati-vga 06:0 @0x3c <- 0x0 18936@1552613792.124609:p
Re: [Qemu-devel] Data bus error with redeonfb on mips_fulong2e
Hi Zoltan, On 3/14/19 11:08 PM, BALATON Zoltan wrote: > On Thu, 14 Mar 2019, Aleksandar Markovic wrote: >>> From: BALATON Zoltan >>> Subject: Data bus error with redeonfb on mips_fulong2e >>> >>> Hello, >>> >>> Trying to debug the Linux kernel oops with radeonfb I've added some more >>> debug logs and got this: >>> >>> radeonfb_pci_register BEGIN >>> pci_host_data: pci_data_read: ati-vga: addr=04 val= len=4 >>> PCI: Enabling device :00:06.0 ( -> 0003) >>> pci_host_data: pci_data_read: ati-vga: addr=04 val= len=4 >>> pci_host_data: pci_data_write: ati-vga: addr=04 val=0003 len=4 >>> pci_update_mappings: adding bar 0 to pci.mem @ 0x1400 >>> pci_update_mappings: adding bar 1 to io @ 0x4000 >>> pci_update_mappings: adding bar 2 to pci.mem @ 0x1505 >>> pci_host_data: pci_data_read: ati-vga: addr=3c val= len=4 >>> radeonfb_pci_register fb_base_phys=1400 >>> radeonfb_pci_register mmio_base_phys=1505 >>> radeonfb_pci_register request mem regions >>> radeonfb_pci_register map regions >>> radeonfb_pci_register mmio_base=90001505 >>> Data bus error, epc == 80418e4c, ra == 80418e4c >>> (full oops dump in previous message but I couldn't find anything >>> useful in >>> there so omitted here) (qemu) info mtree memory-region: system - (prio 0, i/o): system -0fff (prio 0, ram): fulong2e.ram 1000-1bff (prio 0, i/o): pci.mem 100a-100b (prio 1, i/o): vga-lowmem 2400-24ff (prio 1, ram): vga.vram 2505-25053fff (prio 1, i/o): ati.mmregs 1fc0-1fc7 (prio 0, rom): fulong2e.bios The CPU bus is right, there is nothing mapped at 0x0.1505. (IO is 36bit wide on mips64). I look at the kernel and it doesn't configure the PCI but expect the display to be there already, so I checked the BIOS you cited in another thread and ran the same command con the "PMON>" prompt was reached: (qemu) info mtree memory-region: system - (prio 0, i/o): system -0fff (prio 0, ram): fulong2e.ram 1000-1bff (prio 0, i/o): pci.mem 100a-100a (prio 2, i/o): alias vga.chain4 @vga.vram - 100a-100b (prio 1, i/o): vga-lowmem 1400-14ff (prio 1, ram): vga.vram 1500-1503 (prio 1, rom): rtl8139.rom 1504-1504 (prio 1, rom): ati-vga.rom 1505-15053fff (prio 1, i/o): ati.mmregs ^ remapped 15054000-150540ff (prio 1, i/o): alias rtl8139-mem @rtl8139 -00ff 1fc0-1fc7 (prio 0, rom): fulong2e.bios 1fd0-1fd0 (prio 0, i/o): alias isa_mmio @io - 1fe0-1fe000ff (prio 0, i/o): north-bridge-pci-config 1fe00100-1fe0016f (prio 0, i/o): north-bridge-register 1fe8-1fef (prio 0, i/o): south-bridge-pci-config 1ff0-1fff (prio 0, i/o): alias isa_mmio @io -000f bfe00200-bfe002ff (prio 0, i/o): ldma bfe00300-bfe003ff (prio 0, i/o): cop I then traced it to check PMON do the PCI initialization Linux expects: $ qemu-system-mips64el -M fulong2e -bios pmon_2e.bin \ -serial stdio -d trace:pci\* ... PPCIH ... PCI bus 0 slot 5/6: reg 0x24 = 0x0 18936@1552613792.124336:pci_cfg_read VT82C686B_MC97 05:6 @0x30 -> 0x0 18936@1552613792.124342:pci_cfg_read VT82C686B_MC97 05:6 @0x30 -> 0x0 18936@1552613792.124344:pci_cfg_write VT82C686B_MC97 05:6 @0x30 <- 0xfffe 18936@1552613792.124349:pci_cfg_read VT82C686B_MC97 05:6 @0x30 -> 0x0 18936@1552613792.124354:pci_cfg_read VT82C686B_MC97 05:6 @0x30 -> 0x0 18936@1552613792.124357:pci_cfg_write VT82C686B_MC97 05:6 @0x30 <- 0x0 18936@1552613792.124408:pci_cfg_read ati-vga 06:0 @0x0 -> 0x51591002 18936@1552613792.124414:pci_cfg_read ati-vga 06:0 @0xc -> 0x0 18936@1552613792.124441:pci_cfg_read ati-vga 06:0 @0x8 -> 0x300 18936@1552613792.124446:pci_cfg_read ati-vga 06:0 @0x0 -> 0x51591002 18936@1552613792.124574:pci_cfg_read ati-vga 06:0 @0x4 -> 0x0 18936@1552613792.124580:pci_cfg_read ati-vga 06:0 @0x4 -> 0x0 18936@1552613792.124582:pci_cfg_write ati-vga 06:0 @0x4 <- 0x0 18936@1552613792.124588:pci_cfg_read ati-vga 06:0 @0x3c -> 0x0 18936@1552613792.124593:pci_cfg_read ati-vga 06:0 @0x3c -> 0x0 18936@1552613792.124597:pci_cfg_read ati-vga 06:0 @0x3c -> 0x0 18936@1552613792.124602:pci_cfg_read ati-vga 06:0 @0x3c -> 0x0 18936@1552613792.124604:pci_cfg_write ati-vga 06:0 @0x3c <- 0x0 18936@1552613792.124609:pci_cfg_read ati-vga 06:0 @0x10 -> 0x8 18936@1552613792.1246
Re: [Qemu-devel] Data bus error with redeonfb on mips_fulong2e
On Thu, 14 Mar 2019, Aleksandar Markovic wrote: From: BALATON Zoltan Subject: Data bus error with redeonfb on mips_fulong2e Hello, Trying to debug the Linux kernel oops with radeonfb I've added some more debug logs and got this: radeonfb_pci_register BEGIN pci_host_data: pci_data_read: ati-vga: addr=04 val= len=4 PCI: Enabling device :00:06.0 ( -> 0003) pci_host_data: pci_data_read: ati-vga: addr=04 val= len=4 pci_host_data: pci_data_write: ati-vga: addr=04 val=0003 len=4 pci_update_mappings: adding bar 0 to pci.mem @ 0x1400 pci_update_mappings: adding bar 1 to io @ 0x4000 pci_update_mappings: adding bar 2 to pci.mem @ 0x1505 pci_host_data: pci_data_read: ati-vga: addr=3c val= len=4 radeonfb_pci_register fb_base_phys=1400 radeonfb_pci_register mmio_base_phys=1505 radeonfb_pci_register request mem regions radeonfb_pci_register map regions radeonfb_pci_register mmio_base=90001505 Data bus error, epc == 80418e4c, ra == 80418e4c (full oops dump in previous message but I couldn't find anything useful in there so omitted here) Paul, Zoltan is experimenting with ATI Radeon support in QEMU. However, he hits this problem while booting with Linux kernel. May I ask you for your comments/insight on thi matter? The board that is being emulated is Fulong 2E (with Loongson 2E CPU). Zoltan, can you provide here step-by-step repro procedure so that Paul doesn't need to search other email threads? The email you've replied to should have all info needed to review this by looking at source which hopefully makes sense to someone who knows MIPS. The full oops omitted above but was present here: http://lists.nongnu.org/archive/html/qemu-devel/2019-03/msg04601.html is this (offsets replaced by (ptrval) by Linux, sorry about that but it's the part below as found by adding debug logs): Data bus error, epc == 80418f88, ra == 80418f68 Oops[#1]: CPU: 0 PID: 1 Comm: swapper Not tainted 4.15.10-fuloong2e #1 $ 0 : 9000 90001505 $ 4 : 98000f258f00 15053fff 03a8 $ 8 : 98000f1923e0 0003 0001 000f $12 : 8062971c 808c 98000f1666c7 $16 : 98000f166398 98000f192000 98000f166000 98000f1666b8 $20 : 80693c88 818d 80882170 $24 : 98000f1666ea fff8 $28 : 98000f0ac000 98000f0afc00 0007 80418f68 Hi: 0002 Lo: c00b epc : 80418f88 radeonfb_pci_register+0x178/0x11b0 ra: 80418f68 radeonfb_pci_register+0x158/0x11b0 Status: 1400a4e3KX SX UX KERNEL EXL IE Cause : 001c (ExcCode 07) PrId : 6302 (ICT Loongson-2) Modules linked in: Process swapper (pid: 1, threadinfo=(ptrval), task=(ptrval), tls=) Stack : 1400a4e1 8080b490 80693c88 000 98000f192098 98000f192000 8080b420 8080b490 80693c88 818d 80882170 0007 803f7360 98000f192098 818d 8080b490 8045fdd8 98000f192098 8080b490 98000f1920f8 8080a770 808b 0008 808b 8045ff60 8080b490 8045fe80 8045dba4 98000f010e90 98000f131760 8080b490 98000f248b00 8045efb8 807669c0 8080b490 ... Call Trace: [<(ptrval)>] radeonfb_pci_register+0x178/0x11b0 [<(ptrval)>] pci_device_probe+0xd0/0x190 [<(ptrval)>] driver_probe_device+0x2c8/0x370 [<(ptrval)>] __driver_attach+0xe0/0xe8 [<(ptrval)>] bus_for_each_dev+0x6c/0xb8 [<(ptrval)>] bus_add_driver+0x120/0x260 [<(ptrval)>] driver_register+0x84/0x130 [<(ptrval)>] radeonfb_init+0x64/0x260 [<(ptrval)>] do_one_initcall+0x40/0x160 [<(ptrval)>] kernel_init_freeable+0x174/0x22c [<(ptrval)>] kernel_init+0x10/0x110 [<(ptrval)>] ret_from_kernel_thread+0x14/0x1c Code: 0062182d 1060036d fe030368 <8c620148> 920407d8 ae0007dc 00021400 0002103c 0002103e ---[ end trace ebeaa57659174cf9 ]--- Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b I got this with Linux kernel version 4.15.10-fuloong2e compiled with arch/mips/configs/fuloong2e_defconfig running on QEMU git master as qemu-system-mips64el -M fulong2e -kernel vmlinuz \ -append "console=ttyS0,115200" -serial stdio Thank you, BALATON Zoltan Thanks to both for considering my requests. Aleksandar I think the problem is around here (I have to guess because Linux prints (ptrval) instead of off
Re: [Qemu-devel] Data bus error with redeonfb on mips_fulong2e
Hello, Paul, Zoltan > From: BALATON Zoltan > Subject: Data bus error with redeonfb on mips_fulong2e > > Hello, > > Trying to debug the Linux kernel oops with radeonfb I've added some more > debug logs and got this: > > radeonfb_pci_register BEGIN > pci_host_data: pci_data_read: ati-vga: addr=04 val= len=4 > PCI: Enabling device :00:06.0 ( -> 0003) > pci_host_data: pci_data_read: ati-vga: addr=04 val= len=4 > pci_host_data: pci_data_write: ati-vga: addr=04 val=0003 len=4 > pci_update_mappings: adding bar 0 to pci.mem @ 0x1400 > pci_update_mappings: adding bar 1 to io @ 0x4000 > pci_update_mappings: adding bar 2 to pci.mem @ 0x1505 > pci_host_data: pci_data_read: ati-vga: addr=3c val= len=4 > radeonfb_pci_register fb_base_phys=1400 > radeonfb_pci_register mmio_base_phys=1505 > radeonfb_pci_register request mem regions > radeonfb_pci_register map regions > radeonfb_pci_register mmio_base=90001505 > Data bus error, epc == 80418e4c, ra == 80418e4c > (full oops dump in previous message but I couldn't find anything useful in > there so omitted here) > Paul, Zoltan is experimenting with ATI Radeon support in QEMU. However, he hits this problem while booting with Linux kernel. May I ask you for your comments/insight on thi matter? The board that is being emulated is Fulong 2E (with Loongson 2E CPU). Zoltan, can you provide here step-by-step repro procedure so that Paul doesn't need to search other email threads? Thanks to both for considering my requests. Aleksandar > I think the problem is around here (I have to guess because Linux prints > (ptrval) instead of offsets in oops message as a security measure that I > don't know how to turn off and the mips64 objdump that comes with my > distro can't interleave source with disassembly so even if I have the > offset can't find the source line by it so I had to go by debug printfs): > > linux-4.15.10/drivers/video/fbdev/aty/radeon_base.c: > 2311 /* Set base addrs */ > 2312 rinfo->fb_base_phys = pci_resource_start (pdev, 0); > 2313 rinfo->mmio_base_phys = pci_resource_start (pdev, 2); > 2314 pr_debug("radeonfb_pci_register fb_base_phys=%lx\n", > > rinfo->fb_base_phys); > 2315 pr_debug("radeonfb_pci_register mmio_base_phys=%lx\n", > > rinfo->mmio_base_phys); > 2316 > 2317 /* request the mem regions */ > 2318 pr_debug("radeonfb_pci_register request mem regions\n"); > 2319 ret = pci_request_region(pdev, 0, "radeonfb framebuffer"); > 2320 if (ret < 0) { > 2321 printk( KERN_ERR "radeonfb (%s): cannot request > > region 0.\n", > 2322 pci_name(rinfo->pdev)); > 2323 goto err_release_fb; > 2324 } > 2325 > 2326 ret = pci_request_region(pdev, 2, "radeonfb mmio"); > 2327 if (ret < 0) { > 2328 printk( KERN_ERR "radeonfb (%s): cannot request > > region 2.\n", > 2329 pci_name(rinfo->pdev)); > 2330 goto err_release_pci0; > 2331 } > 2332 > 2333 /* map the regions */ > 2334 pr_debug("radeonfb_pci_register map regions\n"); > 2335 rinfo->mmio_base = ioremap(rinfo->mmio_base_phys, > > RADEON_REGSIZE); > 2336 if (!rinfo->mmio_base) { > 2337 printk(KERN_ERR "radeonfb (%s): cannot map MMIO\n", > 2338pci_name(rinfo->pdev)); > 2339 ret = -EIO; > 2340 goto err_release_pci2; > 2341 } > 2342 pr_debug("radeonfb_pci_register mmio_base=%px\n", > > rinfo->mmio_base); > 2343 > 2344 rinfo->fb_local_base = INREG(MC_FB_LOCATION) << 16; > 2345 pr_debug("radeonfb_pci_register fb_local_base=%lx\n", > > rinfo->fb_local_base); > > So it fails in INREG on line 2344 which is in radeonfb.h:380 > > #define INREG(addr) readl((rinfo->mmio_base)+addr) > > This reg read never reaches QEMU so either something's wrong with the > mmio_base or readl can't handle it correctly. This seems to be something > Linux MIPS specific that I have no idea about. Does this make sense to > anyone? > > Regards, > BALATON Zoltan > I appreciate your help! Aleksandar