SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Linux on AArch64
ARM 64-bit Architecture
Catalin Marinas
LinuxCon North America 2012

1
Introduction
§  Previous ARM architecture, ARMv7, is 32-bit only
§  Cortex-* processors family
§  LPAE and virtualisation support
§  The latest ARM architecture, ARMv8, introduces 64-bit
capability alongside the existing 32-bit mode
§  First release covers the Applications processor profile
§  Addresses the need for larger virtual address space and high
performance
Targets both mobile and server markets

§ 
§  ARMv8 has two execution modes
§  AArch64 – 64-bit registers and memory accesses, new instruction set
§  AArch32 (optional) – backwards compatible with ARMv7-A
§  Few additional enhancements
2
AArch64 Overview
§  New instruction set (A64)
§  32-bit opcodes
§  Can have 32-bit or 64-bit arguments
§  Addresses assumed to be 64-bit
§  Primarily targeting LP64 and LLP64 data models
§  Only conditional branches, compares and selects
§  No LDM/STM (only pair load/store – LDP/STP)
§  Load-acquire/store-release exclusive accesses (implicit barrier)
§  Advanced SIMD and FP support
§  FP mandated by the ABI
§  Cryptography support
§  31 general purpose 64-bit registers (X0-X30)
§  PC, SP are special registers
§  Dedicated zero register (Xzr)
3
AArch64 Exception Model
Normal (non-secure) world

(TrustZone) Monitor

Hypervisor

Guest Operating System1 Guest Operating System2

EL1

App1

EL0

4

App2

App1

App2

Secure World OS

Trusted App1

Trusted App2

AArch32->AArch64 transition

Virtual Machine Monitor (VMM) or

EL2

AArch64->AArch32 transition

EL3

Secure world
AArch64 Exception Model
§  Privilege levels: EL3 – highest, EL0 – lowest
§  Transition to higher levels via exceptions
§  Interrupts, page faults etc.
§  SVC for transition to EL1 (system calls)
§  HVC for transition to EL2 (hypervisor calls)
§  SMC for transition to EL3 (secure monitor call)
§  Dedicated ELR register for the return address (banked at each EL)
§  Transition to lower levels using the ERET instruction
§  Register width cannot be higher in lower levels
§  E.g. no 64-bit EL0 with 32-bit EL1
§  Transition between AArch32 and AArch64 via exceptions
§  AArch32/AArch64 interworking not possible
§  Separate stack pointer (SP) at each EL
5
AArch64 MMU Support
§  Separate TTBR register

for user and kernel
§  Selection based on higher

§  Upper 8 bits of the

address can be configured
for Tagged Pointers
§  Linux does not currently
use them

§  Maximum 48-bit physical
address

§  2-stage translation
6

TTBR1
kernel space
Virtual Address

§ 

bits of the virtual address
Maximum 48-bit virtual
address for each TTBR

264
0xFFFF000000000000, (264 - 248 )
dependent on TCR_EL1.T1SZ

Not mapped
(Fault)

TTBR0
user space

0x0000FFFFFFFFFFFF, (248 – 1)
dependent on TCR_EL1.T0SZ

0
AArch64 MMU Support
Stage 1 translation owned by
each Guest OS

Stage 2 translation owned
by the VMM

Hardware has 2-stage memory
translation
Tables from Guest OS translate
VA to IPA
Second set of tables from VMM
translate IPA to PA
Allows aborts to be routed to
appropriate software layer

Real System Physical
address map
Virtual address map of
each App on each Guest OS

7

“Intermediate Physical” address
map of each Guest OS
AArch64 MMU Support
§  Two different translation granules: 4KB and 64KB
§  The smallest page mapping supported
§  The size of a translation table
§  Can be independently configured for TTBR0 and TTBR1
§  Number of translation tables and maximum VA range:
§  4KB and 4 levels => 48-bit VA
§  64KB and 3 levels => 48-bit VA (top table partially populated)
§  4KB and 3 levels => 39-bit VA (currently used by AArch64 Linux)
§  64KB and 2 levels => 42-bit VA
§  Large page (block) mapping supported
§  2MB and 1GB with 4KB page configuration
§  512MB with 64KB page configuration

8
AArch32 Support
§  AArch32 can be optionally present at any level
§  EL0 most likely for user application support
§  EL1 needed for 32-bit guest OS
§  Execution state change only at exception entry/return
§  No branch and link (interworking) between AArch32 and AArch64
§  Increasing EL cannot decrease register width or vice versa
§  Architected relationship between the AArch32 and AArch64
registers
§  AArch32 Rn registers accessed via corresponding AArch64 Xn
registers

9
AArch64 Linux Overview
§  New architecture port: arch/arm64/
§  Re-using generic code and data
§  asm-generic/unistd.h
§  Building requires aarch64-linux-gnu toolchain
§  No common AArch32/AArch64 toolchain
§  Support for both AArch64 and AArch32 (compat) user
applications
§  VDSO
§  Signal return code
§  Optimised gettimeofday()
§  Not fully optimised at this stage
§  Testing done on software model
10
Linux Kernel Booting
§  Linux required to run in Normal (Non-secure) mode
§  Virtualisation extensions not available in secure mode
§  Host OS must be started in EL2 mode for virtualisation
support
§  Switches to EL1 shortly after boot, the default kernel execution mode
§  Guest operating systems start in EL1
§  The Linux kernel automatically detects the exception level
§  Kernel image loaded at a pre-defined address
§  Image file header contains the relevant information
§  Standard booting protocol
§  Currently driven by FDT (mailbox address for CPU release)
§  Proposed standard secure API (SMC) for CPU boot, reset and power
management (Power State Coordination Interface)

