[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: GENERIC kernel hangs on boot on WYSE Winterm s10
> I've came up with two hypotheses: either the companion device is
> acting flaky because of this write, [...]
Testing shows that the companion device is keeping address line 20 low
after every write
to port 64h in which the value is not D1h.
Simply adding a write of D1h inside pckbc_send_cmd makes it boot on
the Geode, but that causes
very early resets on other computer I've tested (so early, that even
userconf won't start
if booted with -c ).
This modification makes it boot on the Geode
printf(">>>...send_cmd: writing the actual value...");
bus_space_write_1(iot, ioh_c, 0, val);
bus_space_write_1(iot, ioh_c, 0, 0xD1);
printf(">>>...send_cmd: ok, exiting function\n");
page 123 of that datasheet pretty much explains what the chip is doing.
I've also looked into how OpenBSD handles that issue and they are
using timeouts (callout(9)), but I
was unable to boot the miniroot image successfully.
I don't think callout approach will work, because as soon as the chip
pulls down A20, all the addressing break
and the CPU will execute wrong code.
Main Index |
Thread Index |