[M-Labs devel] NetBSD kernel booting on lm32

Yann Sionneau <[email protected]> Thu, 20 Mar 2014 10:38:18 +0100
Newsgroups gmane.comp.multimedia.milkymist.devel,gmane.os.netbsd.devel.kernel,gmane.os.netbsd.devel.ports
Message-ID <[email protected]>
Hi,

I am very happy to announce that the NetBSD/lm32 project is making good 
progress :)

So far NetBSD kernel boots up to searching for Root Device on Qemu : 
http://pastebin.com/bFZNgcSb

Yesterday I tried for the first time to boot it on real hardware, 
Milkymist One board ( http://m-labs.hk/m1.html ) featuring the 
Mikymist-legacy SoC with MMU enabled LM32 softcore, after a bit of 
rework of the uart driver it booted up to irq being enabled : 
https://asciinema.org/a/8288 http://pastebin.com/5X10ampa

Next steps (don't hesitate if you think you can help) :

- Use non-cached mappings for memory mapped registers instead of 
flushing caches
- Find out why no irq handlers are registered when running on real HW
- Find out how I can generate a root fs from just an ELF file (which 
would be a statically linked shell binary called "init")
- Find out how I can embed the previously generated root fs in the 
kernel (ramdisk) and boot on it
- Port some libc ... and then it's endless I guess for userspace
- Add some device drivers (ethernet, audio, framebuffer)

At some point I will add a port to the new Milkymist SoC called "MiSoC" 
which is almost no different in software point of view, except memory 
mapping for SoC registers.

There are still some bugs in my experiments with ASIDs in the TLBs which 
need to be sorted out, if someone wants to investigate :)

Regards,

-- 
Yann Sionneau