11
Linux MMU Handling
§  39-bit virtual address for both user and kernel
§  0000000000000000-0000007fffffffff (512GB): user
§  [architectural gap]
§  ffffff8000000000-ffffffbbfffeffff (~240MB): vmalloc
§  ffffffbbffff0000-ffffffbcffffffff (64KB): [guard]
§  ffffffbc00000000-ffffffbdffffffff (8GB): vmemmap
§  ffffffbe00000000-ffffffbffbffffff (~8GB): [guard]
§  ffffffbffc000000-ffffffbfffffffff (64MB): modules
§  ffffffc000000000-ffffffffffffffff (256GB): mapped RAM
§  4KB page configuration
§  3 levels of page tables (pgtable-nopud.h)
§  Linear mapping using 4KB, 2MB or 1GB blocks
§  AArch32 (compat) supported
12
Linux MMU Handling
§  64KB page configuration
§  2 levels of page tables (pgtable-nopmd.h)
§  Linear mapping using 64KB or 512MB blocks
§  AArch32 (compat) not supported because the 32-bit ABI assumes
4KB pages

§  SPARSEMEM support
§  SPARSEMEM_VMEMMAP optimisation for virtual mapping of the
struct page array (mem_map)

§  Huge pages
§  Hugetlbfs
§  Transparent huge pages

13
Linux Exception Handling
§  SP1 register used for the kernel stack (running in EL1)
§  Default 8KB size
§  SP0 used for the user stack (running in EL0)
§  Returning to user is done with the ERET instruction
§  Registers restored from the kernel stack (pt_regs) by the return code
§  Return address automatically restored from the ELR register
§  PSTATE automatically returned from SPSR
§  Mode switching to EL0_SP0
§  AArch64/AArch32 execution state selected by the PSTATE.nRW bit
§  Kernel entered at EL1 as a result of an exception
§  Mode switching to EL1_SP1 and AArch64
§  Return address automatically saved to ELR
§  PSTATE automatically saved to SPSR
14
Linux Exception Handling
§  The general purpose registers saved onto the kernel stack (pt_regs)
by the exception entry code

§  Exceptions while in kernel similar to the user->kernel

transition
§  No mode switching (no IRQ etc. modes)
§  Using the current stack
§  Returning with ERET but to the same exception level and stack

15
AArch32 (compat) Support
§  Must support the ARMv7 Linux EABI for compat tasks
§  Different set of system calls (unistd32.h)
§  Compat user structures
§  No SWP instruction, no unaligned LDM/STM access
§  Supports both ARM and Thumb-2 32-bit user tasks
§  Supports 32-bit ptrace
§  Address space limited to 4GB
§  Emulated vectors page
§  ARM Linux EABI expects helper routines in the vectors page
accessible by user tasks

16
Platform (SoC) Support
§  Different targets: embedded systems and servers
§  FDT currently mandated for new platforms
§  ACPI may be required, especially for servers
§  Minimal platform code
§  Most code under drivers/
§  FDT for platform description
§  Standardised firmware interface
§  Booting protocol
§  SMC API for CPU power management
§  Generic (architected) timers
§  Generic interrupt controller (GIC)

17
AArch64 Linux Roadmap
§  AArch64 Linux kernel currently under public review
§  Initially only the core architecture support
§  GCC and binutils patches published
§  Collaborate with Linaro and the Linux community to bring
broader filesystem and applications support to AArch64
§  SoC support
§  Future ACPI support
§  New features
§  Huge pages
§  KVM
§  NUMA
§  Power and performance improvements
§  When hardware becomes available
18
Reference
§  AArch64 Linux Git tree
§ 

git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64.git

§  AArch64 instruction set
§ 

http://infocenter.arm.com/help/topic/com.arm.doc.genc010197a/index.html

§  AArch64 ABI (PCS, ELF, DWARF, C++)
§ 

http://infocenter.arm.com/help/topic/com.arm.doc.ihi0059a/index.html

§  Power State Coordination Interface
§ 

19

http://infocenter.arm.com/help/topic/com.arm.doc.den0022a/index.html
Questions

20

Contenu connexe

Tendances

Q4.11: ARM Architecture
Q4.11: ARM ArchitectureQ4.11: ARM Architecture
Q4.11: ARM ArchitectureLinaro
 
Linux Porting to a Custom Board
Linux Porting to a Custom BoardLinux Porting to a Custom Board
Linux Porting to a Custom BoardPatrick Bellasi
 
Linux SD/MMC device driver
Linux SD/MMC device driverLinux SD/MMC device driver
Linux SD/MMC device driver艾鍗科技
 
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)Linaro
 
Reliability, Availability and Serviceability on Linux
Reliability, Availability and Serviceability on LinuxReliability, Availability and Serviceability on Linux
Reliability, Availability and Serviceability on LinuxSamsung Open Source Group
 
PCI Express Verification using Reference Modeling
PCI Express Verification using Reference ModelingPCI Express Verification using Reference Modeling
PCI Express Verification using Reference ModelingDVClub
 
Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Linaro
 
