This is an old revision of the document!
FreeBSD on Quartz development kit
Quartz is a tiny module utilized Freescale VF6xx by Device Solutions.
The Vybrid VF6xx family is an implementation of the new modern Cortex-A5-based low-power ARM SoC boards. Vybrid devices are ideal for applications including simple HMI in appliances and industrial machines, secure control of infrastructure and manufacturing equipment, energy conversion applications such as motor drives and power inverters, ruggedized wired and wireless connectivity, and control of mobile battery-operated systems such as robots and industrial vehicles.
Supported device drivers:
- Analog components control digital interface (ANADIG)
- Clock Controller Module (CCM)
- Display Control Unit (DCU4)
- Direct Memory Access Multiplexer (DMAMUX)
- Enhanced Direct Memory Access Controller (eDMA)
- Universal Serial Bus (USB) Controller
- General-Purpose Input/Output (GPIO)
- Inter-Integrated Circuit (I2C)
- Input/Output Multiplexer Controller (IOMUXC)
- Miscellaneous System Control Module (MSCM)
- NAND Flash Controller (NFC)
- Warning: NAND framework considered experimental in FreeBSD.
- Port control and interrupts (PORT)
- Synchronous Audio Interface (SAI)
- System Reset Controller (SRC)
- Timing Controller (TCON)
- Universal Asynchronous Receiver/Transmitter
- FFEC Ethernet Driver (FFEC)
- MPCore timer (MCT)
- Generic Interrupt Controller (GIC)
Build
1. Under FreeBSD, checkout latest source
svnlite co http://svn.freebsd.org/base/head ~/src
2. Compile FreeBSD
cd ~/src make TARGET_ARCH=armv6 kernel-toolchain make TARGET_ARCH=armv6 KERNCONF=QUARTZ buildkernel make TARGET_ARCH=armv6 buildworld
3. Create USB image
truncate -s 1024M quartz.img mdconfig -f quartz.img -u0 newfs /dev/md0 mount /dev/md0 /mnt cd ~/src make TARGET_ARCH=armv6 DESTDIR=/mnt installworld distribution echo "/dev/da0 / ufs rw,noatime 1 1" > /mnt/etc/fstab umount /mnt mdconfig -d -u0
4. Write USB image (replace /dev/da0 with your USB stick device)
sysctl kern.geom.debugflags=16 dd if=quartz.img of=/dev/da0 bs=4096k
5. Create SD card image (replace /dev/da4 with your SD device)
dd if=/dev/zero of=/dev/da4 bs=4096k gpart create -s MBR da4 gpart add -b 8m -s 32m -t '\!14' da4 newfs_msdos /dev/da4s1 mount_msdosfs /dev/da4s1 /mnt cd ~/src make TARGET_ARCH=armv6 DESTDIR=/mnt installkernel umount /mnt
Boot
1. Connect to serial console on speed 115200
cu -l /dev/ttyu0 -s 115200
2. Power on the board and boot
fatload mmc 0:1 0x80100000 kernel.bin go 0x80100000