This page describes how to verify boot from SATA on Huawei D01 board.

General Guide

"Boot from SATA" in this context means UEFI to launch EFI-stub'ed zImage from SATA disk.


  1. partition the disk to MBR. create a FAT partition.
  2. copy zImage and device tree blob to this partition.
  3. boot the board.
  4. Press 's' to Start Boot Menu.
  5. Press 'c' to select [c] Shell. You will see something like this

    UEFI Interactive Shell v2.0
    EDK II
    UEFI v2.40 (ARM D01 EFI May  9 2014 10:43:52, 0x00000000)
  6. Command sequence to launch zImage:

    Shell> FS0:
    FS0:\> ls
    Directory of: FS0:\
    05/09/2014  02:28           2,665,312  zImage_lt-d01
    05/09/2014  02:28               3,438  hip04-d01.dtb
    01/01/1980  00:00 <DIR>         1,536  boot
              2 File(s)   2,668,750 bytes
              1 Dir(s)
    FS0:\> zImage_lt-d01 dtb=hip04-d01.dtb console=ttyS0,115200 root=/dev/sda2 rw earlyprintk
    EFI stub: Booting Linux Kernel...

    Note: Attached here a reference booting log. minicom_sata.cap

    Note: only FAT partition is recognizable so far.

Source Code and Pre-build Binaries


Please use this branch to get source code:

How to build:

 export ARCH=arm
 make O=../ hip04_defconfig
 make O=../ -j16 zImage
 make O=../ hip04-d01.dtb

Pre-build binaries:


Please use this branch to get source code:

Pre-build binaries:


FAT (MBR) Partitioned Disk

fdisk, to create a "Win95" type of partition. Eg.

Command (m for help): p

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x90465146

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41945087    20971520    b  W95 FAT32


GPT Partitioned Disk


Boards/D01/UEFI_Boot_from_SATA (last modified 2014-08-06 03:36:29)