AARCH64 VMSA Under Linux Kernel
AARCH64 VMSA Under Linux KernelAARCH64 VMSA Under Linux Kernel
AARCH64 VMSA Under Linux KernelHaifeng Li
 
Project ACRN: SR-IOV implementation
Project ACRN: SR-IOV implementationProject ACRN: SR-IOV implementation
Project ACRN: SR-IOV implementationGeoffroy Van Cutsem
 
Linux SD/MMC Driver Stack
Linux SD/MMC Driver Stack Linux SD/MMC Driver Stack
Linux SD/MMC Driver Stack Champ Yen
 
Introduction to armv8 aarch64
Introduction to armv8 aarch64Introduction to armv8 aarch64
Introduction to armv8 aarch64Yi-Hsiu Hsu
 
The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421Linaro
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLinaro
 
Software development in ar mv8 m architecture - yiu
Software development in ar mv8 m architecture - yiuSoftware development in ar mv8 m architecture - yiu
Software development in ar mv8 m architecture - yiuArm
 
HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewLinaro
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLinaro
 

Tendances (20)

Q4.11: ARM Architecture
Q4.11: ARM ArchitectureQ4.11: ARM Architecture
Q4.11: ARM Architecture
 
Linux Porting to a Custom Board
Linux Porting to a Custom BoardLinux Porting to a Custom Board
Linux Porting to a Custom Board
 
Linux SD/MMC device driver
Linux SD/MMC device driverLinux SD/MMC device driver
Linux SD/MMC device driver
 
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
 
Reliability, Availability and Serviceability on Linux
Reliability, Availability and Serviceability on LinuxReliability, Availability and Serviceability on Linux
Reliability, Availability and Serviceability on Linux
 
PCI Express Verification using Reference Modeling
PCI Express Verification using Reference ModelingPCI Express Verification using Reference Modeling
PCI Express Verification using Reference Modeling
 
Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8
 
AARCH64 VMSA Under Linux Kernel
AARCH64 VMSA Under Linux KernelAARCH64 VMSA Under Linux Kernel
AARCH64 VMSA Under Linux Kernel
 
A practical guide to buildroot
A practical guide to buildrootA practical guide to buildroot
A practical guide to buildroot
 
Project ACRN: SR-IOV implementation
Project ACRN: SR-IOV implementationProject ACRN: SR-IOV implementation
Project ACRN: SR-IOV implementation
 
Qemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System EmulationQemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System Emulation
 
Linux SD/MMC Driver Stack
Linux SD/MMC Driver Stack Linux SD/MMC Driver Stack
Linux SD/MMC Driver Stack
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
Introduction to armv8 aarch64
Introduction to armv8 aarch64Introduction to armv8 aarch64
Introduction to armv8 aarch64
 
AMBA BUS.pptx
AMBA BUS.pptxAMBA BUS.pptx
AMBA BUS.pptx
 
The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
 
Software development in ar mv8 m architecture - yiu
Software development in ar mv8 m architecture - yiuSoftware development in ar mv8 m architecture - yiu
Software development in ar mv8 m architecture - yiu
 
HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting Review
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
 

En vedette

GCC for ARMv8 Aarch64
GCC for ARMv8 Aarch64GCC for ARMv8 Aarch64
GCC for ARMv8 Aarch64Yi-Hsiu Hsu
 
ARM AAE - Memory Systems
ARM AAE - Memory SystemsARM AAE - Memory Systems
ARM AAE - Memory SystemsAnh Dung NGUYEN
 
BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 Linaro
 
Building a KVM-based Hypervisor for a Heterogeneous System Architecture Compl...
Building a KVM-based Hypervisor for a Heterogeneous System Architecture Compl...Building a KVM-based Hypervisor for a Heterogeneous System Architecture Compl...
Building a KVM-based Hypervisor for a Heterogeneous System Architecture Compl...Hann Yu-Ju Huang
 
LAS16 111 - Raspberry pi3, op-tee and jtag debugging
LAS16 111 - Raspberry pi3, op-tee and jtag debuggingLAS16 111 - Raspberry pi3, op-tee and jtag debugging
LAS16 111 - Raspberry pi3, op-tee and jtag debugging96Boards
 
Publishing to Tizen using the Automated Conversion/Repackaging of Existing An...
Publishing to Tizen using the Automated Conversion/Repackaging of Existing An...Publishing to Tizen using the Automated Conversion/Repackaging of Existing An...
Publishing to Tizen using the Automated Conversion/Repackaging of Existing An...Ryo Jin
 
2010 11 psa montreal explanation and fundamentalism
2010 11 psa montreal explanation and fundamentalism2010 11 psa montreal explanation and fundamentalism
2010 11 psa montreal explanation and fundamentalismIoan Muntean
 
BKK16-304 The State of GDB on AArch64
BKK16-304 The State of GDB on AArch64BKK16-304 The State of GDB on AArch64
BKK16-304 The State of GDB on AArch64Linaro
 
20141111_SOS3_Gallo
20141111_SOS3_Gallo20141111_SOS3_Gallo
20141111_SOS3_GalloAndrea Gallo
 
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...Linaro
 
HKG15-405: Redundant zero/sign-extension elimination in GCC
HKG15-405: Redundant zero/sign-extension elimination in GCCHKG15-405: Redundant zero/sign-extension elimination in GCC
HKG15-405: Redundant zero/sign-extension elimination in GCCLinaro
 
