I remember a number of years ago that you could run a version of NetBSD on an early 68k Apple Powebook. It didn't support the frame buffer, though, so you could only run a shell session over a serial console.
That's because the serial console is, generally speaking, the easiest starting point for any new port, and gives you a way to obtain debug output while you try to bring up the rest. Typically the serial console is already initialized by firmware, so you don't need to have any specific knowledge of e.g. how to reprogram the baud rate generator, you just need to figure out where the TX and RX buffers are mapped in the address space and can inherit the initialization settings already applied by firmware. It only becomes complicated when the serial port gets chained off of things like a SuperIO or PCI or something where you have to start worrying about demuxing, whether it's safe to make the access with the MMU disabled, etc.
The absolute worst port I ever suffered through was bringing Linux up on a MIPS system ~20 years ago that had its only serial port on PCI, which required nasty tricks like wiring TLB entries for the MMIO BARs that had been set up by the bootloader by hand in order for them to survive the MMU reset on init, and then blowing them away later once the PCI host controller was brought up. Don't miss those days.
But whyyyy (Score:1)
Yeesh, of anything you could run.. why wouldn't you rather have games? You probably already have a phone or tablet or three.
Re: (Score:1)
I remember a number of years ago that you could run a version of NetBSD on an early 68k Apple Powebook. It didn't support the frame buffer, though, so you could only run a shell session over a serial console.
Re:But whyyyy (Score:3)
That's because the serial console is, generally speaking, the easiest starting point for any new port, and gives you a way to obtain debug output while you try to bring up the rest. Typically the serial console is already initialized by firmware, so you don't need to have any specific knowledge of e.g. how to reprogram the baud rate generator, you just need to figure out where the TX and RX buffers are mapped in the address space and can inherit the initialization settings already applied by firmware. It only becomes complicated when the serial port gets chained off of things like a SuperIO or PCI or something where you have to start worrying about demuxing, whether it's safe to make the access with the MMU disabled, etc.
The absolute worst port I ever suffered through was bringing Linux up on a MIPS system ~20 years ago that had its only serial port on PCI, which required nasty tricks like wiring TLB entries for the MMIO BARs that had been set up by the bootloader by hand in order for them to survive the MMU reset on init, and then blowing them away later once the PCI host controller was brought up. Don't miss those days.