I really should check this list more often. However I've been really busy...
I think I gathered that the VGA isn't showing up in the lspci. I looked at the latest CVS and found my earlysetup.inc isn't getting included in the Config in src/mainboard/via/epia-m. Actually the earlysetup.inc isn't even there.
Here's what I have. This can go after mainboardinit southbridge/via/vt8235/setup_misc.inc // enable VGA device movl $CONFIG_ADDR(0, 0x00, 0xe1), %eax movb $0xbd, %dl // enable vga with 8 megs PCI_WRITE_CONFIG_BYTE
// The stupid firewire device (undocumented) steps on IO 0+ on reset movl $CONFIG_ADDR(0, 0x0d*8, 0x15), %eax movb $0x1c, %dl PCI_WRITE_CONFIG_BYTE
Both of the above are *required*.
The following is optional but works well for me. Our application has a pci card in the slot that can impose an interrupt even after a cpu reset, so this can cause a lockup. I got around this by doing a single hard pci bus reset. In order to know if I've already done the reset once, I store a flag in the CMOS memory. I think this is a good idea but my choice of where in the CMOS to store the flag is probably not kosher.
// use CMOS byte 0x0e as marker so we only reboot once movb $0x0e, %al mov $0x70, %dx outb %al, %dx inc %dx inb %dx, %al cmpb $0xda, %al je 1f
movl $0x100000, %ecx 0: movw $0x70,%dx mov $0x0e,%al outb %al, %dx inc %dx movb $0xda, %al outb %al, %dx inb %dx, %al cmpb $0xda, %al je 4f dec %ecx jne 0b
4:
CONSOLE_INFO_TX_CHAR($'R') CONSOLE_INFO_TX_CHAR($'B') CONSOLE_INFO_TX_CHAR($'!') movl $CONFIG_ADDR(0, 0x88, 0x4f), %eax movb $0x09, %dl PCI_WRITE_CONFIG_BYTE
2: jmp 2b
1: sub %al,%al outb %al, %dx 3:
Finally, I implemented the SMBUS io for being able to access the serial eeprom on the DDR module. I had it print out the contents of the serial eeprom on bootup. I had hoped Ron or Eric or cwlinux would run with this and implement the auto ddr memory config but that didn't happen.
Anyway after the topmost fix the VGA will probably appear in lspci.
-Dave