Home | History | Annotate | Download | only in acpi
History log of /src/sys/arch/arm/acpi/acpi_machdep.c
RevisionDateAuthorComments
 1.28  30-Dec-2024  jmcneill arm: ACPI: Fix EFI_MEMORY_UC memory type.

The UEFI specification says that EFI_MEMORY_UC should be treated as
Device-nGnRnE (UEFI 2.10, 2.3.6.1 AArch64 Platforms - Memory types).
 1.27  09-Dec-2024  jmcneill arm64: acpi: Honour DMA memory address limit for named components.
 1.26  15-Oct-2022  jmcneill Use "non-posted" instead of "strongly ordered" to describe nGnRnE mappings

Rename the following defines:
- _ARM_BUS_SPACE_MAP_STRONGLY_ORDERED to BUS_SPACE_MAP_NONPOSTED
- PMAP_DEV_SO to PMAP_DEV_NP
- LX_BLKPAG_ATTR_DEVICE_MEM_SO to LX_BLKPAG_ATTR_DEVICE_MEM_NP
Rename the following option:
- AARCH64_DEVICE_MEM_STRONGLY_ORDERED to AARCH64_DEVICE_MEM_NONPOSTED
 1.25  08-Aug-2021  jmcneill arm: ACPI: Add support for simple sharing of platform interrupts

Allow sharing of platform interrupts provided that the type, ipl, and
mpsafe-ness are the same.
 1.24  07-Aug-2021  jmcneill acpi: DMA: Use acpi_resource_parse_any to parse _DMA resources

_DMA resources really should be marked ResourceProducer, so use
acpi_resource_parse_any to pick these up.
 1.23  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.22  24-Apr-2021  thorpej branches: 1.22.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.21  13-Dec-2020  jmcneill branches: 1.21.2;
Add MI support for attaching drivers to arbitrary System Description
Tables.
 1.20  24-Oct-2020  skrll branches: 1.20.2;
Trailing whitespace
 1.19  21-Jan-2020  jmcneill Provide a properly constrained 32-bit DMA tag to ACPI.
 1.18  31-Dec-2019  jmcneill branches: 1.18.2;
Rely on 32/64-bit overflow to calculate translation offsets. Store this
as a separate ar_xbase field in acpi_mem instead of having separate
ar_offset and ar_decode fields.
 1.17  31-Dec-2019  jmcneill Create bus_dma tags for each device node based on _CCA and _DMA properties
found by walking up the device node tree. These tags encode range
restrictions, address translations, and whether or not the device is
cache coherent.
 1.16  31-Dec-2019  jmcneill The DMA restrictions may not be defined in the direct parent of a device,
so search up the tree for a module device.
 1.15  30-Dec-2019  jmcneill If a device node is a child of a module device, and the module device declares DMA range restrictions, use them.
 1.14  29-Dec-2019  jmcneill Allow MD code to provide custom bus_dma tags on a per-node basis. On Arm
this is required to return non-coherent bus_dma tags for device nodes with
_CCA=0
 1.13  28-Dec-2019  jmcneill Do not use Early Write Acknowledge for PCIe I/O and config space.
 1.12  23-Dec-2019  jmcneill Implement acpi_md_intr_mask and acpi_md_intr_unmask
 1.11  22-Dec-2019  thorpej Add acpi_intr_mask() and acpi_intr_unmask() which, following the pre-existing
ACPI software layering model, are wrappers around acpi_md_intr_mask() and
acpi_md_intr_unmask(), which in turn are wrappers around intr_mask() and
intr_unmask().

XXX ARM and IA64 implementations of acpi_md_intr_mask() and
acpi_md_intr_unmask() are just stubs for now.
 1.10  12-Aug-2019  skrll Use same style test as acpi_md_OsWritable
 1.9  12-Aug-2019  skrll Correct the test for writeable memory. There aren't any users of this at
this point.
 1.8  01-Aug-2019  jmcneill Always map ACPI table memory as normal memory. Always map device memory as device memory.
 1.7  01-Aug-2019  jmcneill acpi_md_OsMapMemory can be used for both normal and device memory. Use the
UEFI memory map to determine how to map a given region.
 1.6  16-Nov-2018  jmcneill branches: 1.6.4; 1.6.6;
