1. SATA usage in U-Boot There are two ways to operate the hard disk * Read/write raw blocks from/to SATA hard disk * ext2load to read a file from ext2 file system 1.0 How to read the SATA hard disk's information? => sata info SATA device 0: Model: ST3320620AS Firm: 3.AAD Ser#: 4QF01ZTN Type: Hard Disk Supports 48-bit addressing Capacity: 305245.3 MB = 298.0 GB (625142448 x 512) 1.1 How to raw write the kernel, file system, dtb to a SATA hard disk? Notes: Hard disk sectors are normally 512 bytes, so 0x1000 sectors = 2 MBytes write kernel => tftp 40000 /tftpboot/uImage.837x => sata write 40000 0 2000 write ramdisk => tftp 40000 /tftpboot/ramdisk.837x => sata write 40000 2000 8000 write dtb => tftp 40000 /tftpboot/mpc837xemds.dtb => sata write 40000 a000 1000 1.2 How to raw read the kernel, file system, dtb from a SATA hard disk? load kernel => sata read 200000 0 2000 load ramdisk => sata read 1000000 2000 8000 load dtb => sata read 2000000 a000 1000 boot => bootm 200000 1000000 2000000 1.3 How to load an image from an ext2 file system in U-Boot? U-Boot doesn't support writing to an ext2 file system, so the files must be written by other means (e.g. linux). => ext2ls sata 0:1 / <DIR> 4096 . <DIR> 4096 .. <DIR> 16384 lost+found 1352023 uImage.837x 3646377 ramdisk.837x 12288 mpc837xemds.dtb 12 hello.txt => ext2load sata 0:1 200000 /uImage.837x => ext2load sata 0:1 1000000 /ramdisk.837x => ext2load sata 0:1 2000000 /mpc837xemds.dtb => bootm 200000 1000000 2000000