How to use vanilla kernel on APF28
From ArmadeusWiki
By default, the kernel for APF28 is the 2.6.35 version (from Freescale BSP). Migration to Mainline (3.8+) is in progress but not finished, this article explains how to use (test) these kernels with latest armadeus trunk.
Mainline support is done with Device Tree.
Get the trunk version
- Get the latest trunk version with command :
$ git clone git://git.code.sf.net/p/armadeus/code armadeus-trunk
- Configure the view for APF28 :
$ cd armadeus-trunk $ make apf28_defconfig
- On menuconfig select :
Toolchain ---> Kernel Headers (Linux 2.6 (manually specified version)) ---> (3.8) linux version ... System configuration ---> (ttyAMA0) Port to run a getty (login prompt) on ... Kernel ---> (3.8) Kernel version (40008000) load address (for 3.7+ multi-platform image) (../patches/linux/$(BR2_LINUX_KERNEL_VERSION)) Custom kernel patches (imx28-apf28dev) Device Tree Source file names
- Then build :
$ make
U-Boot modification
- Linux nand driver has changed on kernel 3.8, then U-Boot code must be modified to match it.
- Edit file :
buildroot/target/device/armadeus/apf28/apf28-u-boot-2013.04.h
- And change line 153:
#define CONFIG_MTDMAP "gpmi-nand"
- Then re-build U-Boot:
make uboot-dirclean;make uboot;
- Serial port used for console has now a different name: ttyAMA0. So if you want to see something on your serial console please do the following before booting:
BIOS> setenv console console=ttyAMA0,115200n8 BIOS> setenv consoledev ttyAMA0
- Kernel 3.8 use device tree, then this paramter must be set too:
BIOS> setenv fdt_addr_r 41000000
- To boot with NFS boot use:
BIOS> run nfsboot
- But nand boot work now, just don't forget to update the dtb (if you run update_all it's already done):
BIOS> run update_dtb BIOS> boot
Which devices are supported ?
Roadmap
- SPI
- touchscreen