Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Open Source Software and Platforms
Open Source Software and Platforms
Wiki Booting OpenEmbedded using EDK II UEFI
  • Help
  • Jump...
  • Cancel
  • About this wiki
  • Supported platforms
  • Obtaining support
  • +Arm Reference Platforms deliverables
  • +A-class platforms
  • +M-class platforms
  • +R-class platforms
  • +FPGA prototyping boards
  • -Open source software
    • +Linux/Android
    • +Trusted Firmware-A
    • Trusted Firmware-M
    • -EDK II UEFI
      • Booting OpenEmbedded using EDK II UEFI
      • Debug EDK II UEFI on RD-N2 FVP with Arm Development Studio
      • TFTP (remote/network kernel) boot using EDK II UEFI
    • OP-TEE
    • +U-Boot
    • Robotics
    • Mbed OS
    • +SCP

Booting OpenEmbedded using EDK II UEFI

Note: These instructions assume you are using the Juno platform; it should be relatively trivial to adapt them to other platforms too.

Follow the instructions here to select a prebuilt OpenEmbedded configuration. This will download board firmware to a subdirectory in your workspace and will also place a filesystem image in the root of your workspace.

Burn this filesystem image to a USB stick, for example using `dd', then remount the USB stick so that you can see its `boot' and `rootfs' partitions on your host PC.

Delete everything in the `boot' partition of the USB stick.

From the subdirectory in your workspace containing the downloaded board firmware, copy these two files to the `boot' partition of the USB stick:

  • `/SOFTWARE/Image'
  • `/SOFTWARE/juno[-r1|-r2].dtb'

Note: For the second file, copy the file corresponding to your revision of the Juno board, i.e. `juno.dtb' fo r0, `juno-r1.dtb' for r1, or `juno-r2.dtb' for r2.

Next create a new EDK II UEFI startup script for Linux in the `boot' partition of the USB stick:

$ printf "Image dtb=juno[-r1|-r2].dtb initrd=ramdisk.img console=ttyAMA0,115200n8 root=/dev/sda2 rw rootwait earlyprintk=pl011,0x7ff80000 debug user_debug=31 androidboot.hardware=juno loglevel=9 sky2.mac_address=0xAA,0xBB,0xCC,0xDD,0xEE,0xFF" > startup.nsh

Note: Replace `juno[-r1|-r2].dtb' with the name of the second file that you copied earlier.

Issue a `sync' command on your host PC, remove the USB stick, insert it into the Juno, and power cycle the board.

UEFI should now boot the Linux kernel after its automatic countdown completes.

You can also manually invoke the startup script, for example if the USB stick is identified as `FS2' in your EDK-II UEFI environment:

Shell> FS2:\startup.nsh
  • UEFI
  • Share
  • History
  • More
  • Cancel
Related
Recommended