Menu

Build

Tony Prisk

Current base kernel is v3.6.0-rc7+ (updated 27 Sep 2012)

These are basic linux build instructions but should help with selecting the correct driver support.

1) Configure the kernel
make ARCH=arm menuconfig

Select the following options (and others as needed)
System Type->VIA/Wondermedia 85xx
Boot Options->Use appended device tree block to zImage
Boot Options->Supplement the appended DTB with traditional ATAG information

PWM Support

Device Drivers->Pulse-Width Modulation (PWM) Support->vt8500 pwm support

GPIO Support

Device Drivers->GPIO Support->VIA/Wondermedia SoC GPIO Support

Serial Port Support

Device Drivers->Character devices->Serial drivers->VIA VT8500 on-chip serial port support
Device Drivers->Character devices->Serial drivers->VIA VT8500 serial console support (if you have a serial port connected - usually for debugging only)

Framebuffer Support

Device Drivers->Graphics support->Support for frame buffer devices->VT8500 LCD Driver
Device Drivers->Graphics support->Support for frame buffer devices->WM8505 frame buffer support
Device Drivers->Graphics support->Console display driver support->Framebuffer Console support
Device Drivers->Graphics support->Console display driver support->Map the console to the primary display device

Realtime Clock Support

Device Drivers->Real Time Clock->VIA/Wondermedia 85xx SoC RTC

USB Support

Device Drivers->USB support->EHCI HCD (USB 2.0) support
Device Drivers->USB support->UHCI HCD (most Intel and VIA) support

Serial Flash Support

Device Drivers->Memory Technology Device (MTD) support->OpenFirmware partitioning information support
Device Drivers->Memory Technology Device (MTD) support->Self-contained MTD device drivers->Wondermedia Serial Flash support

SD/MMC Host Controller Support

Device Drivers->MMC/SD/SDIO card support->Wondermedia SD/MMC Host Controller support

2) Build the kernel
make ARCH=arm zImage

3) Customize the devicetree files
Currently, the wm8650-mid.dtb file gets updated with new features. Untested features do not get added to device tree files so you may need to add them manually. If a device driver doesn't seem to be loading, check that it is in the devicetree file. If not, you may need to add it. If you don't know the required information, email the mailing list and someone will let you know. If you test it, and it works, email the mailing list so the devicetree files can be updated for other users.

4) Build the devicetree files
Select one of the following files based on your target device.
make ARCH=arm vt8500-bv07.dtb
make ARCH=arm wm8505-ref.dtb
make ARCH=arm wm8650-mid.dtb

5) Build the image
cat arch/arm/boot/zImage arch/arm/boot/wm8650-mid.dtb > arch/arm/boot/zImage_w_dtb
replace wm8650-mid.dtb with the appropriate file from step 3

mkimage -A arm -O linux -T kernel -C none -a 0x8000 -e 0x8000 -n "My Linux" -d arch/arm/boot/zImage_w_dtb ~/uzImage.bin

The finished uzImage.bin will be in your home directory.