On Wed, Mar 21, 2012 at 10:50:17PM +0100, Nils wrote:
Op zaterdag 10-03-2012 om 14:05 uur [tijdzone -0500],
It looks pretty clear that the controller
doesn't like 9-segment nor
e-segment addresses. You could try "malloc_low() - 0x50000" to see
how the controller likes 4-segment address, but basically the only
hope of getting this to work is to see if you can fix the controller.
the datasheets and tried different things but had no result.
Then i tried "malloc_low() - 0x100" and the controller seems to work.
Could it be that some SeaBIOS parts overlap at LOWRAM_END ?
( ohci controller and (E)BDA ?)
The logs pretty clearly indicate that the ram is in the 9-segment and
not the a-segment. It may be a hardware bug that confuses addresses
that are close.
Do you have any suggestions ?
Attached log from latest git + debugging patch and log from same code
but with "malloc_low() - 0x100" .
If it's just a 256 byte offset, you can add a "malloc_low(256)" to the
top of usb.c:usb_setup() to reserve the troublesome addresses. Note
though, the e-segment values we tested before seem to be also
impacted. I have a vague plan to change SeaBIOS in the future to use
e-segment addresses instead of 9-segment addresses.