We modified Linux 2.1.57 kernel source with plenty of dirty patches.
But we are reconstructing Linux/98 patch for Linux 2.3 kernel so that it will not break any other architecture support such as original i386 architecture.
We use CONFIG_PC9800
#defines for distinction
NEC PC-9800 specific code from original i386 code.
arch/i386/boot/pc9800
directory are newly created
because boot code using BIOS are pretty different from IBM PC/AT compatibles.
If CONFIG_PC9800
is not defined when compiling the kernel,
you can get the kernel binary for IBM PC/AT compatibles.
In the following, first we explain NEC PC-9800 architecture to you. Then, we describe the situation around Linux for NEC PC-9800.
First of all, the arrangement of I/O ports, memory maps and BIOS are different from PC/AT.
MPU | ix86 and compatibles (the same!!) | |||||||
---|---|---|---|---|---|---|---|---|
legacy narrow bus | C-bus (The counterpart is ISA-bus.) | |||||||
PIC | 8259 | |||||||
DMA | 8237AC (only 4 channels, band width is 8bit) | |||||||
System Clock | 8253C | |||||||
Calender Timer | NEC mu PD4990A | |||||||
Keyboard | controller is 8251A (Key map is customed from ASCII keyboard. It is called JIS keyboard. JIS means Japanese Industrial Standard.) | |||||||
BIOS | PC-9800 specific, quite different.
(So, arch/i386/boot/ is quite different, too.) | |||||||
| ||||||||
FDC | NEC mu PD765A | |||||||
SCSI host adapter | Most popular adapters for C-bus use WD33C93 chip. | |||||||
Mouse | Logitech bus mouse | |||||||
Printer port | 8255A | |||||||
Serial port | COM1: NEC mu PD8251A with or without FIFO. COM2: 16550A (legacy PC-9800 doesn't have COM2.) | |||||||
Sound | Not Sound Blaster, but PC-9800 specific. |
The original PC-9800 architecture is pretty different from PC/AT as you see above.
But the functions which have been added recently are almost compatible with PC/AT. Those are PCI, APM, PCMCIA, DPMS, IDE/ATAPI, WSS/MSS and so on. Most of the cards for PCI on PC/AT will run on PC-9800 if the BIOS on the card can be disabled. SMP is based on Intel MP Architecture. The primary and secondary IDE/ATAPI interface have the same I/O port address of which bank is switchable.
NEC and other companies have sold some 20 million PC-9800's. They had more than half market shares in Japan only 3 years ago.
We've developed Linux/98 based on main Linux 2.1.57 since Summer 1997. We wrote a lot of #ifdef ... #endif's in arch/i386/ and made some device drivers for PC-9800 specific devices, such as SCSI host adapter. We've modified console driver for Japanese character support on PC-9800. We added a PC-9800 specific disk partition format support into drivers/block/genhd.c. The numbers of other small changes are numerous.
In addition to the kernel patches, our team has developed kernel releavant utilties. For example,
Linux/98 based on 2.1.57 is stable enough and used by some 1,000 people, we think.
XFree86 3.3.2 (and over) includes server binaries for Linux/98 in their official release. You can find 'XFree86 PC98 Servers for Linux-ix86' in their ftp site.
We have 'Plamo Linux' distribution for Linux/98, though Plamo Linux
supports PC/AT, too. Plamo Linux is a variant of Slackware,
mainly developed by KOJIMA Mitsuhiro.
Plamo Linux for PC-9800 has been be distributed broadly via
magazines' extra CD-ROMs (4 times), 2 books extra CD-ROMs and so on.