Port-amiga archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Having trouble with two active wscons drivers, wskbd stops working on console



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 <alain74%gmx.net@localhost> wrote:
> 
> Hi Frank,
> 
> Thanks again… I have to take a deeper look on that, sounds complicated.
> I came very far with NetBSD’s documentation about driver implementation.
> However, the amiga specific information is certainly lacking and requires background knowledge which seems to be not documented very well.
> 
> Regards
> Alain
> 
>> 
>> 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.
>> 
>> ...
>> 
>> 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=0, for potential console devices only, and then for real
>> with amiga_realconfig=1.
>> 
>> dev/zbus.c only considers those devices in the amiga_realconfig=0 pass,
>> which have been entered in the prefconftab[].
>> 
>> 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.
>> 
>> The preconfiguration pass runs before calling cnprobe, so you should know
>> whether your board has been initialized correctly.
>> 
> 
> 



Home | Main Index | Thread Index | Old Index