Home | History | Annotate | only in /src/sys/arch/arm/apple
History log of /src/sys/arch/arm/apple
RevisionDateAuthorComments
 1.5 24-Feb-2023  jmcneill #define<tab> for consistency with the rest of the file
 1.4 27-Apr-2022  skrll Sync with OpenBSD

- Use subpage feature
- Catch up with new device tree bindings
- Skip locked DARTs
- Use bypass mode for USB3 DARTs

Other changes from me
- Sprinkle BITS(3)
- Improve interrupt error handling
 1.3 06-Sep-2021  jmcneill Instead of requiring drivers to be explicit about their device memory
mapping requirements, move this decision into the fdt layer. This
introduces a new MD function, fdtbus_bus_tag_create, which is responsible
for returning per-node bus_space handles.
 1.2 04-Sep-2021  jmcneill Use fdt_iommu instead of calling appledart directly from applepcie
 1.1 30-Aug-2021  jmcneill Add initial support for Apple M1.

Currently supported devices:
- Interrupt controller
- IOMMU
- PCIe (USB3 and ethernet)
- Reboot via watchdog
- Framebuffer console
 1.3 16-Sep-2025  thorpej As with ACPI, perform the fdtbus_register_i2c_controller() in a centralized
location.
 1.2 16-Sep-2025  thorpej Garbage-collect fdtbus_attach_i2cbus(); the regular iicbus_attach() is
sufficient now.
 1.1 10-May-2022  skrll Add a driver for the Apple M1 I2C controller. From OpenBSD.
 1.9 28-Jun-2022  jmcneill appleintc: update ci_cpl in pic_set_priority callback
 1.8 02-May-2022  ryo fix non-MULTIPROCESSOR build
 1.7 28-Mar-2022  riastradh arm/apple: Use container_of, not bespoke offsetof arithmetic.

Better type-safety this way.
 1.6 26-Nov-2021  skrll Mask the bottom 5 bits in the standard pic way. NFC.
 1.5 26-Nov-2021  skrll no need to shout
 1.4 31-Oct-2021  skrll Rework Arm (32bit and 64bit) AP startup so that cpu_hatch doesn't sleep.

The AP initialisation code in cpu_init_secondary_processor will read and
initialise the required system registers and state for the BP to attach
and report.

Rework the interrupt handler code for this new sequence. Thankfully,
this removes a bunch of code for bcm2836mp.

The VFP detection handler on <= armv7 relies on the global undefined
handler being in place until the BP attaches vfp. That is, after the
APs have been spun up.

gicv3_its.c has a serialisation issue which is protected against in
the gicv3_its_cpu_init, which is called from cpu_hatch, with a spin
lock. The serialisation issue needs addressing more completely.

Tested on RPI3, Apple M1, QEMU, and lx2k

Fixes PR port-arm/56264:
diagnostic assertion "l->l_stat == LSONPROC" failed on RPI3
 1.3 16-Oct-2021  ryo fix non-MULTIPROCESSOR build

Build tested only.
 1.2 06-Sep-2021  jmcneill Instead of requiring drivers to be explicit about their device memory
mapping requirements, move this decision into the fdt layer. This
introduces a new MD function, fdtbus_bus_tag_create, which is responsible
for returning per-node bus_space handles.
 1.1 30-Aug-2021  jmcneill Add initial support for Apple M1.

Currently supported devices:
- Interrupt controller
- IOMMU
- PCIe (USB3 and ethernet)
- Reboot via watchdog
- Framebuffer console
 1.1 27-Apr-2022  skrll Add support for the mailbox that provides a communications channel with
additional cores integrated in Apple Silicon.

Also, add an implementation for the protocol to communicate with
coprocessors running firmware based Apple's RTKit OS.

From OpenBSD.
 1.1 27-Apr-2022  skrll Add support for the mailbox that provides a communications channel with
additional cores integrated in Apple Silicon.

Also, add an implementation for the protocol to communicate with
coprocessors running firmware based Apple's RTKit OS.

From OpenBSD.
 1.1 07-May-2022  skrll Add support for Apple silicon NVME. Ported from OpenBSD.
 1.6 27-Apr-2022  skrll Sync with OpenBSD

- port initialisation and device power up. Latter requires the SMC
GPIO controller which is WIP.

While here
- improve the MSI vector search algorithm; and
- spinkle some BITS(3)
 1.5 14-Sep-2021  jmcneill Support new style msi-ranges from U-Boot
 1.4 13-Sep-2021  jmcneill applepcie: Explicitly use posted BS tag for PCI devices.
 1.3 06-Sep-2021  jmcneill Instead of requiring drivers to be explicit about their device memory
mapping requirements, move this decision into the fdt layer. This
introduces a new MD function, fdtbus_bus_tag_create, which is responsible
for returning per-node bus_space handles.
 1.2 04-Sep-2021  jmcneill Use fdt_iommu instead of calling appledart directly from applepcie
 1.1 30-Aug-2021  jmcneill Add initial support for Apple M1.

