Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ass:laboratoare:02:tasks:03 [2025/08/03 10:00]
florin.stancu removed
— (current)
Line 1: Line 1:
-==== 03. Booting Linux from the FIT image ==== 
- 
-<note important>​ 
-There is a possibility that loading your FIP with the TechNexion fork of **uuu** will not work. If so, use the mainline **uuu** (that you've been using in the previous session) for booting your system and the fork from the previous task for flashing the eMMC. 
-</​note>​ 
- 
-=== Task A - List eMMC partition contents === 
- 
-First things first: let's check if the flashing process was succesful. Reload your FIP using **uuu** and get back into the U-Boot shell. 
- 
-<​code>​ 
-u-boot=> # list MMC devices (or rather, the slots) 
-u-boot=> mmc list 
-FSL_SDHC: 0 (eMMC) 
-FSL_SDHC: 1 
- 
-u-boot=> # select MMC device 0 
-u-boot=> mmc dev 0 
-switch to partitions #0, OK 
-mmc0(part 0) is current device 
- 
-u-boot=> # show partitions on currently selected MMC device 
-u-boot=> mmc part 
- 
-Partition Map for MMC device 0  --   ​Partition Type: DOS 
- 
-Part    Start Sector ​   Num Sectors ​    ​UUID ​           Type 
-  1     ​20480 ​          ​184320 ​         5a0f642d-01 ​    83 
-  ​ 
-u-boot=> # show contents of / directory on MMC device 0, partition 1 
-u-boot=> # assuming that the partition in question is FAT 
-u-boot=> fatls mmc 0:1 
- ​72709475 ​  ​linux.itb 
- 
-1 file(s), 0 dir(s) 
-</​code>​ 
- 
-=== Task B - Load the FIT image in RAM === 
- 
-In order for U-Boot to parse the FIT image and extract its components at their respective ''​load''​ addresses, we first need to bring the entire FIT image in main memory (use the ''​load''​ or ''​fatload''​ command for this). Choose a load address where the FIT image will not overlap with any of the three components when unpacked, or with the relocated **bl33** code, e.g. ''>​= 50000000''​. 
- 
-<note tip> 
-Run ''​help load''​ for syntax. 
-</​note>​ 
- 
-=== Task C - Investigate contents of FIT image === 
- 
-This step is optional, but gives us the chance to see how U-Boot can parse a DTB file and extract its information. In the following example we assume that you've loaded the FIT image at address ''​0x 8000 0000''​ (i.e.: 2GB, 1GB offset in RAM): 
- 
-<​code>​ 
-u-boot=> # mark 0x 8000 0000 as the starting address of a device tree 
-u-boot=> fdt addr 0x80000000 
- 
-u-boot=> # show contents of specific nodes in the RAM-based DTB 
-u-boot=> fdt list / 
-/ { 
-        timestamp = <​0x64b55028>;​ 
-        description = "ASS - Linux FIT image for Pico Pi"; 
-        #​address-cells = <​0x00000001>;​ 
-        images { 
-        }; 
-        configurations { 
-        }; 
-}; 
- 
-u-boot=> fdt list /​configurations 
-configurations { 
-        default = "​normal-boot";​ 
-        normal-boot { 
-        }; 
-}; 
- 
-u-boot=> fdt list /​configurations/​normal-boot 
-normal-boot { 
-        description = "​Normal boot config";​ 
-        kernel = "​kernel";​ 
-        fdt = "​fdt";​ 
-        ramdisk = "​initrd";​ 
-}; 
-</​code>​ 
- 
-<note important>​ 
-Be careful not to list the contents of specific image nodes, such as ''/​images/​kernel''​. The ''​fdt list''​ command will print out the entire ''​data''​ attribute, meaning it will dump the entire kernel image to serial output. 
-</​note>​ 
- 
-=== Task D - Boot Linux from the FIT image === 
- 
-Use the ''​bootm <​your_itb_addres>''​ command, passing it the starting address of the FIT image. \\ 
- 
-And now things get interesting... 
- 
  
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0