Difference between revisions of "How to use vanilla kernel on APF28"

From ArmadeusWiki
Jump to: navigation, search
Line 1: Line 1:
 +
[[Category: kernel]]
 +
 
By default, the kernel for APF28 is the 2.6.35 version (from Freescale BSP).
 
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.
 
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.

Revision as of 10:03, 6 December 2013


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.

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> 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 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
BIOS> saveenv
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

  1. SPI
  2. touchscreen