Home | History | Annotate | Download | only in fdt
History log of /src/sys/arch/arm/fdt/acpi_fdt.c
RevisionDateAuthorComments
 1.25  08-Dec-2024  jmcneill acpi: Try PSCI before UEFI RT for shutdown/reset.

BSA says that an OS can use either UEFI RT or PSCI, and that the RT
implementation should just call PSCI.

Given the amount of implementation issues with UEFI RT, let's try PSCI
first, because it's nice to be able to reboot and poweroff even with
buggy firmware.
 1.24  25-Nov-2022  mrg move the creation of machdep.smbios into platform_init().

"dmidecode -d /dev/smbios" now works on x86. also tested on arm64 (lx2k.)
 1.23  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.22  24-Jul-2021  jmcneill branches: 1.22.2;
smbios: Add character device for accessing SMBIOS tables

The /dev/smbios character device gives an aperture into physical memory
that allows read-only access to the SMBIOS header and tables.
 1.21  23-Jul-2021  jmcneill smbios: Support SMBIOS 2.x tables.
 1.20  22-Jul-2021  jmcneill Expose SMBIOS tables using sysctl machdep.dmi.*, same as x86.
 1.19  24-Apr-2021  thorpej branches: 1.19.2;
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.18  27-Jan-2021  thorpej branches: 1.18.2;
Rename of_match_compat_data() to of_compatible_match(). Similarly,
rename of_search_compatible() to of_compatible_lookup().

Standardize on of_compatible_match() for driver matching, and adapt
all call sites.
 1.17  17-Jan-2021  jmcneill trailing whitespace
 1.16  10-Oct-2020  jmcneill branches: 1.16.2;
Support using EFI runtime services for RTC when booting in devicetree mode.
 1.15  15-Sep-2020  jmcneill If acpi_probe() falis, just panic now instead of failing mysteriously later.
 1.14  17-Jan-2020  jmcneill Add support for Arm N1 SDP PCIe host controller.

The N1 SDP has a few bugs that we need to work around:
- PCIe root port config space lives in a non-standard location.
- Access to PCIe config space of devices that do not exist results in
an sync SError. Firmware creates a "known devices" table at a fixed
physical address that we use to filter PCI conf access to only known
devices.

This change splits the Arm ACPI PCI quirks into separate files for each
host controller, and allows per-segment quirks to be applied.

These changes exposed some bugs in the MI ACPI layer related to
multi-segment support. The MI ACPI PCI code was using a shared PCI
chipset tag to access devices, and these accesses can happen before our
PCI host bridge drivers are attached! The global chipset tag is now gone,
and an MD callback can provide a custom tag on a per-segment basis.
 1.13  29-Dec-2019  jmcneill branches: 1.13.2;
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.12  22-Jun-2019  jmcneill Finish the job
 1.11  22-Jun-2019  jakllsch Restore previous range of aa_dmat.

Should fix ahcisata_acpi on OverDrive 1000, which has no DRAM below 4GiB.
 1.10  19-Jun-2019  jmcneill Provide a 64-bit dma tag and use a coherent tag unless CCA=0
 1.9  12-Nov-2018  jmcneill branches: 1.9.4;
Support building kernels with ACPI and no PCI.
 1.8  31-Oct-2018  jmcneill Add MSI-X support
 1.7  28-Oct-2018  jmcneill Add support for EFI runtime services on aarch64.
 1.6  23-Oct-2018  jmcneill Expose SMBIOS table pointer via machdep.smbios sysctl
 1.5  21-Oct-2018  jmcneill Some parts of the ACPI subsystem depend on a valid PCI chipset tag in the
ACPI softc. Provide one here, and assume segment 0.
 1.4  21-Oct-2018  jmcneill Add support for PCI MSI using ARM GICv2m.
 1.3  15-Oct-2018  jmcneill branches: 1.3.2;
Add ARM ACPI PCI support.
 1.2  13-Oct-2018  jmcneill Support poweroff via PSCI
 1.1  12-Oct-2018  jmcneill Add acpi @ fdt glue
 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  15-Oct-2018  pgoyette file acpi_fdt.c was added on branch pgoyette-compat on 2018-10-20 06:58:25 +0000
 1.9.4.3  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.9.4.2  10-Jun-2019  christos Sync with HEAD
 1.9.4.1  12-Nov-2018  christos file acpi_fdt.c was added on branch phil-wifi on 2019-06-10 22:05:53 +0000
 1.13.2.1  17-Jan-2020  ad Sync with head.
 1.16.2.1  03-Apr-2021  thorpej Sync with HEAD.
 1.18.2.1  23-Mar-2021  thorpej Convert config_found_ia() call sites where the device only carries
a single interface attribute to bare config_found() calls.
 1.19.2.1  01-Aug-2021  thorpej Sync with HEAD.
 1.22.2.1  04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed