Re: GENERIC kernel hangs on boot on WYSE Winterm s10

Krzysztof Lasocki <[email protected]>
Newsgroups gmane.os.netbsd.ports.i386
Message-ID <CABVwetYEv7t51FbKZXE3fwfGN6UCqS7=Rm=5i6uxRjLwXuoTfA@mail.gmail.com>
> 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);
	printf("okay...");
	printf("writing D1...");
	bus_space_write_1(iot, ioh_c, 0, 0xD1);
	printf("okay...\n");
	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.

Any ideas?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.