Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Research Collaboration and Enablement
    • DesignStart
    • Education Hub
    • Innovation
    • Open Source Software and Platforms
  • Forums
    • AI and ML forum
    • Architectures and Processors forum
    • Arm Development Platforms forum
    • Arm Development Studio forum
    • Arm Virtual Hardware forum
    • Automotive forum
    • Compilers and Libraries forum
    • Graphics, Gaming, and VR forum
    • High Performance Computing (HPC) forum
    • Infrastructure Solutions forum
    • Internet of Things (IoT) forum
    • Keil forum
    • Morello Forum
    • Operating Systems forum
    • SoC Design and Simulation forum
    • 中文社区论区
  • Blogs
    • AI and ML blog
    • Announcements
    • Architectures and Processors blog
    • Automotive blog
    • Graphics, Gaming, and VR blog
    • High Performance Computing (HPC) blog
    • Infrastructure Solutions blog
    • Innovation blog
    • Internet of Things (IoT) blog
    • Operating Systems blog
    • Research Articles
    • SoC Design and Simulation blog
    • Tools, Software and IDEs blog
    • 中文社区博客
  • Support
    • Arm Support Services
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
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