ZYBOでu-bootからベアメタルのアプリケーション(.elf)を実行する

u-boot起動

Zynq> mmc
mmc - MMC sub system

Usage:
mmc info - display info of the current MMC device
mmc read addr blk# cnt
mmc write addr blk# cnt
mmc erase blk# cnt
mmc rescan
mmc part - lists available partition on current mmc device
mmc dev [dev] [part] - show or set current mmc device [partition]
mmc list - lists available devices
mmc hwpartition [args...] - does hardware partitioning
  arguments (sizes in 512-byte blocks):
    [user [enh start cnt] [wrrel {on|off}]] - sets user data area attributes
    [gp1|gp2|gp3|gp4 cnt [enh] [wrrel {on|off}]] - general purpose partition
    [check|set|complete] - mode, complete set partitioning completed
  WARNING: Partitioning is a write-once setting once it is set to complete.
  Power cycling is required to initialize partitions after set to complete.
mmc setdsr <value> - set DSR register value

Zynq> mmc info
Device: sdhci@e0100000
Manufacturer ID: 74
OEM: 4a60
Name: USD
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.5 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes

Zynq> mmc part

Partition Map for MMC device 0  --   Partition Type: DOS

Part    Start Sector    Num Sectors     UUID            Type
  1     18432           40960           ad2be2fb-01     0b
  2     59392           1572864         ad2be2fb-02     83
  3     2048            16384           ad2be2fb-03     83 Boot

Zynq> fatload mmc 0:1 0x1000000 hello_world
reading hello_world
80188 bytes read in 27 ms (2.8 MiB/s)

Zynq> bootelf 0x1000000
CACHE: Misaligned operation at range [0c100000, 0c1001f4]
CACHE: Misaligned operation at range [0c1001f4, 0c10027e]
## Starting application at 0x0c100000 ...
Example expects ABI version 9
Actual U-Boot ABI version 9
Hello World
argc = 1
argv[0] = "0x1000000"
argv[1] = "<NULL>"
Hit any key to exit ...

## Application terminated, rc = 0x0