SlideShare a Scribd company logo
Presented by
Date
Event
SFO15-TR9: ACPI, PSCI
(and UEFI to boot)
Bill Fletcher
Linaro Field Engineering
v2.0
Bill Fletcher
Thursday 24 September 2015
SFO15
Overview
● An introductory look at ACPI infrastructure
● How a platform (qemu), a bootloader (uefi)
and the kernel work together to set up the
ACPI configuration
● There's an explanation of what’s been
upstreamed in Linux kernel 4.1
● A simple aarch64 demo based on qemu
● A brief look at what's new
Caveats. This is not ...
● An exhaustive tutorial on ACPI
● A reference implementation for PSCI
● “Why to use ACPI instead of device trees”
● “Why to favour UEFI instead of UBoot”
● ...
ACPI and PSCI (briefly)
● "Advanced Configuration and Power Interface” Specification (Currently
v6.0: http://www.uefi.org/acpi/specs)
● "Industry-standard interfaces enabling OS-directed configuration, power
management, and thermal management (since 1996)"
● ACPI is important because hardware and OS vendors have already
worked out the mechanisms for supporting a general purpose
computing ecosystem
● Hence it’s non-negotiable in the Enterprise environment, standardized
with UEFI
● Has three main components: Tables, Drivers and Registers.
● There’s an interpreted element in ACPI Machine Language (AML)
bytecode stored in the ACPI tables.
ACPI - One Pager
RSD Ptr
Pointer
Pointer
Header
FACP
Table entry
Table entry
XSDT
...
Header
Static Info
...
DSDT
“FACP”
BLKs
RSD Ptr
Differentiated
Definition
Block
DSDT
RSD Ptr
Entry
Sig
Header
Contents
Sig
ACPI
drivers
OEM Specifics
Hardware
Register
Accesses
Root System
Description
Pointer
Extended System Description Table
Fixed ACPI
Description
Table
Other tables
...
Device I/O
Configuration
Device Memory
Controller Space
Register access mechanism
system software
hardware/firmware
What ACPI looks like - a chain of tables
Differentiated System Description Table
Devices:
Interrupts
Registers
Driver entry points
● It’s an ARM standard
● The official/only way for power management on ARM64
● A generic interface that low-level supervisory software can use to
manage power
● Lives under CPU Ops, which itself lives under CPU Idle and the
CPU Governors
● Covers: Core idle management, dynamic addition and removal of
cores, and secondary core boot, core migration, system shutdown
and reset
● Has both Device Tree and ACPI bindings
"Power State Coordination Interface"
Booting
Basic Boot and ACPI/PSCI Discovery
Root
system
description
(pointer)
ACPI
tablesACPI
tablesACPI
tables
ACPI-aware
boot
ARM-
specific
PSCI
information
1
2
FACP Table
DSDT Table
APIC Table
Described in
the ACPI 5.1
Spec and
available in
the 4.1 kernel
Practical boot and ACPI/PSCI discovery
Root
system
description
(pointer)
ACPI
tablesACPI
tablesACPI
tables
EFIstub PSCI
information
ACPI=force
EDK2
UEFI
bootloader
"The generic interface for discovering
ACPI tables is to boot as an EFI
application and then to query the tables
from UEFI. That is the interface others are
likely to follow, and ACPI without UEFI is
unlikely to be of much use to anyone else
(ARM)"
qemu
Kernel with
ACPI
patches
InstallQemuFwCfgTables
What about dtb?
● The EFI stub loader makes the Linux kernel image into a
UEFI application.
● This application uses the Flattened Device-Tree (FDT) format
to pass information about how to access UEFI to the Linux
kernel.
● If no device-tree blob (using dtb= ) is available as in our case
when using ACPI for hardware description the loader stub
will create a new dtb containing only this information.
See: https://wiki.linaro.org/LEG/Engineering/Kernel/UEFI/Architecture and
drivers/firmware/efi/libstub/fdt.c (leading to efi.h)
Basic Feature Set
Having booted successfully and loaded the ACPI tables … what functionality do we have?
4.1 ARM ACPI Kernel functionality
● Basic support to run ACPI on ARM64
● ARM SMP and GICv2 init using MADT
● PSCI announced in the FADT table
● ARM timer init using GTDT
● Kernel documentation why/how to use ACPI
on ARM64
● The ACPI Spec (5.1) supported ARM specifically
for the first time this year
● ACPI on ARM is a major and continuing LEG
collaboration between ARM and Linaro
● “There is no longer any reason to feel that ACPI
only belongs to Windows or that Linux is in any
way secondary to Microsoft in this arena” (kernel
arm-acpi.txt)
Why talk about this now?
Comprises:
● qemu built from sources
● kernel with ACPI 5.1 built
from source
● UEFI built from EDK2 source
● uefi-tools
● iasl, the ACPI table
assembler/disassembler
ACPI Boot Demo
Allows to:
● Boot UEFI as a guest in
aarch64 qemu
● Boot the Linux image from
the UEFI shell
● Confirm ACPI is enabled
● Dump and read (via iasl) the
ACPI tables
● Modify the ACPI data in
qemu, rinse and repeat …
ACPI in the booting/running
system
UEFI Booting and reading the
ACPI tables
● UEFI has platform-specific functionality to load the
tables - in this case to interface with qemu
● Notice that PCI enumeration blocks ACPI table loading
Confidential
Linux Boot
● Boot from UEFI with
ACPI=force
● ACPI entry in /proc
● ACPI tables in
/sys/firmware/acpi/t
ables
Devices are reported - CPUs, Comms (DSDT table)
PSCI is present (FADT/FACP table)
Way to access PSCI is stated as HVC (FADT/FACP
table)
Interrupt structures are reported (APIC table)
All tables in AML bytecode - disassembled with iasl
AML data generated by qemu - see ./hw/arm/virt-acpi-
build.c
Some more about the tables
DSDT
DefinitionBlock ("DSDT.aml", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
{
Scope (_SB)
{
Device (CPU0)
{
...
}
Device (COM0)
{
Name (_HID, "ARMH0011") // _HID: Hardware ID
...
{
Memory32Fixed (ReadWrite,
0x09000000, // Address Base
0x00001000, // Address Length
)
Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
{
0x00000021,
Differentiated System Description Table
System & peripherals, memory mapping, IRQs, driver entry
points
FADT
[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)]
<snip>
[074h 0116 12] Reset Register : [Generic Address Structure]
[074h 0116 1] Space ID : 00 [SystemMemory]
[075h 0117 1] Bit Width : 00
[076h 0118 1] Bit Offset : 00
[077h 0119 1] Encoded Access Width : 00 [Undefined/Legacy]
[078h 0120 8] Address : 0000000000000000
[080h 0128 1] Value to cause reset : 00
[081h 0129 2] ARM Flags (decoded below) : 0003
PSCI Compliant : 1
Must use HVC for PSCI : 1
Fixed ACPI Description Table (“FACP”)
Part of the chain that gets to the DSDT
Register blocks relating to power management … and PSCI
The full table dumps are reproduced here:
http://people.linaro.org/~bill.fletcher/SFO15-TR9_ACPI_PSCI_and_UEFI_To_Boot_supporting_material/
MADT
[000h 0000 4] Signature : "APIC" [Multiple APIC Description Table (MADT)]
<snip>
[02Ch 0044 1] Subtable Type : 0B [Generic Interrupt Controller]
...
[038h 0056 4] Flags (decoded below) : 00000001
Processor Enabled : 1
Performance Interrupt Trigger Mode : 0
Virtual GIC Interrupt Trigger Mode : 0
[03Ch 0060 4] Parking Protocol Version : 00000000
[040h 0064 4] Performance Interrupt : 00000000
...
[070h 0112 8] ARM MPIDR : 0000000000000000
Multiple APIC Description Table (“APIC”)
APIC = Advanced Programmable Interrupt Controller (8259+)
Interrupt controllers and CPU affinity
There can be a system MADT referenced from the XSDT
Peripherals with their own interrupt controllers can have a method in their DSDT entry for you to
get a local MADT
Usage outside qemu
ATF PSCI functionality (it’s the reference)
Handles SMCs
(Secure Monitor
Calls) conforming to
the SMC Calling
Convention PDD
There’s extensive
design
documentation
available.
Source is published
under a BSD license.
either ARM trusted firmware,
platform-specific
implementation in hypervisor, or
qemu emulation
Calling PSCI from an ACPI context
ACPI-aware
application
PSCI
information
ACPI
tablesACPI
tablesACPI
tables
PSCI driver
calls
21
3
HVC or
SMC trap
PSCI implementation assumes
either a Hypervisor running at
EL2 or a Secure Monitor running
at EL3
Requires a platform running the
Secure Monitor at EL3, which
implements PSCI.
Alternatively if there's no EL3 but
a hypervisor instead you can
emulate this with a HVC call
This HVC mechanism is also
emulated in qemu
What’s New and What’s Next?
Enough in ACPI "to boot a server, support ARM’s latest IP (GICv2m,
GICv3, SMMUv2) and do decent idle management."
What’s next? DVFS performance management ...
… for an ARM server to implement DVFS in an architecture agnostic
way via “CPPC” (CPPC - Collaborative Processor Performance
Control)
What arrived in the latest ACPI 6.0 spec?
ACPI 6.0 introduces Low Power Idle states, which allows an
operating system to manage the power states of the processor
power domain hierarchy.
The ACPI FFH* mechanism is used in ARM-based systems to allow
the operating system to discover: the entry method into a low
power state; how to collect power state residency, and statistics
This ACPI register-based interface is defined in ARM DEN0048A
available on ARM Infocentre portal
*FFH = Functional Fixed Hardware Interface - an ACPI name for the
register address space used for power management)
ARM Low Power Idle (LPI) states
CPPC (Collaborative Processor Performance Control)
Provides more autonomy to the CPU subsystem to control power/perf
An abstract interface where the OS specifies performance bounds and
leaves the underlying subsystem some latitude in how it achieves them.
"CPPC implementation designed as shim which allows Cpufreq drivers
to plug into existing governors or alternately implement inbuilt ones"
PCC (Platform Communication Channel)
PCC (Platform Communication Channel) is a generic means for PCC
Clients such as CPPC, to talk to the firmware.
Back to DVFS → CPPC & PCC (1)
CPPC & PCC (2)
● CPPC has been used on ARM64 servers successfully.
Some ARM vendors may not have feedback counters
(workaroundable). Missing in CPPC at the moment is
the power-to-performance level mapping. This is to be
addressed in the near future once EAS is upstream
● This patchwork is part of LEG activity. See https://git.
linaro.org/people/ashwin.chaugule/leg-kernel.git
● V9 patches picked up for v4.3 - hoping to upstream by
v4.4
Wrap Up
● UEFI is a requirement for ACPI
● Upstream qemu can emulate an aarch64 ACPI platform (with
elementary PSCI)
● You can build a simple ARM64 ACPI-aware system with 4.1
● ARM idle management arrived in the ACPI 6.0 spec
● Interfaces to ARM DVFS (via CPPC) are still "works in
progress".
● Once these arrive, a demonstrator will need more than qemu’
s emulation of PSCI
● ARM trusted firmware is the reference implementation for
PSCI
Wrap-Up
● PSCI spec: http://infocenter.arm.com/help/topic/com.
arm.doc.
den0022c/DEN0022C_Power_State_Coordination_Inter
face.pdf
● ACPI standard: http://www.uefi.
org/sites/default/files/resources/ACPI_5_1release.pdf
● Basic ACPI info: http://www.acpi.info/over.htm
References
● The full table dumps are reproduced here: http://people.linaro.org/~bill.
fletcher/SFO15-TR9_ACPI_PSCI_and_UEFI_To_Boot_supporting_material
● Useful primer on PSCI (ARM doc): http://events.linuxfoundation.
org/sites/events/files/slides/lp-linuxcon14.pdf
● LEG wiki: https://wiki.linaro.org/LEG/Engineering/Kernel/ACPI
● For a comparison of ACPI and FDT, google the presentation done by
Graeme Gregory at Linux Plumbers 2013.
● See http://article.gmane.org/gmane.linux.ports.arm.
kernel/382864/match=cppc for an explanation of how to use ACPI
● Ashwin’s V8 patch set including CPPC via PCC http://thread.gmane.
org/gmane.linux.power-management.general/63697
Resources
Q&A?
More about Linaro: www.linaro.org/about/
Linaro members: www.linaro.org/members

More Related Content

What's hot

LCA13: Power State Coordination Interface
LCA13: Power State Coordination InterfaceLCA13: Power State Coordination Interface
LCA13: Power State Coordination Interface
Linaro
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototyping
Yan Vugenfirer
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
Houcheng Lin
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
Linaro
 
Qemu Pcie
Qemu PcieQemu Pcie
Spi drivers
Spi driversSpi drivers
Spi drivers
pradeep_tewani
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal Bootloader
Satpal Parmar
 
05.2 virtio introduction
05.2 virtio introduction05.2 virtio introduction
05.2 virtio introduction
zenixls2
 
PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation
PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation
PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation
Manish Jaggi
 
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM SystemsXPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
The Linux Foundation
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareLinaro
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)
shimosawa
 
LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platform
Linaro
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoCMacpaul Lin
 
Note - (EDK2) Acpi Tables Compile and Install
Note - (EDK2) Acpi Tables Compile and InstallNote - (EDK2) Acpi Tables Compile and Install
Note - (EDK2) Acpi Tables Compile and Installboyw165
 
Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)
Macpaul Lin
 
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
Linaro
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
Linaro
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introduction
Yi-Hsiu Hsu
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
Kernel TLV
 

What's hot (20)

LCA13: Power State Coordination Interface
LCA13: Power State Coordination InterfaceLCA13: Power State Coordination Interface
LCA13: Power State Coordination Interface
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototyping
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
 
Qemu Pcie
Qemu PcieQemu Pcie
Qemu Pcie
 
Spi drivers
Spi driversSpi drivers
Spi drivers
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal Bootloader
 
05.2 virtio introduction
05.2 virtio introduction05.2 virtio introduction
05.2 virtio introduction
 
PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation
PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation
PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation
 
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM SystemsXPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)
 
LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platform
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoC
 
Note - (EDK2) Acpi Tables Compile and Install
Note - (EDK2) Acpi Tables Compile and InstallNote - (EDK2) Acpi Tables Compile and Install
Note - (EDK2) Acpi Tables Compile and Install
 
Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)
 
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
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introduction
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
 

Viewers also liked

LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted Firmware
Linaro
 
ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!
Mr. Vengineer
 
Tackling the Management Challenges of Server Consolidation on Multi-core Systems
Tackling the Management Challenges of Server Consolidation on Multi-core SystemsTackling the Management Challenges of Server Consolidation on Multi-core Systems
Tackling the Management Challenges of Server Consolidation on Multi-core SystemsThe Linux Foundation
 
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s going
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s goingKernel Recipes 2016 - Kernel documentation: what we have and where it’s going
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s going
Anne Nicolas
 
Specification-Based Test Program Generation for ARM VMSAv8-64 MMUs
Specification-Based Test Program Generation for ARM VMSAv8-64 MMUsSpecification-Based Test Program Generation for ARM VMSAv8-64 MMUs
Specification-Based Test Program Generation for ARM VMSAv8-64 MMUs
Alexander Kamkin
 
BKK16-404A PCI Development Meeting
BKK16-404A PCI Development MeetingBKK16-404A PCI Development Meeting
BKK16-404A PCI Development Meeting
Linaro
 
