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.12.2) 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.
Contents
Lazy guys instructions
- Get the latest trunk version with command :
$ git clone git://git.code.sf.net/p/armadeus/code armadeus-trunk
- Configure the view for APF28 "mainline" :
$ cd armadeus-trunk $ make apf28mainline_defconfig
- Update your board:
BIOS> run update_uboot; reset BIOS> run flash_reset_env; reset BIOS> setenv fdt_addr_r 41000000 BIOS> setenv consoledev ttyAMA0 BIOS> saveenv BIOS> run update_dtb BIOS> run update_kernel BIOS> run update_rootfs
For the one who wants to know the details
- 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;
- you will have to reflash U-Boot on your APF28 and probably cleanup your environment variables:
BIOS> run flash_reset_env
- 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 consoledev ttyAMA0
- Kernel 3.8 use device tree, then this paramter must be set too:
BIOS> setenv fdt_addr_r 41000000 BIOS> saveenv
- 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