On Sat, Jun 06, 2015 at 05:21:40PM -0500, Edwin Amsler wrote: > Nice! Any quick tutorials and patches for us to start playing with this > ourselves?
Something along the lines of: cd /sys/arch/armv7/conf/ config GENERIC cd ../compile/GENERIC make bsd.VEXPRESSA15.umg $ sudo ifconfig tun0 link0 $ sudo ifconfig bridge0 add tun0 add em0 up sudo sh -c "qemu-system-arm -runas $USER \ -M vexpress-a15 -nographic \ -netdev tap,id=net0 \ -kernel bsd.VEXPRESSA15.umg -append "sd0a" \ -drive file=test.img,if=none,id=drive0,format=raw \ -device virtio-scsi-device,id=scsi \ -device scsi-hd,drive=drive0 \ -device virtio-net-device,netdev=net0 \ -device virtio-balloon-device \ -device virtio-rng-device" Index: arm/include/atomic.h =================================================================== RCS file: /cvs/src/sys/arch/arm/include/atomic.h,v retrieving revision 1.10 diff -u -p -r1.10 atomic.h --- arm/include/atomic.h 14 Nov 2014 09:56:06 -0000 1.10 +++ arm/include/atomic.h 8 Jun 2015 12:37:49 -0000 @@ -193,5 +193,19 @@ atomic_clearbits_int(volatile unsigned i restore_interrupts(cpsr); } +#if defined(CPU_ARMv7) +#define __membar(_f) do { __asm __volatile(_f ::: "memory"); } while (0) + +#define membar_enter() __membar("dmb") +#define membar_exit() __membar("dmb") +#define membar_producer() __membar("dmb") +#define membar_consumer() __membar("dmb") +#define membar_sync() __membar("dmb") + +#define virtio_membar_producer() __membar("dmb") +#define virtio_membar_consumer() __membar("dmb") +#define virtio_membar_sync() __membar("dmb") +#endif /* CPU_ARMv7 */ + #endif /* defined(_KERNEL) */ #endif /* _ARM_ATOMIC_H_ */ Index: armv7/conf/GENERIC =================================================================== RCS file: /cvs/src/sys/arch/armv7/conf/GENERIC,v retrieving revision 1.4 diff -u -p -r1.4 GENERIC --- armv7/conf/GENERIC 29 May 2015 02:44:14 -0000 1.4 +++ armv7/conf/GENERIC 8 Jun 2015 12:37:49 -0000 @@ -99,6 +99,19 @@ usb* at ehci? #flags 0x1 #ohci* at sunxi? #usb* at ohci? +# ARM Versatile Express +vexpress0 at mainbus? +sysreg* at vexpress? +pluart* at vexpress? +virtio* at vexpress? + +# virtio devices +vioblk* at virtio? +vio* at virtio? +viomb* at virtio? +viornd* at virtio? +vioscsi* at virtio? + # USB bus support usb* at ehci? flags 0x1