.dtb).
Now the boot process has to deal with two Linux files instead of one: the Device Tree Binary file and the kernel image itself. It mainly involves changes for the U-Boot / barebox booting command. If you don't want to care about this new file, there is an Linux kernel option to append the Device Tree Binary at the end of the kernel image.
Useful documentation:
| 3.6.9 (linux4sam_4.0 tag) | ||||
|---|---|---|---|---|
| Board | Description | Binary | Device Tree Binary (DTB) | Configuration file |
| sama5d3xek | linux-3.6.9-at91 zImage | zImage-sama5d3.bin | sama5d31ek.dtb sama5d33ek.dtb sama5d34ek.dtb sama5d35ek.dtb |
sama5d3_defconfig |
| linux-3.6.9-at91 uImage | uImage-sama5d3.bin | |||
$ git clone git://github.com/linux4sam/linux-at91.git Cloning into 'linux-at91'... remote: Counting objects: 5239592, done. remote: Compressing objects: 100% (764014/764014), done. Receiving objects: 100% (5239592/5239592), 1018.56 MiB | 11.18 MiB/s, done. remote: Total 5239592 (delta 4448248), reused 5218219 (delta 4427054) Resolving deltas: 100% (4448248/4448248), done. Checking out files: 100% (38567/38567), done. $ cd linux-at91 $ ls arch CREDITS drivers include Kbuild lib mm REPORTING-BUGS security usr block crypto firmware init Kconfig MAINTAINERS net samples sound virt COPYING Documentation fs ipc kernel Makefile README scripts toolsThe source code has been taken from the master branch which is pointing on the latest branch we use.
$ git remote add linux4sam git://github.com/linux4sam/linux-at91.git $ git remote update linux4sam Fetching linux4sam From git://github.com/linux4sam/linux-at91 * [new branch] at91-3.4-trunk_merge -> linux4sam/at91-3.4-trunk_merge * [new branch] linus2639_5series_1.x -> linux4sam/linus2639_5series_1.x * [new branch] linux-3.4.9-at91 -> linux4sam/linux-3.4.9-at91 * [new branch] linux-3.6.9-at91 -> linux4sam/linux-3.6.9-at91 * [new branch] master -> linux4sam/masterIf you want to use an other branch, you can list them and use one of them by doing this:
$ git branch -r origin/HEAD -> origin/master origin/at91-3.4-trunk_merge origin/linus2639_5series_1.x origin/linux-3.4.9-at91 origin/linux-3.6.9-at91 origin/master $ git checkout origin/linux-3.6.9-at91 -b linux-3.6.9-at91 Branch linux-3.6.9-at91 set up to track remote branch linux-3.6.9-at91 from origin. Switched to a new branch 'linux-3.6.9-at91'
$ cd linux-at91 $ ls arch/arm/configs/+(at91|sam)* arch/arm/configs/at91_dt_defconfig arch/arm/configs/at91sam9g45_defconfig arch/arm/configs/at91rm9200_defconfig arch/arm/configs/at91sam9rl_defconfig arch/arm/configs/at91sam9260_defconfig arch/arm/configs/at91x40_defconfig arch/arm/configs/at91sam9261_defconfig arch/arm/configs/sam9_l9260_defconfig arch/arm/configs/at91sam9263_defconfig arch/arm/configs/sama5d3_defconfig arch/arm/configs/at91sam9g20_defconfig $ $ make ARCH=arm <name of your SoC_defconfig> # sama5d3_defconfig for instance HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o SHIPPED scripts/kconfig/zconf.tab.c SHIPPED scripts/kconfig/zconf.lex.c SHIPPED scripts/kconfig/zconf.hash.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config #At this step, you can modify default configuration using the
menuconfig
$ make ARCH=arm menuconfigAnd build the Linux kernel image
$ make ARCH=arm CROSS_COMPILE=<path_to_cross-compiler/cross-compiler-prefix-> zImage [..] Kernel: arch/arm/boot/Image is ready Kernel: arch/arm/boot/zImage is ready
make ARCH=arm CROSS_COMPILE=<path_to_cross-compiler/cross-compiler-prefix-> uImage [..] Kernel: arch/arm/boot/Image is ready Kernel: arch/arm/boot/zImage is ready UIMAGE arch/arm/boot/uImage Image Name: Linux-3.6.9+ Created: Mon Feb 4 12:26:46 2013 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2837352 Bytes = 2770.85 kB = 2.71 MB Load Address: 20008000 Entry Point: 20008000 Image arch/arm/boot/uImage is ready
make ARCH=arm CROSS_COMPILE=<path_to_cross-compiler/cross-compiler-prefix-> dtbs [..] DTC arch/arm/boot/at91sam9g20ek.dtb DTC: dts->dtb on file "arch/arm/boot/dts/at91sam9g20ek.dts" DTC arch/arm/boot/at91sam9g20ek_2mmc.dtb DTC: dts->dtb on file "arch/arm/boot/dts/at91sam9g20ek_2mmc.dts" [..] DTC: dts->dtb on file "arch/arm/boot/dts/at91sam9m10g45ek.dts" DTC arch/arm/boot/at91sam9n12ek.dtb DTC: dts->dtb on file "arch/arm/boot/dts/at91sam9n12ek.dts" DTC arch/arm/boot/at91sam9g15ek.dtb DTC: dts->dtb on file "arch/arm/boot/dts/at91sam9g15ek.dts" DTC arch/arm/boot/at91sam9g25ek.dtb DTC: dts->dtb on file "arch/arm/boot/dts/at91sam9g25ek.dts" DTC arch/arm/boot/at91sam9g35ek.dtb DTC: dts->dtb on file "arch/arm/boot/dts/at91sam9g35ek.dts" DTC arch/arm/boot/at91sam9x25ek.dtb DTC: dts->dtb on file "arch/arm/boot/dts/at91sam9x25ek.dts" DTC arch/arm/boot/at91sam9x35ek.dtb DTC: dts->dtb on file "arch/arm/boot/dts/at91sam9x35ek.dts" DTC arch/arm/boot/sama5d31ek.dtb DTC: dts->dtb on file "arch/arm/boot/dts/sama5d31ek.dts" DTC arch/arm/boot/sama5d31ek_pda.dtb DTC: dts->dtb on file "arch/arm/boot/dts/sama5d31ek_pda.dts" DTC arch/arm/boot/sama5d33ek.dtb DTC: dts->dtb on file "arch/arm/boot/dts/sama5d33ek.dts" DTC arch/arm/boot/sama5d33ek_pda.dtb DTC: dts->dtb on file "arch/arm/boot/dts/sama5d33ek_pda.dts" DTC arch/arm/boot/sama5d34ek.dtb DTC: dts->dtb on file "arch/arm/boot/dts/sama5d34ek.dts" DTC arch/arm/boot/sama5d34ek_pda.dtb DTC: dts->dtb on file "arch/arm/boot/dts/sama5d34ek_pda.dts" DTC arch/arm/boot/sama5d35ek.dtb DTC: dts->dtb on file "arch/arm/boot/dts/sama5d35ek.dts"path_to_cross-compiler is only needed if it is not in your PATH.
$ ls arch/arm/boot/ aks-cdu.dtb at91sam9m10g45ek.dtb ethernut5.dtb sama5d33ek.dtb tny_a9g20.dtb at91sam9263ek.dtb at91sam9n12ek.dtb evk-pro3.dtb sama5d33ek_pda.dtb usb_a9260.dtb at91sam9g15ek.dtb at91sam9x25ek.dtb install.sh sama5d34ek.dtb usb_a9263.dtb at91sam9g20ek_2mmc.dtb at91sam9x35ek.dtb kizbox.dtb sama5d34ek_pda.dtb usb_a9g20.dtb at91sam9g20ek.dtb bootp Makefile sama5d35ek.dtb at91sam9g25ek.dtb compressed sama5d31ek.dtb tny_a9260.dtb at91sam9g35ek.dtb dts sama5d31ek_pda.dtb tny_a9263.dtb
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
Atmel® and others, are registered trademarks or trademarks of Atmel Corporation or its subsidiaries. ![]()
ARM® and others are registered trademarks or trademarks of ARM Ltd. Other terms and product names may be trademarks of others.
Ideas, requests, contributions ? Connect to LinksToCommunities page.