Architectures/ARM/Secret Decoder Ring

From FedoraProject

< Architectures | ARM
Revision as of 19:20, 28 March 2013 by Ctyler (Talk | contribs)

Jump to: navigation, search


Secret Decoder Ring

Moving to ARM - A secret decoder ring for Fedora users wishing to learn more about Fedora on ARM processors.


ARM chips are the most widely-produced processor family in the world; they have historically been used in cell phones and embedded applications, but were originally designed as desktop processors, and are increasingly used in tablet devices and low-power-consumption servers.

The Fedora-ARM project is an initiative to bring Fedora to this processor family.

Why ARM?

  • Low Power Consumption / Better efficiencies
  • High levels of device integration -- "system on a chip" designs, with reduced space and cooling requirements
  • Readily available from multiple vendors
  • Low cost

Why does Fedora care about ARM?

  • Emerging technology (as a general purpose computing platform)
  • Growing user base

Understanding ARM

  • The history of the ARM architecture - here
  • Different ARM cores - here

Software floating point vs. Hardware floating point

Fedora currently offers two flavours of ARM - 'arm(sfp)' and 'armhfp'. This is a reference to the floating point coprocessor used to perform mathematical computations. This can be done in software (sfp), or in hardware (hfp) - with hardware offering a significant performance increase.

Early ARM chips (prior to ARM v7 "Application Profile"), the floating point unit (VFP) was optional. Therefore, function arguments were passed in the CPU registers or on the stack. However, when an FPU is available, moving large floating-point values from the CPU registers to the FPU registers and back again has a significant cost which negates some of the advantage of having the additional arithmetic hardware. When the FPU became mandatory with ARMv7, it made sense to pass floating-point arguments in FPU registers. This is an incompatible ABI change, and programs which pass value in the CPU registers are incompatible with libraries that pass values in the FPU registers (and vice versa).

Note that both API variants can use the FPU to perform arithmetic.

Additional ARM technologies

What is U-Boot

U-Boot -the Universal Boot Loader is the firmware used on embedded systems such as ARM, MIPS and Embedded Power architectures. It performs the task of other bootloader's by loading the Linux kernel and operating system into memory for execution, but is also responsible for hardware initialization comparable to the BIOS on X86 hardware.

Why U-Boot?

The Basic Input/Output System (BIOS) is exclusively available on x86 systems and performs a variety of tasks outside of just loading the kernel into memory. While BIOS on ARM is feasible, development costs exceed the potential benefits and ARM systems use the faster bootloader approach. The Unified Extensible Firmware Interface (UEFI) is replacing the BIOS on modern computers and is also compatible with the ARM architecture.

  • Different versions of U-Boot - vboot, aboot, hboot

Generating addresses for kernel/initrd/dtb

Quick Start

What's the quickest way to get Fedora on my device?

Download the pre-built images corresponding to your device and following the instructions for writing the image to your media.

Platforms supported by Fedora

For virtualization through QEMU:

Platforms supported by Fedora Remixes

Once my device is running Fedora, how do I get developing/contributing to Fedora ARM?

Understanding the Fedora tools


Koji is the software that builds RPM packages for the Fedora project. It uses Mock to create chroot environments to perform builds. To download the source code, report bugs, join the mailing list etc., see the Koji project website .


Koji-Shadow is a script that is used by secondary architectures to 'follow' package builds performed on the primary architecture (PA) [Koji instance]. When a build is submitted on PA, the script will pick it up and submit the build for completion on the secondary architecture. This ensures secondary architectures build the same packages used in primary within a reasonable time frame, developers need to only submit their package once, and it is propagated to all secondary architectures running Koji-Shadow. Koji-Shadow is included in the 'koji-utils' package.

More information on Koji


Bodhi pronounced as bo-dee is a buddhist term for the wisdom by which one attains enlightenment. Bodhi is a modular web-based system that facilitates the process of publishing package updates for Fedora. It maintains a single stage of repositories by adding/updating/removing packages.

  • For more information on Bodhi