Add MD functions for establishing and disestablishing interrupt handlers.
 1.5  12-Nov-2018  jmcneill Support building kernels with ACPI and no PCI.
 1.4  21-Oct-2018  jmcneill Don't make assumptions about the order of MADT subtables. Ensure that we
attach CPUs before the interrupt controller driver.
 1.3  16-Oct-2018  jmcneill branches: 1.3.2;
Fix size calculation in acpi_md_OsUnmapMemory
 1.2  15-Oct-2018  jmcneill Add ARM ACPI PCI support.
 1.1  12-Oct-2018  jmcneill Add ARM MD ACPI implementation.
 1.3.2.3  26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.3.2.2  20-Oct-2018  pgoyette Sync with head
 1.3.2.1  16-Oct-2018  pgoyette file acpi_machdep.c was added on branch pgoyette-compat on 2018-10-20 06:58:24 +0000
 1.6.6.3  29-Dec-2019  martin Pull up following revision(s) (requested by jmcneill in ticket #586):

sys/arch/arm/nvidia/tegra_pcie.c: revision 1.27
sys/arch/aarch64/aarch64/pmap.c: revision 1.57
sys/arch/aarch64/aarch64/locore.S: revision 1.48
sys/arch/aarch64/include/armreg.h: revision 1.29
sys/arch/aarch64/aarch64/pmap.c: revision 1.58
sys/arch/aarch64/aarch64/locore.S: revision 1.49
sys/arch/arm/acpi/acpipchb.c: revision 1.14
sys/arch/aarch64/aarch64/genassym.cf: revision 1.16
sys/arch/arm/acpi/acpi_machdep.c: revision 1.13
sys/arch/aarch64/include/pmap.h: revision 1.27
sys/arch/aarch64/aarch64/genassym.cf: revision 1.17
sys/arch/aarch64/include/pmap.h: revision 1.28
sys/arch/arm/fdt/pcihost_fdtvar.h: revision 1.3
sys/arch/arm/include/bus_defs.h: revision 1.14
sys/arch/aarch64/aarch64/bus_space.c: revision 1.9
sys/arch/arm/fdt/pcihost_fdt.c: revision 1.12
sys/arch/aarch64/conf/files.aarch64: revision 1.15
sys/arch/aarch64/conf/files.aarch64: revision 1.16
sys/arch/arm/rockchip/rk3399_pcie.c: revision 1.9

Enable early write acknowledge for device memory mappings.

Do not use Early Write Acknowledge for PCIe I/O and config space.
 1.6.6.2  12-Aug-2019  martin Pull up following revision(s) (requested by skrll in ticket #48):

sys/arch/arm/acpi/acpi_machdep.c: revision 1.9
sys/arch/arm/acpi/acpi_machdep.c: revision 1.10

Correct the test for writeable memory. There aren't any users of this at
this point.

Use same style test as acpi_md_OsWritable
 1.6.6.1  04-Aug-2019  martin Pull up following revision(s) (requested by jmcneill in ticket #3):

sys/stand/efiboot/efiacpi.c: revision 1.4
sys/stand/efiboot/efifdt.c: revision 1.18
sys/stand/efiboot/version: revision 1.12
sys/arch/arm/acpi/acpi_machdep.c: revision 1.7
sys/arch/arm/acpi/acpi_machdep.c: revision 1.8

Add full UEFI memory map to the /chosen node.

-

acpi_md_OsMapMemory can be used for both normal and device memory. Use the
UEFI memory map to determine how to map a given region.

Always map ACPI table memory as normal memory. Always map device memory as device memory.
 1.6.4.4  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.6.4.3  08-Apr-2020  martin Merge changes from current as of 20200406
 1.6.4.2  10-Jun-2019  christos Sync with HEAD
 1.6.4.1  16-Nov-2018  christos file acpi_machdep.c was added on branch phil-wifi on 2019-06-10 22:05:50 +0000
 1.18.2.1  25-Jan-2020  ad Sync with head.
 1.20.2.1  14-Dec-2020  thorpej Sync w/ HEAD.
 1.21.2.2  17-Apr-2021  thorpej acpi_md_gtdt_probe(): Fix paste-o in interface attribute name.
 1.21.2.1  02-Apr-2021  thorpej config_found_ia() -> config_found() w/ CFARG_IATTR.
 1.22.8.1  04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed