Could Haiku someday run on a BeBox?

Hi everyone, been watching this project for a while & finally decided to jump in.

Anyway as the topic says, would it be possible?
Not too long ago, i managed to get my hands on a 66mhz BeBox & i must say, its a really exotic machine, but i cant use it very much due to its non-standard architecture & its OS. Don’t get me wrong, BeOS (its running 4.5) is amazing but the powerpc variant of BeOS lacks USB support, has limited network & video support, & lacks support for CD-RW drives (if i’m not mistaken).

I know Haiku doesn’t have a working ppc port yet & plus BeBox hardware is very bizarre (processor-wise), its cpu’s lack L2 caches, & last but not least i’m aware of how sluggish the 66mhz BeBoxes are… but still… it makes me wonder…

This is just a hobby question so don’t take it too seriously, i’m not very software-savy so i figure it’d be best to ask here, & if anyone thinks i’m insane for wishing to use Haiku on ancient hardware… they’re probably right… :stuck_out_tongue:

Any thoughts?

You can find out alot of info from the netbsd guys since they actually have working kernels for the machine http://netbsd.2816.n7.nabble.com/BeBox-memory-configuration-td278318.html

That said… since it can have 256Mb ram you probably could run Haiku but it might not be useabe and it might not be cheap to get that many 72pin simms… and would probably need to be feature reduced.

Also there is a PPC port for Haiku but its aimed mostly at openfirmware based machines (new world PPC macintosh) I believe. I am sure others could fill you in more.

There is also a proof of concept port to I believe the atari falcon… both are not in very advanced states but are never the less cool.

yeah i’ve upgraded its ram to 256mb so lack of memory wouldn’t be an issue, i’ve even attached passive-cooling aluminum heatsinks on the cpu’s hoping it would improve performance or at least stop them from heating up so bad. I knew there was a netbsd port in the works but i thought it wasn’t finished last time i checked so i didn’t really look much into it, i will double-check later though. Thanks for all the info :]

My BeBox is probably going to continue to collect dust for the foreseeable future, but the most interesting thing I can think of to do with it would be to reinstall one of the earlier releases, that would run only on the BeBox. Off the top of my head, names like DR 8, PR 1? By the time they got to where it would run on PPC Macs (3.1?), some of the interesting stuff was gone, like the database filesystem.

Thats what I fear happening to my BeBox as well. Collecting dust not because of its aging hardware but by its aging OS, which in a sense cripples its functionality a bit (again, not trying to diss BeOS). It just sucks that it has all these expansion slots (PCI & ISA) & they’re not much use due to its OS being compatible with only a few devices. Just imagine adding a sata card, more modern PCI video card, wireless card & etc. etc.

As for BeOS i’m still learning stuff about it, i never even heard of BeOS until about a year or 2 ago when i discovered the Haiku project. I found it amazing & ahead of its time (sortof like the “Project Offset” game engine) & as a longtime windows user it made me feel like the OS i’ve used all my life (95 up to 7) look as if it were from the stone age & not making much progress. I’m trying to transition away from using Windows & hope to use Haiku as 1 of my main OSes. Haiku running on the legendary BeBox would be just plain awesome.

I have an Amiga, too. What it could do with a 12Mhz 68030, outstanding. The BeBox was fun, but it wasn’t legendary and sure isn’t up to modern computing loads. Maybe there’s still some potential in the hacker paradise aspect, with all those ports - UV, Geek port, MIDI. Someone with a project that ties a lot of gear together.

Sorry, i was just being a little biased when i called it legendary. its too bad Amiga died out… mostly that is, i was too young back then to really know about them, maybe i’ll acquire an Amiga computer to mess with someday & see how it works, i’ve heard Amiga was great for its time.

As for hacking the BeBox its neat because come to think of it, a BeBox’s hardware seems like a bit of a hack in itself when i opened up my 66 & studied it. The circuit board which contains the majority of its I/O ports in the back is connected to what seems to be just a modified PCI slot, the powerpc 603 cpu’s it uses weren’t designed for multiprocessing yet they managed to get 2 of them working together. It maybe wasn’t innovative but i think its still really cool. I read an article somewhere about the cpu’s having to play “cache line ping-pong” & needing a specific processor feature it lacked emulated separately just to function properly. Because of all that hackery it makes me wonder if Haiku would even run.

I’m pritty sure i got most of that right, correct me if i’m wrong on any of it…

Well, someone started adding a BeBox target to QEMU so we might someday have something to develop for:
http://qemu-project.org/Features/BeBox

However, in addition to the oddities already mentionned, the BeBox also has a custom firmware which was quite crude, only loading a PEF binary at a specific location and that’s it…
We’ll first have to get the PPC port to a usable state before trying to support the BeBox for fun.

