SlideShare a Scribd company logo
1
AArch64 Linux Update
Catalin Marinas
Linaro Connect – Dublin 2013
2
Current Status
 KVM merged for 3.11
 Marc Zyngier maintainer
 Supporting both AArch64 and AArch32 guests
 Hardware-assisted Stage 2 MMU translation, generic timers, GIC
 kvmtool
 Xen merged for 3.11
 Stefano Stabellini (Citrix) maintainer
 Hugetlbfs, transparent huge pages merged
 Code sharing with x86
 SMP booting protocols
 Spin-table
 PSCI (Power State Coordination Interface)
3
Current Status (2)
 SoC support for ARMv8 software models
 Versatile Express like
 Code under drivers/
 GIC shared with arch/arm/ and secondary CPU interface initialisation
via CPU notifiers
 Generic timers shared with arch/arm/
 Vexpress reset moved to drivers/power/reset/
 Still no DT-aware CLCD driver in mainline
 Initial support for Applied X-Gene SoC
 .dts file under arch/arm64/
 Code under drivers/ being pushed via corresponding maintainers
 soc-armv8-model branch no longer needed (unless CLCD
support for ARMv8 models is required)
4
New Developments
 Power management (cpuidle), CPU hotplug
 Based on PSCI firmware calls
 Support for new ARM IP
 Processors (Cortex-A53/A57)
 GICv3 (> 8 CPUs)
 SMMU
 PCIe
 Scope for code sharing with PowerPC/MIPS/AArch32
 Optimisations [Linaro]
 Linux klib (memcpy etc.) based on the Cortex Strings library
 Debugging [Linaro]
 kprobes, uprobes, ftrace, kgdb
 Kexec, kernel crashdump [Linaro]
5
New Developments (2)
 UEFI run-time services [Linaro]
 ACPI [Linaro]
 New SoCs
 Mainly under drivers/
 CPU topology, caches
 Current development for AArch32
 KVM
 PMU support [ARM/Linaro]
 VFIO support [ARM/Linaro]
 Live migration [Linaro]
 GICv3 (> 8 vCPUs)
 IOMMU API extensions
 Stage 2 translation
6
New Developments (3)
 Ticket spinlocks
 Optimised ASID allocator
 Tagged pointers
 Top 8-bit used as a tag in user-space pointers
 ILP32
7
Enabling SoCs for AArch64
 Pre-Linux (firmware, boot loader) requirements
 Requirements in Documentation/arm64/booting.txt
 Device tree required
 Linux (all CPUs) entered at EL2 for virtualisation support
 PSCI (Power State Coordination Interface) strongly recommended
 It may not possible on CPUs without EL3 (alternative spin-table
method for booting secondary CPUs)
 CPUs, enable-method described via DT
 cpu_logical_map populated from DT
 Standard devices (described via DT)
 GIC (v2, v3)
 Generic timers (compatible = “arm,armv8-timer”)
 Timer frequency specified either via DT or in register
(CNTFRQ_EL0, usually set by firmware)
8
Enabling SoCs for AArch64 (2)
 Clock drivers
 Code under drivers/clk/
 Use CLK_OF_DECLARE() and corresponding DT entries
 of_clk_init() called from arm64_device_init() (arch_initcall)
 of_platform_populate() used for additional devices
 Called from arm64_device_init() (arch_initcall)
 Early printk support
 Assuming UART port initialised by firmware prior to Linux
 Simple “printch” function in arch/arm64/kernel/early_printk.c
 Command line argument: earlyprintk=<name>[,<addr>][,<options>]
 Other device drivers
 Preferably loadable modules unless essential for booting
9
Enabling SoCs for AArch64 (3)
 Multi-platform mandatory
 No ARCH_* in arch/arm64/Kconfig
 Drivers Kconfig entries dependent on ARM64
 Existing ARCH_* entries to be removed
 arch/arm64/configs/defconfig enables all supported SoCs
 DTS files go under arch/arm64/boot/dts/
 Similar to the AArch32 SoC requirements
 “Your new ARM SoC Linux support check-list” (Thomas Petazzoni)
