Updating uboot

The SPL gets loaded by the bootrom into the So C's SRAM, executes and initializes the DDR RAM according to module type, then it loads U-Boot to DDR and executes it.

The Recovery Mode still uses a conventional U-Boot.

Thus one usually needs to compile and deploy the kernel modules together with the kernel in order to use them.

updating uboot-39

The latest Linux images are available at: As an example we'll use U-Boot compilation for some modules needs a device tree compiler (DTC) of version 1.3 or higher to be installed and executable.

Ubuntu 12.04 LTS (Precise Pangolin) and later provide a version which is recent enough: Alternatively, one can use the tools built with an Open Embedded build. You need some basic build tools to compile the kernel.

This article describes how-to build the U-Boot boot loader and the Linux kernel directly without using a higher level build system such as Open Embedded.

This mostly makes sense during U-Boot or Linux development.

Linaro releases well tested binary toolchains which can be used to cross compile software for our modules (choose gcc-linaro-5.2-2015.11-2-x86_64_xz): https://releases.linaro.org/components/toolchain/binaries/5.2-2015.11-2/arm-linux-gnueabihf/ Beginning with image V2.0, we transitioned to using the hard-float ABI: https://releases.linaro.org/archive/14.11/components/toolchain/binaries/ Note: Since the 14.11 release Linaro only provides x86_64 toolchains.

If you use 32-bit Linux on your host machine (check using uname -m), you can still download the older 14.09 release which is still 32-bit: https://releases.linaro.org/archive/14.09/components/toolchain/binaries/ To install the toolchain on your host machine, unpack the cd wget -c https://releases.linaro.org/components/toolchain/binaries/5.2-2015.11-2/arm-linux-gnueabihf/gcc-linaro-5.2-2015.11-2-x86_64_xz tar xvf gcc-linaro-5.2-2015.11-2-x86_64_xz ln -s gcc-linaro-5.2-2015.11-2-x86_64_arm-linux-gnueabihf gcc-linaro The U-Boot and Linux makefiles use the environment variables ARCH/CROSS_COMPILE to configure and call the compiler correctly.

1) The binary needs to be linked to an address were it eventually gets loaded and executed. set CONFIG_STANDALONE_LOAD_ADDR to your choosen address. 2) U-Boot and the standalone application must be compiled for the same ARM instruction set (arm vs. If you build both binaries from the same configured U-Boot tree that is inherently so.

3) If the binaries are built for thumb then one has to set the LSB in the address given to the go command. if the entry point is 0x12000000 then one has to start with 'go 12000001'.

Therefore, these environment variables must be exported in any shell instance that will run configure/compile commands to build U-Boot or Linux for the target module.

Tags: , ,