Reverse engineering for_beginners-en
Reverse engineering for_beginners-enReverse engineering for_beginners-en
Reverse engineering for_beginners-en
Andri Yabu
 
Virtualization overheads
Virtualization overheadsVirtualization overheads
Virtualization overheads
Sandeep Joshi
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Prague
tomasbart
 
Linux numa evolution
Linux numa evolutionLinux numa evolution
Linux numa evolution
Lukas Pirl
 
BKK16-104 sched-freq
BKK16-104 sched-freqBKK16-104 sched-freq
BKK16-104 sched-freq
Linaro
 
Gc and-pagescan-attacks-by-linux
Gc and-pagescan-attacks-by-linuxGc and-pagescan-attacks-by-linux
Gc and-pagescan-attacks-by-linuxCuong Tran
 
Cgroup resource mgmt_v1
Cgroup resource mgmt_v1Cgroup resource mgmt_v1
Cgroup resource mgmt_v1sprdd
 
Known basic of NFV Features
Known basic of NFV FeaturesKnown basic of NFV Features
Known basic of NFV Features
Raul Leite
 
Non-Uniform Memory Access ( NUMA)
Non-Uniform Memory Access ( NUMA)Non-Uniform Memory Access ( NUMA)
Non-Uniform Memory Access ( NUMA)
Nakul Manchanda
 
Linux NUMA & Databases: Perils and Opportunities
Linux NUMA & Databases: Perils and OpportunitiesLinux NUMA & Databases: Perils and Opportunities
Linux NUMA & Databases: Perils and Opportunities
Raghavendra Prabhu
 
P4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC OffloadP4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC Offload
Open-NFP
 

Viewers also liked (18)

LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted Firmware
 
ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!
 
Tackling the Management Challenges of Server Consolidation on Multi-core Systems
Tackling the Management Challenges of Server Consolidation on Multi-core SystemsTackling the Management Challenges of Server Consolidation on Multi-core Systems
Tackling the Management Challenges of Server Consolidation on Multi-core Systems
 
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s going
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s goingKernel Recipes 2016 - Kernel documentation: what we have and where it’s going
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s going
 
Specification-Based Test Program Generation for ARM VMSAv8-64 MMUs
Specification-Based Test Program Generation for ARM VMSAv8-64 MMUsSpecification-Based Test Program Generation for ARM VMSAv8-64 MMUs
Specification-Based Test Program Generation for ARM VMSAv8-64 MMUs
 
Dulloor xen-summit
Dulloor xen-summitDulloor xen-summit
Dulloor xen-summit
 
BKK16-404A PCI Development Meeting
BKK16-404A PCI Development MeetingBKK16-404A PCI Development Meeting
BKK16-404A PCI Development Meeting
 
Reverse engineering for_beginners-en
Reverse engineering for_beginners-enReverse engineering for_beginners-en
Reverse engineering for_beginners-en
 
Virtualization overheads
Virtualization overheadsVirtualization overheads
Virtualization overheads
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Prague
 
Linux numa evolution
Linux numa evolutionLinux numa evolution
Linux numa evolution
 
BKK16-104 sched-freq
BKK16-104 sched-freqBKK16-104 sched-freq
BKK16-104 sched-freq
 
Gc and-pagescan-attacks-by-linux
Gc and-pagescan-attacks-by-linuxGc and-pagescan-attacks-by-linux
Gc and-pagescan-attacks-by-linux
 
Cgroup resource mgmt_v1
Cgroup resource mgmt_v1Cgroup resource mgmt_v1
Cgroup resource mgmt_v1
 
Known basic of NFV Features
Known basic of NFV FeaturesKnown basic of NFV Features
Known basic of NFV Features
 