BKK16-305B ILP32 Performance on AArch64
BKK16-305B ILP32 Performance on AArch64BKK16-305B ILP32 Performance on AArch64
BKK16-305B ILP32 Performance on AArch64Linaro
 
BKK16-504 Running Linux in EL2 Virtualization
BKK16-504 Running Linux in EL2 VirtualizationBKK16-504 Running Linux in EL2 Virtualization
BKK16-504 Running Linux in EL2 VirtualizationLinaro
 
HKG15-400: Next steps in KVM enablement on ARM
HKG15-400: Next steps in KVM enablement on ARMHKG15-400: Next steps in KVM enablement on ARM
HKG15-400: Next steps in KVM enablement on ARMLinaro
 
LCE12: LCE12 ARMv8 Plenary
LCE12: LCE12 ARMv8 PlenaryLCE12: LCE12 ARMv8 Plenary
LCE12: LCE12 ARMv8 PlenaryLinaro
 
Dave Gilbert - KVM and QEMU
Dave Gilbert - KVM and QEMUDave Gilbert - KVM and QEMU
Dave Gilbert - KVM and QEMUDanny Abukalam
 
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from HellLAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from HellLinaro
 

En vedette (20)

GCC for ARMv8 Aarch64
GCC for ARMv8 Aarch64GCC for ARMv8 Aarch64
GCC for ARMv8 Aarch64
 
ARM AAE - Memory Systems
ARM AAE - Memory SystemsARM AAE - Memory Systems
ARM AAE - Memory Systems
 
BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64
 
Building a KVM-based Hypervisor for a Heterogeneous System Architecture Compl...
Building a KVM-based Hypervisor for a Heterogeneous System Architecture Compl...Building a KVM-based Hypervisor for a Heterogeneous System Architecture Compl...
Building a KVM-based Hypervisor for a Heterogeneous System Architecture Compl...
 
LAS16 111 - Raspberry pi3, op-tee and jtag debugging
LAS16 111 - Raspberry pi3, op-tee and jtag debuggingLAS16 111 - Raspberry pi3, op-tee and jtag debugging
LAS16 111 - Raspberry pi3, op-tee and jtag debugging
 
Publishing to Tizen using the Automated Conversion/Repackaging of Existing An...
Publishing to Tizen using the Automated Conversion/Repackaging of Existing An...Publishing to Tizen using the Automated Conversion/Repackaging of Existing An...
Publishing to Tizen using the Automated Conversion/Repackaging of Existing An...
 
ARM 64bit has come!
ARM 64bit has come!ARM 64bit has come!
ARM 64bit has come!
 
ARM-KVM: Weather Report
ARM-KVM: Weather ReportARM-KVM: Weather Report
ARM-KVM: Weather Report
 
2010 11 psa montreal explanation and fundamentalism
2010 11 psa montreal explanation and fundamentalism2010 11 psa montreal explanation and fundamentalism
2010 11 psa montreal explanation and fundamentalism
 
BKK16-304 The State of GDB on AArch64
BKK16-304 The State of GDB on AArch64BKK16-304 The State of GDB on AArch64
BKK16-304 The State of GDB on AArch64
 
20141111_SOS3_Gallo
20141111_SOS3_Gallo20141111_SOS3_Gallo
20141111_SOS3_Gallo
 
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
 
HKG15-405: Redundant zero/sign-extension elimination in GCC
HKG15-405: Redundant zero/sign-extension elimination in GCCHKG15-405: Redundant zero/sign-extension elimination in GCC
HKG15-405: Redundant zero/sign-extension elimination in GCC
 
BKK16-305B ILP32 Performance on AArch64
BKK16-305B ILP32 Performance on AArch64BKK16-305B ILP32 Performance on AArch64
BKK16-305B ILP32 Performance on AArch64
 
BKK16-504 Running Linux in EL2 Virtualization
BKK16-504 Running Linux in EL2 VirtualizationBKK16-504 Running Linux in EL2 Virtualization
BKK16-504 Running Linux in EL2 Virtualization
 
HKG15-400: Next steps in KVM enablement on ARM
HKG15-400: Next steps in KVM enablement on ARMHKG15-400: Next steps in KVM enablement on ARM
HKG15-400: Next steps in KVM enablement on ARM
 
LCE12: LCE12 ARMv8 Plenary
LCE12: LCE12 ARMv8 PlenaryLCE12: LCE12 ARMv8 Plenary
LCE12: LCE12 ARMv8 Plenary
 
Xen io
Xen ioXen io
Xen io
 
Dave Gilbert - KVM and QEMU
Dave Gilbert - KVM and QEMUDave Gilbert - KVM and QEMU
Dave Gilbert - KVM and QEMU
 
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from HellLAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
 

Similaire à Linux on ARM 64-bit Architecture

Arm v8 instruction overview android 64 bit briefing
Arm v8 instruction overview android 64 bit briefingArm v8 instruction overview android 64 bit briefing
Arm v8 instruction overview android 64 bit briefingMerck Hung
 
MPC854XE: PowerQUICC III Processors
MPC854XE: PowerQUICC III ProcessorsMPC854XE: PowerQUICC III Processors
MPC854XE: PowerQUICC III ProcessorsPremier Farnell
 
A 32-Bit Parameterized Leon-3 Processor with Custom Peripheral Integration
A 32-Bit Parameterized Leon-3 Processor with Custom Peripheral IntegrationA 32-Bit Parameterized Leon-3 Processor with Custom Peripheral Integration
A 32-Bit Parameterized Leon-3 Processor with Custom Peripheral IntegrationTalal Khaliq
 
