Re: Having trouble with two active wscons drivers, wskbd stops working on console
Alain Runa <[email protected]> Tue, 11 Apr 2023 17:19:59 +0200
| Newsgroups | gmane.os.netbsd.ports.amiga |
|---|---|
| Message-ID | <[email protected]> |
Hi Frank, After trying it out, I finally understood how the preconfiguration = mechanism works. Now the driver will not lock up anymore if no ZZ9000 is = installed in the system. All left to do on my side, is to cleanup the = code a little bit, and do some more extensive testings with various = configuration combinations. If all goes well I could release the Z9000 = drivers until end of this month. Thanks for your support, Frank. Without it I would still struggle with = the lock up issue. Regards Alain > On 6. Apr 2023, at 19:54, Alain Runa <[email protected]> wrote: >=20 > Hi Frank, >=20 > Thanks again=E2=80=A6 I have to take a deeper look on that, sounds = complicated. > I came very far with NetBSD=E2=80=99s documentation about driver = implementation. > However, the amiga specific information is certainly lacking and = requires background knowledge which seems to be not documented very = well. >=20 > Regards > Alain >=20 >>=20 >> That's certainly wrong. You can do so in amidisplaycc, because the = custom >> chipset is always there, but otherwise a device's console probe = should only >> be successful when the device exists and is alive. Otherwise return >> CN_DEAD. >>=20 >> ... >>=20 >> Note that, because of the problem of early console initialization, = the auto >> configuration of devices will be performed twice on the Amiga. First = with >> amiga_realconfig=3D0, for potential console devices only, and then = for real >> with amiga_realconfig=3D1. >>=20 >> dev/zbus.c only considers those devices in the amiga_realconfig=3D0 = pass, >> which have been entered in the prefconftab[]. >>=20 >> This means your zzfb_match() and zzfb_attach() functions should be = called >> twice. In zzfb_match() you can differentiate using amiga_realconfig = and in >> zzfb_attach() you can check if the second argument (device_t self) is = NULL, >> so you don't initialize the card twice. >>=20 >> The preconfiguration pass runs before calling cnprobe, so you should = know >> whether your board has been initialized correctly. >>=20 >=20 >=20