I haven't implemented this yet within linuxbios V1 but I will try it out and post again.
It's pretty irritating. When I turn 00.0 byte $88 bit 1 to 1, the MB locks up. Turning that bit on enables the graphics aperture. I'm going to just do it in a userspace program, which works fine.
I can put this in V1 src/mainboard/via/epia-m/earlysetup.inc at the top: // set AGP aperture size to 128M movl $CONFIG_ADDR(0, 0x00, 0x84), %eax movb $0x80, %dl PCI_WRITE_CONFIG_BYTE // enable AGP movl $CONFIG_ADDR(0, 0x00, 0xa9), %eax movb $0x01, %dl PCI_WRITE_CONFIG_BYTE // Move AGP to safe place before enabling movl $CONFIG_ADDR(0, 0x00, 0x10), %eax movl $0xe0000000,%edx PCI_WRITE_CONFIG_DWORD
However if I follow this with movl $CONFIG_ADDR(0, 0x00, 0x88), %eax movb $2,%dl PCI_WRITE_CONFIG_BYTE
Then it locks up. I had thought it might be because the GART is supposed to be in system memory, so if I try and turn it on before DRAM is ready, the AGP system might try to read a page of the GART into its cache, and this results in a fault since the memory isn't there. So I tried doing the last turn on bit later after DRAM is initialized, but that didn't help.
-Dave