AMD64 (EM64T) architecture
AMD64 (EM64T) architectureAMD64 (EM64T) architecture
AMD64 (EM64T) architecturePVS-Studio
 
Arm7 document
Arm7  documentArm7  document
Arm7 documentN Harisha
 
ds894-zynq-ultrascale-plus-overview
ds894-zynq-ultrascale-plus-overviewds894-zynq-ultrascale-plus-overview
ds894-zynq-ultrascale-plus-overviewAngela Suen
 
atmega 128 and communication protocol
atmega 128 and communication protocolatmega 128 and communication protocol
atmega 128 and communication protocolRashmi Deoli
 
Flexis QE 32-bit ColdFire® V1 Microcontrollers
Flexis QE 32-bit  ColdFire® V1 Microcontrollers Flexis QE 32-bit  ColdFire® V1 Microcontrollers
Flexis QE 32-bit ColdFire® V1 Microcontrollers Premier Farnell
 
POWER processor and features presentation
POWER processor and features presentationPOWER processor and features presentation
POWER processor and features presentationGanesan Narayanasamy
 
ARM stacks, subroutines, Cortex M3, LPC 214X
ARM  stacks, subroutines, Cortex M3, LPC 214XARM  stacks, subroutines, Cortex M3, LPC 214X
ARM stacks, subroutines, Cortex M3, LPC 214XKarthik Vivek
 
Snapdragon SoC and ARMv7 Architecture
Snapdragon SoC and ARMv7 ArchitectureSnapdragon SoC and ARMv7 Architecture
Snapdragon SoC and ARMv7 ArchitectureSantosh Verma
 
ARM Architecture and Meltdown/Spectre
ARM Architecture and Meltdown/SpectreARM Architecture and Meltdown/Spectre
ARM Architecture and Meltdown/SpectreGlobalLogic Ukraine
 
eZ80® Core for eZ80 Microcontrollers
eZ80® Core for eZ80 MicrocontrollerseZ80® Core for eZ80 Microcontrollers
eZ80® Core for eZ80 MicrocontrollersPremier Farnell
 

Similaire à Linux on ARM 64-bit Architecture (20)

Arm architecture overview
Arm architecture overviewArm architecture overview
Arm architecture overview
 
Arm v8 instruction overview android 64 bit briefing
Arm v8 instruction overview android 64 bit briefingArm v8 instruction overview android 64 bit briefing
Arm v8 instruction overview android 64 bit briefing
 
MPC854XE: PowerQUICC III Processors
MPC854XE: PowerQUICC III ProcessorsMPC854XE: PowerQUICC III Processors
MPC854XE: PowerQUICC III Processors
 
ARM Architecture
ARM ArchitectureARM Architecture
ARM Architecture
 
It322 intro 1
It322 intro 1It322 intro 1
It322 intro 1
 
A 32-Bit Parameterized Leon-3 Processor with Custom Peripheral Integration
A 32-Bit Parameterized Leon-3 Processor with Custom Peripheral IntegrationA 32-Bit Parameterized Leon-3 Processor with Custom Peripheral Integration
A 32-Bit Parameterized Leon-3 Processor with Custom Peripheral Integration
 
AMD64 (EM64T) architecture
AMD64 (EM64T) architectureAMD64 (EM64T) architecture
AMD64 (EM64T) architecture
 
Arm7 document
Arm7  documentArm7  document
Arm7 document
 
ds894-zynq-ultrascale-plus-overview
ds894-zynq-ultrascale-plus-overviewds894-zynq-ultrascale-plus-overview
ds894-zynq-ultrascale-plus-overview
 
Lecture9
Lecture9Lecture9
Lecture9
 
atmega 128 and communication protocol
atmega 128 and communication protocolatmega 128 and communication protocol
atmega 128 and communication protocol
 
Flexis QE 32-bit ColdFire® V1 Microcontrollers
Flexis QE 32-bit  ColdFire® V1 Microcontrollers Flexis QE 32-bit  ColdFire® V1 Microcontrollers
Flexis QE 32-bit ColdFire® V1 Microcontrollers
 
POWER processor and features presentation
POWER processor and features presentationPOWER processor and features presentation
POWER processor and features presentation
 
arm_3.ppt
arm_3.pptarm_3.ppt
arm_3.ppt
 
ARM stacks, subroutines, Cortex M3, LPC 214X
ARM  stacks, subroutines, Cortex M3, LPC 214XARM  stacks, subroutines, Cortex M3, LPC 214X
ARM stacks, subroutines, Cortex M3, LPC 214X
 
Snapdragon SoC and ARMv7 Architecture
Snapdragon SoC and ARMv7 ArchitectureSnapdragon SoC and ARMv7 Architecture
Snapdragon SoC and ARMv7 Architecture
 
ARM11.ppt
ARM11.pptARM11.ppt
ARM11.ppt
 
ARM Architecture and Meltdown/Spectre
ARM Architecture and Meltdown/SpectreARM Architecture and Meltdown/Spectre
ARM Architecture and Meltdown/Spectre
 
Introduction to ARM Architecture
Introduction to ARM ArchitectureIntroduction to ARM Architecture
Introduction to ARM Architecture
 
