Difference between revisions of "How to use vanilla kernel on APF28"
From ArmadeusWiki
m (→Get the trunk version) |
|||
(31 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | + | [[Category: kernel]] | |
− | + | ||
− | + | 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. | ||
− | * Get the latest | + | Mainline support is done with [[Kernel-with-device-tree|Device Tree]]. |
+ | |||
+ | ==Lazy guys instructions== | ||
+ | * Get the latest master version with command : | ||
+ | <pre class="host"> | ||
+ | $ git clone git://git.code.sf.net/p/armadeus/code armadeus-master | ||
+ | </pre> | ||
+ | |||
+ | * Configure the view for APF28 "mainline" : | ||
+ | <pre class="host"> | ||
+ | $ cd armadeus-master | ||
+ | $ make apf28mainline_defconfig | ||
+ | </pre> | ||
+ | |||
+ | * Update your board: | ||
+ | <pre class="apf"> | ||
+ | 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 | ||
+ | </pre> | ||
+ | |||
+ | == For the one who wants to know the details == | ||
+ | |||
+ | * Get the latest master branch version with command : | ||
<pre class="host"> | <pre class="host"> | ||
− | $ git clone git:// | + | $ 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- | + | $ cd armadeus-master |
$ make apf28_defconfig | $ make apf28_defconfig | ||
</pre> | </pre> | ||
Line 19: | Line 47: | ||
Toolchain ---> | Toolchain ---> | ||
Kernel Headers (Linux 2.6 (manually specified version)) ---> | Kernel Headers (Linux 2.6 (manually specified version)) ---> | ||
− | (3. | + | (3.8) linux version |
... | ... | ||
System configuration ---> | System configuration ---> | ||
Line 25: | Line 53: | ||
... | ... | ||
Kernel ---> | Kernel ---> | ||
− | (3. | + | (3.8) Kernel version |
+ | (40008000) load address (for 3.7+ multi-platform image) | ||
(../patches/linux/$(BR2_LINUX_KERNEL_VERSION)) Custom kernel patches | (../patches/linux/$(BR2_LINUX_KERNEL_VERSION)) Custom kernel patches | ||
+ | (imx28-apf28dev) Device Tree Source file names | ||
</pre> | </pre> | ||
Line 34: | 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 (maybe now no more needed, since 3.12 ??). | ||
+ | ** Edit file : | ||
+ | <pre class="config"> | ||
+ | buildroot/target/device/armadeus/apf28/apf28-u-boot-2013.04.h | ||
+ | </pre> | ||
+ | ** And change line 153: | ||
+ | <pre class="config"> | ||
+ | #define CONFIG_MTDMAP "gpmi-nand" | ||
+ | </pre> | ||
+ | ** Then re-build U-Boot: | ||
+ | <pre class="host"> | ||
+ | make uboot-dirclean; make uboot; | ||
+ | </pre> | ||
+ | ** you will have to reflash U-Boot on your APF28 and probably cleanup your environment variables: | ||
+ | <pre class="apf"> | ||
+ | BIOS> run flash_reset_env | ||
+ | </pre> | ||
* 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 | + | BIOS> setenv consoledev ttyAMA0 |
</pre> | </pre> | ||
− | * | + | * Kernel 3.8 use [[Kernel-with-device-tree |device tree]], then this paramter must be set too: |
+ | <pre class="apf"> | ||
+ | BIOS> setenv fdt_addr_r 41000000 | ||
+ | BIOS> saveenv | ||
+ | </pre> | ||
+ | |||
+ | * To boot with [[Network_File_System_configuration#Boot_from_NFS | NFS boot]] use: | ||
<pre class="apf"> | <pre class="apf"> | ||
BIOS> run nfsboot | BIOS> run nfsboot | ||
+ | </pre> | ||
+ | |||
+ | * But nand boot work now, just don't forget to update the dtb (if you run update_all it's already done): | ||
+ | <pre class="apf"> | ||
+ | BIOS> run update_dtb | ||
+ | BIOS> boot | ||
</pre> | </pre> | ||
==Which devices are supported ?== | ==Which devices are supported ?== | ||
− | * [[ | + | * [[Kernel-upstream-status]] |
+ | |||
+ | ==Roadmap== | ||
+ | # SPI | ||
+ | # 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.
Contents
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
- 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