So i guess in a sense its possible but idk how well it would perform on 66’s (just enough to run at least), but the 133’s would be a better choice.

Perhaps when Haiku gets a popularity boost when it goes into beta, someone might come along & try to port it to this hardware. :]

If you’re interested in a copy of any of the above please let me know, I’d love to get this information mirrored somewhere else. I’d also like to acquire a copy of BeOS-R5 (for archival purposes, of course…)

That would be great! Do you have any boot-rom update images because as of today i installed 5.0.3 & i think it screwed up my 66’s boot rom, it now refuses to boot (won’t even show the Be logo) if a keyboard is plugged in when powered up, i have to hook up the keyboard during the Be logo display or else i can’t use it… this is somewhat trivial but gets really annoying over time :confused: Last i checked it was running the PR2 boot rom, i can’t really hit F2 anymore to check now that its messed up…

As for obtaining R5, the internet is your friend… ;] there are at least 2 or 3 good torrents out there. Given the rarity of finding a physical copy of R5, torrenting for a CD image file may be the only means of acquiring it… unless you wanna check ebay every week like i did (i almost had one but was out-bidded at the last minute D:< ).

I also finally sat down and scanned various documentation I’ve acquired including the Be User Guide which is effectively the hardware manual for the machine.

That’s cool, my 66 never came with a user manual & i’d love to learn more about it’s hardware.

Just today I got my BeBox Dual603-133 out of the loft and dusted it off. I took the time to image all of the floppies and CDs of software I acquired along with it including numerous versions of BeOS;

685M BeOS-DR8 359M BeOS-DR8.1 232M BeOS-DR-AdvancedAccess 280M BeOS-PR1 280M BeOS-PR2 68M BeOS-R1.1d5 107M BeOS-R1.1d6 284M BeOS-R1.1d7 301M BeOS-R1.1d7.1 457M BeOS-R3 339M BeOS-R4 376M BeOS-R4.5 9.6M BeSampler-DR7 97M CodeWarrior 247M docs 6.9M Floppies

I also finally sat down and scanned various documentation I’ve acquired including the Be User Guide which is effectively the hardware manual for the machine. I scanned some of this about ten years ago (I think it was posted on bebox.nu) but I did a slightly more thorough job this time.

2.4M BeNewsletterArchive.zip 3.8M be-system-isa-bus.pdf 25M be-user-guide-DR8.1-part1.pdf 53M be-user-guide-DR8.1-part2.pdf 68M be-user-guide-DR8.1-part3.pdf 29M be-user-guide-DR8.1-part4.pdf 53M be-user-guide-DR8.1-part5.pdf 2.8M geekport-ad-converter.pdf 7.1M geekport-main.pdf 786K intel-system-io.pdf 3.3M joystick-ports.pdf 1.1M kasumi-address-decodes-and-registers.pdf

If you’re interested in a copy of any of the above please let me know, I’d love to get this information mirrored somewhere else. I’d also like to acquire a copy of BeOS-R5 (for archival purposes, of course…)

I need to dig out that old Matrox Millennium II card that I’ve been saving all these years; the #9 card it has now can only handle 8-bit colour … bonkers! Also some RAM would be handy…

Documentation is now online here: http://sowerbutts.com/bebox/docs/

The end-user documentation is in “be-user-guide-DR8.1.pdf” (warning: over 220MB!).

Hope someone finds this useful.

Thanks man, reading that pdf helped out regarding the boot rom problem. Now that i know how to fix it i must start searching for the rom upgrade files as well as the app needed for it.

Other than that if anyone needs a hardware tester for a future experimental Haiku port, count me in.

Hey

Glad the PDFs were useful. I have some more stuff to scan (less interesting, mostly release notes for the early releases, but also the “Welcome” letter from JLG). I’ll get around to that later this week hopefully.

I have a whole bunch of ROM upgrades … mostly in the form of update floppy images which can reflash the ROM to the following versions:

  • DR8.1
  • DR8
  • Advanced Access PR
  • PR1
  • R1.1d6
  • R1.1d7
  • R1.1d7.1
  • R3.2
  • R4

I must also have the PR2 ROM somewhere as my box was running PR2 until last night. Maybe it’s on the installation CD somewhere (I think they are normally in /etc/beos/?)

Drop me an email (will “at” sowerbutts.com) and I can send you copies.

I’ve now reflashed my BeBox to the R4 ROM. I’m not sure this was a good idea – if I boot the system with my Matrox Millennium II card installed it appears to hang at the “Be” logo. With no hard disks connected it would normally time out and shows the boot device selection screen, but this doesn’t happen. If I swap the Millennium II for a #9 GXE64 card this does happen and with disks connected it boots normally. I don’t have a keyboard connected (my PS/2 to AT adapter hasn’t arrived yet) so maybe this is related.