http://elinux.org/images/a/ad/Arm-soc-checklist.pdf
 But without arch/arm64/mach-*/ directories

More Related Content

PPTX
Unit vi (2)
PPTX
Unit vi (1)
PDF
ARM architcture
PDF
1: Interfacing using ARM Cortex M4 || IEEE SSCS AlexSC
PDF
02 : ARM Cortex M4 Specs || IEEE SSCS AlexSC
PDF
ARM AAE - Memory Systems
PPTX
ARM Processor architecture
PDF
Unit II Arm 7 Introduction
Unit vi (2)
Unit vi (1)
ARM architcture
1: Interfacing using ARM Cortex M4 || IEEE SSCS AlexSC
02 : ARM Cortex M4 Specs || IEEE SSCS AlexSC
ARM AAE - Memory Systems
ARM Processor architecture
Unit II Arm 7 Introduction

What's hot (20)

PDF
Unit II Arm7 Thumb Instruction
PPTX
Arm cortex-m3 by-joe_bungo_arm
PPTX
Ec8791 unit 5 processes and operating systems
DOCX
Embedded systems class notes
PPTX
Ec8791 arm 9 processor
PDF
ARM AAE - Architecture
PDF
AAME ARM Techcon2013 006v02 Implementation Diversity
PPT
ARM Architecture
PPTX
EMBEDDED SYSTEM DESIGN ARM architecture support for operating system by sanj...
PPTX
Computer Organization : CPU, Memory and I/O organization
PPTX
ARM Cortex-M3 Training
PDF
CPU Architecture
PPTX
Input output in computer Orgranization and architecture
PPTX
Introduction to arm processor
PPTX
Embedded systems 101 final
PDF
COMPUTER ORGANIZATION NOTES Unit 5
PPTX
Memory protection unit
PPT
computer architecture
PPT
07 Input Output
PPTX
Direct Memory Access(DMA)
Unit II Arm7 Thumb Instruction
Arm cortex-m3 by-joe_bungo_arm
Ec8791 unit 5 processes and operating systems
Embedded systems class notes
Ec8791 arm 9 processor
ARM AAE - Architecture
AAME ARM Techcon2013 006v02 Implementation Diversity
ARM Architecture
EMBEDDED SYSTEM DESIGN ARM architecture support for operating system by sanj...
Computer Organization : CPU, Memory and I/O organization
ARM Cortex-M3 Training
CPU Architecture
Input output in computer Orgranization and architecture
Introduction to arm processor
Embedded systems 101 final
COMPUTER ORGANIZATION NOTES Unit 5
Memory protection unit
computer architecture
07 Input Output
Direct Memory Access(DMA)
Ad

Viewers also liked (12)

PPT
Raspberry-Pi
PDF
ALSF13: Xen on ARM - Virtualization for the Automotive Industry - Stefano Sta...
PPTX
Raspberry Pi presentation for Computer Architecture class
PPTX
Virtualization technology for security
PPTX
Arm's new architecture for automotive and industrial control markets
PDF
Introduction to Raspberry PI
PPTX
Arm v8 instruction overview android 64 bit briefing
PPTX
Raspberry-PI introduction
PDF
Exploring Raspberry Pi
PPT
Seminar Presentation on raspberry pi
PPT
Raspberry Pi Presentation
PPT
Raspberry pi
Raspberry-Pi
ALSF13: Xen on ARM - Virtualization for the Automotive Industry - Stefano Sta...
Raspberry Pi presentation for Computer Architecture class
Virtualization technology for security
Arm's new architecture for automotive and industrial control markets
Introduction to Raspberry PI
Arm v8 instruction overview android 64 bit briefing
Raspberry-PI introduction
Exploring Raspberry Pi
Seminar Presentation on raspberry pi
Raspberry Pi Presentation
Raspberry pi
Ad

