Re: [Qemu-devel] Data bus error with redeonfb on mips_fulong2e

2019-03-15 Thread BALATON Zoltan

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

2019-03-15 Thread BALATON Zoltan

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

2019-03-15 Thread BALATON Zoltan

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

2019-03-14 Thread Philippe Mathieu-Daudé
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

2019-03-14 Thread BALATON Zoltan

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

2019-03-14 Thread Aleksandar Markovic
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