Non-Uniform Memory Access ( NUMA)
Non-Uniform Memory Access ( NUMA)Non-Uniform Memory Access ( NUMA)
Non-Uniform Memory Access ( NUMA)
 
Linux NUMA & Databases: Perils and Opportunities
Linux NUMA & Databases: Perils and OpportunitiesLinux NUMA & Databases: Perils and Opportunities
Linux NUMA & Databases: Perils and Opportunities
 
P4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC OffloadP4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC Offload
 

Similar to SFO15-TR9: PSCI, ACPI (and UEFI to boot)

Hardware Probing in the Linux Kernel
Hardware Probing in the Linux KernelHardware Probing in the Linux Kernel
Hardware Probing in the Linux Kernel
Kernel TLV
 
Profiling the ACPICA Namespace and Event Handing
Profiling the ACPICA Namespace and Event HandingProfiling the ACPICA Namespace and Event Handing
Profiling the ACPICA Namespace and Event Handing
SUSE Labs Taipei
 
AMD_11th_Intl_SoC_Conf_UCI_Irvine
AMD_11th_Intl_SoC_Conf_UCI_IrvineAMD_11th_Intl_SoC_Conf_UCI_Irvine
AMD_11th_Intl_SoC_Conf_UCI_Irvine
Pankaj Singh
 
Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118
Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118
Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118
Wei Fu
 
Information Gathering 2
Information Gathering 2Information Gathering 2
Information Gathering 2Aero Plane
 
intel_x86_pm.pptx
intel_x86_pm.pptxintel_x86_pm.pptx
intel_x86_pm.pptx
Atul Vaish
 
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdfBuilding PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
Paul Yang
 
haifux-pcie.pdf
haifux-pcie.pdfhaifux-pcie.pdf
haifux-pcie.pdf
ssuser0ceb13
 
Embedding Linux On The Encore Simputer
Embedding Linux On The Encore SimputerEmbedding Linux On The Encore Simputer
Embedding Linux On The Encore Simputer
Satpal Parmar
 
ACPI In Windows Vista
ACPI In Windows VistaACPI In Windows Vista
ACPI In Windows Vista
spot2
 
Nvidia tegra K1 Presentation
Nvidia tegra K1 PresentationNvidia tegra K1 Presentation
Nvidia tegra K1 Presentation
ANURAG SEKHSARIA
 
BIOS, Linux and Firmware Test Suite in-between
BIOS, Linux and  Firmware Test Suite in-betweenBIOS, Linux and  Firmware Test Suite in-between
BIOS, Linux and Firmware Test Suite in-between
Alex Hung
 
Developing a Windows CE OAL.ppt
Developing a Windows CE OAL.pptDeveloping a Windows CE OAL.ppt
Developing a Windows CE OAL.ppt
KundanSingh887495
 
Creating Competitive Advantage by Revolutionizing I/O
Creating Competitive Advantage by Revolutionizing I/OCreating Competitive Advantage by Revolutionizing I/O
Creating Competitive Advantage by Revolutionizing I/OEmulex Corporation
 
SR-IOV Introduce
SR-IOV IntroduceSR-IOV Introduce
SR-IOV Introduce
Lingfei Kong
 
Driving The Platform 2
Driving The Platform 2Driving The Platform 2
Driving The Platform 2Aero Plane
 
ONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
ONIE: Open Network Install Environment @ OSDC 2014 Netways, BerlinONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
ONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
Nat Morris
 
Intel update
Intel updateIntel update
Intel update
The Linux Foundation
 
VIO LPAR Introduction | Basics | Demo
VIO LPAR Introduction | Basics | DemoVIO LPAR Introduction | Basics | Demo
VIO LPAR Introduction | Basics | Demo
Kernel Training
 

Similar to SFO15-TR9: PSCI, ACPI (and UEFI to boot) (20)

Hardware Probing in the Linux Kernel
Hardware Probing in the Linux KernelHardware Probing in the Linux Kernel
Hardware Probing in the Linux Kernel
 
Profiling the ACPICA Namespace and Event Handing
Profiling the ACPICA Namespace and Event HandingProfiling the ACPICA Namespace and Event Handing
Profiling the ACPICA Namespace and Event Handing
 
AMD_11th_Intl_SoC_Conf_UCI_Irvine
AMD_11th_Intl_SoC_Conf_UCI_IrvineAMD_11th_Intl_SoC_Conf_UCI_Irvine
AMD_11th_Intl_SoC_Conf_UCI_Irvine
 
Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118
Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118
Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118
 
Information Gathering 2
Information Gathering 2Information Gathering 2
Information Gathering 2
 
intel_x86_pm.pptx
intel_x86_pm.pptxintel_x86_pm.pptx
intel_x86_pm.pptx
 
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdfBuilding PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
 
haifux-pcie.pdf
haifux-pcie.pdfhaifux-pcie.pdf
haifux-pcie.pdf
 
