From Fedora Project Wiki
Line 27: Line 27:
В частности: В старших моделях процессоров ARM (до ARM v7 "Application Profile"), математический сопроцессор (FPU - floating point unit, чаще называют векторный математический сопроцессор или "VFP - vector floating point") был как опция. И аргументы функции передавались через регистры процессора или стек. Однако, математический сопроцессор стал полностью доступен, перемещать значения с плавющей точкой в регистры математического сопроцессора через регистры процессора и обратно стало накладно, и сводило на нет приемущества аппаратного математического вычисления. Когда математический сопроцессор стал обязательной состовляющей ARMv7,  имело смысл перейти на работу с его регистрами напрямую. Это бинарно (ABI) несовместимые изменения, так программы которые успешно передовали значения чере регистры процессора, не могли этого делать с помощью библиотек работающих с регистрами математического сопроцессора (и наоборот).
В частности: В старших моделях процессоров ARM (до ARM v7 "Application Profile"), математический сопроцессор (FPU - floating point unit, чаще называют векторный математический сопроцессор или "VFP - vector floating point") был как опция. И аргументы функции передавались через регистры процессора или стек. Однако, математический сопроцессор стал полностью доступен, перемещать значения с плавющей точкой в регистры математического сопроцессора через регистры процессора и обратно стало накладно, и сводило на нет приемущества аппаратного математического вычисления. Когда математический сопроцессор стал обязательной состовляющей ARMv7,  имело смысл перейти на работу с его регистрами напрямую. Это бинарно (ABI) несовместимые изменения, так программы которые успешно передовали значения чере регистры процессора, не могли этого делать с помощью библиотек работающих с регистрами математического сопроцессора (и наоборот).


=== Currently-Supported ARM Architectures ===
=== Поддерживаемые на данный момент архитектуры ARM ===


'''armv7hl''' -  32-bit, little-endian, hfp for ARM v7 processors. Supported from F15 onwards.
'''armv7hl''' -  32-bit, little-endian, hfp для процессоров ARM v7. Поддрерживается F15 и выше.


'''armv5tel''' - 32-bit, little-endian, sfp for ARM v5 to v7 processors. Supported until F18 (including F18 updates).
'''armv5tel''' - 32-bit, little-endian, sfp для процессоров ARM v5 to v7. Поддрерживается до F18 (включая одновления для F18).


(Community builds: Seneca is building for the armv6hl architecture specifically for the [[Architectures/ARM/F18/Remixes#Raspberry_Pi Raspberry Pi]])
(Сборки учаснков: Seneca сборка для архитектуры armv6hl специально для [[Architectures/ARM/F18/Remixes#Raspberry_Pi Raspberry Pi]])


=== Future ARM Architectures ===
=== Future ARM Architectures ===

Revision as of 08:56, 12 August 2013

Secret Decoder Ring

Переходим на ARM ? - Secret decoder ring для пользователей Fedora желающих больше узнать о проекте Fedora на процессорах ARM.

Введение

Процессоры архитектуры ARM являются наиболее распространённой в мире; исторически начали использоваться в сотовых телефонах и встроенных устройствах, всё чаще находят своё применение в планшетах и серверах с низким энергопотреблением.

Проект Fedora-ARM нацелен на работу проекта Fedora с данным семейство процессоров.

Почему ARM?

  • Низкое энергопотребление / Большее КПД
  • Высокоуровневая аппаратная интеграция -- конструкция "однокристальной системы", с уменьшенным пространством и требованием к охлаждению
  • Доступность от различных поставщиков
  • Низкая стоимость

Почему проект Fedora заботится о ARM?

  • Новые технологии (как основная цель вычислительные платформы)
  • Растущая база пользователей

Понимание ARM

  • История архитектуры ARM - here
  • Различаия в процессорах ARM - here

Программная или аппаратная обработка чисел с плавающей точкой

Fedora на данный момент предлагает два решения для ARM - 'arm(sfp)' и 'armhfp'. Каждое определяет как значения с плавающей точкой передаются функциям, посредством регистров процессора (sfp) или посредством регистров математического сопроцессора (hfp); Однако оба варианта API могут использовать математический сопроцессор для арифметических вычислений.

В частности: В старших моделях процессоров ARM (до ARM v7 "Application Profile"), математический сопроцессор (FPU - floating point unit, чаще называют векторный математический сопроцессор или "VFP - vector floating point") был как опция. И аргументы функции передавались через регистры процессора или стек. Однако, математический сопроцессор стал полностью доступен, перемещать значения с плавющей точкой в регистры математического сопроцессора через регистры процессора и обратно стало накладно, и сводило на нет приемущества аппаратного математического вычисления. Когда математический сопроцессор стал обязательной состовляющей ARMv7, имело смысл перейти на работу с его регистрами напрямую. Это бинарно (ABI) несовместимые изменения, так программы которые успешно передовали значения чере регистры процессора, не могли этого делать с помощью библиотек работающих с регистрами математического сопроцессора (и наоборот).

Поддерживаемые на данный момент архитектуры ARM

armv7hl - 32-bit, little-endian, hfp для процессоров ARM v7. Поддрерживается F15 и выше.

armv5tel - 32-bit, little-endian, sfp для процессоров ARM v5 to v7. Поддрерживается до F18 (включая одновления для F18).

(Сборки учаснков: Seneca сборка для архитектуры armv6hl специально для Architectures/ARM/F18/Remixes#Raspberry_Pi Raspberry Pi)

Future ARM Architectures

aarch64 - 64-bit (little-endian and hfp are assumed) for ARMv8+ processors. This is currently being bootstrapped.

ARM Form Factors

Being the most popular architecture in the world, ARM processors can be found in a variety of form factors that include:

  • Tablets/Notebooks (Google Chromebook)
  • Development Boards (Pandaboard, Beagleboard, Trimslice)
  • Hyperscale Server Systems (Calxeda Highbank)

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.

  • Additional information on U-Boot

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.

  • There are many variations of U-Boot which includes - 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

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

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

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

The Future of Fedora and the ARM Architecture

Promotion to a Primary Architecture

ARM is currently considered a Secondary Architecture in Fedora and would greatly benefit from being promoted to a primary architecture, a detailed draft proposal can be found here.

Future Boot Options

  • Grub2

Standards and Engineering Bodies