Skip to content
Alexey Charkov edited this page Nov 20, 2023 · 18 revisions

Current base kernel is v3.13-rc8 (updated 18 Jan 2014)

Last boot tested kernel is v3.13-rc8 (updated 18 Jan 2014) - APC8750
Last build tested kernel is v3.13-rc8 (updated 18 Jan 2014) - No errors reported

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->Multiple platform selection->[ARMv5 for VT8500/WM8505/WM8650, ARMv6 for WM8750, ARMv7 for WM8850]
  System Type->[VIA/Wondermedia 85xx and WM8650, Wondermedia WM8750, Wondermedia WM8850]
  Kernel Features->Use the ARM EABI to compile the kernel
  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

Pinctrl Support

  Device Drivers->Pin controllers->Wondermedia WM8xxx pin controller driver (xxx depends on the selected SoC)

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->VIA VT8500 framebuffer support
  Device Drivers->Graphics support->Support for frame buffer devices->Wondermedia WM8xxx-series frame buffer support
  Device Drivers->Graphics support->Support for frame buffer devices->Enable VGA output + Disable LCD output - (For VGA on WM8750 - Don't use on tablets/netbooks)
  Device Drivers->Graphics support->Support for frame buffer devices->VT8500/WM8xxx accelerated raster ops support - (Not recommended on WM8850)
  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

I2C Support

  Device Drivers->I2C support->I2C Hardware Bus support->Wondermedia I2C Controller support

USB Support

  Device Drivers->USB support->EHCI HCD (USB 2.0) support
  Device Drivers->USB support->Generic EHCI driver for a platform device
  Device Drivers->USB support->UHCI HCD (most Intel and VIA) support
  Device Drivers->USB support->Generic UHCI Platform Driver support

Serial Flash 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

Network Controller Support

  Device Drivers->Network device support->Ethernet driver support->VIA devices->VIA Rhine support
  Device Drivers->Network device support->Ethernet driver support->VIA devices->VIA Velocity support

2) Build the kernel
make ARCH=arm zImage

3) Customize the devicetree files
Currently, the wm8850-w70v2.dts 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
The following command will build all the dtb files for arch-vt8500. Select the one appropriate to your SoC from the output list
make ARCH=arm dtbs

5) Build the image
cat arch/arm/boot/zImage arch/arm/boot/wm8850-w70v2.dtb > arch/arm/boot/zImage_w_dtb

  • replace wm8850-w70v2.dtb with the appropriate file from step 4
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.

Clone this wiki locally