Last modified: Sun Aug 20 2000

Linux/98 (Linux for NEC PC-9800)

What's this?

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

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

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.) 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.) 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.

Linux for NEC-PC9800 and situations around it

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,

grub/98 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 kbdutils98 a port and extention of original kbdutils for Linux fdisk98 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.

Download