> On 27 Aug 2019, at 18:10, O'Connor, Daniel <darius at
dons.net.au> wrote:
>
>> On 27 Aug 2019, at 13:45, O'Connor, Daniel <darius at
dons.net.au> wrote:
>>
>> Although I could set uncacheable (no difference).
>>
>> Next stop will be obscure BIOS settings I suppose.
>
> I couldn't find anything useful there.
>
> I realised that my scfb failure was because I am booting BIOS rather than
UEFI but I will have to reinstall before I can fix that.
I reinstalled with UEFI and scfb works now (not sure if it's any faster
yet). It didn't fix ast though.
I rebuilt the AST driver with debugging and found it was stuck at..
0x0000000801ae1d86 in ASTGetDRAMInfo (pScrn=0x801af7000) at ast_vgatool.c:439
439 } while (*(volatile ULONG *) (pAST->MMIOVirtualAddr + 0x10000) !=
0x01);
(gdb) print/x *(volatile ULONG *) (pAST->MMIOVirtualAddr + 0x10000)
$2 = 0xffffffff
Reading around this area also reads 0xffffffff all the time.
If I comment that out X runs but the AST driver then rejects every mode line, eg
[ 48784.246] (II) AST(0): Not using driver mode "1920x1080" (bad mode
clock/interlace/doublescan)
I checked the code against what is working in FreeBSD 11 and it is identical.
That does use an older Xorg server though so I am not sure if it is FreeBSD 12
(compiler or kernel or..) or an Xorg change that has broken things.
I modified the driver on the working system to dump the values that
ASTGetDRAMInfo extracts and hard coded them and it works(!) on the FreeBSD 12
system. Obviously while this works for me it's not a long term solution :)
I added some debugging to the mapping process in ASTMapMMIO:
[ 71021.555] (II) AST(0): pci_device_map_range Addr 0xdf000000 size 0x20000, err
0 result 0x01b30000
But when I check ASTGetDRAMInfo()..
(gdb) print/x pAST->MMIOVirtualAddr
$2 = 0x801b30000
(gdb) print/x *(0x01b30000)
Cannot access memory at address 0x1b30000
The mappings look to match dmesg:
vgapci0: <VGA-compatible display> port 0xc000-0xc07f mem
0xde000000-0xdeffffff,0xdf000000-0xdf01ffff irq 18 at device 0.0 on pci4
Curiously on the working machine with an identical motherboard it is at a
different location:
vgapci0: <VGA-compatible display> port 0xd000-0xd07f mem
0xf6000000-0xf6ffffff,0xf7000000-0xf701ffff irq 16 at device 0.0 on pci4
Any suggestions welcome :)
--
Daniel O'Connor
"The nice thing about standards is that there
are so many of them to choose from."
-- Andrew Tanenbaum