Hints to documentation usually refer to the linux source tree in
/usr/src/linux/Documentation unless URL given.
-It seems IRQ unmasking can't be safely done on a Q40. IRQ probing
+It seems IRQ unmasking can't be safely done on a Q40. IRQ probing
is not implemented - do not try it! (See below)
For a list of kernel command-line options read the documentation for the
particular device drivers.
The floppy imposes a very high interrupt load on the CPU, approx 30K/s.
-When something blocks interrupts (HD) it will lose some of them, so far
+When something blocks interrupts (HD) it will lose some of them, so far
this is not known to have caused any data loss. On highly loaded systems
-it can make the floppy very slow or practically stop. Other Q40 OS' simply
+it can make the floppy very slow or practically stop. Other Q40 OS' simply
poll the floppy for this reason - something that can't be done in Linux.
-Only possible cure is getting a 82072 controller with fifo instead of
+Only possible cure is getting a 82072 controller with fifo instead of
the 8272A.
drivers used by the Q40, apart from the very obvious (console etc.):
serial.c # normal PC driver - any speed
lp.c # printer driver
genrtc.c # RTC
- char/joystick/* # most of this should work, not
+ char/joystick/* # most of this should work, not
# in default config.in
block/q40ide.c # startup for ide
ide* # see Documentation/ide.txt
sound/dmasound_core.c
dmasound_q40.c
-Various other PC drivers can be enabled simply by adding them to
+Various other PC drivers can be enabled simply by adding them to
arch/m68k/config.in, especially 8 bit devices should be without any
-problems. For cards using 16bit io/mem more care is required, like
+problems. For cards using 16bit io/mem more care is required, like
checking byte order issues, hacking memcpy_*_io etc.
Debugging
=========
-Upon startup the kernel will usually output "ABCQGHIJ" into the SRAM,
-preceded by the booter signature. This is a trace just in case something
-went wrong during earliest setup stages of head.S.
-**Changed** to preserve SRAM contents by default, this is only done when
-requested - SRAM must start with '%LX$' signature to do this. '-d' option
+Upon startup the kernel will usually output "ABCQGHIJ" into the SRAM,
+preceded by the booter signature. This is a trace just in case something
+went wrong during earliest setup stages of head.S.
+**Changed** to preserve SRAM contents by default, this is only done when
+requested - SRAM must start with '%LX$' signature to do this. '-d' option
to 'lxx' loader enables this.
SRAM can also be used as additional console device, use debug=mem.
-This will save kernel startup msgs into SRAM, the screen will display
+This will save kernel startup msgs into SRAM, the screen will display
only the penguin - and shell prompt if it gets that far..
Unfortunately only 2000 bytes are available.
Serial console works and can also be used for debugging, see loader_txt
-Most problems seem to be caused by fawlty or badly configured io-cards or
+Most problems seem to be caused by fawlty or badly configured io-cards or
hard drives anyway.
Make sure to configure the parallel port as SPP and remove IRQ/DMA jumpers
for first testing. The Q40 does not support DMA and may have trouble with
Q40 Hardware Description
========================
-This is just an overview, see asm-m68k/* for details ask if you have any
+This is just an overview, see asm-m68k/* for details ask if you have any
questions.
The Q40 consists of a 68040@40 MHz, 1MB video RAM, up to 32MB RAM, AT-style
shadow ROM.
The Q60 has any of 68060 or 68LC060 and up to 128 MB RAM.
-Most interfacing like floppy, IDE, serial and parallel ports is done via ISA
-slots. The ISA io and mem range is mapped (sparse&byteswapped!) into separate
+Most interfacing like floppy, IDE, serial and parallel ports is done via ISA
+slots. The ISA io and mem range is mapped (sparse&byteswapped!) into separate
regions of the memory.
-The main interrupt register IIRQ_REG will indicate whether an IRQ was internal
+The main interrupt register IIRQ_REG will indicate whether an IRQ was internal
or from some ISA devices, EIRQ_REG can distinguish up to 8 ISA IRQs.
The Q40 custom chip is programmable to provide 2 periodic timers:
- 50 or 200 Hz - level 2, !!THIS CANT BE DISABLED!!
- - 10 or 20 KHz - level 4, used for dma-sound
-
+ - 10 or 20 KHz - level 4, used for dma-sound
+
Linux uses the 200 Hz interrupt for timer and beep by default.
because only irq's 4-15 can be disabled - and only all of them at once.
Thus disable_irq() can effectively block the machine if the driver goes
asleep.
-One thing to keep in mind when hacking around the interrupt code is
+One thing to keep in mind when hacking around the interrupt code is
that there is no way to find out which IRQ caused a request, [EI]IRQ_REG
displays current state of the various IRQ lines.
the PC scancodes x86 Linux uses. So by theory every national keyboard should
work just by loading the appropriate x86 keytable - see any national-HOWTO.
-Unfortunately the AT->PC translation isn't quite trivial and even worse, my
-documentation of it is absolutely minimal - thus some exotic keys may not
+Unfortunately the AT->PC translation isn't quite trivial and even worse, my
+documentation of it is absolutely minimal - thus some exotic keys may not
behave exactly as expected.
-There is still hope that it can be fixed completely though. If you encounter
+There is still hope that it can be fixed completely though. If you encounter
problems, email me ideally this:
- exact keypress/release sequence
- 'showkey -s' run on q40, non-X session