Similar to LCA13: ARMv8 Status and Updates (20)

PPT
Flexis QE 32-bit ColdFire® V1 Microcontrollers
PDF
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
PPT
Nvidia tegra K1 Presentation
PPTX
directCell - Cell/B.E. tightly coupled via PCI Express
PDF
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
PPTX
unit 1ARM INTRODUCTION.pptx
DOCX
Assignment
PPT
Introducing i.MX233 Application Processors
PDF
SoM with Zynq UltraScale device
PDF
AAME ARM Techcon2013 004v02 Debug and Optimization
PPT
Introducing OMAP-L138/AM1808 Processor Architecture and Hawkboard Peripherals
PPT
Hardware accelerated Virtualization in the ARM Cortex™ Processors
PPTX
gpuprogram_lecture,architecture_designsn
PPT
Developing a Windows CE OAL.ppt
PPTX
ARM Versions, architecture
PPTX
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
PPT
STM32 MCU Family
PPT
Stellaris® 9000 Family of ARM® Cortex™-M3
PDF
Q4.11: ARM Architecture
PDF
ARM Architecture and Meltdown/Spectre
Flexis QE 32-bit ColdFire® V1 Microcontrollers
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
Nvidia tegra K1 Presentation
directCell - Cell/B.E. tightly coupled via PCI Express
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
unit 1ARM INTRODUCTION.pptx
Assignment
Introducing i.MX233 Application Processors
SoM with Zynq UltraScale device
AAME ARM Techcon2013 004v02 Debug and Optimization
Introducing OMAP-L138/AM1808 Processor Architecture and Hawkboard Peripherals
Hardware accelerated Virtualization in the ARM Cortex™ Processors
gpuprogram_lecture,architecture_designsn
Developing a Windows CE OAL.ppt
ARM Versions, architecture
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
STM32 MCU Family
Stellaris® 9000 Family of ARM® Cortex™-M3
Q4.11: ARM Architecture
ARM Architecture and Meltdown/Spectre

More from Linaro (20)

PDF
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
PDF
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
PDF
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
PDF
Bud17 113: distribution ci using qemu and open qa
PDF
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
PDF
HPC network stack on ARM - Linaro HPC Workshop 2018
PDF
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
PDF
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
PDF
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
PDF
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
PDF
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
PDF
HKG18-100K1 - George Grey: Opening Keynote
PDF
HKG18-318 - OpenAMP Workshop
PDF
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
PDF
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
PDF
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
PDF
HKG18-TR08 - Upstreaming SVE in QEMU
PDF
HKG18-113- Secure Data Path work with i.MX8M
PPTX
HKG18-120 - Devicetree Schema Documentation and Validation
PPTX
HKG18-223 - Trusted FirmwareM: Trusted boot
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Bud17 113: distribution ci using qemu and open qa
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-100K1 - George Grey: Opening Keynote
HKG18-318 - OpenAMP Workshop
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-113- Secure Data Path work with i.MX8M
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-223 - Trusted FirmwareM: Trusted boot

Recently uploaded (20)

PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Encapsulation theory and applications.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Approach and Philosophy of On baking technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Big Data Technologies - Introduction.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPT
Teaching material agriculture food technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Machine learning based COVID-19 study performance prediction
PDF
Network Security Unit 5.pdf for BCA BBA.
20250228 LYD VKU AI Blended-Learning.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Encapsulation theory and applications.pdf
Unlocking AI with Model Context Protocol (MCP)
Approach and Philosophy of On baking technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Spectral efficient network and resource selection model in 5G networks
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Big Data Technologies - Introduction.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Teaching material agriculture food technology
Chapter 3 Spatial Domain Image Processing.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
NewMind AI Weekly Chronicles - August'25 Week I
Machine learning based COVID-19 study performance prediction
Network Security Unit 5.pdf for BCA BBA.

