ti816x Linux Kernel
Table of Contents
Make kernel
clean
make mrproper make clean
make
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm ti8168_evm_defconfig To view configuration interactively: make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm menuconfig make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm uImage make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm modules make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm INSTALL_MOD_PATH=/home/testbed/targetfs modules_install
Auto detection of Kernel Load Address and Run Time RAM Base Determination
By default, the DM81xx kernel is built to be loaded at physical address 0x80008000 in RAM and take start of RAM as 0x80000000.
It is possible to load the kernel at a different location in RAM with kernel automatically determining RAM base depending upon the load address. This is achieved by the combination of two features added the kernel:
- Run time PHYSOFFSET determination: This feature enables determining physical to virtual translations
dynamically depending upon the position of kernel in system memory.
- Auto calculation of address for uncompressed kernel: This feature enables the compressed kernel entry code (part
of kernel zImage) to determine the address to uncompress the kernel depending upon the location it is loaded (started from).
- Method 1
BUILDHOST$ make ARCH=arm ti8168_evm_defconfig BUILDHOST$ make ARCH=arm zImage Here we use 0x90008000 as the kernel load address and entry point BUILDHOST$ mkimage -A arm -O linux -T kernel -C none -a 0x90008000 -e 0x90008000 -n 'Linux-2.6.37' -d arch/arm/boot/zImage uImage
- Alternate Method: Single Step Build
zreladdr-y=<desired-load-address> to make when building the uImage. BUILDHOST$ make ARCH=arm zreladdr-y=0x90008000 uImage
Misc
Kernel - Common Problems Booting Linux
filesystem
Using The Correct Console Device
update the /etc/inittab
file in the filesystem used for kernel
S:2345:respawn:/sbin/getty 115200 ttyS2 by, S:2345:respawn:/sbin/getty 115200 ttyO2