Embedding Linux On The Encore Simputer
Embedding Linux On The Encore SimputerEmbedding Linux On The Encore Simputer
Embedding Linux On The Encore Simputer
 
Slimline Open Firmware
Slimline Open FirmwareSlimline Open Firmware
Slimline Open Firmware
 
ACPI In Windows Vista
ACPI In Windows VistaACPI In Windows Vista
ACPI In Windows Vista
 
Nvidia tegra K1 Presentation
Nvidia tegra K1 PresentationNvidia tegra K1 Presentation
Nvidia tegra K1 Presentation
 
BIOS, Linux and Firmware Test Suite in-between
BIOS, Linux and  Firmware Test Suite in-betweenBIOS, Linux and  Firmware Test Suite in-between
BIOS, Linux and Firmware Test Suite in-between
 
Developing a Windows CE OAL.ppt
Developing a Windows CE OAL.pptDeveloping a Windows CE OAL.ppt
Developing a Windows CE OAL.ppt
 
Creating Competitive Advantage by Revolutionizing I/O
Creating Competitive Advantage by Revolutionizing I/OCreating Competitive Advantage by Revolutionizing I/O
Creating Competitive Advantage by Revolutionizing I/O
 
SR-IOV Introduce
SR-IOV IntroduceSR-IOV Introduce
SR-IOV Introduce
 
Driving The Platform 2
Driving The Platform 2Driving The Platform 2
Driving The Platform 2
 
ONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
ONIE: Open Network Install Environment @ OSDC 2014 Netways, BerlinONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
ONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
 
Intel update
Intel updateIntel update
Intel update
 
VIO LPAR Introduction | Basics | Demo
VIO LPAR Introduction | Basics | DemoVIO LPAR Introduction | Basics | Demo
VIO LPAR Introduction | Basics | Demo
 

More from Linaro

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
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 Vekaria
Linaro
 
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
Linaro
 
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
Linaro
 
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
Linaro
 
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
Linaro
 
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 mainline
Linaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
Linaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
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 mainline
Linaro
 
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
Linaro
 
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
Linaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
Linaro
 
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
Linaro
 
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 boot
Linaro
 

More from Linaro (20)

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
 
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
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 

