====== Installing Linux using U-Boot ====== **Attention**: Use at your own risk! Do not try if no JTAG debugger is available and/or nobody can use it. ===== Linux kernel ===== Start the TQMa35 and then stop the bootloader U-Boot. U-Boot 2010.06-00005-gb029844 (May 11 2011 - 15:34:02) CPU: Freescale i.MX35 at 532 MHz Board: TQMa35 [2.0 [RST] I2C: ready DRAM: 256 MiB Flash: 32 MiB In: serial Out: serial Err: serial MMC: FSL_ESDHC: 0, FSL_ESDHC: 1 Net: FEC0, smc911x-0 Hit any key to stop autoboot: 0 MX35 U-Boot > The Linux kernel is downloaded over the network via TFTP. The memory address ''$loadaddr'' is set to ''0x80800000'' by default. There, the kernel is loaded. This address is in the RAM. MX35 U-Boot > tftp ${loadaddr} uImage_2.6.34.9_tqma35.0101 Now you have to copy the kernel to the flash memory. Before the memory must be erased. The variable ''$kernel_addr'' contains the address of the kernel in the flash, the variable ''$filesize'' contains the size of the file accessed by the last TFTP command. The command ''erase'' erases as much of the flash memory as is required for the new kernel. MX35 U-Boot > erase ${kernel_addr} +${filesize} The kernel is copied to the intended location with the command ''cp.b''. MX35 U-Boot > cp.b ${loadaddr} ${kernel_addr} ${filesize} The kernel image in the flash can be checked with the command ''imls'': MX35 U-Boot > imls Legacy Image at A0080000: Image Name: Linux-2.6.34.9-00023-gb0fc99a Created: 2011-05-04 12:02:23 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2194392 Bytes = 2.1 MiB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK ===== RootFS ===== The rootfs is also loaded to ''$loadaddr'' via TFTP. MX35 U-Boot > tftpboot ${loadaddr} rootfs.jffs2.0008 The flash memory is erased and the rootfs is written to address ''$ramdisk_addr''. MX35 U-Boot > erase MX35 U-Boot > cp.b ${loadaddr} ${ramdisk_addr} ${filesize} The appropriate MTD parameters have to be passed to the Linux kernel. These are saved in an U-Boot environment variable. MX35 U-Boot > setenv mtdparts 'mtdparts=physmap-flash.0:256k(u-boot),256k(env),2560k(kernel),29M(jffs2),-(user)' MX35 U-Boot > setenv jffsargs ${jffsargs} ${mtdparts} MX35 U-Boot > saveenv Now the boot method ''flash_jffs'' can be set as the standard boot method: MX35 U-Boot > setenv bootcmd ${flash_jffs} MX35 U-Boot > saveenv ===== Sources ===== * http://www.denx.de/wiki/DULG/Manual