LCA13: ARMv8 Status and Updates

  • 1. 1 AArch64 Linux Update Catalin Marinas Linaro Connect – Dublin 2013
  • 2. 2 Current Status  KVM merged for 3.11  Marc Zyngier maintainer  Supporting both AArch64 and AArch32 guests  Hardware-assisted Stage 2 MMU translation, generic timers, GIC  kvmtool  Xen merged for 3.11  Stefano Stabellini (Citrix) maintainer  Hugetlbfs, transparent huge pages merged  Code sharing with x86  SMP booting protocols  Spin-table  PSCI (Power State Coordination Interface)
  • 3. 3 Current Status (2)  SoC support for ARMv8 software models  Versatile Express like  Code under drivers/  GIC shared with arch/arm/ and secondary CPU interface initialisation via CPU notifiers  Generic timers shared with arch/arm/  Vexpress reset moved to drivers/power/reset/  Still no DT-aware CLCD driver in mainline  Initial support for Applied X-Gene SoC  .dts file under arch/arm64/  Code under drivers/ being pushed via corresponding maintainers  soc-armv8-model branch no longer needed (unless CLCD support for ARMv8 models is required)
  • 4. 4 New Developments  Power management (cpuidle), CPU hotplug  Based on PSCI firmware calls  Support for new ARM IP  Processors (Cortex-A53/A57)  GICv3 (> 8 CPUs)  SMMU  PCIe  Scope for code sharing with PowerPC/MIPS/AArch32  Optimisations [Linaro]  Linux klib (memcpy etc.) based on the Cortex Strings library  Debugging [Linaro]  kprobes, uprobes, ftrace, kgdb  Kexec, kernel crashdump [Linaro]
  • 5. 5 New Developments (2)  UEFI run-time services [Linaro]  ACPI [Linaro]  New SoCs  Mainly under drivers/  CPU topology, caches  Current development for AArch32  KVM  PMU support [ARM/Linaro]  VFIO support [ARM/Linaro]  Live migration [Linaro]  GICv3 (> 8 vCPUs)  IOMMU API extensions  Stage 2 translation
  • 6. 6 New Developments (3)  Ticket spinlocks  Optimised ASID allocator  Tagged pointers  Top 8-bit used as a tag in user-space pointers  ILP32
  • 7. 7 Enabling SoCs for AArch64  Pre-Linux (firmware, boot loader) requirements  Requirements in Documentation/arm64/booting.txt  Device tree required  Linux (all CPUs) entered at EL2 for virtualisation support  PSCI (Power State Coordination Interface) strongly recommended  It may not possible on CPUs without EL3 (alternative spin-table method for booting secondary CPUs)  CPUs, enable-method described via DT  cpu_logical_map populated from DT  Standard devices (described via DT)  GIC (v2, v3)  Generic timers (compatible = “arm,armv8-timer”)  Timer frequency specified either via DT or in register (CNTFRQ_EL0, usually set by firmware)
  • 8. 8 Enabling SoCs for AArch64 (2)  Clock drivers  Code under drivers/clk/  Use CLK_OF_DECLARE() and corresponding DT entries  of_clk_init() called from arm64_device_init() (arch_initcall)  of_platform_populate() used for additional devices  Called from arm64_device_init() (arch_initcall)  Early printk support  Assuming UART port initialised by firmware prior to Linux  Simple “printch” function in arch/arm64/kernel/early_printk.c  Command line argument: earlyprintk=<name>[,<addr>][,<options>]  Other device drivers  Preferably loadable modules unless essential for booting
  • 9. 9 Enabling SoCs for AArch64 (3)  Multi-platform mandatory  No ARCH_* in arch/arm64/Kconfig  Drivers Kconfig entries dependent on ARM64  Existing ARCH_* entries to be removed  arch/arm64/configs/defconfig enables all supported SoCs  DTS files go under arch/arm64/boot/dts/  Similar to the AArch32 SoC requirements  “Your new ARM SoC Linux support check-list” (Thomas Petazzoni) http://elinux.org/images/a/ad/Arm-soc-checklist.pdf  But without arch/arm64/mach-*/ directories