SFO15-TR9: PSCI, ACPI (and UEFI to boot)

  • 1. Presented by Date Event SFO15-TR9: ACPI, PSCI (and UEFI to boot) Bill Fletcher Linaro Field Engineering v2.0 Bill Fletcher Thursday 24 September 2015 SFO15
  • 2. Overview ● An introductory look at ACPI infrastructure ● How a platform (qemu), a bootloader (uefi) and the kernel work together to set up the ACPI configuration ● There's an explanation of what’s been upstreamed in Linux kernel 4.1 ● A simple aarch64 demo based on qemu ● A brief look at what's new
  • 3. Caveats. This is not ... ● An exhaustive tutorial on ACPI ● A reference implementation for PSCI ● “Why to use ACPI instead of device trees” ● “Why to favour UEFI instead of UBoot” ● ...
  • 4. ACPI and PSCI (briefly)
  • 5. ● "Advanced Configuration and Power Interface” Specification (Currently v6.0: http://www.uefi.org/acpi/specs) ● "Industry-standard interfaces enabling OS-directed configuration, power management, and thermal management (since 1996)" ● ACPI is important because hardware and OS vendors have already worked out the mechanisms for supporting a general purpose computing ecosystem ● Hence it’s non-negotiable in the Enterprise environment, standardized with UEFI ● Has three main components: Tables, Drivers and Registers. ● There’s an interpreted element in ACPI Machine Language (AML) bytecode stored in the ACPI tables. ACPI - One Pager
  • 6. RSD Ptr Pointer Pointer Header FACP Table entry Table entry XSDT ... Header Static Info ... DSDT “FACP” BLKs RSD Ptr Differentiated Definition Block DSDT RSD Ptr Entry Sig Header Contents Sig ACPI drivers OEM Specifics Hardware Register Accesses Root System Description Pointer Extended System Description Table Fixed ACPI Description Table Other tables ... Device I/O Configuration Device Memory Controller Space Register access mechanism system software hardware/firmware What ACPI looks like - a chain of tables Differentiated System Description Table Devices: Interrupts Registers Driver entry points
  • 7. ● It’s an ARM standard ● The official/only way for power management on ARM64 ● A generic interface that low-level supervisory software can use to manage power ● Lives under CPU Ops, which itself lives under CPU Idle and the CPU Governors ● Covers: Core idle management, dynamic addition and removal of cores, and secondary core boot, core migration, system shutdown and reset ● Has both Device Tree and ACPI bindings "Power State Coordination Interface"
  • 9. Basic Boot and ACPI/PSCI Discovery Root system description (pointer) ACPI tablesACPI tablesACPI tables ACPI-aware boot ARM- specific PSCI information 1 2 FACP Table DSDT Table APIC Table Described in the ACPI 5.1 Spec and available in the 4.1 kernel
  • 10. Practical boot and ACPI/PSCI discovery Root system description (pointer) ACPI tablesACPI tablesACPI tables EFIstub PSCI information ACPI=force EDK2 UEFI bootloader "The generic interface for discovering ACPI tables is to boot as an EFI application and then to query the tables from UEFI. That is the interface others are likely to follow, and ACPI without UEFI is unlikely to be of much use to anyone else (ARM)" qemu Kernel with ACPI patches InstallQemuFwCfgTables
  • 11. What about dtb? ● The EFI stub loader makes the Linux kernel image into a UEFI application. ● This application uses the Flattened Device-Tree (FDT) format to pass information about how to access UEFI to the Linux kernel. ● If no device-tree blob (using dtb= ) is available as in our case when using ACPI for hardware description the loader stub will create a new dtb containing only this information. See: https://wiki.linaro.org/LEG/Engineering/Kernel/UEFI/Architecture and drivers/firmware/efi/libstub/fdt.c (leading to efi.h)
  • 12. Basic Feature Set Having booted successfully and loaded the ACPI tables … what functionality do we have?
  • 13. 4.1 ARM ACPI Kernel functionality ● Basic support to run ACPI on ARM64 ● ARM SMP and GICv2 init using MADT ● PSCI announced in the FADT table ● ARM timer init using GTDT ● Kernel documentation why/how to use ACPI on ARM64
  • 14. ● The ACPI Spec (5.1) supported ARM specifically for the first time this year ● ACPI on ARM is a major and continuing LEG collaboration between ARM and Linaro ● “There is no longer any reason to feel that ACPI only belongs to Windows or that Linux is in any way secondary to Microsoft in this arena” (kernel arm-acpi.txt) Why talk about this now?
  • 15. Comprises: ● qemu built from sources ● kernel with ACPI 5.1 built from source ● UEFI built from EDK2 source ● uefi-tools ● iasl, the ACPI table assembler/disassembler ACPI Boot Demo Allows to: ● Boot UEFI as a guest in aarch64 qemu ● Boot the Linux image from the UEFI shell ● Confirm ACPI is enabled ● Dump and read (via iasl) the ACPI tables ● Modify the ACPI data in qemu, rinse and repeat …
  • 16. ACPI in the booting/running system
  • 17. UEFI Booting and reading the ACPI tables ● UEFI has platform-specific functionality to load the tables - in this case to interface with qemu ● Notice that PCI enumeration blocks ACPI table loading
  • 18. Confidential Linux Boot ● Boot from UEFI with ACPI=force ● ACPI entry in /proc ● ACPI tables in /sys/firmware/acpi/t ables
  • 19. Devices are reported - CPUs, Comms (DSDT table) PSCI is present (FADT/FACP table) Way to access PSCI is stated as HVC (FADT/FACP table) Interrupt structures are reported (APIC table) All tables in AML bytecode - disassembled with iasl AML data generated by qemu - see ./hw/arm/virt-acpi- build.c Some more about the tables
  • 20. DSDT DefinitionBlock ("DSDT.aml", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) { Scope (_SB) { Device (CPU0) { ... } Device (COM0) { Name (_HID, "ARMH0011") // _HID: Hardware ID ... { Memory32Fixed (ReadWrite, 0x09000000, // Address Base 0x00001000, // Address Length ) Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) { 0x00000021, Differentiated System Description Table System & peripherals, memory mapping, IRQs, driver entry points
  • 21. FADT [000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] <snip> [074h 0116 12] Reset Register : [Generic Address Structure] [074h 0116 1] Space ID : 00 [SystemMemory] [075h 0117 1] Bit Width : 00 [076h 0118 1] Bit Offset : 00 [077h 0119 1] Encoded Access Width : 00 [Undefined/Legacy] [078h 0120 8] Address : 0000000000000000 [080h 0128 1] Value to cause reset : 00 [081h 0129 2] ARM Flags (decoded below) : 0003 PSCI Compliant : 1 Must use HVC for PSCI : 1 Fixed ACPI Description Table (“FACP”) Part of the chain that gets to the DSDT Register blocks relating to power management … and PSCI The full table dumps are reproduced here: http://people.linaro.org/~bill.fletcher/SFO15-TR9_ACPI_PSCI_and_UEFI_To_Boot_supporting_material/
  • 22. MADT [000h 0000 4] Signature : "APIC" [Multiple APIC Description Table (MADT)] <snip> [02Ch 0044 1] Subtable Type : 0B [Generic Interrupt Controller] ... [038h 0056 4] Flags (decoded below) : 00000001 Processor Enabled : 1 Performance Interrupt Trigger Mode : 0 Virtual GIC Interrupt Trigger Mode : 0 [03Ch 0060 4] Parking Protocol Version : 00000000 [040h 0064 4] Performance Interrupt : 00000000 ... [070h 0112 8] ARM MPIDR : 0000000000000000 Multiple APIC Description Table (“APIC”) APIC = Advanced Programmable Interrupt Controller (8259+) Interrupt controllers and CPU affinity There can be a system MADT referenced from the XSDT Peripherals with their own interrupt controllers can have a method in their DSDT entry for you to get a local MADT
  • 24. ATF PSCI functionality (it’s the reference) Handles SMCs (Secure Monitor Calls) conforming to the SMC Calling Convention PDD There’s extensive design documentation available. Source is published under a BSD license.
  • 25. either ARM trusted firmware, platform-specific implementation in hypervisor, or qemu emulation Calling PSCI from an ACPI context ACPI-aware application PSCI information ACPI tablesACPI tablesACPI tables PSCI driver calls 21 3 HVC or SMC trap PSCI implementation assumes either a Hypervisor running at EL2 or a Secure Monitor running at EL3 Requires a platform running the Secure Monitor at EL3, which implements PSCI. Alternatively if there's no EL3 but a hypervisor instead you can emulate this with a HVC call This HVC mechanism is also emulated in qemu
  • 26. What’s New and What’s Next?
  • 27. Enough in ACPI "to boot a server, support ARM’s latest IP (GICv2m, GICv3, SMMUv2) and do decent idle management." What’s next? DVFS performance management ... … for an ARM server to implement DVFS in an architecture agnostic way via “CPPC” (CPPC - Collaborative Processor Performance Control) What arrived in the latest ACPI 6.0 spec?
  • 28. ACPI 6.0 introduces Low Power Idle states, which allows an operating system to manage the power states of the processor power domain hierarchy. The ACPI FFH* mechanism is used in ARM-based systems to allow the operating system to discover: the entry method into a low power state; how to collect power state residency, and statistics This ACPI register-based interface is defined in ARM DEN0048A available on ARM Infocentre portal *FFH = Functional Fixed Hardware Interface - an ACPI name for the register address space used for power management) ARM Low Power Idle (LPI) states
  • 29. CPPC (Collaborative Processor Performance Control) Provides more autonomy to the CPU subsystem to control power/perf An abstract interface where the OS specifies performance bounds and leaves the underlying subsystem some latitude in how it achieves them. "CPPC implementation designed as shim which allows Cpufreq drivers to plug into existing governors or alternately implement inbuilt ones" PCC (Platform Communication Channel) PCC (Platform Communication Channel) is a generic means for PCC Clients such as CPPC, to talk to the firmware. Back to DVFS → CPPC & PCC (1)
  • 30. CPPC & PCC (2) ● CPPC has been used on ARM64 servers successfully. Some ARM vendors may not have feedback counters (workaroundable). Missing in CPPC at the moment is the power-to-performance level mapping. This is to be addressed in the near future once EAS is upstream ● This patchwork is part of LEG activity. See https://git. linaro.org/people/ashwin.chaugule/leg-kernel.git ● V9 patches picked up for v4.3 - hoping to upstream by v4.4
  • 32. ● UEFI is a requirement for ACPI ● Upstream qemu can emulate an aarch64 ACPI platform (with elementary PSCI) ● You can build a simple ARM64 ACPI-aware system with 4.1 ● ARM idle management arrived in the ACPI 6.0 spec ● Interfaces to ARM DVFS (via CPPC) are still "works in progress". ● Once these arrive, a demonstrator will need more than qemu’ s emulation of PSCI ● ARM trusted firmware is the reference implementation for PSCI Wrap-Up
  • 33. ● PSCI spec: http://infocenter.arm.com/help/topic/com. arm.doc. den0022c/DEN0022C_Power_State_Coordination_Inter face.pdf ● ACPI standard: http://www.uefi. org/sites/default/files/resources/ACPI_5_1release.pdf ● Basic ACPI info: http://www.acpi.info/over.htm References
  • 34. ● The full table dumps are reproduced here: http://people.linaro.org/~bill. fletcher/SFO15-TR9_ACPI_PSCI_and_UEFI_To_Boot_supporting_material ● Useful primer on PSCI (ARM doc): http://events.linuxfoundation. org/sites/events/files/slides/lp-linuxcon14.pdf ● LEG wiki: https://wiki.linaro.org/LEG/Engineering/Kernel/ACPI ● For a comparison of ACPI and FDT, google the presentation done by Graeme Gregory at Linux Plumbers 2013. ● See http://article.gmane.org/gmane.linux.ports.arm. kernel/382864/match=cppc for an explanation of how to use ACPI ● Ashwin’s V8 patch set including CPPC via PCC http://thread.gmane. org/gmane.linux.power-management.general/63697 Resources
  • 35. Q&A?
  • 36. More about Linaro: www.linaro.org/about/ Linaro members: www.linaro.org/members