Currently supported devices:
- Interrupt controller
- IOMMU
- PCIe (USB3 and ethernet)
- Reboot via watchdog
- Framebuffer console
 1.1 27-Apr-2022  skrll Add a driver for the Apple GPIO controller found in Apple silicon.

Derived from the OpenBSD driver.
 1.9 03-Oct-2025  thorpej Use device_setprop_data() to set the "mac-address" property.
 1.8 06-Sep-2025  thorpej Re-factor the console-related code into fdt_console.[ch]
 1.7 06-Sep-2025  thorpej Refactor the "platform" defitions into fdt_platform.h
 1.6 07-Apr-2023  skrll Rename ARM_PLATFORM to FDT_PLATFORM and make it available outside arm.
 1.5 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.4 13-Sep-2021  jmcneill apple: provide a non-posted bs tag by default

This tag is still used for early console attachment.
 1.3 02-Sep-2021  jmcneill apple: derive CPU speed from mpidr_el1

According to https://github.com/AsahiLinux/docs/wiki/HW%3AARM-System-Registers,
MPIDR_EL1 Aff2 determines whether a core is an efficiency or performance
core. Replace the compat data table with code that uses the aff2 value
for fake DMIPS/MHz value, to hopefully maintain compatibility with future
cores.
 1.2 01-Sep-2021  jmcneill Make the scheduler aware of the differences between efficiency and
performance cores.
 1.1 30-Aug-2021  jmcneill Add initial support for Apple M1.

Currently supported devices:
- Interrupt controller
- IOMMU
- PCIe (USB3 and ethernet)
- Reboot via watchdog
- Framebuffer console
 1.2 10-May-2022  skrll Add aprints
 1.1 27-Apr-2022  skrll Add support for the power domain controller found in Apple silicon
machines.
 1.1 27-Apr-2022  skrll Add support for the mailbox that provides a communications channel with
additional cores integrated in Apple Silicon.

Also, add an implementation for the protocol to communicate with
coprocessors running firmware based Apple's RTKit OS.

From OpenBSD.
 1.1 27-Apr-2022  skrll Add support for the mailbox that provides a communications channel with
additional cores integrated in Apple Silicon.

Also, add an implementation for the protocol to communicate with
coprocessors running firmware based Apple's RTKit OS.

From OpenBSD.
 1.1 10-May-2022  skrll Add a driver for the Apple RTKit based System Management Controller
found on M1 SoCs. From OpenBSD.
 1.3 05-Apr-2022  skrll Sync with new DTS
 1.2 06-Sep-2021  jmcneill Instead of requiring drivers to be explicit about their device memory
mapping requirements, move this decision into the fdt layer. This
introduces a new MD function, fdtbus_bus_tag_create, which is responsible
for returning per-node bus_space handles.
 1.1 30-Aug-2021  jmcneill Add initial support for Apple M1.

Currently supported devices:
- Interrupt controller
- IOMMU
- PCIe (USB3 and ethernet)
- Reboot via watchdog
- Framebuffer console
 1.9 06-Sep-2025  thorpej Step towards modularizing the Flattened Device Tree code.

Define attributes for each of the specific device bindings: clock,
dai, dma, gpio, i2c, iommu, mbox, mmc_pwrseq, phy, power, power domain,
pwm, regulator, reset controller, spi, system controller, pin
controller. Include these support files only if either a provider
or consumer with one of these attributes is present in the kernel
config.

Add the necessary attributes to the device / attach declarations for
each provider and consumer.

There are some bindings that are consumed by generic code (iommu, pinctrl,
power, power domain). Provide weak stubs for these routines to handle
situations where there is no provider.

No actual code changed; NFCI.
 1.8 10-May-2022  skrll Add a driver for the Apple RTKit based System Management Controller
found on M1 SoCs. From OpenBSD.
 1.7 10-May-2022  skrll Add a driver for the Apple M1 I2C controller. From OpenBSD.
 1.6 07-May-2022  skrll Add support for Apple silicon NVME. Ported from OpenBSD.
 1.5 27-Apr-2022  skrll Add support for the mailbox that provides a communications channel with
additional cores integrated in Apple Silicon.

Also, add an implementation for the protocol to communicate with
coprocessors running firmware based Apple's RTKit OS.

From OpenBSD.
 1.4 27-Apr-2022  skrll Add a driver for the Apple GPIO controller found in Apple silicon.

Derived from the OpenBSD driver.
 1.3 27-Apr-2022  skrll Add support for the power domain controller found in Apple silicon
machines.
 1.2 03-Jan-2022  skrll sort
 1.1 30-Aug-2021  jmcneill Add initial support for Apple M1.

Currently supported devices:
- Interrupt controller
- IOMMU
- PCIe (USB3 and ethernet)
- Reboot via watchdog
- Framebuffer console

RSS XML Feed