On Mon, Dec 1, 2014 at 2:49 AM, Antti Kantee <[email protected]> wrote:
> 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 ;)


I didn't have a lot of luck with the linux cross compiler
(arm-none-eabi-).  They were failing during buildrump with pointer
mismatch errors in drivers related to devmajor(minor)_t / int.

Instead I installed a netbsd system in virtualbox and built 'evbarm'
cross compilers instead using the NetBSD-current source.  These were
able to run buildrump.sh as described at the top of
rumpuser-baremetal/buildme.sh (I also added '-F
CFLAGS=--sysroot=..../src/obj/destdir.evbarm' as described in
https://github.com/rumpkernel/wiki/wiki/Howto:-Cross-compiling).


>> 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 currently trying to get the early stages of
rumpuser-baremetal/buildme.sh to run.  It's specifically failing while
running 'makeuserlib' for 'libc'.

The first problem is it looks for a tool called 'nbgenassym' which
isn't available in 'buildrump.sh/obj/tooldir/bin'.  I just copied this
from the cross compiler and the build continues a little bit further
to

nbmake: don't know how to make __aeabi_read_tp.S. Stop

This file does exist in libc/arch/arm/sys but the libc config is not
including this directory.  Been picking over this for a while and I'm
not too sure how to proceed.

Perhaps my cross compiler arch isn't a good pick - there seem to be
other options like arm32, evbearm-el...or maybe the nbgenassym hack is
a bit smelly.

-Andy

------------------------------------------------------------------------------
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=164703151&iu=/4140/ostg.clktrk
_______________________________________________
rumpkernel-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rumpkernel-users

Reply via email to