SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
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

Más contenido relacionado

Más de Linaro

Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaLinaro
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraLinaro
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaLinaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopLinaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allLinaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorLinaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMULinaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MLinaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootLinaro
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...Linaro
 

Más de Linaro (20)

Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
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...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
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-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
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-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
 

Ar mv8 status_updat_-_monday_july_8_2013

  • 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