History log of /src/sys/arch/arm/apple/
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base perseant-exfatfs-base-20240630 perseant-exfatfs-base thorpej-ifq-base thorpej-altq-separation-base
1.5 24-Feb-2023 jmcneill

#define<tab> for consistency with the rest of the file


Revision tags: netbsd-10-1-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
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.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.1 10-May-2022 skrll

Add a driver for the Apple M1 I2C controller. From OpenBSD.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
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


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
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.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
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.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.1 07-May-2022 skrll

Add support for Apple silicon NVME. Ported from OpenBSD.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
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


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
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


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base perseant-exfatfs-base-20240630 perseant-exfatfs-base thorpej-ifq-base thorpej-altq-separation-base
1.6 07-Apr-2023 skrll

Rename ARM_PLATFORM to FDT_PLATFORM and make it available outside arm.


Revision tags: netbsd-10-1-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base
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


Revision tags: bouyer-sunxi-drm-base
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


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
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.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
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.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
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.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.1 10-May-2022 skrll

Add a driver for the Apple RTKit based System Management Controller
found on M1 SoCs. From OpenBSD.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
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.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
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