Last modified: Sun Aug 20 2000
Japanese page

Linux/98 (Linux for NEC PC-9800)

What's this?

We have ported Linux 2.1.57/2.2/2.3 kernel and some utilities onto NEC PC-9800 architecture. We call our set of patches 'Linux/98'.

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.

NEC PC-9800 architecture

NEC PC-9800 series have the same MPU as IBM PC/AT compatibles, i.e. intel ix86. But its architecture is different from that of IBM PC/AT.

First of all, the arrangement of I/O ports, memory maps and BIOS are different from PC/AT.

table: summary of PC-9800 architecutre, comparing with PC/AT
MPUix86 and compatibles (the same!!)
legacy narrow busC-bus (The counterpart is ISA-bus.)
DMA8237AC (only 4 channels, band width is 8bit)
System Clock8253C
Calender TimerNEC mu PD4990A
Keyboardcontroller is 8251A
(Key map is customed from ASCII keyboard. It is called JIS keyboard. JIS means Japanese Industrial Standard.)
BIOSPC-9800 specific, quite different. (So, arch/i386/boot/ is quite different, too.)
Video Video controller GDC, EGC, PEGC (These are NEC original chips.)
Text Video RAM Japanese KANJI characters is natively available. ASCII characters is also supported.
Graphics Video RAM not VGA. 640x400/480 pixels, 16/256 colors, 2 planes. (There are various video cards with finer resolution and much more colors.)
SCSI host adapter Most popular adapters for C-bus use WD33C93 chip.
MouseLogitech bus mouse
Printer port8255A
Serial portCOM1: NEC mu PD8251A with or without FIFO.
COM2: 16550A (legacy PC-9800 doesn't have COM2.)
SoundNot 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.

Linux for NEC-PC9800 and situations around it

The development team of Linux/98 consits of some 10 active members. The leader of our projet is FUJITA Norimasa. Most of them are members of Kyoto-University Micro computer club.

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,

a port and extension (e.g. ISO-9660 fs support, boot from PC-9800 style SCSI CD-ROM drive) of powerful boot loader originally written for Hurd
a port and extention of original kbdutils for Linux
a partition editor for PC-9800, written from scratch

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.


Current patch for 2.2.16 kernel ( bytes gzipped diff)