On 04/07/2020 12:11, Mark Cave-Ayland wrote:
According to gdbstub the destination address in $g3 looks like this:
Breakpoint 1, 0x00000000007ad8e4 in cfb_imageblit () (gdb) i r $g3 g3 0x100220000 4297195520
The 0x100220000 address still isn't right. On sun4u the PCI address space is mapped at physical address 0x1fe00000000 and adding these two together gives 0x1ff00220000 which seems closer, but still not the correct framebuffer address 0x1ff22000000 which is reported at boot:
[ 9.007161] [drm] Found bochs VGA, ID 0xb0c5. [ 9.007840] [drm] Framebuffer size 16384 kB @ 0x1ff22000000, mmio @ 0x1ff23000000.
As a comparison, I took the last known good commit 7a0483ac4ffc~1: "drm/bochs: add basic prime support" and added some debug in cfb_imageblit() to allow me to pick out p->screen_base:
(gdb) i r $o1 o1 0x1ff22000000 2195298713600
When running git master with your patch in the same way I get a completely different value:
(gdb) i r $o1 o1 0x100050000 4295294976
Does p->screen_base need to be initialised differently when using the cfb helpers?
ATB,
Mark.