FreeBSD/armv6 for QEMU
gonzo at bluezbox.com
Thu Dec 6 07:52:59 UTC 2012
I've just finished first version of VersatilePB support for FreeBSD/armv6.
QEMU uses this machine as a base for armv6 emulation.
Full patch: http://people.freebsd.org/~gonzo/arm/qemu/versatilepb.diff
Build/run info: http://kernelnomicon.org/?p=229
Kernel supports serial console, timers, primary and secondary interrupt
controllers, PCI, LCD controller, Keyboard/Mouse interface (partially,
no LEDs suport, no mouse)
Some patches are not versatile-pb specific so I'd like more people to look
Check for return code of fdt_get_range and if it fails assume base address
is zero. Otherwise pbase was used uninitialized and causes exception
Disable if_smc's interrupt in filter. It is reenabled by taskqueue later
Barrier function for ARM
There is one more PL011-specific change, but Im still not sure if it's correct
Some notes taken during development:
- FDT support for handling interrupt-source property is insufficient for cascading
interrupt controllers. I think concept of global IRQ space, arm_get_next_irq
and related functions should be reconsidered at least for FDT-enabled kernels.
- Proper PS/2 keyboard support for arch other than sparc/x86 is inevitable
code duplications. PS/2 protocol logic should be extracted from dev/atkbd
and made arch-indepedent.
- Framebuffer/syscons driver is PITA. No news here
More information about the freebsd-arm