The Juno platform provides an environment for developing ARMv8 SoC designs.

Supported variants:

  • Juno r0: 2x Cortex-A57 r0p0, 4x Cortex-A53 r0p0
  • Juno r1: 2x Cortex-A57 r0p1, 4x Cortex-A53 r0p3
  • Juno r2: 2x Cortex-A72 r0p0, 4x Cortex-A53 r0p3

For detailed information, see the Juno platform site.

ARMv8 Cortex-A
ARM Cortex-A

Install to a USB drive

Replace sdX in the following instructions with the device name for the USB drive as it appears on your computer.

  1. Zero the beginning of the USB drive:
    dd if=/dev/zero of=/dev/sdX bs=1M count=8
  2. Start parted to partition the USB drive:
    parted /dev/sdX
  3. At the parted prompt, type the following commands to create an ESP partition and root partition:
    (parted) mklabel gpt                                                      
    (parted) mkpart ESP fat32 1MiB 513MiB
    (parted) set 1 boot on                                                    
    (parted) mkpart primary ext4 513MiB 100%                                  
    (parted) quit
  4. Create and mount the FAT filesystem:
    mkfs.vfat -F 32 -n "Arch Boot" /dev/sdX1
    mkdir boot
    mount /dev/sdX1 boot
  5. Create and mount the ext4 filesystem:
    mkfs.ext4 /dev/sdX2
    mkdir root
    mount /dev/sdX2 root
  6. Download and extract the root filesystem (as root, not via sudo):
    wget http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
    bsdtar -xpf ArchLinuxARM-aarch64-latest.tar.gz -C root
  7. Move boot files to the first partition:
    mv root/boot/* boot
  8. Edit root/etc/fstab and add the following line to the end:
    /dev/sda1  /boot   vfat    defaults        0       0
  9. Edit boot/startup.nsh and insert the following line, replacing juno.dtb with the correct file name for your platform:
    1. Juno r0: juno.dtb
    2. Juno r1: juno-r1.dtb
    3. Juno r2: juno-r2.dtb
    Image dtb=dtbs\arm\juno.dtb console=ttyAMA0,115200n8 root=/dev/sda2 rw rootwait
  10. Unmount the two partitions:
    umount boot root
  11. Connect the drive to one of the USB ports.

Update Firmware

  1. Connect to top serial port (UART0) at 115200bps.
  2. Connect a USB A-to-B cable to the USB port next to the reset buttons.
  3. Apply power, and press enter to interrupt auto-boot if enabled.
  4. At the command prompt, type the following commands:
    Cmd> flash
    Flash> eraseall
    Flash> exit
    Cmd> usb_on
  5. Mount the new USB device partition, and delete all files from it.
    mount /dev/sdx1 mnt
    rm -rf mnt/*
  6. Download the latest Linaro UEFI release, and extract the zip to the mount point:
    wget http://snapshots.linaro.org/member-builds/armlt-platforms-release/41/juno-uefi.zip
    unzip juno-uefi.zip -d mnt
  7. Remove the included startup.nsh file:
    rm mnt/SOFTWARE/startup.nsh
  8. Synchronize changes and unmount the partition:
    sync; umount mnt
  9. Reboot the board:
    Cmd> reboot
  10. After reboot, the new firmware will be flashed automatically, and the UEFI firmware will start.

Configure UEFI

  1. Interrupt UEFI auto-boot by pressing escape on the serial console when prompted after the UEFI firmware starts.
  2. Arrow down to Boot Maintenance Manager and press enter.
  3. Press enter on Boot Options.
  4. Arrow down to Change Boot Order and press enter.
  5. Press enter on the boot order list.
  6. Arrow down to UEFI Shell and press + until the entry is at the top, then press enter to exit.
  7. Press F10 then y to save the boot order.
  8. Press escape three times to get back to the main menu.
  9. Arrow down to Continue and press enter to boot the system.
  10. Logging in:
    1. From the serial console, the default root password is "root"
    2. An ethernet connection (front port) will be automatically assigned an IP. SSH in with the user/pass alarm/alarm. SSH as root with a password is disabled by default.

Copyright ©2009-2022 Arch Linux ARM
The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis.
The Arch Linux™ name and logo are used under permission of the Arch Linux Project Lead.