~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/m68k/q40/README

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/m68k/q40/README (Architecture ppc) and /arch/m68k/q40/README (Architecture m68k)


  1 Linux for the Q40                                   1 Linux for the Q40
  2 =================                                   2 =================
  3                                                     3 
  4 You may try http://www.geocities.com/SiliconVa      4 You may try http://www.geocities.com/SiliconValley/Bay/2602/ for
  5 some up to date information. Booter and other       5 some up to date information. Booter and other tools will be also
  6 available from this place or http://ftp.uni-er      6 available from this place or http://ftp.uni-erlangen.de/pub/unix/Linux/680x0/q40/
  7 and mirrors.                                        7 and mirrors.
  8                                                     8 
  9 Hints to documentation usually refer to the li      9 Hints to documentation usually refer to the linux source tree in
 10 /usr/src/linux/Documentation unless URL given.     10 /usr/src/linux/Documentation unless URL given.
 11                                                    11 
 12 It seems IRQ unmasking can't be safely done on     12 It seems IRQ unmasking can't be safely done on a Q40. IRQ probing
 13 is not implemented - do not try it! (See below     13 is not implemented - do not try it! (See below)
 14                                                    14 
 15 For a list of kernel command-line options read     15 For a list of kernel command-line options read the documentation for the
 16 particular device drivers.                         16 particular device drivers.
 17                                                    17 
 18 The floppy imposes a very high interrupt load      18 The floppy imposes a very high interrupt load on the CPU, approx 30K/s.
 19 When something blocks interrupts (HD) it will      19 When something blocks interrupts (HD) it will lose some of them, so far
 20 this is not known to have caused any data loss     20 this is not known to have caused any data loss. On highly loaded systems
 21 it can make the floppy very slow or practicall     21 it can make the floppy very slow or practically stop. Other Q40 OS' simply
 22 poll the floppy for this reason - something th     22 poll the floppy for this reason - something that can't be done in Linux.
 23 Only possible cure is getting a 82072 controll     23 Only possible cure is getting a 82072 controller with fifo instead of
 24 the 8272A.                                         24 the 8272A.
 25                                                    25 
 26 drivers used by the Q40, apart from the very o     26 drivers used by the Q40, apart from the very obvious (console etc.):
 27         drivers/char/q40_keyb.c         # use      27         drivers/char/q40_keyb.c         # use PC keymaps for national keyboards
 28                      serial.c           # norm     28                      serial.c           # normal PC driver - any speed
 29                      lp.c               # prin     29                      lp.c               # printer driver
 30                      genrtc.c           # RTC      30                      genrtc.c           # RTC
 31                 char/joystick/*         # most     31                 char/joystick/*         # most of this should work, not
 32                                         # in d     32                                         # in default config.in
 33                 block/floppy.c          # norm     33                 block/floppy.c          # normal PC driver, DMA emu in asm/floppy.h
 34                                         # and      34                                         # and arch/m68k/kernel/entry.S
 35                                         # see      35                                         # see drivers/block/README.fd
 36                 ata/pata_falcon.c                  36                 ata/pata_falcon.c
 37                 net/ne.c                           37                 net/ne.c
 38                 video/q40fb.c                      38                 video/q40fb.c
 39                 parport/*                          39                 parport/*
 40                 sound/dmasound_core.c              40                 sound/dmasound_core.c
 41                       dmasound_q40.c               41                       dmasound_q40.c
 42                                                    42 
 43 Various other PC drivers can be enabled simply     43 Various other PC drivers can be enabled simply by adding them to
 44 arch/m68k/config.in, especially 8 bit devices      44 arch/m68k/config.in, especially 8 bit devices should be without any
 45 problems. For cards using 16bit io/mem more ca     45 problems. For cards using 16bit io/mem more care is required, like
 46 checking byte order issues, hacking memcpy_*_i     46 checking byte order issues, hacking memcpy_*_io etc.
 47                                                    47 
 48                                                    48 
 49 Debugging                                          49 Debugging
 50 =========                                          50 =========
 51                                                    51 
 52 Upon startup the kernel will usually output "A     52 Upon startup the kernel will usually output "ABCQGHIJ" into the SRAM,
 53 preceded by the booter signature. This is a tr     53 preceded by the booter signature. This is a trace just in case something
 54 went wrong during earliest setup stages of hea     54 went wrong during earliest setup stages of head.S.
 55 **Changed** to preserve SRAM contents by defau     55 **Changed** to preserve SRAM contents by default, this is only done when
 56 requested - SRAM must start with '%LX$' signat     56 requested - SRAM must start with '%LX$' signature to do this. '-d' option
 57 to 'lxx' loader enables this.                      57 to 'lxx' loader enables this.
 58                                                    58 
 59 SRAM can also be used as additional console de     59 SRAM can also be used as additional console device, use debug=mem.
 60 This will save kernel startup msgs into SRAM,      60 This will save kernel startup msgs into SRAM, the screen will display
 61 only the penguin - and shell prompt if it gets     61 only the penguin - and shell prompt if it gets that far..
 62 Unfortunately only 2000 bytes are available.       62 Unfortunately only 2000 bytes are available.
 63                                                    63 
 64 Serial console works and can also be used for      64 Serial console works and can also be used for debugging, see loader_txt
 65                                                    65 
 66 Most problems seem to be caused by fawlty or b     66 Most problems seem to be caused by fawlty or badly configured io-cards or
 67 hard drives anyway.                                67 hard drives anyway.
 68 Make sure to configure the parallel port as SP     68 Make sure to configure the parallel port as SPP and remove IRQ/DMA jumpers
 69 for first testing. The Q40 does not support DM     69 for first testing. The Q40 does not support DMA and may have trouble with
 70 parallel ports version of interrupts.              70 parallel ports version of interrupts.
 71                                                    71 
 72                                                    72 
 73 Q40 Hardware Description                           73 Q40 Hardware Description
 74 ========================                           74 ========================
 75                                                    75 
 76 This is just an overview, see asm-m68k/* for d     76 This is just an overview, see asm-m68k/* for details ask if you have any
 77 questions.                                         77 questions.
 78                                                    78 
 79 The Q40 consists of a 68040@40 MHz, 1MB video      79 The Q40 consists of a 68040@40 MHz, 1MB video RAM, up to 32MB RAM, AT-style
 80 keyboard interface, 1 Programmable LED, 2x8bit     80 keyboard interface, 1 Programmable LED, 2x8bit DACs and up to 1MB ROM, 1MB
 81 shadow ROM.                                        81 shadow ROM.
 82 The Q60 has any of 68060 or 68LC060 and up to      82 The Q60 has any of 68060 or 68LC060 and up to 128 MB RAM.
 83                                                    83 
 84 Most interfacing like floppy, IDE, serial and      84 Most interfacing like floppy, IDE, serial and parallel ports is done via ISA
 85 slots. The ISA io and mem range is mapped (spa     85 slots. The ISA io and mem range is mapped (sparse&byteswapped!) into separate
 86 regions of the memory.                             86 regions of the memory.
 87 The main interrupt register IIRQ_REG will indi     87 The main interrupt register IIRQ_REG will indicate whether an IRQ was internal
 88 or from some ISA devices, EIRQ_REG can disting     88 or from some ISA devices, EIRQ_REG can distinguish up to 8 ISA IRQs.
 89                                                    89 
 90 The Q40 custom chip is programmable to provide     90 The Q40 custom chip is programmable to provide 2 periodic timers:
 91         - 50 or 200 Hz - level 2, !!THIS CAN'T     91         - 50 or 200 Hz - level 2, !!THIS CAN'T BE DISABLED!!
 92         - 10 or 20 KHz - level 4, used for dma     92         - 10 or 20 KHz - level 4, used for dma-sound
 93                                                    93 
 94 Linux uses the 200 Hz interrupt for timer and      94 Linux uses the 200 Hz interrupt for timer and beep by default.
 95                                                    95 
 96                                                    96 
 97 Interrupts                                         97 Interrupts
 98 ==========                                         98 ==========
 99                                                    99 
100 q40 master chip handles only a subset of level    100 q40 master chip handles only a subset of level triggered interrupts.
101                                                   101 
102 Linux has some requirements wrt interrupt arch    102 Linux has some requirements wrt interrupt architecture, these are
103 to my knowledge:                                  103 to my knowledge:
104         (a) interrupt handler must not be reen    104         (a) interrupt handler must not be reentered even when sti() is called
105             from within handler                   105             from within handler
106         (b) working enable/disable_irq            106         (b) working enable/disable_irq
107                                                   107 
108 Luckily these requirements are only important     108 Luckily these requirements are only important for drivers shared
109 with other architectures - ide,serial,parallel    109 with other architectures - ide,serial,parallel, ethernet.
110 q40ints.c now contains a trivial hack for (a),    110 q40ints.c now contains a trivial hack for (a), (b) is more difficult
111 because only irq's 4-15 can be disabled - and     111 because only irq's 4-15 can be disabled - and only all of them at once.
112 Thus disable_irq() can effectively block the m    112 Thus disable_irq() can effectively block the machine if the driver goes
113 asleep.                                           113 asleep.
114 One thing to keep in mind when hacking around     114 One thing to keep in mind when hacking around the interrupt code is
115 that there is no way to find out which IRQ cau    115 that there is no way to find out which IRQ caused a request, [EI]IRQ_REG
116 displays current state of the various IRQ line    116 displays current state of the various IRQ lines.
117                                                   117 
118 Keyboard                                          118 Keyboard
119 ========                                          119 ========
120                                                   120 
121 q40 receives AT make/break codes from the keyb    121 q40 receives AT make/break codes from the keyboard, these are translated to
122 the PC scancodes x86 Linux uses. So by theory     122 the PC scancodes x86 Linux uses. So by theory every national keyboard should
123 work just by loading the appropriate x86 keyta    123 work just by loading the appropriate x86 keytable - see any national-HOWTO.
124                                                   124 
125 Unfortunately the AT->PC translation isn't qui    125 Unfortunately the AT->PC translation isn't quite trivial and even worse, my
126 documentation of it is absolutely minimal - th    126 documentation of it is absolutely minimal - thus some exotic keys may not
127 behave exactly as expected.                       127 behave exactly as expected.
128                                                   128 
129 There is still hope that it can be fixed compl    129 There is still hope that it can be fixed completely though. If you encounter
130 problems, email me ideally this:                  130 problems, email me ideally this:
131         - exact keypress/release sequence         131         - exact keypress/release sequence
132         - 'showkey -s' run on q40, non-X sessi    132         - 'showkey -s' run on q40, non-X session
133         - 'showkey -s' run on a PC, non-X sess    133         - 'showkey -s' run on a PC, non-X session
134         - AT codes as displayed by the q40 deb    134         - AT codes as displayed by the q40 debugging ROM
135 btw if the showkey output from PC and Q40 does    135 btw if the showkey output from PC and Q40 doesn't differ then you have some
136 classic configuration problem - don't send me     136 classic configuration problem - don't send me anything in this case
137                                                   137 
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php