Hey Andy,
Great questions.
On 01/12/14 01:03, Andy Ray wrote:
> Now the real question is how to start getting going on this stuff. I
> am hoping that cross compiling src-netbsd is easy enough (assuming I
> use the right compiler - arm-linux-gnueabi-, arm-none-eabi-?).
It should more or less work on any compiler that targets the right ISA.
Just set CC (and optionally AR/NM/OBJCOPY) in the env when you run
buildrump.sh.
If it doesn't work, let us know ;)
> Then I assume a bunch of work in a bare-metal/arch/arm directory. I
> would be very interested in any tips that could get to "something"
> working initially that I can then build on.
I'd start off by trying to get a simple printf("hello world\n") going.
There's a few bits in "bmk" (i.e. "bare metal kernel") that are not
currently as machine independent as they should be (see e.g x86 inline
assembly in intr.c ;), but it shouldn't be too difficult to ignore it
for initial hacking and later clean it up. After that, start piling on
device drivers and get e.g. a NIC driver working to get the TCP/IP stack
going. You'll need to implement at least interrupts and stack switching
on ARM for that.
> I am getting somewhat familiar with qemu, but I also have a few arm
> based boards I would very much like to support. Complete net-bsd
> support for each of these (*) is likely patchy but, correct me if I am
> wrong, I think rump-kernels would provide libc and posix support
> regardless, which I think is very, very useful anyway.
Yes, if you write the bootstrap code, you will get more or less complete
POSIX support (sans fork, exec & mmap). Now, POSIX support is of course
runs on top of device drivers. Device support doesn't have much to do
with what boards NetBSD supports and more to do with what devices NetBSD
supports. After all, ARM board support is more or less a question of
setting up the MMU in bootstrap so that devices are accessible.
Ultimately, I don't know if there are code sharing opportunities with
NetBSD ARM board bootstrap (or some other OS ARM bootstrap). For now,
I'd treat rump kernels on bare metal as what they are: drivers running
on top of a thin "firmware" layer. Any insights you gain during your
work are of course most interesting stories for this list!
- antti
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
rumpkernel-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rumpkernel-users