Here is a patch to hopefully fix the random hangs that occur with the EPIA board.
There is a comment that says
// Set bit 6 of 0x40, because Award does it (IO recovery time) // IMPORTANT FIX - EISA 0x4d0 decoding must be on so that PCI // interrupts can be properly marked as level triggered.
however somewhere in the translation from V1 to V2 it appears the relevant bit of code was removed or deleted.
Signed-off-by: Ben Hewson ben@hewson-venieri.com
-------------------------------------------------------------------------------------------------------------
I can't say for sure this has fixed the issue. should I get any more hangs though I will post a note. I have a feeling though this may be the cause as hangs seem to mostly occur during heavy IO port access. Mostly in the SMBus routines where inb() is used for a delay.
Ben
and I forgot the patch again
Index: src/southbridge/via/vt8231/vt8231_lpc.c =================================================================== --- src/southbridge/via/vt8231/vt8231_lpc.c (revision 2710) +++ src/southbridge/via/vt8231/vt8231_lpc.c (working copy) @@ -72,6 +72,7 @@ // IMPORTANT FIX - EISA 0x4d0 decoding must be on so that PCI // interrupts can be properly marked as level triggered. enables = pci_read_config8(dev, 0x40); + enables |= 0x44; pci_write_config8(dev, 0x40, enables); // Set 0x42 to 0xf0 to match Award bios