I understand that R4.5 comes with a ROM update on the CD so I will try to install that when I get a chance. I read somewhere over the weekend that R5 does not have a ROM update so I think R4.5 (referred to as “R4.1” in the documentation I read) is probably the last version released.

The PR2 ROM worked well for me and would boot almost any version of the OS I could find. I wanted to try booting R5 from the R5 Pro CD, but it won’t boot it. My guess is that it can’t understand the Hybrid ISO9660/HFS+/BeFS CD format, and that the R4.5 ROM added support for this feature.

If anyone knows how to get the R5 installation media to boot on a BeBox I would be very grateful to learn how to do so, specially which ROM versions it works with.

I would love to see Haiku ported back to the BeBox. I must say I expect this to be a great deal of work as the 603/603e CPU doesn’t support the full MESI cache coherency protocol, only MEI. This has pretty serious performance implications.

This article on the PPC-750 has a quote which explains it nicely:
http://www.postforum.com/forums/read.php?f=68&i=358&t=344

Quoting: Dominic Giampaolo of Be explained the situation most clearly: “The PPC-750 is a terrible choice for an SMP environment because it only supports the MEI (Modified-Exclusive-Invalid) cache-coherency protocol. The lack of a Shared state for the cache means that multiple 750’s will continually cause cache invalidates to other processors even if they’re just reading the same data. The slow down this causes is tremendous. While it is true that the BeOS is a fine SMP system, we also learned from painful experience on the BeBox that the 603 family (of which the 750 is a derivative) will actually slow down when doing certain very common tasks in parallel. […] On a BeBox you can write a program that takes 1 second when run on one cpu and 50 seconds when run on two cpu’s. The potential slow down on the 750 is even worse because its clock speed is so much higher. The presence of the backside cache does not alleviate the problem and in fact it makes it even worse (the larger the cache the more likely you are to have common items in other caches thus causing even more cache invalidates).”

BTW there are two different ways to perform a ROM update:

  • At power-on: Boot from a floppy image
  • While running BeOS: Drag a ROM update on the ROMUpdater application
  • How does the lack of MESI on these CPU models make any difference to the work needed to port Haiku?

    Haiku, like BeOS, will run poorly on a BeBox compared to an otherwise similarly powerful dual CPU system because of the crappy cache coherency, but you can’t really fix that in software.

    There are tricks to reduce sharing that newer systems do - Linux on big iron ccNUMA systems, that sort of thing - but they consume a lot of RAM and the BeBox is rather RAM starved already. And Haiku doesn’t really have the tools for this work anyway.

    I wonder why some people are still thinking back, and not ahead.
    I guess it should be more interesting to know: Will haiku run on ARM. Will there be a haiku version that is also usable with a tablet?
    Will Haiku run on my phone… etc

    I still wonder why some people are still somehow stuck in the past.

    As i said from the start, this was just a hobby question so there’s no need to take it seriously. As much as i’d love to see Haiku ported to the BeBox i know it most likely won’t happen, unless someone wanted to try it just for fun as one person mentioned earlier.

    Its not necessarily about being “stuck in the past”, but rather just a “fun side-project”.

    Hi

    You are right, my earlier post was not clear. My apologies.

    Take a look at this: http://www.freescale.com/files/32bit/doc/app_note/AN1294.pdf

    You will see that the 603/603e requires additional support from the OS when used in an SMP configuration; on the 604 and later these functions are handled through memory bus signals automatically generated and snooped by the hardware in response to CPU instructions.

    Basically you would need to use interprocessor interrupts to signal to sibling processors that they should flush their instruction cache or TLBs. I think you may also need a system call for applications which use self modifying code (eg JIT or incremental compilers) to signal that instruction caches should be flushed.

    I’m not saying it’s impossible (clearly it is possible!), simply that additional code would be required that more recent CPUs would not require since they employ additional cache and TLB coherency hardware.

    [quote=wrs]Take a look at this: http://www.freescale.com/files/32bit/doc/app_note/AN1294.pdf
    [/quote]

    Ah, yes, there’s indeed quite a lot more going on than just the lack of MESI, I see. This was very interesting and I didn’t find any equivalently informative explanations in other discussions of this stuff, so thank you very much for pointing me at the app note.

    You are quite right, even judging from that brief application note it would be a considerable amount of rather low-level programming work to get Haiku running properly (without disabling the other CPU) let alone achieve the speed that this hardware is theoretically capable of.

    In a way that actually makes the challenge more tempting, it’s an opportunity to get very involved with the low-level fundamentals of multi-processor systems. Perhaps somebody who owns a BeBox will take it up for this reason.