: Anyway, sounds like I have some hacking to do to the keyboard driver.
Trivia for the keyboard hackers out there (Ralf likely knew this
already, since I stole his code):
PC keyboards have at least two scan modes. Mode 1 you get a scan code
when the key goes down, <n> repeats of it per the autorepeat stuff,
and then an 0xf0 followed by the key that is coming up. In Mode 2 you
when key k goes down, you get scan k, <n> repeats, and then a k + 0x80
when it comes back up. Mode 1 and Mode 2 scan codes are completely
different. Linux and X (I think) presume Mode 2.
The Deskstation starts out in Mode 1. Putting it in Mode 2 either by
using the FreeBSD source (which sends 0x4d to to keyboard port) or the
Linux stuff on the #if 0 of the pica (which sends 41) or by the method
used in initalize_kbd (which sends a 65) gets things bascially working
for me. For reasons unknown, initialize_kbd really hurts my
keyboard's brains, so I've disabled it when you are running on a
Deskstation. With this disable, I get a single bogus scan code, but I
might be able to "eat" it before interrupts are enabled.
I now get to the VFS: Insert root floppy and press ENTER stage.
However, the read never seems to complete. Sound familiar to anybody?
If not, then I'll take a look into this and see what is up. Actually,
now that I'm this far, it is time to drop back 10 and do some of the
cleanup work that I need to do:
o Get rid of ifdefs in slots.h and mipsconfig.h through
proper TLB initialization.
o Load the kernel at 0x80100000 (KSEG0 + 1M) on the
deskstation to get around the 640K limitations of the
motherboard (0x800a0000-0x800fffff is where the ISA bus is
memory mapped). Make sure that the low memory isn't
wasted, especially on ACER machines. Alternatively, figure
out how to have a hole in the image...
o Hack MILO to:
+ More minimal in verbage on boot (old patch integration)
+ Compressed kernels
+ Get the commands to actually work, rather than always
boot linux
+ Get the command args from the ARC BIOS to work on the
Deskstation.
+ Patches to allow a minimalistic MILO
+ Proper memory stuff on the Deskstation: SIMM
detection, etc.
o Look for all the XXX fixme places in the kernel that I put
in and fix them.
o Take a look at the Kernel Debugging via Serial port stuff
that Andy did and see if I can get them working.
o Get rid of the single spurious bogus scan code
o Figure out the FDC driver problems
o Get the Bustech SCSI driver working
o Investigate removing some of the if (mips_machtype == xxx)
code by better use of "virtual" functions (aka function
pointers in structs) to allow for easier machine
integration and more unified kernels (long term goal).
o continue work on various howtos that I have out there,
especially the word smithing of the linux-mips howto.
More progress. Life is good. Must drink microbrews in honor of
progress and Drew's birthday...
Warner
|