On Jun 27, 2008, at 5:08 AM, François Revol wrote:
From what I've done on m68k I'd say it's not too hard as long as you target arm with mmu. mmu-less ones aren't worth it.Intriguing...ARM920T for ex has one, 940 doesn't. While it's possible to support mmu-less versions, in practice it'll be much work for not much gained. Linux doesn't run on those (only uCLinux), and I don't think WinCE does. Most user-interactive devices have one with an mmu anyway.
Yep, however if you want anything reasonably close to a PC performance wise, you're going to want to target an arm11 or above. arm9s have serious restrictions on how the mmu/cpu cache works, and generally is somewhat inefficient running systems with lots of address spaces (context switches are pretty expensive).
Anyway, I'm half considering doing the ARM port myself... I'll need to start reading up on the Haiku kernel, anyone got any pointers where I should start?Now *that's* the spirit! :-) I don't know if there is much material aboutthe subject although some material may be at <www.haiku-os.org/documents >.The code should hopefully be well structured and there are somepeople around with porting knowledge: Francois Revol is working on the M68K port right now (mmu_man in #haiku), Ingo Weinhold had worked on the PPC port at a time, Axel Dörfler of course and Travis (gheist), who wrote the NewOS kernel, is also pretty helpful and usually around in #haiku. The best approach may be to eventually get network booting going for short turn around times, if your device supports it. Axel and Ingo can probably help you best with that.Ithamar is also interested in the port, he has many devices at work :) I've looked into it, and I think the simplest option is to use a 2- stage boot:- have uboot ported to the platform (should be available already), withadded BFS support - have initialize the hw and load zbeos, so zbeos doesn't have to handle the myriad of hw combination, and can use uboot as a king of BIOS - then zbeos loads the kernel after initializing it mmu and other stuff.
I'd be willing to help out. I work with low level arm code day in and day out (currently doing linux hackery on ARM, previously did some of the kernel hackery at apple to get darwin onto it). It's pretty straightforward. I never got around to porting newos to arm mostly because I was doing it at work, so I figured it wouldn't be a good idea to do the same thing at home, but it's a pretty easy port.
If it'll help I can probably pretty quickly get newos ported to arm if you want to use the code as reference. Probably wont take more than a day or so to get the core kernel stuff running on it. It's the system drivers that take a while with these chips, since essentially every vendor's arm implementation is an entirely new architecture. The only thing that is really shared is the instruction set, essentially.
At the minimum, come by #haiku and ask me questions if you need any help. I've pretty much seen it and done it with regards to porting stuff to arm, I doubt you'll stump me with anything new. :)