Pangram verdict · v3.3
We believe that this document is fully human-written
AI likelihood · overall
HumanArticle text · 1,873 words · 6 segments analyzed
(Follow this link to go back to the main zaurus page.) OpenBSD/cats: the enabler During the 1990s, some users of home computers wanted to be able to run a Unix-like operating system on their machines. There was a group of people working on porting the BSD codebase to the Commodore Amiga, another to the Atari Falcon, and in the United Kingdom, another group working on porting BSD to the Acorn RiscPC. There were also similar efforts targeting Linux, rather than BSD. Eventually, all these BSD porting efforts merged in NetBSD, in which the port to the RiscPC, initially called RiscBSD and led by Mark Brinicombe, became NetBSD/arm32 at the end of january 1996. At this time, the OpenBSD code was synced with the NetBSD code on an irregular basis, and OpenBSD obtained these arm32 bits shortly after; but there was noone, among the OpenBSD developers, interested in making OpenBSD/arm32 a reality (probably because none of them had an Acorn RiscPC, as these were quite rare outside the UK.) Eventually, the vestigial ARM code in OpenBSD was removed in early 2001. That's all folks! Stay tuned for another OpenBSD story next week! Ok, the story was not quite finished. Far from it. Although there was no support for ARM-based hardware in OpenBSD at that time, there was no reason not to work on it, should an interesting ARM platform appear, which could be decently usable under OpenBSD. (Of course, some people will argue that the RiscPC fits in that category; after all, there was an Ethernet option board which would allow it to be put on a network, and if you were lucky enough to have a good video option, you could have a decent screen resolution and run X11 - very few people know this, but I used to own a RiscPC for which I also bought the Ethernet option, and would have been interested in running OpenBSD on
it at some point, but even NetBSD failed to boot on that particular hardware, and I've since given that machine to a friend who managed to blow its power supply a few weeks later...) A dream of many Unix people, from the dot-com Internet bubble onwards, was to be able to carry a small device, which would allow one to go on the Internet, and be able to fix any network problem from anywhere, at anytime: the ultimate road warrior. Nowadays, this device is your smartphone, and everyone can pretend to be a road warrior. But in the early 2000s, smartphones did not exist, Handheld PC would not fit in your pockets unless you were André the Giant, and PDAs were not necessarily usable for that role, either lacking good displays, or good keyboards, or good expansion facilities allowing a GPRS modem to be used, or simply decent battery life. Until the Sharp Zaurus appeared. More specifically, the Zaurus SL series, released in 2002. These handheld computers would run Linux (thus, why not OpenBSD?), and feature a real keyboard, as well as CompactFlash and SD slots. However, being a handheld machine, one would expect the porting effort to be difficult, with a twisted maze of GPIO pins, all different, and no easy debug facilities (although there was a debug serial port on the Zaurus, which later turned out to be extremely useful.) So, prior to working on a Zaurus port, another ARM-based port was needed, to act as a solid fundation, and which would be easily available to the OpenBSD developers. The obvious choice turned out to be the Chalice Technologies CATS board: an ATX form-factor motherboard, with ISA and PCI slots, powered by a 233MHz Intel SA-110 StrongArm processor, which was being distributed by Simtec Electronics. That board had been supported in NetBSD since the end of 1998, and would allow developers to use off-the-shelf memory, hard drives, and expansion boards, such as Ethernet boards. OpenBSD senior developer Dale Rahn, knew the ARM architecture inside-out after having written an ARM710 processor simulator at Motorola (although Motorola had their own competing processor lines, some of the Motorola mobile phones were built around ARM cores.)
He started to work on porting the NetBSD/cats codebase to OpenBSD during fall 2003. I was not aware of this effort until Rahn mentioned this indirectly on the OpenBSD developers chatroom on january 3rd (2004.) <drahn> miod, was config_defer the bit you were trying to eliminate recently? <miod> no, indirect config. <drahn> ok, just ran into config_defer for isa on arm (cats) <miod> oh, you've got yourself a CATS? I had considered buying one in the past, but they were priced too high for their worth <deraadt> i am mailing simtec to get a deal for us. <drahn> yup, running netbsd, hopefully for a short time. Two days later, he was stuck and frustrated. <drahn> no joy in mudville, loaded part of the kernel then 'Input/output error' <deraadt> boot block doesn't like it? <drahn> incorrect conversion of elf kernel to a.out (firmware only knows about a.out) <deraadt> ah <drahn> might be a firmware upgrade with groks elf haven't found it yet. <deraadt> rom loads kernel? and groks ffs? ick. <drahn> yup. <drahn> might write a bootloader ;-) [...] <drahn> I have no idea what the API is on the cats FW, dont even know if it is openfirmware or what. <kevlo> iirc, cats has latest version of firmware... <drahn> the guy who gave me this board said their might be a newer (beta?) version out, but I have not found NetBSD's web pages to be up to find the links. <kevlo> http://mail-index.netbsd.org/port-cats/2003/10/04/0000.html <kevlo> hmm The next day, Rahn received from Japan the Zaurus SL-C860 system he would later port OpenBSD to. <drahn> sigh, of course customs had to open my package from dragos. <miod> which was full of prohibited material.
<millert> Someone told them zaurus was da domb... <drahn> manual is fun, not that I can read it. He had to play with the Zaurus a bit before returning to work (who wouldn't have?) <drahn> heh now on from zaurus over openssh <espie> zaurus OpenBSD ? <millert> Yes, it is arm-based so we are starting an arm port <drahn> still linux <miod> but eventually this will be an arm-ored system! <millert> Yes, we must arm-or-all <miod> so after W^X, we'll have arm|all In the meantime, Theo de Raadt was looking on getting CATS boards to developers, to help with the port once Rahn would have made enough progress to allow other people to contribute. <deraadt> OK, the cats vendor has given us a pretty good deal. <drahn> cool. <deraadt> 3/4 price. <deraadt> for 4 machines; so i'll be asking austin to run that past him. <deraadt> like the zaurus? <drahn> seems cool, getting used to the key layout is a bit of work. <drahn> the 80211 CF card requires one's hand to be in a different position. When the CATS board was designed and built, in 1997-1998, it was fit with a simple firmware called ``Cyclone'', which was able to use a serial console or a VGA-compatible PCI video board, and recognize IDE disks and NE2000-compatible PCI network cards. Apparently, engineers at Simtec became dissatisfied with Cyclone and started to work on a different, more modular, firmware for the CATS board, called ABLE. Interestingly, Simtec never referred to ABLE as a firmware, but always as a boot loader. Yet it was anything but A Boot Loader Extraordinaire, but we just didn't know yet. Since it was clear Cyclone would not be maintained any further, it made sense to target ABLE.
Rahn thus updated his own board and hoped that it would be able to load an ELF binary... <drahn> [all caps expletive deleted], I just upgraded the cats box to ABLE firmware, then found this comment 'Not booting from ffs' <drahn> ARGH. <drahn> back to netboot to recover. shit. <drahn> btw, ABLE firmware command line editor SUCKS! <miod> you just didn't found [sic] the TECO mode, that's all. <drahn> '?' char prints '/', ^U doesn't work, up arrow goes thru history, but left arrow doesn't do anything. Meanwhile, I was a bit worried when I read my name mentioned as one of the developers who would receive a CATS, for practical mailbox size reasons. Date: Wed, 7 Jan 2004 14:10:01 +0000 From: Miod Vallat To: Theo de Raadt Subject: cats <deraadt> ok, we've got a few cats machines coming (miod, millert, kevlo, me) Are they just mobos or complete machines (i.e. small parcel or parcel at least the size of a computer case)? If it's big, I'll better provide a different shipping address. However it does not matter much if it's still get shipped to home. I was confirmed by de Raadt that the parcel would only contain the ATX motherboard, so I did not need to have it sent to my work place. Simtec, now being aware of the interest of the OpenBSD project to run on the CATS boards, would provide some support to help us get running: <drahn> Hmm, from CATs: <drahn> Hi, I shall be your support engineer ;-) (OK so I am actually the lead <drahn> software enginner because Gavin Simpson (CEO) seems very interested in <drahn> the sucess of this project, so am I for that matter ;-) On january 12th, Rahn reached a point where the kernel could be loaded, but did not run very far. <drahn> whoo <drahn> OpenBSD/cats booting ... <drahn> panic: Incompatible magic number passed in boot args <deraadt> neato.
<drahn> elf kernel. <tedu> is this going to be one of those archs that requires elf2aout? <deraadt> ah, you made it better? <deraadt> elf2aout is wrong. <drahn> tedu their new firmware supports elf, now we need to work with them to figure out what filesystem to load the kernel(bootloader) from. <drahn> cats is ARM based machine. <drahn> http://www.simtec.co.uk/products/EB110ATX/resources.html <drahn> since some asked. <deraadt> who's arms did they cut off? Of course, it would have been too easy, had there not been means for the hardware to get in the way... <drahn> [all caps expletive deleted] CATS box has the extra pin on the IDE header on the motherboard. <kevlo> eh <drahn> GRR, a 1998 40x CD drive could not read the FS under the new 'ABLE' firmwar, after ripping up a IDE cable in the process, switching the drive with a newer CD drive (ATAPI burner) it can. <nate> I just normally rip that pin off the board. (Though I have removed the wrong one before. That kinda sucks.) <drahn> sorry having to many problems with this machine to risk actual hardware damage. But on the next day, we started to slowly realize that the ABLE firmware, or boot loader, call it whatever you want, wasn't an ordinary piece of software, but rather, an escape game. <drahn> CATs people, beware ABLE version 184 it will not work with NetBSD/OpenBSD kernels. <deraadt> that what they gave you? <miod> is there an updated version available? <drahn> 183 is on the web page, he emailed me a 184 for testing. <miod> oh. <deraadt> and he did not even test it? <drahn> 183 'works'. 184 can boot the upgrader, but not *BSD <deraadt> my point is, they did not even test their work? <deraadt> these are poeple in the UK, who can be surprised.