From: Fu Wei <fu.wei(a)linaro.org>
This patchset:
(1)Preparation for adding GTDT support in arm_arch_timer:
1. Introduce two functions to get the frequency from mmio and sysreg.
2. separate out device-tree code from arch_timer_detect_rate
3. remove arch_timer_detect_rate use arch_timer_get_*_freq directly
4. split arch_timer_rate for different types of timer
5. Refactor arch_timer_needs_probing, and move it into DT init call
6. Introduce some new structs and refactor the MMIO timer init code
for reusing some common code.
(2)Introduce ACPI GTDT parser: drivers/acpi/arm64/acpi_gtdt.c
Parse all kinds of timer in GTDT table of ACPI:arch timer,
memory-mapped timer and SBSA Generic Watchdog timer.
This driver can help to simplify all the relevant timer drivers,
and separate all the ACPI GTDT knowledge from them.
(3)Simplify ACPI code for arm_arch_timer
(4)Add GTDT support for ARM memory-mapped timer.
This patchset has been tested on the following platforms with ACPI enabled:
(1)ARM Foundation v8 model
Changelog:
v21: https://lkml.org/lkml/2017/2/6/
Introduce two functions to get the frequency from mmio and sysreg.
Remove arch_timer_detect_rate use arch_timer_get_*_freq directly
Split arch_timer_rate for different types of timer.
Skip secure timer frame in GTDT driver.
Rebase to git://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arch-timer/cleanup
(The first 6 patches in v20 have been merged into arch-timer/cleanup branch)
v20: https://lkml.org/lkml/2017/1/18/534
Reorder the first 4 patches and split the 4th patches.
Leave CNTHCTL_* as they originally were.
Fix the bug in arch_timer_select_ppi.
Split "Rework counter frequency detection" patch.
Rework the arch_timer_detect_rate function.
Improve the commit message of "Refactor MMIO timer probing".
Rebase to 4.10.0-rc4
v19: https://lkml.org/lkml/2016/12/21/25
Fix a '\n' missing in a error message in arch_timer_mem_init.
Add "request_mem_region" for ioremapping cntbase, according to
f947ee1 clocksource/drivers/arm_arch_timer: Map frame with of_io_request_and_map()
Rebase to 4.9.0-gfb779ff
v18: https://lkml.org/lkml/2016/12/8/446
Fix 8/15 patch problem of "int ret;" in arch_timer_acpi_init.
Rebase to 4.9.0-rc8-g9269898
v17: https://lkml.org/lkml/2016/11/25/140
Take out some cleanups from 4/15.
Merge 5/15 and 6/15, improve PPI determination code,
improve commit message.
Rework counter frequency detection.
Move arch_timer_needs_of_probing into DT init call.
Move Platform Timer scan loop back to timer init call to avoid allocating
and free memory.
Improve all the exported functions' comment.
v16: https://lkml.org/lkml/2016/11/16/268
Fix patchset problem about static enum ppi_nr of 01/13 in v15.
Refactor arch_timer_detect_rate.
Refactor arch_timer_needs_probing.
v15: https://lkml.org/lkml/2016/11/15/366
Re-order patches
Add arm_arch_timer refactoring patches to prepare for GTDT:
1. rename some enums and defines, and some cleanups
2. separate out arch_timer_uses_ppi init code and fix a potential bug
3. Improve some new structs, refactor the timer init code.
Since the some structs have been changed, GTDT parser for memory-mapped
timer and SBSA Generic Watchdog timer have been update.
v14: https://lkml.org/lkml/2016/9/28/573
Separate memory-mapped timer GTDT support into two patches
1. Refactor the timer init code to prepare for GTDT
2. Add GTDT support for memory-mapped timer
v13: http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1231717.html
Improve arm_arch_timer code for memory-mapped
timer GTDT support, refactor original memory-mapped timer
dt support for reusing some common code.
v12: https://lkml.org/lkml/2016/9/13/250
Rebase to latest Linux 4.8-rc6
Delete the confusing "skipping" in the error message.
V11: https://lkml.org/lkml/2016/9/6/354
Rebase to latest Linux 4.8-rc5
Delete typedef (suggested by checkpatch.pl)
V10: https://lkml.org/lkml/2016/7/26/215
Drop the "readq" patch.
Rebase to latest Linux 4.7.
V9: https://lkml.org/lkml/2016/7/25/345
Improve pr_err message in acpi gtdt driver.
Update Commit message for 7/9
shorten the irq mapping function name
Improve GTDT driver for memory-mapped timer
v8: https://lkml.org/lkml/2016/7/19/660
Improve "pr_fmt(fmt)" definition: add "ACPI" in front of "GTDT",
and also improve printk message.
Simplify is_timer_block and is_watchdog.
Merge acpi_gtdt_desc_init and gtdt_arch_timer_init into acpi_gtdt_init();
Delete __init in include/linux/acpi.h for GTDT API
Make ARM64 select GTDT.
Delete "#include <linux/module.h>" from acpi_gtdt.c
Simplify GT block parse code.
v7: https://lkml.org/lkml/2016/7/13/769
Move the GTDT driver to drivers/acpi/arm64
Add add the ARM64-specific ACPI Support maintainers in MAINTAINERS
Merge 3 patches of GTDT parser driver.
Fix the for_each_platform_timer bug.
v6: https://lkml.org/lkml/2016/6/29/580
split the GTDT driver to 4 parts: basic, arch_timer, memory-mapped timer,
and SBSA Generic Watchdog timer
Improve driver by suggestions and example code from Daniel Lezcano
v5: https://lkml.org/lkml/2016/5/24/356
Sorting out all patches, simplify the API of GTDT driver:
GTDT driver just fills the data struct for arm_arch_timer driver.
v4: https://lists.linaro.org/pipermail/linaro-acpi/2016-March/006667.html
Delete the kvm relevant patches
Separate two patches for sorting out the code for arm_arch_timer.
Improve irq info export code to allow missing irq info in GTDT table.
v3: https://lkml.org/lkml/2016/2/1/658
Improve GTDT driver code:
(1)improve pr_* by defining pr_fmt(fmt)
(2)simplify gtdt_sbsa_gwdt_init
(3)improve gtdt_arch_timer_data_init, if table is NULL, it will try
to get GTDT table.
Move enum ppi_nr to arm_arch_timer.h, and add enum spi_nr.
Add arm_arch_timer get ppi from DT and GTDT support for kvm.
v2: https://lkml.org/lkml/2015/12/2/10
Rebase to latest kernel version(4.4-rc3).
Fix the bug about the config problem,
use CONFIG_ACPI_GTDT instead of CONFIG_ACPI in arm_arch_timer.c
v1: The first upstreaming version: https://lkml.org/lkml/2015/10/28/553
Fu Wei (13):
clocksource: arm_arch_timer: introduce two functions to get the
frequency from mmio and sysreg.
clocksource: arm_arch_timer: separate out device-tree code from
arch_timer_detect_rate
clocksource: arm_arch_timer: remove arch_timer_detect_rate
clocksource: arm_arch_timer: split arch_timer_rate for different types
of timer
clocksource: arm_arch_timer: refactor arch_timer_needs_probing
clocksource: arm_arch_timer: move arch_timer_needs_of_probing into DT
init call
clocksource: arm_arch_timer: introduce some new structs to prepare for
GTDT
clocksource: arm_arch_timer: refactor MMIO timer probing.
acpi/arm64: Add GTDT table parse driver
clocksource: arm_arch_timer: simplify ACPI support code.
acpi/arm64: Add memory-mapped timer support in GTDT driver
clocksource: arm_arch_timer: add GTDT support for memory-mapped timer
acpi/arm64: Add SBSA Generic Watchdog support in GTDT driver
arch/arm64/Kconfig | 1 +
drivers/acpi/arm64/Kconfig | 3 +
drivers/acpi/arm64/Makefile | 1 +
drivers/acpi/arm64/gtdt.c | 378 +++++++++++++++++++++++++++++++++++
drivers/clocksource/arm_arch_timer.c | 354 ++++++++++++++++++++------------
drivers/watchdog/Kconfig | 1 +
include/clocksource/arm_arch_timer.h | 17 ++
include/linux/acpi.h | 7 +
8 files changed, 635 insertions(+), 127 deletions(-)
create mode 100644 drivers/acpi/arm64/gtdt.c
--
2.9.3
FWTS 17.02.00 is released.
It is available from:
Tar: http://fwts.ubuntu.com/release/fwts-V17.02.00.tar.gz
PPA: https://launchpad.net/~firmware-testing-team/+archive/ubuntu/ppa-fwts-stable
Release notes: https://wiki.ubuntu.com/FirmwareTestSuite/ReleaseNotes/17.02.00
= New Features =
* ACPICA: Update to version 20170119
* acpi: s3: Add new --s3-resume-hook option
* Add README_JSON.txt for FWTS
* klog.json: Add some more kernel messages to klog data base
* klog.json: Add some EFI driver kernel messages to klog database
* klog.json: Add some EFI quirk driver kernel messages to klog database
* klog.json: Add some more EFI driver kernel messages to klog database
* klog.json: Add some miscellaneous messages to klog database
* Integrate PPC for FWTS-LIVE Frontend
* fedora: Add fedora internal versioning number in fwts.spec
* fedora: Add fwts.spec.in
* fedora: Update buildsrpm.sh for dynamic versioning
* fwts_framework: handle -? option differently from -h
= Fixed Bugs =
* dmicheck: fix mistakes in error messages for SMBIOS type 9
* README: update git URL to http://kernel.ubuntu.com/git/hwe/fwts.git/
* lib: fwts_args: fix arg parameter sanity range checking
* uefi/uefirtvariable: fix options check error messages
* clean up missing whitespaces
* acpi: acpitables: fix indentation, no functional change
* devicetree: dt_sysinfo: reduce scope of version_buf
* lib: fwts_acpid: remove re-assignment of ptr to NULL
* lib: fwts_cpu: force compiler to increment i rather than optimize it out
* opal: mem_info: remove redundant initialization of prop_string to NULL
* opal: mem_info: reduce scope of some variables
* opal: cpu_info: remove redundant initialization of prop_string to NULL
* opal: cpu_info: reduce scope of some variables
* opal: pci_info: reduce scope of some variables
* doc: remove trailing white spaces
* opal/mtd_info.c: make a couple of functions static to reduce global scope
* uefi: uefirtmisc: make gEfiCapsuleHeaderGuid static
* opal: prd_info: make a couple of functions static to reduce global scope
* ipmi: bmc: make fwts_bmc_info_check static
* acpi: msdm: make variable table static
* acpi: slit: make variable table static
* acpi: fpdt: make variable table static
* acpi: slic: make variable table static
* misc: fix various spelling mistakes
* data: fix some spelling mistakes in klog and olog databases
* lib: fwts_olog: ensure buffer is null terminated
* lib: fwts_pipeio: fix memory leak on zero sized text allocation
* fwts-alloc: track memory allocations, cleans up 6 coverity scan warnings
* fwts-alloc: garbage collect hash records
* klog.json: fix a couple of klog patterns
* fedora: Fix location of klog.json file in fwts.spec
= Detail Changelog =
To check /usr/share/doc/fwts/changelog.Debian.gz or
fwts_17.02.00-0ubuntu1.debian.tar.gz from
https://launchpad.net/ubuntu/+source/fwts
--
Cheers,
Alex Hung
If you're on the To: line, you have a kernel tree currently being
build/boot tested by kernelCI.org that will be disabled (hopefully,
temporarily.)
Our infrastructure (graciously hosted by Linaro) is having several
problems, and is not currently scaling well as we've been adding
trees. These issues have been causing a variety of problems, but
mainly resulting lots of false failures and generally low quality and
usefulness of the reporting.
Until we have the time and resources to address these growing pains
(kernel CI is currently all-volunteer, spare-time only), we've decided
to reduce the number of trees we build to: mainline, linux-next,
arm-soc, and stable.
This will reduce load and (hopefully) increase the quality of the
remaining upstream-focused build/boot results until we have the
resources (both time and humans) to address the current problems and
make things scalable to a large number of trees.
Sorry for the inconvenience,
Kevin
(on behalf of the core kernel CI team of myself and the Linaro crew:
Tyler Baker, Milo Casagrande, Mark Brown and Matt Hart.)
Here's another stab at this writeup. I'd appreciate any comments!
Changes from v1 to v2:
- Consumer/Producer is defined for Extended Address Space descriptors;
should be ignored for QWord/DWord/Word Address Space descriptors
- New arches may use Extended Address Space descriptors in PNP0A03 for
bridge registers, including ECAM (if the arch adds support for this)
- Add more details about MCFG and _CBA (Lv's suggestion)
- Incorporate Rafael's suggestions
---
Bjorn Helgaas (1):
PCI: Add information about describing PCI in ACPI
Documentation/PCI/00-INDEX | 2
Documentation/PCI/acpi-info.txt | 180 +++++++++++++++++++++++++++++++++++++++
2 files changed, 182 insertions(+)
create mode 100644 Documentation/PCI/acpi-info.txt