FreeBSD/armv6 for QEMU
Oleksandr Tymoshenko
gonzo at bluezbox.com
Thu Dec 6 07:52:59 UTC 2012
Hello,
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
at them:
- http://people.freebsd.org/~gonzo/patches/fdt-baseaddr.diff
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
- http://people.freebsd.org/~gonzo/patches/smc-interrupts.diff
Disable if_smc's interrupt in filter. It is reenabled by taskqueue later
- http://people.freebsd.org/~gonzo/patches/sym-barrier.diff
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
mailing list