eZ80® Core for eZ80 Microcontrollers
eZ80® Core for eZ80 MicrocontrollerseZ80® Core for eZ80 Microcontrollers
eZ80® Core for eZ80 Microcontrollers
 

Plus de Ryo Jin

Why is EFL used on Tizen?
Why is EFL used on Tizen?Why is EFL used on Tizen?
Why is EFL used on Tizen?Ryo Jin
 
Samsung Z4 User Manual
Samsung Z4 User ManualSamsung Z4 User Manual
Samsung Z4 User ManualRyo Jin
 
Samsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Samsung ARTIK 050 (ARTIK ZERO) Modules Data SheetSamsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Samsung ARTIK 050 (ARTIK ZERO) Modules Data SheetRyo Jin
 
Introduction to Watch Face Development with Tizen Studio
Introduction to Watch Face Development with Tizen StudioIntroduction to Watch Face Development with Tizen Studio
Introduction to Watch Face Development with Tizen StudioRyo Jin
 
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan DriverTizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan DriverRyo Jin
 
Panduan Penggunaan Perangkat Wearable Tizen
Panduan Penggunaan Perangkat Wearable TizenPanduan Penggunaan Perangkat Wearable Tizen
Panduan Penggunaan Perangkat Wearable TizenRyo Jin
 
Cara Menggunakan Smartphone Tizen
Cara Menggunakan Smartphone TizenCara Menggunakan Smartphone Tizen
Cara Menggunakan Smartphone TizenRyo Jin
 
Gear Fit2 Watchface Design Guide
Gear Fit2 Watchface Design GuideGear Fit2 Watchface Design Guide
Gear Fit2 Watchface Design GuideRyo Jin
 
Samsung Indonesia: Tizen Store
Samsung Indonesia: Tizen StoreSamsung Indonesia: Tizen Store
Samsung Indonesia: Tizen StoreRyo Jin
 
Samsung Indonesia: Tizen Wearables
Samsung Indonesia: Tizen WearablesSamsung Indonesia: Tizen Wearables
Samsung Indonesia: Tizen WearablesRyo Jin
 
Samsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web AppsSamsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web AppsRyo Jin
 
Samsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppSamsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppRyo Jin
 
Samsung Indonesia: Tizen Platform Overview and IoT
Samsung Indonesia: Tizen Platform Overview and IoTSamsung Indonesia: Tizen Platform Overview and IoT
Samsung Indonesia: Tizen Platform Overview and IoTRyo Jin
 
Russian Tizen Project
Russian Tizen ProjectRussian Tizen Project
Russian Tizen ProjectRyo Jin
 
Samsung SM-R360 Tizen User Manual
Samsung SM-R360 Tizen User ManualSamsung SM-R360 Tizen User Manual
Samsung SM-R360 Tizen User ManualRyo Jin
 
Tizen Micro Profile for IoT device
Tizen Micro Profile for IoT deviceTizen Micro Profile for IoT device
Tizen Micro Profile for IoT deviceRyo Jin
 
Panduan Dasar Pemrograman Tizen
Panduan Dasar Pemrograman TizenPanduan Dasar Pemrograman Tizen
Panduan Dasar Pemrograman TizenRyo Jin
 
The Story of Enlightenment, EFL, Tizen and Wayland
The Story of Enlightenment, EFL, Tizen and WaylandThe Story of Enlightenment, EFL, Tizen and Wayland
The Story of Enlightenment, EFL, Tizen and WaylandRyo Jin
 
Tizen PASS
Tizen PASSTizen PASS
Tizen PASSRyo Jin
 
Tizen PASS
Tizen PASSTizen PASS
Tizen PASSRyo Jin
 

Plus de Ryo Jin (20)

Why is EFL used on Tizen?
Why is EFL used on Tizen?Why is EFL used on Tizen?
Why is EFL used on Tizen?
 
Samsung Z4 User Manual
Samsung Z4 User ManualSamsung Z4 User Manual
Samsung Z4 User Manual
 
Samsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Samsung ARTIK 050 (ARTIK ZERO) Modules Data SheetSamsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Samsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
 
Introduction to Watch Face Development with Tizen Studio
Introduction to Watch Face Development with Tizen StudioIntroduction to Watch Face Development with Tizen Studio
Introduction to Watch Face Development with Tizen Studio
 
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan DriverTizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
 
Panduan Penggunaan Perangkat Wearable Tizen
Panduan Penggunaan Perangkat Wearable TizenPanduan Penggunaan Perangkat Wearable Tizen
Panduan Penggunaan Perangkat Wearable Tizen
 
Cara Menggunakan Smartphone Tizen
Cara Menggunakan Smartphone TizenCara Menggunakan Smartphone Tizen
Cara Menggunakan Smartphone Tizen
 
Gear Fit2 Watchface Design Guide
Gear Fit2 Watchface Design GuideGear Fit2 Watchface Design Guide
Gear Fit2 Watchface Design Guide
 
Samsung Indonesia: Tizen Store
Samsung Indonesia: Tizen StoreSamsung Indonesia: Tizen Store
Samsung Indonesia: Tizen Store
 
Samsung Indonesia: Tizen Wearables
Samsung Indonesia: Tizen WearablesSamsung Indonesia: Tizen Wearables
Samsung Indonesia: Tizen Wearables
 
Samsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web AppsSamsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web Apps
 
Samsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppSamsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native App
 
