Port-amiga archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Keyboard lockup with NetBSD5
Alexander Coers wrote:
>> Indeed. That's interesting. The keyboard will do that when it didn't
>> receive
>> the expected handshaking pulse. Maybe there is a handshaking
>> problem? And
>> those 2000us look quite suspiscous to me.
>>
>
> After reading the keyboard chapter of Amiga Intern (I know, sometimes
> it is really bad, but it
> covers nearly all aspects of OCS/ECS Amigas),
Yes, I admit that I have one too. ;)
But the parts which are good are just copied and translated from the
hardware reference manual.
> I am quite sure that my
> keyboard has a sync problem.
> After sync loss the keyboard sends '1' until sync is recovered
> (correct handshake). This is the 0xff value seen in the capture.
Correct. I realized that too, after reading this paragraph once again.
>> What puzzles me is that I didn't find any code to setup the CIA-A
>> timer A.
>> The timer has to run in continuous mode for keyboard handshaking.
>> [...]
>
> Strange. I thought an OS sets all registers necessary without making
> assumptions
> what a bootrom did before.
That's not the only point where NetBSD/amiga relies on AmigaOS.
> Can you check the handshaking timing somehow?
Yes, there is definitely a problem! CIAA timer A is used to clock out the
handshake pulse (KDAT), after switching the serial keyboard port into
output mode.
But, timer A is frozen under NetBSD! I checked it.
Under AmigaOS, it seems to run in one-shot mode, and has to be restarted
continuously (don't know who does that). When NetBSD has booted, the timer
is still in one-shot mode, but nobody restarts it.
In the latest test kernel,
ftp://ftp.netbsd.org/pub/NetBSD/misc/phx/kbdtest4.tar.gz
I'm configuring CIAA timer A into continuous runmode, so it is running now.
I also decreased the ridiculous large 2000us handshake delay to the normal
85us.
Works fine for my A3000. Please give it a test on your A1200.
--
_ Frank Wille (frank%phoenix.owl.de@localhost)
_ // http://sun.hasenbraten.de/~frank/
\X/ Phx @ #AmigaGer
Home |
Main Index |
Thread Index |
Old Index