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
