Hi,
Ward and I looked into DIVIL_LBAR_GPIO a little just now.
(this is msrtool trunk + http://stuge.se/mt.cs5536_pic_divil.patch)
The LED driver using the ioport has a hardcoded base address of 0x6100 because that is documented by the vendor. Changing the driver to use 0x1c00 under coreboot works.
But looking at the 5536 data book we do not really see how these register values will work.
Page 104 describes the operation. IO_BASE=6 BASE_ADDR=0xf0 but: Rule. When a mask bit is cleared, the associated bit in the base address must also be cleared.
That rule can not hold true for the values read after tinybios setup.
Also the data book does not really explain how the base ioport is 0x6100.
Please help? Want to send patch to kernel to read correct ioport from MSR.
//Peter
Peter Stuge wrote:
But looking at the 5536 data book we do not really see how these register values will work.
Just to close the thread, this confusion was caused by msrtool swapping the hi and lo members in the MSR struct. Fixed in r3920.
//Peter
so.. will it now work with original driver?
On 1/29/09, Peter Stuge peter@stuge.se wrote:
Peter Stuge wrote:
But looking at the 5536 data book we do not really see how these register values will work.
Just to close the thread, this confusion was caused by msrtool swapping the hi and lo members in the MSR struct. Fixed in r3920.
//Peter
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Roman Yeryomin wrote:
so.. will it now work with original driver?
This thread was mostly about the msrtool utility.
That said, the original driver should be improved to not use a hard-coded I/O base for GPIO, but read the relevant setting. That's an easy fix in the driver.
But there's another issue; the driver searches for a board name string in the BIOS memory when trying to detect if it is really running on an ALIX board. That heuristic is not very reliable when using coreboot.
I haven't come up with a really good alternative.
//Peter