Samsung Indonesia: Tizen Platform Overview and IoT
Samsung Indonesia: Tizen Platform Overview and IoTSamsung Indonesia: Tizen Platform Overview and IoT
Samsung Indonesia: Tizen Platform Overview and IoT
 
Russian Tizen Project
Russian Tizen ProjectRussian Tizen Project
Russian Tizen Project
 
Samsung SM-R360 Tizen User Manual
Samsung SM-R360 Tizen User ManualSamsung SM-R360 Tizen User Manual
Samsung SM-R360 Tizen User Manual
 
Tizen Micro Profile for IoT device
Tizen Micro Profile for IoT deviceTizen Micro Profile for IoT device
Tizen Micro Profile for IoT device
 
Panduan Dasar Pemrograman Tizen
Panduan Dasar Pemrograman TizenPanduan Dasar Pemrograman Tizen
Panduan Dasar Pemrograman Tizen
 
The Story of Enlightenment, EFL, Tizen and Wayland
The Story of Enlightenment, EFL, Tizen and WaylandThe Story of Enlightenment, EFL, Tizen and Wayland
The Story of Enlightenment, EFL, Tizen and Wayland
 
Tizen PASS
Tizen PASSTizen PASS
Tizen PASS
 
Tizen PASS
Tizen PASSTizen PASS
Tizen PASS
 

Dernier

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Dernier (20)

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

