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

From ArmadeusWiki
Jump to: navigation, search
 
(7 intermediate revisions by 2 users not shown)
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.1x+)''' is in progress but not finished, this article explains how to use (test) these kernels with latest armadeus master branch.
  
 
Mainline support is done with [[Kernel-with-device-tree|Device Tree]].
 
Mainline support is done with [[Kernel-with-device-tree|Device Tree]].
  
 
==Lazy guys instructions==
 
==Lazy guys instructions==
* Get the latest trunk version with command :
+
* Get the latest master version with command :
 
<pre class="host">
 
<pre class="host">
$ git clone git://git.code.sf.net/p/armadeus/code armadeus-trunk
+
$ git clone git://git.code.sf.net/p/armadeus/code armadeus-master
 
</pre>
 
</pre>
  
 
* Configure the view for APF28 "mainline" :
 
* Configure the view for APF28 "mainline" :
 
<pre class="host">
 
<pre class="host">
$ cd armadeus-trunk
+
$ cd armadeus-master
 
$ make apf28mainline_defconfig
 
$ make apf28mainline_defconfig
 
</pre>
 
</pre>
Line 21: Line 23:
 
BIOS> run flash_reset_env; reset
 
BIOS> run flash_reset_env; reset
 
BIOS> setenv fdt_addr_r 41000000
 
BIOS> setenv fdt_addr_r 41000000
 +
BIOS> setenv consoledev ttyAMA0
 
BIOS> saveenv
 
BIOS> saveenv
 
BIOS> run update_dtb
 
BIOS> run update_dtb
Line 29: Line 32:
 
== For the one who wants to know the details ==
 
== For the one who wants to know the details ==
  
* Get the latest trunk version with command :
+
* Get the latest master branch version with command :
 
<pre class="host">
 
<pre class="host">
$ git clone git://git.code.sf.net/p/armadeus/code armadeus-trunk
+
$ git clone git://git.code.sf.net/p/armadeus/code armadeus-master
 
</pre>
 
</pre>
  
 
* Configure the view for APF28 :
 
* Configure the view for APF28 :
 
<pre class="host">
 
<pre class="host">
$ cd armadeus-trunk
+
$ cd armadeus-master
 
$ make apf28_defconfig
 
$ make apf28_defconfig
 
</pre>
 
</pre>
Line 61: Line 64:
 
</pre>
 
</pre>
  
== U-Boot modification ==
+
=== U-Boot modification ===
  
* Linux nand driver has changed on kernel 3.8, then U-Boot code must be modified to match it.
+
* Linux nand driver has changed on kernel 3.8, then U-Boot code must be modified to match it (maybe now no more needed, since 3.12 ??).
 
** Edit file :
 
** Edit file :
 
<pre class="config">
 
<pre class="config">
Line 83: Line 86:
 
* 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:  
 
* 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:  
 
<pre class="apf">
 
<pre class="apf">
BIOS> setenv console console=ttyAMA0,115200n8
 
 
BIOS> setenv consoledev ttyAMA0
 
BIOS> setenv consoledev ttyAMA0
 
</pre>
 
</pre>
Line 105: Line 107:
  
 
==Which devices are supported ?==
 
==Which devices are supported ?==
* [[APF28_Linux_kernel_status]]
+
* [[Kernel-upstream-status]]
  
 
==Roadmap==
 
==Roadmap==
 
# SPI
 
# SPI
 
# touchscreen
 
# touchscreen

Latest revision as of 16:07, 28 March 2017


By default, the kernel for APF28 is the 2.6.35 version (from Freescale BSP). Migration to Mainline (3.1x+) is in progress but not finished, this article explains how to use (test) these kernels with latest armadeus master branch.

Mainline support is done with Device Tree.

Lazy guys instructions

  • Get the latest master version with command :
$ git clone git://git.code.sf.net/p/armadeus/code armadeus-master
  • Configure the view for APF28 "mainline" :
$ cd armadeus-master
$ 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 master branch version with command :
$ git clone git://git.code.sf.net/p/armadeus/code armadeus-master
  • Configure the view for APF28 :
$ cd armadeus-master
$ 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 (maybe now no more needed, since 3.12 ??).
    • 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
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