Now that we know why and how to port an operating system, we can look closer to the HP PA-RISC architecture.
If you look at the environment of he port by the time it was begun:
- OpenBSD: It seems it was working on 32-bit hardware but X was not running. It looks like hppa.fries.net, the official site, is really out of date.
- MkLinux: It is based on a Mach Kernel. It gets the X support but the development is not very heavy now.
- gcc: First, we had the 32-bit compiler of HP-UX. Thus, the output is in Spectrum Object Model format. And, the 64-bit gcc produces ELF format. This compiler was ordered by HP to Cygnus.
What is PA-RISC architecture? This is a key question. It leads all your future development.
It is a 32-bit or 64-bit processor which has different categories. It is another remarkable point that influences the Puffin Group. Two versions of the assembly language must be supported: PA-RISC 1.1 and 2.0. You can find switchable Big/Little Endian capacities on several processors. Processor Dependent Code is an equivalent to the BIOS of PCs, for PA-RISC. In fact, PDC are very precise in the hardware detection and easy to use.
The Virtual Memory is composed by 120 pages of 4 kB. Consequently, if you need more than 480 kB, we will have to implement another system. We got the same problem with the cache which is linked with the virtual memory mecanism. That means the DMA won't be able to test the cache coherency. So, another should be invented. Another point quite different than i386 architecture is the I/O interrupts and the IRQ lines. In fact, there is no wired implementation. In top of that, the controllers of each bus have to propagate the interruption of its own port. Thus, a method should be found to make them compatible with Linux.
Now, you are ready to do the port!