Linux on ARM 64-bit Architecture

  • 1. Linux on AArch64 ARM 64-bit Architecture Catalin Marinas LinuxCon North America 2012 1
  • 2. Introduction §  Previous ARM architecture, ARMv7, is 32-bit only §  Cortex-* processors family §  LPAE and virtualisation support §  The latest ARM architecture, ARMv8, introduces 64-bit capability alongside the existing 32-bit mode §  First release covers the Applications processor profile §  Addresses the need for larger virtual address space and high performance Targets both mobile and server markets §  §  ARMv8 has two execution modes §  AArch64 – 64-bit registers and memory accesses, new instruction set §  AArch32 (optional) – backwards compatible with ARMv7-A §  Few additional enhancements 2
  • 3. AArch64 Overview §  New instruction set (A64) §  32-bit opcodes §  Can have 32-bit or 64-bit arguments §  Addresses assumed to be 64-bit §  Primarily targeting LP64 and LLP64 data models §  Only conditional branches, compares and selects §  No LDM/STM (only pair load/store – LDP/STP) §  Load-acquire/store-release exclusive accesses (implicit barrier) §  Advanced SIMD and FP support §  FP mandated by the ABI §  Cryptography support §  31 general purpose 64-bit registers (X0-X30) §  PC, SP are special registers §  Dedicated zero register (Xzr) 3
  • 4. AArch64 Exception Model Normal (non-secure) world (TrustZone) Monitor Hypervisor Guest Operating System1 Guest Operating System2 EL1 App1 EL0 4 App2 App1 App2 Secure World OS Trusted App1 Trusted App2 AArch32->AArch64 transition Virtual Machine Monitor (VMM) or EL2 AArch64->AArch32 transition EL3 Secure world
  • 5. AArch64 Exception Model §  Privilege levels: EL3 – highest, EL0 – lowest §  Transition to higher levels via exceptions §  Interrupts, page faults etc. §  SVC for transition to EL1 (system calls) §  HVC for transition to EL2 (hypervisor calls) §  SMC for transition to EL3 (secure monitor call) §  Dedicated ELR register for the return address (banked at each EL) §  Transition to lower levels using the ERET instruction §  Register width cannot be higher in lower levels §  E.g. no 64-bit EL0 with 32-bit EL1 §  Transition between AArch32 and AArch64 via exceptions §  AArch32/AArch64 interworking not possible §  Separate stack pointer (SP) at each EL 5
  • 6. AArch64 MMU Support §  Separate TTBR register for user and kernel §  Selection based on higher §  Upper 8 bits of the address can be configured for Tagged Pointers §  Linux does not currently use them §  Maximum 48-bit physical address §  2-stage translation 6 TTBR1 kernel space Virtual Address §  bits of the virtual address Maximum 48-bit virtual address for each TTBR 264 0xFFFF000000000000, (264 - 248 ) dependent on TCR_EL1.T1SZ Not mapped (Fault) TTBR0 user space 0x0000FFFFFFFFFFFF, (248 – 1) dependent on TCR_EL1.T0SZ 0
  • 7. AArch64 MMU Support Stage 1 translation owned by each Guest OS Stage 2 translation owned by the VMM Hardware has 2-stage memory translation Tables from Guest OS translate VA to IPA Second set of tables from VMM translate IPA to PA Allows aborts to be routed to appropriate software layer Real System Physical address map Virtual address map of each App on each Guest OS 7 “Intermediate Physical” address map of each Guest OS
  • 8. AArch64 MMU Support §  Two different translation granules: 4KB and 64KB §  The smallest page mapping supported §  The size of a translation table §  Can be independently configured for TTBR0 and TTBR1 §  Number of translation tables and maximum VA range: §  4KB and 4 levels => 48-bit VA §  64KB and 3 levels => 48-bit VA (top table partially populated) §  4KB and 3 levels => 39-bit VA (currently used by AArch64 Linux) §  64KB and 2 levels => 42-bit VA §  Large page (block) mapping supported §  2MB and 1GB with 4KB page configuration §  512MB with 64KB page configuration 8
  • 9. AArch32 Support §  AArch32 can be optionally present at any level §  EL0 most likely for user application support §  EL1 needed for 32-bit guest OS §  Execution state change only at exception entry/return §  No branch and link (interworking) between AArch32 and AArch64 §  Increasing EL cannot decrease register width or vice versa §  Architected relationship between the AArch32 and AArch64 registers §  AArch32 Rn registers accessed via corresponding AArch64 Xn registers 9
  • 10. AArch64 Linux Overview §  New architecture port: arch/arm64/ §  Re-using generic code and data §  asm-generic/unistd.h §  Building requires aarch64-linux-gnu toolchain §  No common AArch32/AArch64 toolchain §  Support for both AArch64 and AArch32 (compat) user applications §  VDSO §  Signal return code §  Optimised gettimeofday() §  Not fully optimised at this stage §  Testing done on software model 10
  • 11. Linux Kernel Booting §  Linux required to run in Normal (Non-secure) mode §  Virtualisation extensions not available in secure mode §  Host OS must be started in EL2 mode for virtualisation support §  Switches to EL1 shortly after boot, the default kernel execution mode §  Guest operating systems start in EL1 §  The Linux kernel automatically detects the exception level §  Kernel image loaded at a pre-defined address §  Image file header contains the relevant information §  Standard booting protocol §  Currently driven by FDT (mailbox address for CPU release) §  Proposed standard secure API (SMC) for CPU boot, reset and power management (Power State Coordination Interface) 11
  • 12. Linux MMU Handling §  39-bit virtual address for both user and kernel §  0000000000000000-0000007fffffffff (512GB): user §  [architectural gap] §  ffffff8000000000-ffffffbbfffeffff (~240MB): vmalloc §  ffffffbbffff0000-ffffffbcffffffff (64KB): [guard] §  ffffffbc00000000-ffffffbdffffffff (8GB): vmemmap §  ffffffbe00000000-ffffffbffbffffff (~8GB): [guard] §  ffffffbffc000000-ffffffbfffffffff (64MB): modules §  ffffffc000000000-ffffffffffffffff (256GB): mapped RAM §  4KB page configuration §  3 levels of page tables (pgtable-nopud.h) §  Linear mapping using 4KB, 2MB or 1GB blocks §  AArch32 (compat) supported 12
  • 13. Linux MMU Handling §  64KB page configuration §  2 levels of page tables (pgtable-nopmd.h) §  Linear mapping using 64KB or 512MB blocks §  AArch32 (compat) not supported because the 32-bit ABI assumes 4KB pages §  SPARSEMEM support §  SPARSEMEM_VMEMMAP optimisation for virtual mapping of the struct page array (mem_map) §  Huge pages §  Hugetlbfs §  Transparent huge pages 13
  • 14. Linux Exception Handling §  SP1 register used for the kernel stack (running in EL1) §  Default 8KB size §  SP0 used for the user stack (running in EL0) §  Returning to user is done with the ERET instruction §  Registers restored from the kernel stack (pt_regs) by the return code §  Return address automatically restored from the ELR register §  PSTATE automatically returned from SPSR §  Mode switching to EL0_SP0 §  AArch64/AArch32 execution state selected by the PSTATE.nRW bit §  Kernel entered at EL1 as a result of an exception §  Mode switching to EL1_SP1 and AArch64 §  Return address automatically saved to ELR §  PSTATE automatically saved to SPSR 14
  • 15. Linux Exception Handling §  The general purpose registers saved onto the kernel stack (pt_regs) by the exception entry code §  Exceptions while in kernel similar to the user->kernel transition §  No mode switching (no IRQ etc. modes) §  Using the current stack §  Returning with ERET but to the same exception level and stack 15
  • 16. AArch32 (compat) Support §  Must support the ARMv7 Linux EABI for compat tasks §  Different set of system calls (unistd32.h) §  Compat user structures §  No SWP instruction, no unaligned LDM/STM access §  Supports both ARM and Thumb-2 32-bit user tasks §  Supports 32-bit ptrace §  Address space limited to 4GB §  Emulated vectors page §  ARM Linux EABI expects helper routines in the vectors page accessible by user tasks 16
  • 17. Platform (SoC) Support §  Different targets: embedded systems and servers §  FDT currently mandated for new platforms §  ACPI may be required, especially for servers §  Minimal platform code §  Most code under drivers/ §  FDT for platform description §  Standardised firmware interface §  Booting protocol §  SMC API for CPU power management §  Generic (architected) timers §  Generic interrupt controller (GIC) 17
  • 18. AArch64 Linux Roadmap §  AArch64 Linux kernel currently under public review §  Initially only the core architecture support §  GCC and binutils patches published §  Collaborate with Linaro and the Linux community to bring broader filesystem and applications support to AArch64 §  SoC support §  Future ACPI support §  New features §  Huge pages §  KVM §  NUMA §  Power and performance improvements §  When hardware becomes available 18
  • 19. Reference §  AArch64 Linux Git tree §  git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64.git §  AArch64 instruction set §  http://infocenter.arm.com/help/topic/com.arm.doc.genc010197a/index.html §  AArch64 ABI (PCS, ELF, DWARF, C++) §  http://infocenter.arm.com/help/topic/com.arm.doc.ihi0059a/index.html §  Power State Coordination Interface §  19 http://infocenter.arm.com/help/topic/com.arm.doc.den0022a/index.html