[coreboot] [PATCH] 780 mmconfig space access issue
Scott Duplichan
scott at notabs.org
Wed Oct 13 07:11:31 CEST 2010
]-----Original Message-----
]From: Bao, Zheng
]Sent: Tuesday, October 12, 2010 11:27 PM
]To: Coreboot
]Subject: [coreboot] [PATCH] 780 mmconfig space access issue
]
]I checked the code and found a stupid bug.
]I wonder if it can fix your problem.
]
]Signed-off-by: Zheng Bao <zheng.bao at amd.com>
acked by: Scott Duplichan <scott at notabs.org>
Thanks Zheng, good find.
Switching to MMIO for pci config access eliminated the ramdom AP boot hangs
that I was experiencing. I mostly have win7 working smoothly on the
RS780/SB700 board. The exception is the ATI video driver. If I force win7
to use the generic vga driver, it is stable. But the ATI driver is not. I
enabled the debug bar to make coreboot match the production BIOS. Today I
found something signigicant. Coreboot leaves RS780 bar3 enabled for the
reason explained on line 346 of rs780.c (loss of video). I tried disabling
bar3 anyway, to match the production BIOS. Yes, there is a momentary loss
of video. But as soon as win7 starts booting, video returns. In addition,
the ATI video driver no longer crashes. Now there is a remaining problem.
My monitor cannot sync to the video signal. The problem may be that win7
is using too high of a refresh rate. This could be possible because the
monitor detection does not seem to be working. In safe mode, device manager
looks good except there is monitor detected. I think I am getting close now...
Thanks,
Scott
]Index: src/southbridge/amd/rs780/rs780_cmn.c
]===================================================================
]--- src/southbridge/amd/rs780/rs780_cmn.c (revision 5926)
]+++ src/southbridge/amd/rs780/rs780_cmn.c (working copy)
]@@ -70,7 +70,7 @@
] reg &= ~mask;
] reg |= val;
] if (reg != reg_old) {
]- *((u32 *) addr) = val;
]+ *((u32 *) addr) = reg;
] }
] }
]
]Index: src/southbridge/amd/rs690/rs690_cmn.c
]===================================================================
]--- src/southbridge/amd/rs690/rs690_cmn.c (revision 5926)
]+++ src/southbridge/amd/rs690/rs690_cmn.c (working copy)
]@@ -72,7 +72,7 @@
] reg &= ~mask;
] reg |= val;
] if (reg != reg_old) {
]- *((u32 *) addr) = val;
]+ *((u32 *) addr) = reg;
] }
] }
]
]Zheng
More information about the coreboot
mailing list