[openbeos] Re: openbeos Digest V8 #114

  • From: Travis Geiselbrecht <geist@xxxxxxxxxx>
  • To: openbeos@xxxxxxxxxxxxx
  • Date: Fri, 27 Jun 2008 12:29:35 -0700

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
about
the subject although some material may be at <www.haiku-os.org/documents >.
The code should hopefully be well structured and there are some
people
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), with
added 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. :)

travis (geist)


Other related posts: