Coreboot port for 486 motherboard (UM8881/6)
github.com
github.com
I've often wondered about how to re-solve certain problems now that we have decades of hindsight. For instance, your BIOS doesn't boot from CDs or from large disks. So what do we do? We make a disk image (vnd on BSD and whatever the equivalent on Linux make this so easy) and install an old fashioned BIOS boot block. We have a small 40 megabyte or so FAT-16 filesystem (FAT-32 wasn't a thing until 1996), on which we have a kernel, such as NetBSD because NetBSD can still run on 486 systems without fuss.
The kernel, once loaded, knows how to access large disks, CDs, or even mount a filesystem over NFS. We then use that system to disklabel / fdisk the rest of the disk, format an FFS filesystem and swap, and install our OS. Simple, right?
But how do we get this image on to an 80486 system? We really shouldn't lose to history the kinds of tools that let us boot from floppy. NetBSD still can, even though it takes something like six of them.
Since the i80486 has no management engine, running an open source BIOS would make it fully, 100% open. Interesting... Will my next email server be an i80486 system? It's worth considering.
Note there are fully open source RISC-V designs you can program into a FPGA that will yield higher performance than any 486 by orders of magnitude.
Which you can build a RISCV core + linux for using: https://github.com/litex-hub/linux-on-litex-vexriscv
Nope. Anything crypto related (notably TLS transport) would not work or would be horrendously slow.
TLS on a 33 MHz m68030 is passable. Since the i80486 should be closer in performance to the m68040, negotiation could take place inside of the timeout that many servers would have. In some ways it would be a good rate limiter since you'd likely only want to allow a single connection at a time.
Nope; the change happened in the 386 era; by the 486 era most BIOSes would be (partially/mostly) written in a pretty uncarefully written "HLL". Even before I would argue against the "carefully optimized" ASM.
Contrast that with just shoving compiler output into the ROM image.
Do note that, even with compilers of the era, using HLL with care can result in having an _easier_ time managing codesize than some of the garbage written in assembly by random developers... specially as feature creep starts to set in, which by the 2000s was in full force.
Have you ever seen a USB stack (even for HID boot protocol) in assembly on a commercial BIOS?
Yes. On AMIBIOS 627.10 and Award v6.00 (both used into the early 21st century) the USB stack is 100% Asm, as is the rest of the BIOS.
I left that scene in the late 2000s but my understanding is that C didn't start showing up in BIOS until the UEFI era (Tianocore etc.).
There have been some leaks over the years of both "old-school" and "new-school" BIOSes, so these facts can be verified.
> C didn't start showing up in BIOS until the UEFI era (Tianocore etc.).
"Showing up" is an understatement, since Tianocore is almost all C. And we didn't switch from 100% asm to 99% c overnight.
It wouldn't fit in a 64K ROM otherwise, and even then it was compressed.