From 1fa8562f94e70762da9de53cefd9dd2edebc7143 Mon Sep 17 00:00:00 2001 From: Thomas Glanzmann Date: Fri, 13 Nov 2026 07:37:05 +0100 Subject: [PATCH 01/15] dt-bindings: pci: apple,pcie: Describe the T6050 port tunables When the T6050 driver brings a root port up itself (pwren-gpios), or restarts an adopted one, it applies five tunable lists from the port's node. The first, apple,apcie-config-tunables, goes to the port registers. Then apple,pcie-rc-tunables and the Gen3, Gen4 and Gen5 rate shadow lists go to the root complex configuration space. The J714s and K116s SD card ports carry all five, but the binding described none of them, so their pci@1,0 nodes fail validation. Describe them in the T6050 tunable format and keep them off the other SoCs. Signed-off-by: Thomas Glanzmann --- .../devicetree/bindings/pci/apple,pcie.yaml | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/Documentation/devicetree/bindings/pci/apple,pcie.yaml b/Documentation/devicetree/bindings/pci/apple,pcie.yaml index 084d75bdac4fc..111e2490d5e19 100644 --- a/Documentation/devicetree/bindings/pci/apple,pcie.yaml +++ b/Documentation/devicetree/bindings/pci/apple,pcie.yaml @@ -257,6 +257,37 @@ patternProperties: $ref: '#/$defs/tunable' description: Initialization tuples relative to this port's registers. + apple,apcie-config-tunables: + $ref: '#/$defs/t6050-tunable' + description: + T6050 tunables for this port's registers. The OS applies them when + it brings the port up itself (pwren-gpios) or restarts an adopted + port, before it lets the port out of reset. + + apple,pcie-rc-tunables: + $ref: '#/$defs/t6050-tunable' + description: + T6050 tunables for this port's root complex configuration space, + applied right after apple,apcie-config-tunables. + + apple,pcie-rc-gen3-shadow-tunables: + $ref: '#/$defs/t6050-tunable' + description: + T6050 root complex tunables for the Gen3 rate shadow registers, + applied with apple,pcie-rc-tunables. + + apple,pcie-rc-gen4-shadow-tunables: + $ref: '#/$defs/t6050-tunable' + description: + T6050 root complex tunables for the Gen4 rate shadow registers, + applied with apple,pcie-rc-tunables. + + apple,pcie-rc-gen5-shadow-tunables: + $ref: '#/$defs/t6050-tunable' + description: + T6050 root complex tunables for the Gen5 rate shadow registers, + applied with apple,pcie-rc-tunables. + required: - interrupt-controller - "#interrupt-cells" @@ -366,6 +397,11 @@ allOf: "^pci@": properties: apple,link-trained-by-bootloader: false + apple,apcie-config-tunables: false + apple,pcie-rc-tunables: false + apple,pcie-rc-gen3-shadow-tunables: false + apple,pcie-rc-gen4-shadow-tunables: false + apple,pcie-rc-gen5-shadow-tunables: false - if: properties: compatible: From 8f418a490a97dfff028df87a191c65ae8fe0b3aa Mon Sep 17 00:00:00 2001 From: Thomas Glanzmann Date: Fri, 13 Nov 2026 07:37:05 +0100 Subject: [PATCH 02/15] dt-bindings: gpu: apple,agx: Tell the two G17S layouts apart Two allOf entries match every node with apple,agx-g17s: - The M5 Pro hand-off entry wants one "sgx" reg and no board operating points. - The J716c entry wants "asc" and "sgx" plus the operating-point tables. No node satisfies both. The J714s, K114c and K116s GPU nodes fail the J716c entry, and the J716c node fails the hand-off entry. Apply the hand-off entry to a node whose only compatible is apple,agx-g17s, and the J716c entry to apple,agx-g17c. Also drop the second apple,agx-g17s in the enum of the non-coprocessor entry, which dt_binding_check reports as non-unique. Signed-off-by: Thomas Glanzmann --- Documentation/devicetree/bindings/gpu/apple,agx.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml index dfb4b1f3249e8..cfceba7527f6f 100644 --- a/Documentation/devicetree/bindings/gpu/apple,agx.yaml +++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml @@ -252,8 +252,7 @@ allOf: - if: properties: compatible: - contains: - const: apple,agx-g17s + const: apple,agx-g17s then: description: The M5 Pro GPU uses one MMIO range and two firmware mailbox roles. @@ -323,7 +322,7 @@ allOf: properties: compatible: contains: - const: apple,agx-g17s + const: apple,agx-g17c then: properties: reg: @@ -530,7 +529,6 @@ allOf: - apple,agx-t6050 - apple,agx-t8132 - apple,agx-t8140 - - apple,agx-g17s then: properties: reg: From b0d53446f84db5a452b782fdca6cb64ae2d1c1b0 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 10 Nov 2026 20:38:22 -0700 Subject: [PATCH 03/15] arm64: dts: apple: t6050-k114-k116: describe PCIe port 0 and the K116s N1 aura's T6050 hand-off reads the PCIe host's iommu-map and refuses the boot when it is absent, which the bare disabled pcie0 of these boards hit. Give the host its iommu-map and bus-range, and on the K116s describe port 0 with the N1's three functions as on J714s, with this board's platform ID (ADT /chosen board-id 0x16 << 16 | 0x6050), the PERST# pin 80 exposed and the wifi0/bluetooth0 aliases for the loader's factory addresses. The K114s keeps the host disabled until its board ID is known. Signed-off-by: Jens Axboe --- .../arm64/boot/dts/apple/t6050-k114-k116.dtsi | 79 ++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/apple/t6050-k114-k116.dtsi b/arch/arm64/boot/dts/apple/t6050-k114-k116.dtsi index 9758c90ed36d4..8d38eb772d99f 100644 --- a/arch/arm64/boot/dts/apple/t6050-k114-k116.dtsi +++ b/arch/arm64/boot/dts/apple/t6050-k114-k116.dtsi @@ -35,6 +35,11 @@ aliases { serial0 = &dockchannel; +#ifdef T6050_K116S + /* The loader fills the N1's factory addresses through these */ + wifi0 = &n1_alpha; + bluetooth0 = &n1_beta; +#endif }; chosen { @@ -142,12 +147,84 @@ * its PERST# pin stay unused for now. */ &pinctrl_ap { - gpio-reserved-ranges = <0 221>; + /* Only PCIe port 0's PERST#, pin 80, is exposed */ + gpio-reserved-ranges = <0 80>, <81 141>; }; +#ifdef T6050_K116S +/* + * PCIe port 0: the N1 (Wi-Fi and Bluetooth), laid out as on J714s. ADT apcie0 + * gives port 0's registers and IRQ 1523, pci-bridge0's PERST# is GPIO 80, and + * the N1's three functions are on DART streams 1-3. + */ +&pcie0 { + reg = <0x1c 0xb0000000 0x0 0x10000000>, + <0x4 0x14000000 0x0 0x4000>, + <0x4 0x10028000 0x0 0x8000>, + <0x4 0x17010000 0x0 0x4000>, + <0x4 0x10024000 0x0 0x4000>; + reg-names = "config", "rc", "port0", "phy0", "intr2axi0"; + interrupts = ; + interrupt-names = "port0"; + iommu-map = <0x100 &dart_apcie0 1 3>; + bus-range = <0 4>; + status = "okay"; + + port00: pci@0,0 { + device_type = "pci"; + reg = <0x0 0 0 0 0>; + bus-range = <1 1>; + apple,link-trained-by-bootloader; + /* PERST#: ADT pci-bridge0 function-perst, GPIO 80 */ + reset-gpios = <&pinctrl_ap 80 GPIO_ACTIVE_LOW>; + status = "disabled"; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + + interrupt-controller; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &port00 0 0 0 0>, + <0 0 0 2 &port00 0 0 0 1>, + <0 0 0 3 &port00 0 0 0 2>, + <0 0 0 4 &port00 0 0 0 3>; + + /* platform ID (ADT /chosen board-id 0x16 << 16) | chip 0x6050 */ + n1_control: control@0,0 { + compatible = "pci106b,1900"; + reg = <0x10000 0x0 0x0 0x0 0x0>; + firmware-name = "apple/centauri/k116s-ftab.bin"; + apple,centauri-platform-id = <0x00166050>; + apple,centauri-protocol = <27>; + }; + + n1_alpha: wifi@0,1 { + compatible = "pci106b,1902"; + reg = <0x10100 0x0 0x0 0x0 0x0>; + local-mac-address = [00 00 00 00 00 00]; + }; + + n1_beta: bluetooth@0,2 { + compatible = "pci106b,1903"; + reg = <0x10200 0x0 0x0 0x0 0x0>; + local-bd-address = [00 00 00 00 00 00]; + }; + }; +}; +#else +/* + * The K114s N1 needs its own platform ID (its ADT /chosen board-id << 16 | 0x6050) + * before the port can be described. aura's T6050 hand-off still wants the host's + * iommu-map to mark the ports as it found them, so carry it with the host disabled. + */ &pcie0 { + iommu-map = <0x100 &dart_apcie0 1 3>; + bus-range = <0 4>; status = "disabled"; }; +#endif /* These boards' SMC fan and power keys are not yet checked */ &smc_hwmon { From 24c62c0cf4bfcbb9a30bc3666b1dd0b12817e01c Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 11 Nov 2026 07:35:06 -0700 Subject: [PATCH 04/15] arm64: dts: apple: t6050-k116s: describe the N1 on PCIe port 0 Port 0 carries the N1 (ADT /arm-io/apcie0/pci-bridge0 with centauri-control, -alpha and -beta). Describe the port and the N1's three functions as on J714s, with this board's platform ID (ADT /chosen board-id 0x16 << 16 | 0x6050), the firmware table name, the PERST# pin 80 exposed and the wifi0 and bluetooth0 aliases through which the loader fills the factory addresses. The shared K114/K116 file keeps the host disabled with its iommu-map, which aura's T6050 hand-off requires, until the K114s board ID is known. Booted on a K116s: the loader trains the link, the N1 enumerates at 01:00.0-2, apple_centauri_t6050 boots the ticketed firmware table from the 27.2 IPSW and wlp1s0f0 associates and gets DHCP. Signed-off-by: Jens Axboe --- .../arm64/boot/dts/apple/t6050-k114-k116.dtsi | 72 +----------------- arch/arm64/boot/dts/apple/t6050-k116s.dts | 75 +++++++++++++++++++ 2 files changed, 76 insertions(+), 71 deletions(-) diff --git a/arch/arm64/boot/dts/apple/t6050-k114-k116.dtsi b/arch/arm64/boot/dts/apple/t6050-k114-k116.dtsi index 8d38eb772d99f..f7cedd1a4c854 100644 --- a/arch/arm64/boot/dts/apple/t6050-k114-k116.dtsi +++ b/arch/arm64/boot/dts/apple/t6050-k114-k116.dtsi @@ -35,11 +35,6 @@ aliases { serial0 = &dockchannel; -#ifdef T6050_K116S - /* The loader fills the N1's factory addresses through these */ - wifi0 = &n1_alpha; - bluetooth0 = &n1_beta; -#endif }; chosen { @@ -147,73 +142,9 @@ * its PERST# pin stay unused for now. */ &pinctrl_ap { - /* Only PCIe port 0's PERST#, pin 80, is exposed */ - gpio-reserved-ranges = <0 80>, <81 141>; + gpio-reserved-ranges = <0 221>; }; -#ifdef T6050_K116S -/* - * PCIe port 0: the N1 (Wi-Fi and Bluetooth), laid out as on J714s. ADT apcie0 - * gives port 0's registers and IRQ 1523, pci-bridge0's PERST# is GPIO 80, and - * the N1's three functions are on DART streams 1-3. - */ -&pcie0 { - reg = <0x1c 0xb0000000 0x0 0x10000000>, - <0x4 0x14000000 0x0 0x4000>, - <0x4 0x10028000 0x0 0x8000>, - <0x4 0x17010000 0x0 0x4000>, - <0x4 0x10024000 0x0 0x4000>; - reg-names = "config", "rc", "port0", "phy0", "intr2axi0"; - interrupts = ; - interrupt-names = "port0"; - iommu-map = <0x100 &dart_apcie0 1 3>; - bus-range = <0 4>; - status = "okay"; - - port00: pci@0,0 { - device_type = "pci"; - reg = <0x0 0 0 0 0>; - bus-range = <1 1>; - apple,link-trained-by-bootloader; - /* PERST#: ADT pci-bridge0 function-perst, GPIO 80 */ - reset-gpios = <&pinctrl_ap 80 GPIO_ACTIVE_LOW>; - status = "disabled"; - - #address-cells = <3>; - #size-cells = <2>; - ranges; - - interrupt-controller; - #interrupt-cells = <1>; - interrupt-map-mask = <0 0 0 7>; - interrupt-map = <0 0 0 1 &port00 0 0 0 0>, - <0 0 0 2 &port00 0 0 0 1>, - <0 0 0 3 &port00 0 0 0 2>, - <0 0 0 4 &port00 0 0 0 3>; - - /* platform ID (ADT /chosen board-id 0x16 << 16) | chip 0x6050 */ - n1_control: control@0,0 { - compatible = "pci106b,1900"; - reg = <0x10000 0x0 0x0 0x0 0x0>; - firmware-name = "apple/centauri/k116s-ftab.bin"; - apple,centauri-platform-id = <0x00166050>; - apple,centauri-protocol = <27>; - }; - - n1_alpha: wifi@0,1 { - compatible = "pci106b,1902"; - reg = <0x10100 0x0 0x0 0x0 0x0>; - local-mac-address = [00 00 00 00 00 00]; - }; - - n1_beta: bluetooth@0,2 { - compatible = "pci106b,1903"; - reg = <0x10200 0x0 0x0 0x0 0x0>; - local-bd-address = [00 00 00 00 00 00]; - }; - }; -}; -#else /* * The K114s N1 needs its own platform ID (its ADT /chosen board-id << 16 | 0x6050) * before the port can be described. aura's T6050 hand-off still wants the host's @@ -224,7 +155,6 @@ bus-range = <0 4>; status = "disabled"; }; -#endif /* These boards' SMC fan and power keys are not yet checked */ &smc_hwmon { diff --git a/arch/arm64/boot/dts/apple/t6050-k116s.dts b/arch/arm64/boot/dts/apple/t6050-k116s.dts index 89288f81ba1aa..8c1f3cdc855df 100644 --- a/arch/arm64/boot/dts/apple/t6050-k116s.dts +++ b/arch/arm64/boot/dts/apple/t6050-k116s.dts @@ -22,3 +22,78 @@ #define T6050_K116S #include "t6050-peripherals.dtsi" + +/ { + aliases { + /* The loader fills the N1's factory addresses through these */ + wifi0 = &n1_alpha; + bluetooth0 = &n1_beta; + }; +}; + +/* Only PCIe port 0's PERST#, pin 80, is exposed */ +&pinctrl_ap { + gpio-reserved-ranges = <0 80>, <81 140>; +}; + +/* + * PCIe port 0: the N1 (Wi-Fi and Bluetooth), laid out as on J714s. ADT apcie0 + * gives port 0's registers and IRQ 1523, pci-bridge0's PERST# is GPIO 80, and + * the N1's three functions are on DART streams 1-3. The platform ID is this + * board's ADT /chosen board-id (0x16) << 16 | chip 0x6050. + */ +&pcie0 { + reg = <0x1c 0xb0000000 0x0 0x10000000>, + <0x4 0x14000000 0x0 0x4000>, + <0x4 0x10028000 0x0 0x8000>, + <0x4 0x17010000 0x0 0x4000>, + <0x4 0x10024000 0x0 0x4000>; + reg-names = "config", "rc", "port0", "phy0", "intr2axi0"; + interrupts = ; + interrupt-names = "port0"; + iommu-map = <0x100 &dart_apcie0 1 3>; + bus-range = <0 4>; + status = "okay"; + + port00: pci@0,0 { + device_type = "pci"; + reg = <0x0 0 0 0 0>; + bus-range = <1 1>; + apple,link-trained-by-bootloader; + /* PERST#: ADT pci-bridge0 function-perst, GPIO 80 */ + reset-gpios = <&pinctrl_ap 80 GPIO_ACTIVE_LOW>; + status = "disabled"; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + + interrupt-controller; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &port00 0 0 0 0>, + <0 0 0 2 &port00 0 0 0 1>, + <0 0 0 3 &port00 0 0 0 2>, + <0 0 0 4 &port00 0 0 0 3>; + + n1_control: control@0,0 { + compatible = "pci106b,1900"; + reg = <0x10000 0x0 0x0 0x0 0x0>; + firmware-name = "apple/centauri/k116s-ftab.bin"; + apple,centauri-platform-id = <0x00166050>; + apple,centauri-protocol = <27>; + }; + + n1_alpha: wifi@0,1 { + compatible = "pci106b,1902"; + reg = <0x10100 0x0 0x0 0x0 0x0>; + local-mac-address = [00 00 00 00 00 00]; + }; + + n1_beta: bluetooth@0,2 { + compatible = "pci106b,1903"; + reg = <0x10200 0x0 0x0 0x0 0x0>; + local-bd-address = [00 00 00 00 00 00]; + }; + }; +}; From 3adc985b5a61d091eb869343c9b29e0eb1407cc0 Mon Sep 17 00:00:00 2001 From: Thomas Glanzmann Date: Thu, 12 Nov 2026 07:40:47 +0100 Subject: [PATCH 05/15] dt-bindings: display: apple,dcp: accept K-board panel compatibles The PROLED MacBook Pros are K boards (K114s/c, K116s/c). Like the J boards, their panel node can name the board before the generic compatible: the K116s uses "apple,panel-k116", "apple,panel". Accept apple,panel-k where apple,panel-j is accepted. Signed-off-by: Thomas Glanzmann --- Documentation/devicetree/bindings/display/apple,dcp.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/display/apple,dcp.yaml b/Documentation/devicetree/bindings/display/apple,dcp.yaml index c18292bf4b94e..d0bc33404c24f 100644 --- a/Documentation/devicetree/bindings/display/apple,dcp.yaml +++ b/Documentation/devicetree/bindings/display/apple,dcp.yaml @@ -392,10 +392,10 @@ properties: - apple,panel - apple,panel-mini-led - items: - - pattern: '^apple,panel-j[0-9]+$' + - pattern: '^apple,panel-[jk][0-9]+$' - const: apple,panel - items: - - pattern: '^apple,panel-j[0-9]+$' + - pattern: '^apple,panel-[jk][0-9]+$' - const: apple,panel-mini-led - const: apple,panel width-mm: From 377b2a2decf18868da7fad51ea9942500a3ba00f Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 11 Nov 2026 10:18:42 -0700 Subject: [PATCH 06/15] arm64: dts: apple: t6050-k116s: USB-C ports, SMC sensors, trackpad reset, DCP Bring the K116s board file up to what the J714s describes and what the display hand-off needs: - The two non-debug USB-C ports as on the J714s: the SN201202x port controllers hpm1/hpm2 on nub-spmi-a0/a1 (the a1 controller needs its own reg), ATC1 and ATC2 PHYs, mailboxes, dwc3 controllers and DARTs enabled, with atcphy1/atcphy2 aliases so the loader copies the combo PHY tunables from the ADT. - SMC hwmon with the fan, power, voltage and current keys, without the die temperature keys this SMC lacks. - The trackpad's AFE reset as SMC GPIO gp1c (active low) and a keyboard alias for the loader's layout, as the J714s does; the pcIO node goes. - The dcp hand-off nodes the loader edits: dcp with its bandwidth scratch and firmware clock ids, fixed clocks for them, the DARTs' DMA range, the display subsystem and a panel of 345x223 mm, all disabled until chosen.aurora,t6050-display arms them. dcp and disp0 aliases. - gpio-reserved-ranges split around the N1 PERST# pin. Signed-off-by: Jens Axboe --- arch/arm64/boot/dts/apple/t6050-k116s.dts | 332 ++++++++++++++++++++++ 1 file changed, 332 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t6050-k116s.dts b/arch/arm64/boot/dts/apple/t6050-k116s.dts index 8c1f3cdc855df..71c25b3c2da9a 100644 --- a/arch/arm64/boot/dts/apple/t6050-k116s.dts +++ b/arch/arm64/boot/dts/apple/t6050-k116s.dts @@ -97,3 +97,335 @@ }; }; }; + +/* + * Type-C, from the ADT (as on J714s): + * ATC0 usb-drd0 left-back hpm0 nub-spmi-a0 0x0c (the debug port, not described) + * ATC1 usb-drd1 left-front hpm1 nub-spmi-a0 0x0a + * ATC2 usb-drd2 right hpm2 nub-spmi-a1 0x0c + * hpm5 nub-spmi-a0 0x08 (MagSafe, not a USB-C connector) + */ + +/* Left-front port (ATC1): the SN201202x hpm1 and the connector graph */ +&nub_spmi_a0 { + status = "okay"; + + hpm1: usb-pd@a { + compatible = "apple,sn201202x"; + reg = <0xa SPMI_USID>; + + typec1: connector { + compatible = "usb-c-connector"; + label = "USB-C Left-front"; + power-role = "dual"; + data-role = "dual"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + typec1_hs: endpoint { + remote-endpoint = <&usb_drd1_hs>; + }; + }; + + port@1 { + reg = <1>; + typec1_ss: endpoint { + remote-endpoint = <&atc1_phy_typec>; + }; + }; + }; + }; + }; +}; + +&atc1_phy_mbox { + status = "okay"; +}; + +&atc1_phy { + status = "okay"; + + port { + atc1_phy_typec: endpoint { + remote-endpoint = <&typec1_ss>; + }; + }; +}; + +&usb_drd1 { + status = "okay"; + + port { + usb_drd1_hs: endpoint { + remote-endpoint = <&typec1_hs>; + }; + }; +}; + +&usb_drd1_dart_0 { + status = "okay"; +}; + +&usb_drd1_dart_1 { + status = "okay"; +}; + +/* + * Right port (ATC2): hpm2 on nub-spmi-a1, USB only (dcpext0's DisplayPort route + * through ATC2 stays off). The driver polls the generation 4 bus and refuses an + * interrupt, so it takes the first register window only, as on J714s. + */ +&nub_spmi_a1 { + reg = <0x2 0x8a1a8000 0x0 0x4000>; + /delete-property/ interrupts; + status = "okay"; + + hpm2: usb-pd@c { + compatible = "apple,sn201202x"; + reg = <0xc SPMI_USID>; + + typec2: connector { + compatible = "usb-c-connector"; + label = "USB-C Right"; + power-role = "dual"; + data-role = "dual"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + typec2_hs: endpoint { + remote-endpoint = <&usb_drd2_hs>; + }; + }; + + port@1 { + reg = <1>; + typec2_ss: endpoint { + remote-endpoint = <&atc2_phy_typec>; + }; + }; + }; + }; + }; +}; + +&ps_atc2_common { + status = "okay"; +}; + +&ps_atc2_usb_aon { + status = "okay"; +}; + +&ps_atc2_phymxwrap { + status = "okay"; +}; + +&ps_atc2_usb { + status = "okay"; +}; + +&atc2_phy_mbox { + status = "okay"; +}; + +&atc2_phy { + status = "okay"; + + port { + atc2_phy_typec: endpoint { + remote-endpoint = <&typec2_ss>; + }; + }; +}; + +&usb_drd2 { + status = "okay"; + + port { + usb_drd2_hs: endpoint { + remote-endpoint = <&typec2_hs>; + }; + }; +}; + +&usb_drd2_dart_0 { + status = "okay"; +}; + +&usb_drd2_dart_1 { + status = "okay"; +}; + +/* + * SMC sensors, as on J714s: every readable float T* key is discovered through + * apple,discover-temperatures in t6050-die0.dtsi, so the shared temperature + * nodes and apple,soc-die-keys go. The T6050 SMC spells the fan mode keys + * F0md/F1md and drives the fans itself. + */ +#include "hwmon-common.dtsi" +#include "hwmon-fan-dual.dtsi" +#include "hwmon-laptop.dtsi" + +&smc_hwmon { + status = "okay"; + /delete-property/ apple,soc-die-keys; + /delete-node/ temperature-TH0x; + /delete-node/ temperature-TB0T; + /delete-node/ temperature-TCHP; + /delete-node/ temperature-TW0P; + fan-F0Ac { + apple,fan-mode = "F0md"; + }; + fan-F1Ac { + apple,fan-mode = "F1md"; + }; +}; + +/* + * The internal panel and the display coprocessor, for the boot loader's display + * hand-off (aura, chosen.aurora,t6050-display=1). Everything stays disabled: the + * loader checks the ADT and the live DCP and DART state, publishes the DCP's + * firmware properties, reserves the ADT /vram as the framebuffer and only then + * enables dcp, its DARTs and mailbox and the display subsystem. A loader without + * the hand-off leaves the boot framebuffer to simpledrm. + */ +/ { + aliases { + /* The loader writes apple,notch-height into the "dcp" alias */ + dcp = &dcp; + disp0 = &display; + }; + + /* As on J714s, with the internal display's DART (disp0, SID 0) */ + display: display-subsystem { + compatible = "apple,display-subsystem"; + iommus = <&disp0_dart 0>; + status = "disabled"; + }; +}; + +/* ADT dart-dcp and dart-disp0: vm-base 1 TiB, vm-size 3 TiB */ +&dcp_dart { + apple,dma-range = <0x100 0x0 0x300 0x0>; +}; + +&disp0_dart { + apple,dma-range = <0x100 0x0 0x300 0x0>; +}; + +/* The DCP firmware's clocks: ADT disp0 clock-ids; the loader fills the rates */ +/ { + dcp_clk_361: clock-dcp-firmware-361 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + + dcp_clk_458: clock-dcp-firmware-458 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; +}; + +&dcp { + /* + * The bandwidth request scratch: the PMC metadata (disp-4, register window + * 5) at the slot of PMGR bandwidth agent DISP_INT (ADT bwr-agent index 0, + * BIRQ 0x96 = disp0 function-bw_req_interrupt0): 0x20000 + 0 * 0x4000. + */ + apple,bw-scratch = <&dcpext0_pmc 0 5 0x20000>; + /* ADT disp0 clock-ids */ + apple,clock-ids = <361 458>; + clocks = <&dcp_clk_361>, <&dcp_clk_458>; + + /* + * The 16.2-inch 3456x2234 tandem OLED panel. The ADT carries no dimensions; + * these are the panel's active area, for the DPI only. + */ + panel { + compatible = "apple,panel-k116", "apple,panel"; + width-mm = <345>; + height-mm = <223>; + }; +}; + +/* The ADT lists no clocks for the external engines (clock-ids = []) */ +&dcpext1 { + apple,clock-ids; +}; + +&dcpext2 { + apple,clock-ids; +}; + +&dcpext3 { + apple,clock-ids; +}; + +/* ADT dart-dcpextN and dart-dispextN: vm-base 1 TiB, vm-size 3 TiB */ +&dcpext1_dart { + apple,dma-range = <0x100 0x0 0x300 0x0>; +}; + +&dispext1_dart { + apple,dma-range = <0x100 0x0 0x300 0x0>; +}; + +&dcpext2_dart { + apple,dma-range = <0x100 0x0 0x300 0x0>; +}; + +&dispext2_dart { + apple,dma-range = <0x100 0x0 0x300 0x0>; +}; + +&dcpext3_dart { + apple,dma-range = <0x100 0x0 0x300 0x0>; +}; + +&dispext3_dart { + apple,dma-range = <0x100 0x0 0x300 0x0>; +}; + +/* + * The trackpad's AFE reset. The ADT names the SMC pcIO template (0x10000, + * 0x11c0000), the same line as SMC GPIO gp1c, active low, which gpio-macsmc + * drives; through the pcIO outputs the multi-touch interface never comes up. + * As on J714s: gp1c, and the pcIO outputs go. The keyboard alias lets the + * loader fill the layout from the ADT. + */ +/delete-node/ &smc_pcio; + +&mtp_hid { + apple,afe-reset-gpios = <&smc_gpio_low 28 GPIO_ACTIVE_LOW>; + + keyboard: keyboard { + }; + + /* + * The touchscreen's MTP interface. Its GPIO functions (reset, power, clock, + * display sync) are not described yet, so the interface stays off until + * they are, as a pending GPIO request from the firmware stalls the others. + */ + kiwi { + status = "disabled"; + }; +}; + +/ { + aliases { + keyboard = &keyboard; + /* The loader fills the PHYs' tunables from the ADT through these */ + atcphy1 = &atc1_phy; + atcphy2 = &atc2_phy; + }; +}; From 45f4de446485d04741fb2b78f3e952e94db1d0b0 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 11 Nov 2026 10:23:49 -0700 Subject: [PATCH 07/15] ASoC: apple: macaudio: Add K116 The K116s (16-inch M5 Pro OLED) has the J714s's audio: six SN012776 amps in two woofer pairs and two tweeters, the same slots, frame and V/I sense layout, and the CS42L84 jack codec, so it shares macaudio_j714_cfg under its own chassis compatible. Signed-off-by: Jens Axboe [thomas: keep apple,k116-macaudio sorted in the binding] Signed-off-by: Thomas Glanzmann --- Documentation/devicetree/bindings/sound/apple,macaudio.yaml | 1 + sound/soc/apple/macaudio.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/apple,macaudio.yaml b/Documentation/devicetree/bindings/sound/apple,macaudio.yaml index 65601dacefd49..37956f0a3a343 100644 --- a/Documentation/devicetree/bindings/sound/apple,macaudio.yaml +++ b/Documentation/devicetree/bindings/sound/apple,macaudio.yaml @@ -55,6 +55,7 @@ properties: - apple,j813-macaudio - apple,j815-macaudio - apple,j873-macaudio + - apple,k116-macaudio - const: apple,macaudio - description: Machines that share the speaker and jack layout of an earlier diff --git a/sound/soc/apple/macaudio.c b/sound/soc/apple/macaudio.c index 1c25e104a9a61..e5f013b9b198c 100644 --- a/sound/soc/apple/macaudio.c +++ b/sound/soc/apple/macaudio.c @@ -4355,6 +4355,8 @@ static const struct of_device_id macaudio_snd_device_id[] = { { .compatible = "apple,j700-macaudio", .data = &macaudio_j700_cfg }, /* j714 - sn012776 15 2x 2W+1T (AOP-fed, V/I sense) */ { .compatible = "apple,j714-macaudio", .data = &macaudio_j714_cfg }, + /* k116 - sn012776 15 2x 2W+1T (AOP-fed, V/I sense; the 16" PROLED chassis, J714's amps and frame) */ + { .compatible = "apple,k116-macaudio", .data = &macaudio_j714_cfg }, /* j713 - sn012776 15 2x 1W+1T (AOP-fed, one serializer) */ { .compatible = "apple,j713-macaudio", .data = &macaudio_j713_cfg }, /* The J713 jack runs on the AOP like the J616s one. */ From dac02289da54b3f6e8eacafa32d6bb4b681fa873 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 11 Nov 2026 10:24:23 -0700 Subject: [PATCH 08/15] arm64: dts: apple: t6050-k116s: Add the speakers and the headphone jack The J714s's sound description, every value checked against the K116s ADT, which matches the J714s in each audio property: six SN012776 amps on i2c1 and i2c3 with the shared shutdown line on AP pin 107, the fault interrupt on pin 106 and the V/I sense slots of the ADT speaker-config rows; the CS42L84 jack codec on i2c2 with reset on pin 139 and its interrupt on 134; the AOP with its setup mailbox, DART and the base-ns ADMAC; and the card as apple,k116-macaudio with the speaker-id pins 136 and 137. The reserved GPIO ranges now expose only the pins named here plus the N1's PERST#, since pin 112 takes an SError when read. The amps carry their ADT speaker-config rows until the boot loader fills them in; it overwrites them with the same bytes. Signed-off-by: Jens Axboe --- arch/arm64/boot/dts/apple/t6050-k116s.dts | 288 +++++++++++++++++++++- 1 file changed, 287 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/apple/t6050-k116s.dts b/arch/arm64/boot/dts/apple/t6050-k116s.dts index 71c25b3c2da9a..bb5cb91e82903 100644 --- a/arch/arm64/boot/dts/apple/t6050-k116s.dts +++ b/arch/arm64/boot/dts/apple/t6050-k116s.dts @@ -33,7 +33,12 @@ /* Only PCIe port 0's PERST#, pin 80, is exposed */ &pinctrl_ap { - gpio-reserved-ranges = <0 80>, <81 140>; + /* + * Pin 112 takes an SError when read, so only the pins a node names are + * exposed: 80 (PCIe PERST#), 106/107 (amp fault, amp shutdown), 134/139 + * (jack codec interrupt, reset) and 136/137 (speaker ID). + */ + gpio-reserved-ranges = <0 80>, <81 25>, <108 26>, <135 1>, <138 1>, <140 81>; }; /* @@ -429,3 +434,284 @@ atcphy2 = &atc2_phy; }; }; + +/* Sound: the J714s description, every value checked against the K116s ADT. */ +/* + * The amps' shared shutdown line (SDZ): ADT audio-speaker function-reset, AP pin 107. One + * regulator as the SDZ supply of all six (not per-amp shutdown-gpios: with GPIO_SHARED six + * references become a vote, and one amp driving the line low would not shut the others down). + */ +/ { + speaker_sdz: regulator-sn012776-sdz { + compatible = "regulator-fixed"; + regulator-name = "sn012776-sdz"; + gpios = <&pinctrl_ap 107 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; +}; + +/* + * The left amps: ADT /arm-io/i2c1. i2c1 is disabled by t6050-k114-k116.dtsi ("Audio is not + * brought up"); re-enabled here. Sense slots from the ADT speaker-config (V at 4N, I at 4N+2 + * for group index N); the firmware's frame is 250 BCLKs of 12 MHz, which the amp driver's + * ratio detection rejects, hence ti,bclk-ratio. Every amp joins the SDZ fail-closed group: + * an over-temperature or over-current fault on any one forces the shared line low. + * + * Each amp's operating level (AMP_LEVEL 15 here) is its row of the ADT speaker-config, + * which aura copies into the node as apple,speaker-config (aura commit "kboot: hand the + * speaker amps' configuration from the ADT to the kernel", patches/aura/). macaudio + * refuses to run the speakers on an SN012776 without it (the jack still works). + */ +&i2c1 { + status = "okay"; + + speaker_left_woof1: codec@38 { + compatible = "ti,sn012776", "ti,tas2764"; + reg = <0x38>; + SDZ-supply = <&speaker_sdz>; + apple,sdz-group-fail-closed; + #sound-dai-cells = <0>; + sound-name-prefix = "Left Woofer 1"; + interrupts-extended = <&pinctrl_ap 106 IRQ_TYPE_LEVEL_LOW>; + ti,imon-slot-no = <2>; + ti,vmon-slot-no = <0>; + ti,bclk-ratio = <250>; + }; + + speaker_left_woof2: codec@39 { + compatible = "ti,sn012776", "ti,tas2764"; + reg = <0x39>; + SDZ-supply = <&speaker_sdz>; + apple,sdz-group-fail-closed; + #sound-dai-cells = <0>; + sound-name-prefix = "Left Woofer 2"; + interrupts-extended = <&pinctrl_ap 106 IRQ_TYPE_LEVEL_LOW>; + ti,imon-slot-no = <10>; + ti,vmon-slot-no = <8>; + ti,bclk-ratio = <250>; + }; + + speaker_left_tweet: codec@3a { + compatible = "ti,sn012776", "ti,tas2764"; + reg = <0x3a>; + SDZ-supply = <&speaker_sdz>; + apple,sdz-group-fail-closed; + #sound-dai-cells = <0>; + sound-name-prefix = "Left Tweeter"; + interrupts-extended = <&pinctrl_ap 106 IRQ_TYPE_LEVEL_LOW>; + ti,imon-slot-no = <18>; + ti,vmon-slot-no = <16>; + ti,bclk-ratio = <250>; + }; +}; + +/* + * The right amps: ADT /arm-io/i2c3. In t6050-peripherals.dtsi i2c3 is disabled, clocked from + * peripheral_clocks 4 and powered by ps_i2c3 under ps_sio. The ADT gives i2c1, i2c2 and i2c3 + * the same clock-ids (4), so i2c3 takes clkref like i2c1/i2c2 in t6050-die0.dtsi; its power + * state's parent (SIO) is left undescribed, as for i2c1 and i2c2 (same as J714s). + */ +&ps_i2c3 { + /delete-property/ power-domains; + status = "okay"; +}; + +&i2c3 { + clocks = <&clkref>; + status = "okay"; + + speaker_right_woof1: codec@3b { + compatible = "ti,sn012776", "ti,tas2764"; + reg = <0x3b>; + SDZ-supply = <&speaker_sdz>; + apple,sdz-group-fail-closed; + #sound-dai-cells = <0>; + sound-name-prefix = "Right Woofer 1"; + interrupts-extended = <&pinctrl_ap 106 IRQ_TYPE_LEVEL_LOW>; + ti,imon-slot-no = <6>; + ti,vmon-slot-no = <4>; + ti,bclk-ratio = <250>; + }; + + speaker_right_woof2: codec@3c { + compatible = "ti,sn012776", "ti,tas2764"; + reg = <0x3c>; + SDZ-supply = <&speaker_sdz>; + apple,sdz-group-fail-closed; + #sound-dai-cells = <0>; + sound-name-prefix = "Right Woofer 2"; + interrupts-extended = <&pinctrl_ap 106 IRQ_TYPE_LEVEL_LOW>; + ti,imon-slot-no = <14>; + ti,vmon-slot-no = <12>; + ti,bclk-ratio = <250>; + }; + + speaker_right_tweet: codec@3d { + compatible = "ti,sn012776", "ti,tas2764"; + reg = <0x3d>; + SDZ-supply = <&speaker_sdz>; + apple,sdz-group-fail-closed; + #sound-dai-cells = <0>; + sound-name-prefix = "Right Tweeter"; + interrupts-extended = <&pinctrl_ap 106 IRQ_TYPE_LEVEL_LOW>; + ti,imon-slot-no = <22>; + ti,vmon-slot-no = <20>; + ti,bclk-ratio = <250>; + }; +}; + +/* + * The CS42L84 headphone codec (ADT /arm-io/i2c2/audio-codec-output, reg 0x4b): reset on AP + * pin 139 (function-reset GPIO(0x8b, 0x1)), driven high to run; interrupt AP pin 134, level + * low. i2c2 is disabled by t6050-k114-k116.dtsi; re-enabled here. + */ +&i2c2 { + status = "okay"; + + jack_codec: codec@4b { + compatible = "cirrus,cs42l84"; + reg = <0x4b>; + reset-gpios = <&pinctrl_ap 139 GPIO_ACTIVE_HIGH>; + interrupts-extended = <&pinctrl_ap 134 IRQ_TYPE_LEVEL_LOW>; + #sound-dai-cells = <0>; + sound-name-prefix = "Jack"; + }; +}; + +/* ADT admac-base-ns: 0x293800000, IRQ 637, 13 TX + 13 RX channels, dart-aop stream 8 */ +&admac_base_ns { + status = "okay"; +}; + +/* + * The AOP audio service (apple,t6050-aop-audio, t6050-die0.dtsi: dmas cout/cin/spkr/sense = + * base-ns 4/5/0/1). The chassis name is the microphone card's identity (AppleK116HPAI), the + * machine kind the card's long name. + */ +&aop_audio { + apple,chassis-name = "K116"; + apple,machine-kind = "MacBook Pro"; +}; + +/* + * The sound card. "apple,k116-macaudio" needs its macaudio.c entry (patches/0001-ASoC-apple- + * macaudio-Add-K116.patch): the same amps, slots, frame and sense layout as J714 + * (macaudio_j714_cfg), a different chassis. Until that lands, "apple,j714-macaudio" as the + * first compatible gives the same card under the J714 name. + */ +/ { + sound { + compatible = "apple,k116-macaudio", "apple,macaudio"; + model = "MacBook Pro K116"; + /* ADT audio-speaker function-speaker-id0 and -id1: gpio0 0x88, 0x89 */ + speaker-id-gpios = <&pinctrl_ap 136 GPIO_ACTIVE_HIGH>, + <&pinctrl_ap 137 GPIO_ACTIVE_HIGH>; + #address-cells = <1>; + #size-cells = <0>; + + dai-link@0 { + reg = <0>; + link-name = "Headphone Jack"; + + cpu { + /* T8152-style driver: DAI 0 is the jack ("cout"/"cin") back-end */ + sound-dai = <&aop_audio 0>; + }; + + codec { + sound-dai = <&jack_codec>; + }; + }; + + dai-link@1 { + reg = <1>; + link-name = "Speaker"; + /* + * Codecs in ADT speaker-config (group) order, so that macaudio gives them + * playback slots 0-5 as macOS does (left in slots 0, 2, 4; right in 1, 3, 5). + * The idle masks are ADT amp-tx-zd-config rows 0 and 1 (fff0f0f0, ff0f0f0f): + * left woofer 1 drives zeros in the right amps' sense slots, right woofer 1 + * in the left amps'. + */ + dai-tdm-idle-mode-0 = "zero"; + dai-tdm-slot-tx-idle-mask-0 = <0xfff0f0f0>; + dai-tdm-idle-mode-1 = "zero"; + dai-tdm-slot-tx-idle-mask-1 = <0xff0f0f0f>; + + cpu { + /* DAI 3 is the "spkr" back-end (its V/I sense is the card's third PCM) */ + sound-dai = <&aop_audio 3>; + }; + + codec { + sound-dai = <&speaker_left_woof1>, <&speaker_right_woof1>, + <&speaker_left_woof2>, <&speaker_right_woof2>, + <&speaker_left_tweet>, <&speaker_right_tweet>; + }; + }; + }; +}; + +/* + * The AOP, booted through its setup port (ADT aop-exclave-mailbox at 0x2d067c000, dart-aop + * stream 1), with its RTKit mailbox (ADT aop interrupts 578-581), dart-aop (0x290fc0000, + * IRQ 616, 17 streams, locked tables on the ADT l1-tt-0 root) and the AOP itself + * (0x290c00000 SRAM window, ASC 0x290600000). All four nodes are in t6050-die0.dtsi / + * t6050-peripherals.dtsi of the PR tree, disabled. + */ +&aop_mbox { + status = "okay"; +}; + +&aop_setup_mbox { + status = "okay"; +}; + +&aop_dart { + status = "okay"; +}; + +&aop { + status = "okay"; +}; + +#if 0 +/* + * OPTIONAL, second step: the microphone array, from branch m5-parity/t6050-mic-on-speakers + * (commit 1026d291ef84, on top of PR #1554; not yet in the PR). ADT audio-hp-mic: three + * microphones ("Digital Mic", input-data-selectors imi1/imi2/imi3) on leap-s ADMAC RX0, + * reached through the proxy aperture ADT admac-hp-mic-ec-proxy at 0x2d3200000 (reg not + * behind the arm-io translation; dart-aop stream 11, vm-base-11 0x10040000000, + * vm-size-11 0xffff0000; admac-leap-s IRQ 638). That branch re-describes admac_ec_proxy in + * t6050-peripherals.dtsi as a plain apple,t8140-admac at 0x2d3200000 on <&aop_dart 11>; + * without that peripherals change this block must stay off. + */ +&admac_ec_proxy { + status = "okay"; +}; + +&aop_audio { + /* hpai: leap-s RX0 = Linux channel 1 of the proxy ADMAC (odd = DEV_TO_MEM) */ + dmas = <&admac_base_ns 4>, <&admac_base_ns 5>, + <&admac_base_ns 0>, <&admac_base_ns 1>, + <&admac_ec_proxy 1>; + dma-names = "cout", "cin", "spkr", "sense", "hpai"; +}; +#endif + +#if 1 +/* + * OPTIONAL stop-gap, only while booting an aura without kboot_audio.c (the booted + * aura-m5pro-v4.bin, aura main 58d65df, does not copy apple,speaker-config): the rows of the + * K116s ADT speaker-config, byte for byte (rx_slot, amp_gain, vsense_slot, isense_slot), + * group order LW1, RW1, LW2, RW2, LT, RT. macaudio takes byte 1 & 0x1f = 15 as the level. + * Prefer the aura patch: this hard-codes one Mac's ADT into a shared tree. Remove once aura + * fills the property (aura's copy overwrites it anyway). + */ +&speaker_left_woof1 { apple,speaker-config = /bits/ 8 <0x00 0x0f 0x00 0x02>; }; +&speaker_right_woof1 { apple,speaker-config = /bits/ 8 <0x01 0x0f 0x04 0x06>; }; +&speaker_left_woof2 { apple,speaker-config = /bits/ 8 <0x02 0x0f 0x08 0x0a>; }; +&speaker_right_woof2 { apple,speaker-config = /bits/ 8 <0x03 0x0f 0x0c 0x0e>; }; +&speaker_left_tweet { apple,speaker-config = /bits/ 8 <0x04 0x0f 0x10 0x12>; }; +&speaker_right_tweet { apple,speaker-config = /bits/ 8 <0x05 0x0f 0x14 0x16>; }; +#endif From 7e584a680b776e1233f0ce76129c684d42db7529 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 11 Nov 2026 11:18:49 -0700 Subject: [PATCH 09/15] arm64: dts: apple: t6050-k116s: Bring up the PMP and the SEP as the J714s does The PMP with its DART, mailbox, report and the PMC's static voters, and a tunables file generated from the K116s ADT's /arm-io/pmp0/iop-pmp0-nub (every name the J714s file has; only the DVFS voltage table, the segment ranges and the UUID differ). The SEP through its alias, which the boot loader uses to reserve its firmware and publish its manifests, with its mailbox and power domain and the two fabric parents left to the firmware. Signed-off-by: Jens Axboe --- .../dts/apple/t6050-k116s-pmp-tunables.dtsi | 157 ++++++++++++++++++ arch/arm64/boot/dts/apple/t6050-k116s.dts | 75 +++++++++ 2 files changed, 232 insertions(+) create mode 100644 arch/arm64/boot/dts/apple/t6050-k116s-pmp-tunables.dtsi diff --git a/arch/arm64/boot/dts/apple/t6050-k116s-pmp-tunables.dtsi b/arch/arm64/boot/dts/apple/t6050-k116s-pmp-tunables.dtsi new file mode 100644 index 0000000000000..09ba723c23b3c --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-k116s-pmp-tunables.dtsi @@ -0,0 +1,157 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* + * K116s PMP firmware properties: the ADT /arm-io/pmp0/iop-pmp0-nub values the + * firmware queries by name at boot (pmp.rs serves apple,tunable-). + * From the K116sAP 27.2 ADT; raw ADT bytes. + */ + +&pmp0 { + apple,tunable-afc-turbo-enable = [00 00 00 00]; + apple,tunable-afi-bw-enable = [01 00 00 00]; + apple,tunable-afi-bw-threshold = [3d 0a 57 00 00 00 00 00 00 00 00 00 03 00 00 00 cc 4c ae 00 00 00 00 00 3d 0a 56 00 03 00 00 00 00 00 ff ff 00 00 00 00 cc 4c ad 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-afi-sld-bw-threshold = [66 66 26 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 66 66 25 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-agx-af-bw-constraint = [00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00 01 00 00 00 03 00 00 00 01 00 00 00 01 00 00 00 03 00 00 00 01 00 00 00 01 00 00 00 03 00 00 00 01 00 00 00 01 00 00 00 03 00 00 00 01 00 00 00 01 00 00 00 03 00 00 00 01 00 00 00 01 00 00 00 03 00 00 00 01 00 00 00 01 00 00 00 03 00 00 00 01 00 00 00 01 00 00 00 03 00 00 00]; + apple,tunable-agx-af-bw-constraint-enable = [01 00 00 00]; + apple,tunable-agx-af-bw-dvfs-filter = [fe ff ff ff]; + apple,tunable-agx-af-bw-enable = [01 00 00 00]; + apple,tunable-agx-af-bw-threshold = [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 eb 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 42 01 00 00 00 00 5c cf 07 01 00 00 00 00 00 00 ff ff 00 00 00 00 00 40 6a 01 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 c0 ad 00 00 00 00 00 00 00 00 00 06 00 00 00 00 80 42 01 00 00 00 00 f5 e8 c2 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 40 6a 01 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 80 70 00 00 00 00 00 00 00 00 00 06 00 00 00 00 80 42 01 00 00 00 00 00 00 7e 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 40 6a 01 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 5e 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 d2 00 00 00 00 00 a3 30 69 00 06 00 00 00 00 00 ff ff 00 00 00 00 a3 b0 eb 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 80 07 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 d2 00 00 00 00 00 47 e1 07 00 06 00 00 00 00 00 ff ff 00 00 00 00 a3 b0 eb 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 d2 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 a3 b0 eb 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 d2 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 a3 b0 eb 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 d2 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 a3 b0 eb 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 af 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 5c 4f c4 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00]; + apple,tunable-agx-af-lat-constraint-enable = [01 00 00 00]; + apple,tunable-agx-af-lat-enable = [00 00 00 00]; + apple,tunable-agx-afr-bw-constraint = [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 01 00 00 00 01 00 00 00 0c 00 00 00 02 00 00 00 02 00 00 00 0c 00 00 00 03 00 00 00 03 00 00 00 0c 00 00 00 04 00 00 00 04 00 00 00 0c 00 00 00 05 00 00 00 05 00 00 00 0c 00 00 00 06 00 00 00 06 00 00 00 0c 00 00 00 07 00 00 00 07 00 00 00 0c 00 00 00 08 00 00 00 08 00 00 00 0c 00 00 00 09 00 00 00 09 00 00 00 0c 00 00 00 0a 00 00 00 0a 00 00 00 0c 00 00 00 0b 00 00 00 0b 00 00 00 0c 00 00 00 0c 00 00 00 0c 00 00 00 0c 00 00 00]; + apple,tunable-agx-afr-bw-constraint-enable = [01 00 00 00]; + apple,tunable-agx-afr-bw-dvfs-filter = [fe ff ff ff]; + apple,tunable-agx-afr-bw-enable = [01 00 00 00]; + apple,tunable-agx-afr-bw-threshold = [00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 ae 47 4b 00 00 00 00 00 00 00 00 00 00 00 00 00 33 f3 74 00 00 00 00 00 ae c7 4a 00 00 00 00 00 a3 70 a4 00 00 00 00 00 33 73 74 00 00 00 00 00 7a 14 dc 00 00 00 00 00 a3 f0 a3 00 00 00 00 00 14 6e 05 01 00 00 00 00 7a 94 db 00 00 00 00 00 eb 91 34 01 00 00 00 00 14 ee 04 01 00 00 00 00 e1 fa 65 01 00 00 00 00 eb 11 34 01 00 00 00 00 ae 87 9b 01 00 00 00 00 e1 7a 65 01 00 00 00 00 99 d9 d3 01 00 00 00 00 ae 07 9b 01 00 00 00 00 b8 9e 0f 02 00 00 00 00 99 59 d3 01 00 00 00 00 eb d1 4e 02 00 00 00 00 b8 1e 0f 02 00 00 00 00 8f 82 96 02 00 00 00 00 eb 51 4e 02 00 00 00 00 00 00 ff ff 00 00 00 00 8f 02 96 02 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 8f 82 68 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 28 94 00 00 00 00 00 8f 02 68 00 00 00 00 00 33 b3 c7 00 00 00 00 00 f5 a8 93 00 00 00 00 00 a3 b0 ee 00 00 00 00 00 33 33 c7 00 00 00 00 00 ae 47 1b 01 00 00 00 00 a3 30 ee 00 00 00 00 00 e1 3a 4a 01 00 00 00 00 ae c7 1a 01 00 00 00 00 1e 45 7d 01 00 00 00 00 e1 ba 49 01 00 00 00 00 47 21 b3 01 00 00 00 00 1e c5 7c 01 00 00 00 00 a3 70 ec 01 00 00 00 00 47 a1 b2 01 00 00 00 00 a3 30 29 02 00 00 00 00 a3 f0 eb 01 00 00 00 00 28 1c 6e 02 00 00 00 00 a3 b0 28 02 00 00 00 00 00 00 ff ff 00 00 00 00 28 9c 6d 02 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 d7 63 8a 00 00 00 00 00 00 00 00 00 00 00 00 00 51 78 bb 00 00 00 00 00 d7 e3 89 00 00 00 00 00 cc 0c e1 00 00 00 00 00 51 f8 ba 00 00 00 00 00 99 19 0c 01 00 00 00 00 cc 8c e0 00 00 00 00 00 7a 94 39 01 00 00 00 00 99 99 0b 01 00 00 00 00 28 1c 6b 01 00 00 00 00 7a 14 39 01 00 00 00 00 00 80 9f 01 00 00 00 00 28 9c 6a 01 00 00 00 00 0a 57 d7 01 00 00 00 00 00 00 9f 01 00 00 00 00 28 9c 12 02 00 00 00 00 0a d7 d6 01 00 00 00 00 b8 de 55 02 00 00 00 00 28 1c 12 02 00 00 00 00 00 00 ff ff 00 00 00 00 b8 5e 55 02 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 eb 51 b3 00 00 00 00 00 00 00 00 00 00 00 00 00 c2 f5 d7 00 00 00 00 00 eb d1 b2 00 00 00 00 00 70 fd 01 01 00 00 00 00 c2 75 d7 00 00 00 00 00 e1 7a 2e 01 00 00 00 00 70 7d 01 01 00 00 00 00 8f 02 5f 01 00 00 00 00 e1 fa 2d 01 00 00 00 00 85 6b 92 01 00 00 00 00 8f 82 5e 01 00 00 00 00 1e 45 c9 01 00 00 00 00 85 eb 91 01 00 00 00 00 5c 8f 03 02 00 00 00 00 1e c5 c8 01 00 00 00 00 c2 b5 45 02 00 00 00 00 5c 0f 03 02 00 00 00 00 00 00 ff ff 00 00 00 00 c2 35 45 02 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 c2 f5 d7 00 00 00 00 00 00 00 00 00 00 00 00 00 70 fd 01 01 00 00 00 00 c2 75 d7 00 00 00 00 00 e1 7a 2e 01 00 00 00 00 70 7d 01 01 00 00 00 00 8f 02 5f 01 00 00 00 00 e1 fa 2d 01 00 00 00 00 85 6b 92 01 00 00 00 00 8f 82 5e 01 00 00 00 00 1e 45 c9 01 00 00 00 00 85 eb 91 01 00 00 00 00 5c 8f 03 02 00 00 00 00 1e c5 c8 01 00 00 00 00 c2 b5 45 02 00 00 00 00 5c 0f 03 02 00 00 00 00 00 00 ff ff 00 00 00 00 c2 35 45 02 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 b8 de f7 00 00 00 00 00 00 00 00 00 00 00 00 00 47 61 23 01 00 00 00 00 b8 5e f7 00 00 00 00 00 66 e6 52 01 00 00 00 00 47 e1 22 01 00 00 00 00 7a 54 85 01 00 00 00 00 66 66 52 01 00 00 00 00 33 33 bb 01 00 00 00 00 7a d4 84 01 00 00 00 00 8f 82 f4 01 00 00 00 00 33 b3 ba 01 00 00 00 00 5c 8f 35 02 00 00 00 00 8f 02 f4 01 00 00 00 00 00 00 ff ff 00 00 00 00 5c 0f 35 02 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ae 47 18 01 00 00 00 00 00 00 00 00 00 00 00 00 cc cc 46 01 00 00 00 00 ae c7 17 01 00 00 00 00 70 3d 78 01 00 00 00 00 cc 4c 46 01 00 00 00 00 47 21 ad 01 00 00 00 00 70 bd 77 01 00 00 00 00 33 73 e5 01 00 00 00 00 47 a1 ac 01 00 00 00 00 66 66 25 02 00 00 00 00 33 f3 e4 01 00 00 00 00 00 00 ff ff 00 00 00 00 66 e6 24 02 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 33 b3 3a 01 00 00 00 00 00 00 00 00 00 00 00 00 f5 28 6b 01 00 00 00 00 33 33 3a 01 00 00 00 00 5c 0f 9f 01 00 00 00 00 f5 a8 6a 01 00 00 00 00 66 66 d6 01 00 00 00 00 5c 8f 9e 01 00 00 00 00 70 3d 15 02 00 00 00 00 66 e6 d5 01 00 00 00 00 00 00 ff ff 00 00 00 00 70 bd 14 02 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 eb 11 5e 01 00 00 00 00 00 00 00 00 00 00 00 00 70 fd 90 01 00 00 00 00 eb 91 5d 01 00 00 00 00 99 59 c7 01 00 00 00 00 70 7d 90 01 00 00 00 00 7a 14 05 02 00 00 00 00 99 d9 c6 01 00 00 00 00 00 00 ff ff 00 00 00 00 7a 94 04 02 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 85 eb 82 01 00 00 00 00 00 00 00 00 00 00 00 00 3d 4a b8 01 00 00 00 00 85 6b 82 01 00 00 00 00 85 eb f4 01 00 00 00 00 3d ca b7 01 00 00 00 00 00 00 ff ff 00 00 00 00 85 6b f4 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 a8 92 01 00 00 00 00 00 00 00 00 00 00 00 00 1e 85 cc 01 00 00 00 00 f5 28 92 01 00 00 00 00 00 00 ff ff 00 00 00 00 1e 05 cc 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 47 21 a4 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 47 a1 a3 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00]; + apple,tunable-agx-afr-lat-constraint-enable = [01 00 00 00]; + apple,tunable-agx-afr-lat-enable = [00 00 00 00]; + apple,tunable-agx-dcs-bw-constraint = [00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 01 00 00 00 01 00 00 00 06 00 00 00 01 00 00 00 01 00 00 00 06 00 00 00 01 00 00 00 01 00 00 00 06 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 03 00 00 00 03 00 00 00 06 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 05 00 00 00 05 00 00 00 06 00 00 00 05 00 00 00 05 00 00 00 06 00 00 00]; + apple,tunable-agx-dcs-bw-constraint-enable = [01 00 00 00]; + apple,tunable-agx-dcs-bw-dvfs-filter = [fe ff ff ff]; + apple,tunable-agx-dcs-bw-enable = [01 00 00 00]; + apple,tunable-agx-dcs-bw-threshold = [00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 80 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 00 00 00 00 00 00 80 21 00 00 00 00 00 00 00 69 00 00 00 00 00 00 00 47 00 00 00 00 00 66 e6 a3 00 00 00 00 00 00 00 68 00 00 00 00 00 00 00 ff ff 00 00 00 00 66 e6 a2 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 17 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 48 00 00 00 00 00 00 00 16 00 06 00 00 00 00 00 69 00 00 00 00 00 00 00 47 00 06 00 00 00 66 e6 a3 00 00 00 00 00 00 00 68 00 06 00 00 00 00 00 ff ff 00 00 00 00 66 e6 a2 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 48 00 00 00 00 00 00 00 04 00 06 00 00 00 00 00 5f 00 00 00 00 00 00 00 47 00 06 00 00 00 66 e6 a3 00 00 00 00 00 00 00 5e 00 06 00 00 00 00 00 c7 00 00 00 00 00 66 e6 a2 00 06 00 00 00 00 80 e3 00 00 00 00 00 00 00 c6 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 80 e2 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 48 00 00 00 00 00 00 00 04 00 06 00 00 00 00 00 5f 00 00 00 00 00 00 00 47 00 06 00 00 00 66 e6 a3 00 00 00 00 00 00 00 5e 00 06 00 00 00 00 00 c7 00 00 00 00 00 66 e6 a2 00 06 00 00 00 00 80 e3 00 00 00 00 00 00 00 c6 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 80 e2 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 43 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 50 00 00 00 00 00 00 00 42 00 06 00 00 00 66 e6 a3 00 00 00 00 00 00 00 4f 00 06 00 00 00 00 00 c7 00 00 00 00 00 66 e6 a2 00 06 00 00 00 00 80 e3 00 00 00 00 00 00 00 c6 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 80 e2 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 0a 00 00 00 00 00 00 00 04 00 06 00 00 00 70 7d 8c 00 00 00 00 00 00 00 09 00 06 00 00 00 00 00 c1 00 00 00 00 00 70 7d 8b 00 06 00 00 00 00 80 e3 00 00 00 00 00 00 00 c0 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 80 e2 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 0a 00 00 00 00 00 00 00 04 00 06 00 00 00 70 7d 8c 00 00 00 00 00 00 00 09 00 06 00 00 00 00 00 c1 00 00 00 00 00 70 7d 8b 00 06 00 00 00 00 80 e3 00 00 00 00 00 00 00 c0 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 80 e2 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 80 34 00 00 00 00 00 00 00 04 00 06 00 00 00 00 00 47 00 00 00 00 00 00 80 33 00 06 00 00 00 00 80 5c 00 00 00 00 00 00 00 46 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 80 5b 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 3d 00 00 00 00 00 00 00 04 00 06 00 00 00 00 80 51 00 00 00 00 00 00 00 3c 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 80 50 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 46 00 00 00 00 00 00 00 04 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 45 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 46 00 00 00 00 00 00 00 04 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 45 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 04 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 04 00 06 00 00 00]; + apple,tunable-agx-dcs-lat-constraint-enable = [01 00 00 00]; + apple,tunable-agx-dcs-lat-enable = [00 00 00 00]; + apple,tunable-agx-dvfs-state-voltages = [7d 00 00 00 58 02 00 00 80 02 00 00 94 02 00 00 c6 02 00 00 d0 02 00 00 ee 02 00 00 07 03 00 00 25 03 00 00 4d 03 00 00 66 03 00 00 93 03 00 00 d9 03 00 00 01 04 00 00 7d 00 00 00 7d 00 00 00]; + apple,tunable-ane-af-bw-enable = [00 00 00 00]; + apple,tunable-ane-af-bw-threshold = [00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 09 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 09 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 99 19 39 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 0e 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 14 2e 21 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 0e 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 0e 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 0e 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 0e 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00]; + apple,tunable-ane-dcs-bw-enable = [01 00 00 00]; + apple,tunable-ane-dcs-bw-threshold = [00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 1d 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 14 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 46 00 00 00 00 00 00 00 13 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 45 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 14 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 46 00 00 00 00 00 00 00 13 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 45 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 1d 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 1d 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 1d 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 31 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 1d 00 06 00 00 00 00 00 48 00 00 00 00 00 00 00 31 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 47 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 1d 00 06 00 00 00 00 00 48 00 00 00 00 00 00 00 31 00 06 00 00 00 00 00 55 00 00 00 00 00 00 00 47 00 06 00 00 00 00 00 60 00 00 00 00 00 00 00 54 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 5f 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 14 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 13 00 06 00 00 00 00 00 48 00 00 00 00 00 00 00 31 00 06 00 00 00 00 00 55 00 00 00 00 00 00 00 47 00 06 00 00 00 00 00 60 00 00 00 00 00 00 00 54 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 5f 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 14 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 13 00 06 00 00 00 00 00 48 00 00 00 00 00 00 00 31 00 06 00 00 00 00 00 55 00 00 00 00 00 00 00 47 00 06 00 00 00 00 00 60 00 00 00 00 00 00 00 54 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 5f 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 14 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 13 00 06 00 00 00 00 00 48 00 00 00 00 00 00 00 31 00 06 00 00 00 00 00 55 00 00 00 00 00 00 00 47 00 06 00 00 00 00 00 60 00 00 00 00 00 00 00 54 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 5f 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 14 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 13 00 06 00 00 00 00 00 48 00 00 00 00 00 00 00 31 00 06 00 00 00 00 00 55 00 00 00 00 00 00 00 47 00 06 00 00 00 00 00 60 00 00 00 00 00 00 00 54 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 5f 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 14 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 32 00 00 00 00 00 00 00 13 00 06 00 00 00 00 00 48 00 00 00 00 00 00 00 31 00 06 00 00 00 00 00 55 00 00 00 00 00 00 00 47 00 06 00 00 00 00 00 60 00 00 00 00 00 00 00 54 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 5f 00 06 00 00 00]; + apple,tunable-ane-lnk0-af-bw-threshold = [00 00 0a 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 09 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 09 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 47 a1 19 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 47 a1 19 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 47 a1 19 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 99 19 3a 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 99 19 39 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 14 2e 22 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 14 2e 21 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00]; + apple,tunable-ane-lnk0-af-bw-threshold-a = [00 00 0a 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 09 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 09 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 47 a1 19 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 47 a1 19 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 47 a1 19 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 99 19 3a 00 00 00 00 00 00 00 00 00 06 00 00 00 99 19 3a 00 00 00 00 00 99 19 39 00 00 00 00 00 00 00 ff ff 00 00 00 00 99 19 39 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 14 2e 22 00 00 00 00 00 00 00 00 00 06 00 00 00 14 2e 22 00 00 00 00 00 14 2e 21 00 00 00 00 00 00 00 ff ff 00 00 00 00 14 2e 21 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 0a 17 10 00 00 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 0a 17 10 00 00 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 0a 17 10 00 00 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 0a 17 10 00 00 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00]; + apple,tunable-ane-lnk1-af-bw-threshold = [00 00 0a 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 09 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 09 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 47 a1 19 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 47 a1 19 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 47 a1 19 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 99 19 3a 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 99 19 39 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 14 2e 22 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 14 2e 21 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00]; + apple,tunable-ane-lnk1-af-bw-threshold-a = [00 00 0a 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 09 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 09 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 47 a1 19 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 47 a1 19 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 00 47 a1 19 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 47 a1 18 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 99 19 3a 00 00 00 00 00 00 00 00 00 06 00 00 00 99 19 3a 00 00 00 00 00 99 19 39 00 00 00 00 00 00 00 ff ff 00 00 00 00 99 19 39 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 14 2e 22 00 00 00 00 00 00 00 00 00 06 00 00 00 14 2e 22 00 00 00 00 00 14 2e 21 00 00 00 00 00 00 00 ff ff 00 00 00 00 14 2e 21 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 0a 17 10 00 00 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 0a 17 10 00 00 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 0a 17 10 00 00 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 00 00 00 00 06 00 00 00 0a 17 11 00 00 00 00 00 0a 17 10 00 00 00 00 00 00 00 ff ff 00 00 00 00 0a 17 10 00 06 00 00 00]; + apple,tunable-ans-dcs-bw-enable = [01 00 00 00]; + apple,tunable-ans-dcs-bw-threshold = [99 19 00 00 05 00 00 00 00 00 00 00 03 00 00 00 99 19 00 00 05 00 00 00 5c 0f 00 00 03 00 00 00 99 19 00 00 05 00 00 00 5c 0f 00 00 03 00 00 00 00 00 ff ff 05 00 00 00 5c 0f 00 00 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-ans-dma-af-bw-enable = [01 00 00 00]; + apple,tunable-ans-dma-af-bw-threshold = [99 19 00 00 05 00 00 00 00 00 00 00 03 00 00 00 00 00 05 00 05 00 00 00 3d 0a 00 00 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 04 00 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-ans-dma-af-bw-threshold-a = [99 19 00 00 05 00 00 00 00 00 00 00 03 00 00 00 00 00 05 00 05 00 00 00 3d 0a 00 00 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 04 00 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-ans-nand-af-bw-enable = [01 00 00 00]; + apple,tunable-ans-nand-af-bw-threshold = [99 19 00 00 05 00 00 00 00 00 00 00 03 00 00 00 00 00 05 00 05 00 00 00 3d 0a 00 00 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 04 00 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-ans-nand-af-bw-threshold-a = [99 19 00 00 05 00 00 00 00 00 00 00 03 00 00 00 00 00 05 00 05 00 00 00 3d 0a 00 00 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 04 00 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 05 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-atc0-af-bw-enable = [01 00 00 00]; + apple,tunable-atc0-af-bw-threshold = [51 b8 09 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 51 b8 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-atc0-af-bw-threshold-a = [51 b8 09 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 51 b8 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-atc1-af-bw-enable = [01 00 00 00]; + apple,tunable-atc1-af-bw-threshold = [51 b8 09 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 51 b8 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-atc1-af-bw-threshold-a = [51 b8 09 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 51 b8 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-atc2-af-bw-enable = [01 00 00 00]; + apple,tunable-atc2-af-bw-threshold = [51 b8 09 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 51 b8 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-atc2-af-bw-threshold-a = [51 b8 09 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 51 b8 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-atc3-af-bw-enable = [01 00 00 00]; + apple,tunable-atc3-af-bw-threshold = [51 b8 09 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 51 b8 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-atc3-af-bw-threshold-a = [51 b8 09 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 51 b8 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-auss-af-bw-enable = [01 00 00 00]; + apple,tunable-auss-af-bw-threshold = [51 b8 09 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 51 b8 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-auss-af-bw-threshold-a = [51 b8 09 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 51 b8 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-ave0-af-bw-enable = [00 00 00 00]; + apple,tunable-ave0-af-bw-threshold = [99 99 09 00 00 00 00 00 00 00 00 00 03 00 00 00 66 66 0e 00 00 00 00 00 99 99 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 66 66 0d 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-ave0-af-bw-threshold-a = [99 99 09 00 00 00 00 00 00 00 00 00 03 00 00 00 66 66 0e 00 00 00 00 00 99 99 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 66 66 0d 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-ave1-af-bw-enable = [00 00 00 00]; + apple,tunable-ave1-af-bw-threshold = [99 99 09 00 00 00 00 00 00 00 00 00 03 00 00 00 66 66 0e 00 00 00 00 00 99 99 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 66 66 0d 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-ave1-af-bw-threshold-a = [99 99 09 00 00 00 00 00 00 00 00 00 03 00 00 00 66 66 0e 00 00 00 00 00 99 99 08 00 03 00 00 00 00 00 ff ff 00 00 00 00 66 66 0d 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-bwr-catch-up-factor = [00 00 01 00]; + apple,tunable-controller = [01 00 00 00 10 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 44 49 45 2d 54 45 4d 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 43 53 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 46 49 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 47 58 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 47 58 2d 44 43 53 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 47 58 2d 41 46 52 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 30 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 31 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 32 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 33 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 34 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 35 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 36 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 37 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 38 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 39 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 4e 45 2d 4c 4e 4b 30 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 4e 45 2d 4c 4e 4b 31 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 0f 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 4d 45 4d 2d 43 41 43 48 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 4e 53 2d 4e 41 4e 44 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 4e 53 2d 44 4d 41 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 54 43 30 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 54 43 31 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 54 43 32 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 54 43 33 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 56 45 30 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 56 45 31 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 55 53 53 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4a 50 45 47 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 4e 45 2d 41 46 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 4e 45 2d 44 43 53 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 4e 53 2d 44 43 53 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 46 49 2d 53 4c 44 2d 42 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 00 00 00 20 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 4c 49 46 45 54 49 4d 45 2d 53 45 52 56 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]; + apple,tunable-coredump-enable = [40 00 00 00]; + apple,tunable-dcs-bw-enable = [01 00 00 00]; + apple,tunable-dcs-bw-threshold = [47 e1 27 00 01 00 00 00 00 00 00 00 00 00 00 00 ae c7 4f 00 02 00 00 00 47 e1 26 00 00 00 00 00 3d 0a 74 00 03 00 00 00 ae c7 4e 00 00 00 00 00 7a 14 ae 00 04 00 00 00 3d 0a 73 00 00 00 00 00 7a 14 cb 00 05 00 00 00 7a 14 ad 00 00 00 00 00 99 19 e8 00 06 00 00 00 7a 14 ca 00 00 00 00 00 00 00 ff ff 07 00 00 00 99 19 e7 00 00 00 00 00]; + apple,tunable-disable-vlpm-feature = [01 00 00 00]; + apple,tunable-dvfs-domain = [01 00 00 00 07 00 00 00 00 00 00 00 44 43 53 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 0d 00 00 00 21 00 00 00 41 46 52 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00 00 00 00 00 53 4f 43 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00 00 00 00 00 44 49 53 50 5f 49 4e 54 00 00 00 00 00 00 00 00 05 00 00 00 04 00 00 00 00 00 00 00 44 49 53 50 5f 45 58 54 00 00 00 00 00 00 00 00]; + apple,tunable-dvfs-domain-afc-bin = [01 00 00 00 07 00 00 00 00 00 00 00 44 43 53 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 0d 00 00 00 21 00 00 00 41 46 52 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 05 00 00 00 00 00 00 00 53 4f 43 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00 00 00 00 00 44 49 53 50 5f 49 4e 54 00 00 00 00 00 00 00 00 05 00 00 00 04 00 00 00 00 00 00 00 44 49 53 50 5f 45 58 54 00 00 00 00 00 00 00 00]; + apple,tunable-fast-die-ctrl-ce-map = [01 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4d 41 43 43 30 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4d 41 43 43 31 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 50 41 43 43 5f 41 4e 45 00 00 00 00 00 00 00 00]; + apple,tunable-fast-die-ctrl-ts = [00 00 05 00]; + apple,tunable-fast-die-ctrl-ts-avg-temp = [00 00 64 00]; + apple,tunable-firmware-name = [74 36 30 35 30 70 6d 70 00]; + apple,tunable-jpeg-af-bw-enable = [00 00 00 00]; + apple,tunable-jpeg-af-bw-threshold = [99 99 03 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 99 99 02 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-jpeg-af-bw-threshold-a = [99 99 03 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ff ff 00 00 00 00 99 99 02 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-lts-acsk-tddb-config = [01 00 00 00 69 00 00 00 10 14 24 00 00 00 00 00 95 c2 0f 00 1a 04 00 00 56 04 00 00 00 00 00 00]; + apple,tunable-lts-clpc-voltage = [01 00 00 00 d2 03 00 00 00 00 66 00 33 33 66 00 00 00 00 00 50 41 43 43 00 00 00 00]; + apple,tunable-lts-config = [03 00 00 00 69 00 00 00 c3 1c 15 00 00 00 00 00 0f dc 0f 00 6e 00 00 00 68 00 00 00 00 00 11 00 33 b3 00 00 2f bd 48 01 03 00 00 00 69 00 00 00 c3 1c 15 00 00 00 00 00 0f dc 0f 00 6e 00 00 00 68 00 00 00 00 00 11 00 33 b3 00 00 2f bd 48 01 01 00 00 00 69 00 00 00 bf d9 01 00 00 00 00 00 da fc 0f 00 6e 00 00 00 66 00 00 00 00 00 11 00 33 b3 00 00 f9 fe c3 00 02 00 00 00 3b 01 00 00 cd f1 09 00 00 00 00 00 12 ef 0f 00 6e 00 00 00 69 00 00 00 00 00 11 00 33 b3 00 00 2b 87 4f 00]; + apple,tunable-lts-ctrl-loop = [01 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4d 41 43 43 30 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4d 41 43 43 31 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 03 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 41 43 43 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 47 50 55 00 00 00 00 00 00 00 00 00 00 00 00 00]; + apple,tunable-lts-ctrl-ts = [00 00 05 00]; + apple,tunable-lts-voltage = [01 00 00 00 03 00 00 00 0d 00 00 00 09 00 00 00 4d 41 43 43 30 00 00 00 02 00 00 00 03 00 00 00 0e 00 00 00 0a 00 00 00 4d 41 43 43 31 00 00 00 03 00 00 00 03 00 00 00 0f 00 00 00 02 00 00 00 50 41 43 43 00 00 00 00 04 00 00 00 01 00 00 00 11 00 00 00 00 00 00 00 41 4e 45 00 00 00 00 00 05 00 00 00 03 00 00 00 10 00 00 00 04 00 00 00 41 47 58 00 00 00 00 00]; + apple,tunable-mc_cmd_ack_ptd_count = [01 00 00 00]; + apple,tunable-mc_cmd_ptd_count = [02 00 00 00]; + apple,tunable-mc_quota_req_ptd_count = [08 00 00 00]; + apple,tunable-mc_quota_rsp_ptd_count = [08 00 00 00]; + apple,tunable-mcache-stream = [1e 00 00 00 03 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 0c 00 00 00 0c 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 2b 00 00 00 03 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 0e 00 00 00 0e 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 05 00 00 00 01 00 00 00 01 00 00 00 07 00 00 00 07 00 00 00 20 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 06 00 00 00 02 00 00 00 01 00 00 00 08 00 00 00 08 00 00 00 24 00 00 00 24 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 0b 00 00 00 05 00 00 00 01 00 00 00 0b 00 00 00 0b 00 00 00 30 00 00 00 30 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 01 00 00 00 0e 00 00 00 04 00 00 00 01 00 00 00 0d 00 00 00 0d 00 00 00 38 00 00 00 38 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 11 00 00 00 04 00 00 00 01 00 00 00 0e 00 00 00 0e 00 00 00 3c 00 00 00 3c 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 1b 00 00 00 04 00 00 00 01 00 00 00 0e 00 00 00 0e 00 00 00 3d 00 00 00 3d 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 13 00 00 00 04 00 00 00 01 00 00 00 0f 00 00 00 0f 00 00 00 40 00 00 00 40 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 24 00 00 00 04 00 00 00 01 00 00 00 0f 00 00 00 0f 00 00 00 41 00 00 00 41 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 1c 00 00 00 04 00 00 00 01 00 00 00 0f 00 00 00 0f 00 00 00 42 00 00 00 42 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 0f 00 00 00 04 00 00 00 01 00 00 00 10 00 00 00 10 00 00 00 44 00 00 00 44 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 11 00 00 00 11 00 00 00 48 00 00 00 48 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 13 00 00 00 13 00 00 00 50 00 00 00 50 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 15 00 00 00 15 00 00 00 58 00 00 00 5a 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 10 00 00 00 04 00 00 00 01 00 00 00 1f 00 00 00 1f 00 00 00 80 00 00 00 bf 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 20 00 00 00 03 00 00 00 02 00 00 00 03 00 00 00 06 00 00 00 10 00 00 00 1f 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 01 00 00 00 1f 00 00 00 03 00 00 00 02 00 00 00 1e 00 00 00 1e 00 00 00 7c 00 00 00 7c 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 12 00 00 00 05 00 00 00 02 00 00 00 09 00 00 00 09 00 00 00 28 00 00 00 28 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 0a 00 00 00 05 00 00 00 02 00 00 00 0c 00 00 00 0c 00 00 00 34 00 00 00 34 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 15 00 00 00 07 00 00 00 02 00 00 00 16 00 00 00 16 00 00 00 5d 00 00 00 5d 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 36 00 00 00 07 00 00 00 02 00 00 00 16 00 00 00 16 00 00 00 5e 00 00 00 5e 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 37 00 00 00 07 00 00 00 02 00 00 00 16 00 00 00 16 00 00 00 5f 00 00 00 5f 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 0d 00 00 00 0b 00 00 00 03 00 00 00 01 00 00 00 01 00 00 00 08 00 00 00 08 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 0c 00 00 00 0b 00 00 00 03 00 00 00 01 00 00 00 01 00 00 00 09 00 00 00 09 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 19 00 00 00 08 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 1a 00 00 00 08 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 05 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 29 00 00 00 08 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 06 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 2a 00 00 00 08 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 07 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 2c 00 00 00 03 00 00 00 03 00 00 00 18 00 00 00 18 00 00 00 64 00 00 00 64 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 2d 00 00 00 0c 00 00 00 03 00 00 00 18 00 00 00 18 00 00 00 65 00 00 00 65 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 2f 00 00 00 02 00 00 00 03 00 00 00 1a 00 00 00 1a 00 00 00 6c 00 00 00 6c 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 26 00 00 00 05 00 00 00 03 00 00 00 1c 00 00 00 1c 00 00 00 74 00 00 00 74 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 14 00 00 00 04 00 00 00 03 00 00 00 01 00 00 00 01 00 00 00 0a 00 00 00 0a 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 27 00 00 00 04 00 00 00 03 00 00 00 1d 00 00 00 1d 00 00 00 78 00 00 00 78 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 23 00 00 00 00 00 00 00 03 00 00 00 14 00 00 00 14 00 00 00 54 00 00 00 54 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 28 00 00 00 00 00 00 00 03 00 00 00 1b 00 00 00 1b 00 00 00 70 00 00 00 70 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 30 00 00 00 0e 00 00 00 03 00 00 00 17 00 00 00 17 00 00 00 61 00 00 00 61 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 31 00 00 00 0f 00 00 00 03 00 00 00 17 00 00 00 17 00 00 00 60 00 00 00 60 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 35 00 00 00 09 00 00 00 03 00 00 00 19 00 00 00 19 00 00 00 68 00 00 00 68 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 1d 00 00 00 09 00 00 00 03 00 00 00 19 00 00 00 19 00 00 00 69 00 00 00 6b 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 33 00 00 00 11 00 00 00 03 00 00 00 17 00 00 00 17 00 00 00 62 00 00 00 62 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 34 00 00 00 12 00 00 00 03 00 00 00 17 00 00 00 17 00 00 00 63 00 00 00 63 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 16 00 00 00 0b 00 00 00 03 00 00 00 ff ff 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]; + apple,tunable-no-shutdown = [01 00 00 00]; + apple,tunable-pm-ptd-ranges = [01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 28 00 00 00 09 00 00 00 0a 00 00 00 0b 00 00 00 0c 00 00 00 0d 00 00 00 0e 00 00 00]; + apple,tunable-pre-loaded = [01 00 00 00]; + apple,tunable-ptd-driver-version = [01 00 00 00]; + apple,tunable-ptd-range = [01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 4e 55 4c 4c 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 10 00 00 00 50 4d 50 2d 53 54 41 54 55 53 00 00 00 00 00 00 03 00 00 00 08 00 00 00 04 00 00 00 00 00 00 00 44 56 46 53 2d 53 54 41 54 45 00 00 00 00 00 00 04 00 00 00 0c 00 00 00 04 00 00 00 00 00 00 00 50 4d 50 54 4f 4f 4c 00 00 00 00 00 00 00 00 00 05 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 50 4d 53 2d 50 4d 47 52 2d 50 4b 54 00 00 00 00 06 00 00 00 18 00 00 00 20 00 00 00 00 00 00 00 50 4d 53 2d 44 50 45 2d 50 4b 54 00 00 00 00 00 07 00 00 00 38 00 00 00 48 00 00 00 00 00 00 00 50 4d 53 2d 44 45 56 43 2d 50 4b 54 00 00 00 00 08 00 00 00 80 00 00 00 10 00 00 00 00 00 00 00 50 4d 53 2d 50 57 52 53 2d 50 4b 54 00 00 00 00 09 00 00 00 90 00 00 00 50 01 00 00 00 00 00 00 53 4f 43 2d 44 45 56 2d 50 4b 54 00 00 00 00 00 0a 00 00 00 e0 01 00 00 08 00 00 00 00 00 00 00 53 4f 43 2d 44 45 56 2d 50 53 2d 52 45 51 00 00 0b 00 00 00 e8 01 00 00 08 00 00 00 00 00 00 00 53 4f 43 2d 44 45 56 2d 50 53 2d 41 43 4b 00 00 0c 00 00 00 f0 01 00 00 30 00 00 00 00 00 00 00 53 4f 43 2d 44 45 56 2d 44 56 46 53 00 00 00 00 0d 00 00 00 20 02 00 00 1a 00 00 00 00 00 00 00 53 4f 43 2d 44 45 56 2d 42 57 52 00 00 00 00 00 0e 00 00 00 3a 02 00 00 02 00 00 00 00 00 00 00 44 56 46 53 2d 44 49 45 2d 54 4f 2d 44 49 45 00 0f 00 00 00 3c 02 00 00 0a 00 00 00 00 00 00 00 4d 43 2d 44 52 56 2d 54 4f 2d 43 54 52 4c 00 00 10 00 00 00 58 02 00 00 02 00 00 00 0c 00 00 00 46 41 53 54 2d 44 49 45 2d 43 45 00 00 00 00 00 11 00 00 00 5a 02 00 00 07 00 00 00 0d 00 00 00 53 4d 43 2d 54 4f 2d 50 50 4d 00 00 00 00 00 00 12 00 00 00 61 02 00 00 09 00 00 00 00 00 00 00 4d 43 2d 43 54 52 4c 2d 54 4f 2d 44 52 56 00 00 13 00 00 00 6a 02 00 00 01 00 00 00 0a 00 00 00 4c 54 53 2d 56 4f 4c 54 2d 43 41 50 00 00 00 00 18 00 00 00 70 02 00 00 05 00 00 00 0e 00 00 00 50 50 4d 2d 54 4f 2d 53 4d 43 00 00 00 00 00 00 19 00 00 00 75 02 00 00 05 00 00 00 0f 00 00 00 43 4c 50 43 2d 54 4f 2d 53 4d 43 00 00 00 00 00 1a 00 00 00 7a 02 00 00 20 00 00 00 00 00 00 00 47 46 58 2d 54 4f 2d 53 4d 43 00 00 00 00 00 00 1b 00 00 00 9a 02 00 00 09 00 00 00 00 00 00 00 46 41 53 54 2d 44 49 45 2d 54 4f 2d 53 4d 43 00 1c 00 00 00 a3 02 00 00 01 00 00 00 00 00 00 00 4d 43 2d 43 54 52 4c 2d 54 4f 2d 53 4d 43 00 00 1d 00 00 00 a4 02 00 00 08 00 00 00 00 00 00 00 41 4e 45 2d 54 4f 2d 53 4d 43 00 00 00 00 00 00 20 00 00 00 b4 02 00 00 01 00 00 00 00 00 00 00 4c 54 53 2d 54 4f 2d 47 46 58 00 00 00 00 00 00 21 00 00 00 b5 02 00 00 01 00 00 00 0b 00 00 00 50 4d 50 2d 54 4f 2d 47 46 58 00 00 00 00 00 00 22 00 00 00 b6 02 00 00 08 00 00 00 00 00 00 00 50 4d 55 2d 54 4f 2d 47 46 58 00 00 00 00 00 00 28 00 00 00 20 03 00 00 14 00 00 00 00 00 00 00 50 4d 53 2d 56 49 52 54 2d 43 4e 54 52 00 00 00]; + apple,tunable-region-base = [00 00 50 84 02 00 00 00]; + apple,tunable-region-size = [00 00 10 00 00 00 00 00]; + apple,tunable-segment-names = [5f 5f 54 45 58 54 3b 5f 5f 44 41 54 41 3b 5f 5f 45 54 45 58 54 00]; + apple,tunable-segment-ranges = [00 00 50 84 02 00 00 00 00 00 00 01 00 00 00 00 00 00 50 84 02 00 00 00 00 60 05 00 03 00 00 00 00 60 55 84 02 00 00 00 00 60 05 01 00 00 00 00 00 60 55 84 02 00 00 00 00 b0 09 00 06 00 00 00 00 c0 d2 01 00 01 00 00 00 00 10 01 00 00 00 00 00 00 00 00 00 01 00 00 00 20 01 00 01 00 00 00]; + apple,tunable-soc-chip-variant = [00 00 00 00]; + apple,tunable-soc-device = [01 00 00 00 45 4e 4f 4e 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 43 53 00 00 00 00 00 02 00 00 00 45 4e 4f 4e 01 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 4d 43 43 00 00 00 00 03 00 00 00 45 4e 4f 4e 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 30 00 04 00 00 00 45 4e 4f 4e 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 31 00 05 00 00 00 45 4e 4f 4e 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 32 00 06 00 00 00 45 4e 4f 4e 01 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 33 00 07 00 00 00 45 4e 4f 4e 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 34 00 08 00 00 00 45 4e 4f 4e 01 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 35 00 09 00 00 00 45 4e 4f 4e 01 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 36 00 0a 00 00 00 45 4e 4f 4e 01 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 37 00 0b 00 00 00 45 4e 4f 4e 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 38 00 0c 00 00 00 45 4e 4f 4e 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 4f 43 2d 4e 49 39 00 0d 00 00 00 45 4e 4f 4e 03 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4d 41 43 43 30 00 00 00 0e 00 00 00 45 4e 4f 4e 03 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4d 41 43 43 31 00 00 00 0f 00 00 00 45 4e 4f 4e 03 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 41 43 43 00 00 00 00 10 00 00 00 5f 58 46 47 03 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 47 58 00 00 00 00 00 11 00 00 00 45 4e 4f 4e 03 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 4e 45 00 00 00 00 00 12 00 00 00 45 4e 4f 4e 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 49 53 50 00 00 00 00 00 13 00 00 00 45 4e 4f 4e 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 49 53 50 49 4e 54 00 14 00 00 00 45 4e 4f 4e 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 49 53 50 45 58 54 30 15 00 00 00 45 4e 4f 4e 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 49 53 50 45 58 54 31 16 00 00 00 45 4e 4f 4e 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 49 53 50 45 58 54 32 17 00 00 00 45 4e 4f 4e 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 49 53 50 45 58 54 33 18 00 00 00 45 4e 4f 4e 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 56 45 30 00 00 00 00 19 00 00 00 45 4e 4f 4e 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 56 45 31 00 00 00 00 1a 00 00 00 45 4e 4f 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 56 44 00 00 00 00 00 1b 00 00 00 45 4e 4f 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4d 53 52 30 00 00 00 00 1c 00 00 00 45 4e 4f 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4d 53 52 31 00 00 00 00 1d 00 00 00 45 4e 4f 4e 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4a 50 45 47 00 00 00 00 1e 00 00 00 45 4e 4f 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 43 4f 44 45 43 00 00 1f 00 00 00 45 4e 4f 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 52 4f 52 45 53 00 00 20 00 00 00 45 4e 4f 4e 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 54 43 30 00 00 00 00 21 00 00 00 45 4e 4f 4e 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 54 43 31 00 00 00 00 22 00 00 00 45 4e 4f 4e 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 54 43 32 00 00 00 00 23 00 00 00 45 4e 4f 4e 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 54 43 33 00 00 00 00 24 00 00 00 45 4e 4f 4e 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 55 53 53 00 00 00 00 25 00 00 00 45 4e 4f 4e 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 4e 53 00 00 00 00 00]; + apple,tunable-soc-device-ps-group = [00 f0 ff ff ff 01 00 00]; + apple,tunable-soc-ni0-bw-enable = [01 00 00 00]; + apple,tunable-soc-ni0-bw-threshold = [8f c2 15 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 8f c2 14 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni0-bw-threshold-a = [8f c2 15 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 8f c2 14 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni0-push-thr = [f5 06 00 00]; + apple,tunable-soc-ni1-bw-enable = [01 00 00 00]; + apple,tunable-soc-ni1-bw-threshold = [8f c2 15 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 8f c2 14 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni1-bw-threshold-a = [8f c2 15 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 8f c2 14 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni1-push-thr = [f5 06 00 00]; + apple,tunable-soc-ni2-bw-enable = [01 00 00 00]; + apple,tunable-soc-ni2-bw-threshold = [8f c2 15 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 8f c2 14 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni2-bw-threshold-a = [8f c2 15 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 8f c2 14 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni2-push-thr = [f5 06 00 00]; + apple,tunable-soc-ni3-bw-enable = [01 00 00 00]; + apple,tunable-soc-ni3-bw-threshold = [ae 07 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 ae 07 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni3-bw-threshold-a = [ae 07 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 ae 07 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni3-push-thr = [f5 06 00 00]; + apple,tunable-soc-ni4-bw-enable = [01 00 00 00]; + apple,tunable-soc-ni4-bw-threshold = [ae 07 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 ae 07 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni4-bw-threshold-a = [ae 07 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 ae 07 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni4-push-thr = [f5 06 00 00]; + apple,tunable-soc-ni5-bw-enable = [01 00 00 00]; + apple,tunable-soc-ni5-bw-threshold = [ae 07 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 ae 07 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni5-bw-threshold-a = [ae 07 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 ae 07 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni5-push-thr = [f5 06 00 00]; + apple,tunable-soc-ni6-bw-enable = [01 00 00 00]; + apple,tunable-soc-ni6-bw-threshold = [ae 07 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 ae 07 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni6-bw-threshold-a = [ae 07 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 ae 07 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni6-push-thr = [24 00 00 00]; + apple,tunable-soc-ni7-bw-enable = [01 00 00 00]; + apple,tunable-soc-ni7-bw-threshold = [00 00 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 00 00 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni7-bw-threshold-a = [00 00 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 00 00 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni7-push-thr = [f5 06 00 00]; + apple,tunable-soc-ni8-bw-enable = [00 00 00 00]; + apple,tunable-soc-ni8-bw-threshold = [ae 07 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 ae 07 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni8-bw-threshold-a = [ae 07 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 ae 07 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni8-push-thr = [f5 06 00 00]; + apple,tunable-soc-ni9-bw-enable = [00 00 00 00]; + apple,tunable-soc-ni9-bw-threshold = [ae 07 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 ae 07 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni9-bw-threshold-a = [ae 07 16 00 00 00 00 00 00 00 00 00 03 00 00 00 eb 91 2b 00 00 00 00 00 ae 07 15 00 03 00 00 00 00 00 ff ff 00 00 00 00 eb 91 2a 00 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00 00 00 ff ff 00 00 00 00 00 00 fe ff 03 00 00 00]; + apple,tunable-soc-ni9-push-thr = [f5 06 00 00]; + apple,tunable-sochot-sensors = [01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 0a 00 00 00 0b 00 00 00 0c 00 00 00 0d 00 00 00 0e 00 00 00 0f 00 00 00 10 00 00 00 11 00 00 00 12 00 00 00 13 00 00 00 14 00 00 00 15 00 00 00 16 00 00 00 17 00 00 00 18 00 00 00 19 00 00 00 1a 00 00 00 1b 00 00 00 1c 00 00 00 1d 00 00 00 1e 00 00 00 1f 00 00 00 20 00 00 00 21 00 00 00 22 00 00 00 23 00 00 00 24 00 00 00 25 00 00 00 26 00 00 00 27 00 00 00 28 00 00 00 29 00 00 00 2a 00 00 00 2b 00 00 00 2c 00 00 00 2d 00 00 00 2e 00 00 00 2f 00 00 00 30 00 00 00 31 00 00 00 32 00 00 00 33 00 00 00 34 00 00 00 35 00 00 00 36 00 00 00 37 00 00 00 38 00 00 00 39 00 00 00 3a 00 00 00 3b 00 00 00 3c 00 00 00 3d 00 00 00 3e 00 00 00 3f 00 00 00 40 00 00 00 41 00 00 00 42 00 00 00 43 00 00 00 44 00 00 00 45 00 00 00]; + apple,tunable-sram-index = [01 00 00 00]; + apple,tunable-temp-sensor = [01 00 00 00 08 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 06 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 61 30 30 30 69 00 00 00 00 00 00 00 00 00 00 02 00 00 00 08 00 00 00 11 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 80 06 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 61 30 30 31 69 00 00 00 00 00 00 00 00 00 00 03 00 00 00 08 00 00 00 11 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 80 06 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 61 30 30 32 69 00 00 00 00 00 00 00 00 00 00 04 00 00 00 08 00 00 00 11 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 80 06 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 61 30 30 35 69 00 00 00 00 00 00 00 00 00 00 05 00 00 00 08 00 00 00 11 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 80 06 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 61 30 30 36 69 00 00 00 00 00 00 00 00 00 00 06 00 00 00 08 00 00 00 11 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 80 06 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 61 30 30 37 69 00 00 00 00 00 00 00 00 00 00 07 00 00 00 08 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 70 30 30 63 69 00 00 00 00 00 00 00 00 00 00 08 00 00 00 08 00 00 00 0f 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 70 30 30 64 69 00 00 00 00 00 00 00 00 00 00 09 00 00 00 08 00 00 00 0f 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 70 30 30 30 69 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 08 00 00 00 0f 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 70 30 30 31 69 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 08 00 00 00 0f 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 70 30 30 66 69 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 08 00 00 00 0f 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 70 30 30 67 69 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 08 00 00 00 0f 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 70 30 30 33 69 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 08 00 00 00 0f 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 70 30 30 34 69 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 08 00 00 00 0f 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 70 30 30 65 69 00 00 00 00 00 00 00 00 00 00 10 00 00 00 08 00 00 00 0f 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 70 30 30 32 69 00 00 00 00 00 00 00 00 00 00 11 00 00 00 08 00 00 00 0f 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 70 30 30 68 69 00 00 00 00 00 00 00 00 00 00 12 00 00 00 08 00 00 00 0f 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 70 30 30 35 69 00 00 00 00 00 00 00 00 00 00 13 00 00 00 08 00 00 00 0f 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 00 80 01 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 70 30 30 6c 69 00 00 00 00 00 00 00 00 00 00 14 00 00 00 08 00 00 00 0f 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 00 80 01 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 70 30 30 6d 69 00 00 00 00 00 00 00 00 00 00 15 00 00 00 08 00 00 00 0f 00 00 00 01 00 00 00 06 00 00 00 00 00 00 00 66 e6 04 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 70 30 30 6f 69 00 00 00 00 00 00 00 00 00 00 16 00 00 00 08 00 00 00 0f 00 00 00 01 00 00 00 07 00 00 00 00 00 00 00 66 e6 04 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 70 30 30 70 69 00 00 00 00 00 00 00 00 00 00 17 00 00 00 08 00 00 00 0f 00 00 00 01 00 00 00 0a 00 00 00 00 00 00 00 66 e6 04 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 70 30 30 73 69 00 00 00 00 00 00 00 00 00 00 18 00 00 00 08 00 00 00 0f 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 70 30 30 39 69 00 00 00 00 00 00 00 00 00 00 19 00 00 00 08 00 00 00 0f 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 70 30 30 61 69 00 00 00 00 00 00 00 00 00 00 1a 00 00 00 08 00 00 00 0f 00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 70 30 30 36 69 00 00 00 00 00 00 00 00 00 00 1b 00 00 00 08 00 00 00 0f 00 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 70 30 30 37 69 00 00 00 00 00 00 00 00 00 00 1c 00 00 00 08 00 00 00 0f 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 70 30 30 62 69 00 00 00 00 00 00 00 00 00 00 1d 00 00 00 08 00 00 00 0f 00 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 70 30 30 38 69 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 08 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 33 69 00 00 00 00 00 00 00 00 00 00 1f 00 00 00 08 00 00 00 0d 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 34 69 00 00 00 00 00 00 00 00 00 00 20 00 00 00 08 00 00 00 0d 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 30 69 00 00 00 00 00 00 00 00 00 00 21 00 00 00 08 00 00 00 0d 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 31 69 00 00 00 00 00 00 00 00 00 00 22 00 00 00 08 00 00 00 0d 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 36 69 00 00 00 00 00 00 00 00 00 00 23 00 00 00 08 00 00 00 0d 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 37 69 00 00 00 00 00 00 00 00 00 00 24 00 00 00 08 00 00 00 0d 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 35 69 00 00 00 00 00 00 00 00 00 00 25 00 00 00 08 00 00 00 0d 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 32 69 00 00 00 00 00 00 00 00 00 00 26 00 00 00 08 00 00 00 0d 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 38 69 00 00 00 00 00 00 00 00 00 00 27 00 00 00 08 00 00 00 0d 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 cc cc 03 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 6c 69 00 00 00 00 00 00 00 00 00 00 28 00 00 00 08 00 00 00 0d 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 cc cc 03 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 6d 69 00 00 00 00 00 00 00 00 00 00 29 00 00 00 08 00 00 00 0d 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 39 69 00 00 00 00 00 00 00 00 00 00 2a 00 00 00 08 00 00 00 0d 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 61 69 00 00 00 00 00 00 00 00 00 00 2b 00 00 00 08 00 00 00 0d 00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 63 69 00 00 00 00 00 00 00 00 00 00 2c 00 00 00 08 00 00 00 0d 00 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 64 69 00 00 00 00 00 00 00 00 00 00 2d 00 00 00 08 00 00 00 0d 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 66 69 00 00 00 00 00 00 00 00 00 00 2e 00 00 00 08 00 00 00 0d 00 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 67 69 00 00 00 00 00 00 00 00 00 00 2f 00 00 00 08 00 00 00 0d 00 00 00 02 00 00 00 06 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 62 69 00 00 00 00 00 00 00 00 00 00 30 00 00 00 08 00 00 00 0d 00 00 00 02 00 00 00 07 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 65 69 00 00 00 00 00 00 00 00 00 00 31 00 00 00 08 00 00 00 0d 00 00 00 02 00 00 00 08 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 30 68 69 00 00 00 00 00 00 00 00 00 00 32 00 00 00 08 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 33 69 00 00 00 00 00 00 00 00 00 00 33 00 00 00 08 00 00 00 0e 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 34 69 00 00 00 00 00 00 00 00 00 00 34 00 00 00 08 00 00 00 0e 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 30 69 00 00 00 00 00 00 00 00 00 00 35 00 00 00 08 00 00 00 0e 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 31 69 00 00 00 00 00 00 00 00 00 00 36 00 00 00 08 00 00 00 0e 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 36 69 00 00 00 00 00 00 00 00 00 00 37 00 00 00 08 00 00 00 0e 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 37 69 00 00 00 00 00 00 00 00 00 00 38 00 00 00 08 00 00 00 0e 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 35 69 00 00 00 00 00 00 00 00 00 00 39 00 00 00 08 00 00 00 0e 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 32 69 00 00 00 00 00 00 00 00 00 00 3a 00 00 00 08 00 00 00 0e 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 38 69 00 00 00 00 00 00 00 00 00 00 3b 00 00 00 08 00 00 00 0e 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 cc cc 03 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 6c 69 00 00 00 00 00 00 00 00 00 00 3c 00 00 00 08 00 00 00 0e 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 cc cc 03 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 6d 69 00 00 00 00 00 00 00 00 00 00 3d 00 00 00 08 00 00 00 0e 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 39 69 00 00 00 00 00 00 00 00 00 00 3e 00 00 00 08 00 00 00 0e 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 61 69 00 00 00 00 00 00 00 00 00 00 3f 00 00 00 08 00 00 00 0e 00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 63 69 00 00 00 00 00 00 00 00 00 00 40 00 00 00 08 00 00 00 0e 00 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 64 69 00 00 00 00 00 00 00 00 00 00 41 00 00 00 08 00 00 00 0e 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 00 00 0a 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 66 69 00 00 00 00 00 00 00 00 00 00 42 00 00 00 08 00 00 00 0e 00 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 0e 00 47 a1 03 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 67 69 00 00 00 00 00 00 00 00 00 00 43 00 00 00 08 00 00 00 0e 00 00 00 02 00 00 00 06 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 62 69 00 00 00 00 00 00 00 00 00 00 44 00 00 00 08 00 00 00 0e 00 00 00 02 00 00 00 07 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 65 69 00 00 00 00 00 00 00 00 00 00 45 00 00 00 08 00 00 00 0e 00 00 00 02 00 00 00 08 00 00 00 00 00 00 00 00 00 0e 00 47 61 05 00 6e 00 00 00 7d 00 00 00 54 6d 30 31 68 69 00 00 00 00 00 00 00 00 00 00 46 00 00 00 01 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6d 00 00 00 6d 00 00 00 4d 54 52 5f 54 4f 50 5f 41 47 58 00 00 00 00 00]; + apple,tunable-user-power-managed = [01 00 00 00]; + apple,tunable-uuid = [37 46 38 41 43 45 44 35 2d 33 36 39 32 2d 33 33 32 38 2d 39 31 33 32 2d 44 31 30 41 32 41 45 46 35 36 41 33 00]; + apple,tunable-vlpm-threshold = [55 01 00 00]; + apple,tunable-vlpm-timer-limit = [64 00 00 00]; +}; diff --git a/arch/arm64/boot/dts/apple/t6050-k116s.dts b/arch/arm64/boot/dts/apple/t6050-k116s.dts index bb5cb91e82903..92d269087d949 100644 --- a/arch/arm64/boot/dts/apple/t6050-k116s.dts +++ b/arch/arm64/boot/dts/apple/t6050-k116s.dts @@ -28,6 +28,8 @@ /* The loader fills the N1's factory addresses through these */ wifi0 = &n1_alpha; bluetooth0 = &n1_beta; + /* the boot loader reserves the SEP firmware and adds its manifests through this alias */ + sep = &sep; }; }; @@ -435,6 +437,79 @@ }; }; +/* + * The PMP (ADT pmp0, /chosen, /arm-io/pmgr), as on the J714s: iBoot loads its firmware and + * the driver starts it with these boot arguments and the firmware properties in the tunables + * file. Its report tells it which devices are on; the PMC honours its votes next to the CLPC. + * The AOP's audio firmware needs it too: its LEAP cluster enable goes through PMP-managed + * power domains (every AOP and AUDIO domain of this ADT is "no_ps"), and without the PMP it + * fails, the audio controller never reaches systemReady and no AOP service is announced. + */ +&ps_pms { + status = "okay"; +}; + +&ps_pmp { + status = "okay"; +}; + +&ps_pms_sram { + status = "okay"; +}; + +&pmp0_dart { + status = "okay"; +}; + +&pmp0_mbox { + status = "okay"; +}; + +&pmp0 { + /* ADT /chosen board-id, dram-vendor-id */ + apple,board-id = <22>; + apple,dram-vendor-id = <1>; + /* ADT /arm-io/pmgr pmc, pmc-pmgr */ + apple,pmc = <1>; + apple,pmc-pmgr = <63>; + status = "okay"; +}; + +&pmp0_report { + status = "okay"; +}; + +&pmc { + /* PMP, CLPC and AP agents, once the PMP runs */ + apple,static-voters = <0 1 3>; + apple,pmp = <&pmp0>; +}; + +#include "t6050-k116s-pmp-tunables.dtsi" + +/* + * The SEP (ADT sep, dart-sep), as on the J714s: its mailbox, and its power domain with the two + * fabric parents left to the firmware, which genpd votes on and never turns off. The boot + * loader enables the SEP itself through its alias. + */ +&sep_mbox { + status = "okay"; +}; + +&ps_sep { + status = "okay"; +}; + +&ps_fab8_soc { + apple,firmware-owned; + status = "okay"; +}; + +&ps_fab0_piogw { + apple,firmware-owned; + status = "okay"; +}; + /* Sound: the J714s description, every value checked against the K116s ADT. */ /* * The amps' shared shutdown line (SDZ): ADT audio-speaker function-reset, AP pin 107. One From e3373ad8f86a46d858fdbcb98196d7f6230ee3b5 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 11 Nov 2026 12:04:48 -0700 Subject: [PATCH 10/15] arm64: dts: apple: t6050-k116s: Describe the GPU for the loader's hand-off The GPU half of the J714s description, every value checked against the K116s ADT: the G17S GPU on the PMP's gfx domain, its two ASC mailboxes, the GPX/AFR/GFX power states and the six reservations the boot loader fills from the ADT. All of it stays disabled until a loader with the G17S hand-off enables it. Signed-off-by: Jens Axboe --- .../arm64/boot/dts/apple/t6050-k116s-gpu.dtsi | 155 ++++++++++++++++++ arch/arm64/boot/dts/apple/t6050-k116s.dts | 3 + 2 files changed, 158 insertions(+) create mode 100644 arch/arm64/boot/dts/apple/t6050-k116s-gpu.dtsi diff --git a/arch/arm64/boot/dts/apple/t6050-k116s-gpu.dtsi b/arch/arm64/boot/dts/apple/t6050-k116s-gpu.dtsi new file mode 100644 index 0000000000000..7bc349759028d --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-k116s-gpu.dtsi @@ -0,0 +1,155 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* + * K116s GPU (AGX G17S, ADT /arm-io/sgx "gpu,t6050") for the boot loader hand-off. + * + * It is the GPU half of t6050-j714s-gpu-panel.dtsi (integration/aurora 06c3db9c3752); the + * K116s tree already has its own display half. Everything stays disabled: a loader with the + * G17S hand-off fills the six reservations from the ADT and enables the GPU PMGR, GPX, AFR, + * GFX, both mailboxes and the GPU, the GPU last. Without such a loader (the enrolled aura + * 58d65df0 has none for this layout) this file changes nothing at run time except the two + * always-on marks, which sit on disabled nodes. + * + * Every value below was checked against the K116s 27.2 ADT. arm-io ranges add 0x2_0000_0000 + * to the 0x21_xxxx_xxxx bus addresses (bus 0x20_2000_0000 -> parent 0x22_2000_0000). + */ + +/ { + aliases { + /* The loader finds the GPU through this alias */ + gpu = &sgx; + }; + + reserved-memory { + /* + * Filled and enabled by the loader from the ADT. K116s 27.2 values, for + * reference only (never hard-code: iBoot places them): + * gpu-fw-text 0x100_00ff8000 + 0xa4000 gfx-asc __TEXT 0x50000, then + * gfx1-asc __TEXT 0x54000 at + * 0x100_01048000 + * gpu-fw-data 0x100_0251c000 + 0x184000 sgx gfx-data-base .. end of + * gfx1-data-shared-ro + * uat-ttbs 0x10f_fffa8000 + 0x4000 sgx gpu-region-base/-size + * uat-pagetables 0x10f_fff28000 + 0x80000 sgx gfx-shared-region-* + * uat-l2-pagetables 0x10f_fff24000 + 0x4000 sgx gfx-shared-l2-region-* + * uat-handoff 0x10f_fff20000 + 0x4000 sgx gfx-handoff-* + * The four UAT ranges are the J714s's (aura ec204ea50b5d message); the firmware + * segments differ (J714s 27.0: fw-text 0x100_00fd4000, fw-data 0x100_024f4000). + */ + gpu_fw_text: gpu-fw-text { + reg = <0 0 0 0>; + no-map; + status = "disabled"; + }; + + gpu_fw_data: gpu-fw-data { + reg = <0 0 0 0>; + no-map; + status = "disabled"; + }; + + uat_ttbs: uat-ttbs { + reg = <0 0 0 0>; + no-map; + status = "disabled"; + }; + + uat_pagetables: uat-pagetables { + reg = <0 0 0 0>; + no-map; + status = "disabled"; + }; + + uat_l2_pagetables: uat-l2-pagetables { + reg = <0 0 0 0>; + no-map; + status = "disabled"; + }; + + uat_handoff: uat-handoff { + reg = <0 0 0 0>; + no-map; + status = "disabled"; + }; + }; +}; + +/* The inventory ASC nodes; the mailboxes below describe the same windows. */ +/delete-node/ &gfx_asc; +/delete-node/ &gfx1_asc; + +&{/soc} { + /* + * ADT gfx-asc: reg 0x21_02600000 + 0x88000 (wrapper), 0x21_02050000 + 8 (iop-vbar); + * interrupts [2798, 2797, 2800, 2799], of which the second and third are send-empty + * and recv-not-empty; role "GFX"; power-gates [614] = GFX_ASC. As J714s. + */ + gfx_mbox: mailbox@2302600000 { + compatible = "apple,t6050-j775d-ascwrap-v6"; + reg = <0x23 0x2600000 0x0 0x88000>, + <0x23 0x2050000 0x0 0x8>; + reg-names = "wrapper", "iop-vbar"; + interrupts = , + ; + interrupt-names = "send-empty", "recv-not-empty"; + apple,firmware-role = "GFX"; + power-domains = <&ps_gfx>; + #mbox-cells = <0>; + status = "disabled"; + }; + + /* + * ADT gfx1-asc: reg 0x21_02e00000 + 0x88000, 0x21_02850000 (ADT size 0x60000; the + * driver uses the first 8 bytes as on J714s); interrupts [2802, 2801, 2804, 2803]; + * role "GFX1"; power-gates [657] = GFX_ASC1. + */ + gfx1_mbox: mailbox@2302e00000 { + compatible = "apple,t6050-j775d-ascwrap-v6"; + reg = <0x23 0x2e00000 0x0 0x88000>, + <0x23 0x2850000 0x0 0x8>; + reg-names = "wrapper", "iop-vbar"; + interrupts = , + ; + interrupt-names = "send-empty", "recv-not-empty"; + apple,firmware-role = "GFX1"; + power-domains = <&ps_gfx>; + #mbox-cells = <0>; + status = "disabled"; + }; +}; + +/* + * ADT pmgr devices: GPX (id 359, reg +0x0), AFR (id 360, +0x100) and GFX (id 362, +0x110) + * in the GPU PMGR (pmgr reg[51] 0x21_00e80000). The K116s ADT marks GPX and AFR critical, + * GFX not, as the J714s file states for its board. + */ +&ps_gpx { + apple,always-on; +}; + +&ps_afr { + apple,always-on; +}; + +&sgx { + /* + * "apple,agx-g17s" is what the loader checks and the driver binds + * (drivers/gpu/drm/asahi/driver.rs). The driver uses the J714 tables for it, + * 5 mV below this unit's ADT voltages at eight of the fourteen states. + */ + compatible = "apple,agx-g17s"; + /* ADT sgx reg[0] 0x21_00000000 + 0x3fdc000; the driver maps the first 16 MiB as "sgx" */ + reg = <0x23 0x0 0x0 0x3fdc000>; + reg-names = "sgx"; + /delete-property/ interrupts; + mboxes = <&gfx_mbox>, <&gfx1_mbox>; + memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>, + <&gpu_fw_data>, <&uat_l2_pagetables>, <&gpu_fw_text>; + memory-region-names = "ttbs", "pagetables", "handoff", "fw-data", + "l2-pagetables", "fw-text"; + /* + * As t6050-j714s.dts: the GPU on the PMP's GFX report entry (report@f, on ps_gfx), + * so the PMP is told the GPU is on only while it is powered. The K116s already + * runs the PMP with its report (t6050-k116s.dts &pmp0_report). + */ + power-domains = <&pmp0_gfx>; +}; diff --git a/arch/arm64/boot/dts/apple/t6050-k116s.dts b/arch/arm64/boot/dts/apple/t6050-k116s.dts index 92d269087d949..5e8ace8166241 100644 --- a/arch/arm64/boot/dts/apple/t6050-k116s.dts +++ b/arch/arm64/boot/dts/apple/t6050-k116s.dts @@ -790,3 +790,6 @@ &speaker_left_tweet { apple,speaker-config = /bits/ 8 <0x04 0x0f 0x10 0x12>; }; &speaker_right_tweet { apple,speaker-config = /bits/ 8 <0x05 0x0f 0x14 0x16>; }; #endif + +/* The GPU, handed over by the boot loader */ +#include "t6050-k116s-gpu.dtsi" From 54348df11158d3939c0c85499fd354951e19b919 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 11 Nov 2026 12:29:49 -0700 Subject: [PATCH 11/15] arm64: dts: apple: t6050-k116s: Add the SD card reader The MacBook Pro 16-inch (M5 Pro, OLED) SD card reader, a GL9755 on PCIe port 1 (ADT apcie0/pci-bridge1/pcie-sdreader), was not described. The boot loader trains only port 0 (the N1) and leaves port 1 down, so the kernel trains it, as on the J714s. Every value is from the K116s ADT: - port 1's registers: apcie0 reg[22] (port1, 0x211028000 +0x8000), reg[24] (phy1, 0x217014000 +0x4000) and reg[25] (intr2axi1, 0x211024000 +0x4000), the entries six after port 0's reg[16], reg[18] and reg[19], behind /arm-io's ranges (+0x200000000); - the shared PHY's window, apcie0 reg[3] (0x217020000 +0x4000), which the kernel's train reads to see that the boot loader left the PHY running; - port 1's interrupt, apcie0 interrupts[1] = 1531; - PERST#: pci-bridge1 function-perst = gpio0 GPIO(0x51, 0), pin 81, which the pin controller now exposes (82-105 stay reserved, as does pin 112, which takes an SError when read); - the reader's power: pcie-sdreader (and /pcie-sdreader-helper) function-sd_pwr_en = smc-pmu pKW8('pcIO', 0x0, 0x190000), described as SMC pcIO output 0, command 0x0019000000000000. The board deleted the pcIO node as it drove none of its outputs (the trackpad's AFE reset uses SMC GPIO gp1c); the node is back with this one output, which replaces the three of t6050-k114-k116.dtsi; - the link tunables: pci-bridge1's apcie-config-tunables, pcie-rc-tunables and pcie-rc-gen{3,4,5}-shadow-tunables, decoded as (offset, size, mask, value). They are the same as the J714s's; - dart-apcie1 (0x211000000, interrupt 1532), which the ADT marks manual-availability: it answers only once the root complex is up, so the host does not wait for it (post-init-providers) and pcie-apple enables it once the port is up. The node is apcie1_dart of t6050-peripherals.dtsi; - the reader's card detect and write protect, active high: the ADT's card-detect-polarity and write-protect-polarity are 1. One value is not the ADT's: the DART stream. mapper-apcie1 has no reg (macOS has the bridge request a stream at run time, function- dart_request_sid), so the reader gets stream 1, below the DART's first bypass stream (16), as on the J714s. The driver routes the reader's requester ID to it. pci-bridge1's function-clkreq (gpio0 pin 0x4d) and the ADT's GL9755 settings (gl9755-sdr104-delay*, gl9755-ssc_*, ...) are not described: no driver takes them. Not tested on the hardware: the DTB builds, and the same description works on the J714s. Signed-off-by: Jens Axboe --- arch/arm64/boot/dts/apple/t6050-k116s.dts | 119 +++++++++++++++++++--- 1 file changed, 107 insertions(+), 12 deletions(-) diff --git a/arch/arm64/boot/dts/apple/t6050-k116s.dts b/arch/arm64/boot/dts/apple/t6050-k116s.dts index 5e8ace8166241..72be29ec71aa2 100644 --- a/arch/arm64/boot/dts/apple/t6050-k116s.dts +++ b/arch/arm64/boot/dts/apple/t6050-k116s.dts @@ -33,14 +33,13 @@ }; }; -/* Only PCIe port 0's PERST#, pin 80, is exposed */ &pinctrl_ap { /* * Pin 112 takes an SError when read, so only the pins a node names are - * exposed: 80 (PCIe PERST#), 106/107 (amp fault, amp shutdown), 134/139 - * (jack codec interrupt, reset) and 136/137 (speaker ID). + * exposed: 80/81 (PCIe ports 0 and 1's PERST#), 106/107 (amp fault, amp + * shutdown), 134/139 (jack codec interrupt, reset) and 136/137 (speaker ID). */ - gpio-reserved-ranges = <0 80>, <81 25>, <108 26>, <135 1>, <138 1>, <140 81>; + gpio-reserved-ranges = <0 80>, <82 24>, <108 26>, <135 1>, <138 1>, <140 81>; }; /* @@ -48,18 +47,47 @@ * gives port 0's registers and IRQ 1523, pci-bridge0's PERST# is GPIO 80, and * the N1's three functions are on DART streams 1-3. The platform ID is this * board's ADT /chosen board-id (0x16) << 16 | chip 0x6050. + * + * PCIe port 1: the SD card reader (ADT apcie0/pci-bridge1/pcie-sdreader, a + * GL9755), as on J714s. The boot loader leaves the port down, so the kernel + * trains it. From this board's ADT: + * port1, phy1, intr2axi1: apcie0 reg[22], reg[24], reg[25] (port 0's are + * reg[16], reg[18], reg[19]), behind /arm-io's ranges (+0x200000000) + * phy-shared: apcie0 reg[3], the shared PHY's state, which the train reads; + * the boot loader leaves the PHY up with port 0 + * IRQ 1531: apcie0 interrupts[1] + * PERST#: pci-bridge1 function-perst, gpio0 pin 0x51 (81) + * power: pcie-sdreader function-sd_pwr_en, SMC pcIO (0x0, 0x190000), output + * 0 of smc_pcio below + * link tunables: pci-bridge1's apcie-config-tunables, pcie-rc-tunables and + * pcie-rc-gen{3,4,5}-shadow-tunables, as (offset, size, mask, value) + * The reader is behind dart-apcie1 (0x211000000, IRQ 1532; manual-availability: + * it answers only once the root complex is up). The ADT's mapper-apcie1 names + * no stream (the bridge requests one at run time), so stream 1 is this tree's + * choice, below the DART's first bypass stream (16), as on J714s. + * pci-bridge1's function-clkreq (gpio0 pin 0x4d) is not described: the + * driver does not take CLKREQ# lines. */ &pcie0 { reg = <0x1c 0xb0000000 0x0 0x10000000>, <0x4 0x14000000 0x0 0x4000>, <0x4 0x10028000 0x0 0x8000>, <0x4 0x17010000 0x0 0x4000>, - <0x4 0x10024000 0x0 0x4000>; - reg-names = "config", "rc", "port0", "phy0", "intr2axi0"; - interrupts = ; - interrupt-names = "port0"; - iommu-map = <0x100 &dart_apcie0 1 3>; + <0x4 0x10024000 0x0 0x4000>, + <0x4 0x11028000 0x0 0x8000>, + <0x4 0x17014000 0x0 0x4000>, + <0x4 0x11024000 0x0 0x4000>, + <0x4 0x17020000 0x0 0x4000>; + reg-names = "config", "rc", "port0", "phy0", "intr2axi0", "port1", "phy1", "intr2axi1", + "phy-shared"; + interrupts = , + ; + interrupt-names = "port0", "port1"; + iommu-map = <0x100 &dart_apcie0 1 3>, + <0x200 &apcie1_dart 1 1>; bus-range = <0 4>; + /* apcie1_dart probes only once port 1 is up: the host must not wait for it */ + post-init-providers = <&apcie1_dart>; status = "okay"; port00: pci@0,0 { @@ -103,6 +131,65 @@ local-bd-address = [00 00 00 00 00 00]; }; }; + + port01: pci@1,0 { + device_type = "pci"; + reg = <0x800 0 0 0 0>; + bus-range = <2 2>; + /* Down at boot: the kernel trains it, powering the reader first */ + apple,link-trained-by-bootloader; + /* ADT pcie-sdreader function-sd_pwr_en: SMC pcIO output 0 below */ + pwren-gpios = <&smc_pcio 0 GPIO_ACTIVE_HIGH>; + /* PERST#: ADT pci-bridge1 function-perst, GPIO 81 */ + reset-gpios = <&pinctrl_ap 81 GPIO_ACTIVE_LOW>; + /* ADT pci-bridge1 */ + apple,apcie-config-tunables = <0x140 4 0x1 0x1>, + <0x144 4 0xffffff 0x253770>, + <0x8a8 4 0x1 0x1>, + <0x8ac 4 0x1 0x1>; + apple,pcie-rc-tunables = <0x78 4 0x7000 0x0>, + <0x194 4 0x2 0x2>, + <0xb80 4 0x7f3f3f 0x7f1e1e>, + <0xb88 4 0x7f3f3f 0x7f1e1e>; + apple,pcie-rc-gen3-shadow-tunables = <0x154 4 0xf0f0f0f 0x5050505>, + <0x890 4 0x3000000 0x0>, + <0x8a8 4 0xffff0f 0x1>; + apple,pcie-rc-gen4-shadow-tunables = <0x178 4 0xffff 0x5555>, + <0x890 4 0x3000000 0x1000000>, + <0x8a8 4 0xffff0f 0x1>; + apple,pcie-rc-gen5-shadow-tunables = <0x1ac 4 0xffff 0x5555>, + <0x890 4 0x3000000 0x2000000>, + <0x8a8 4 0xffff0f 0x1>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + + interrupt-controller; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &port01 0 0 0 0>, + <0 0 0 2 &port01 0 0 0 1>, + <0 0 0 3 &port01 0 0 0 2>, + <0 0 0 4 &port01 0 0 0 3>; + + /* + * The GL9755. Card detect and write protect are active high: ADT + * pcie-sdreader card-detect-polarity and write-protect-polarity = 1. + */ + sdhci0: mmc@0,0 { + compatible = "pci17a0,9755"; + reg = <0x20000 0x0 0x0 0x0 0x0>; + cd-inverted; + wp-inverted; + }; + }; +}; + +/* ADT dart-apcie1 manual-availability: pcie-apple enables it once port 1 is up */ +&apcie1_dart { + apple,manual-availability; + status = "okay"; }; /* @@ -407,10 +494,18 @@ * The trackpad's AFE reset. The ADT names the SMC pcIO template (0x10000, * 0x11c0000), the same line as SMC GPIO gp1c, active low, which gpio-macsmc * drives; through the pcIO outputs the multi-touch interface never comes up. - * As on J714s: gp1c, and the pcIO outputs go. The keyboard alias lets the - * loader fill the layout from the ADT. + * As on J714s: gp1c. The keyboard alias lets the loader fill the layout from + * the ADT. + * + * The one SMC pcIO output this board drives, as a pKW8('pcIO', lo, hi) template + * written (hi << 32) | lo with the level in the low bits; this replaces the + * three of t6050-k114-k116.dtsi: + * 0 sd_pwr_en (0x0, 0x190000): ADT pcie-sdreader function-sd_pwr_en (and + * /pcie-sdreader-helper), the SD reader's power on PCIe port 1 */ -/delete-node/ &smc_pcio; +&smc_pcio { + apple,output-commands = /bits/ 64 <0x0019000000000000>; +}; &mtp_hid { apple,afe-reset-gpios = <&smc_gpio_low 28 GPIO_ACTIVE_LOW>; From f25b8eb19c92c94124fe16fdd38e73cb9a9bb123 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 11 Nov 2026 12:32:24 -0700 Subject: [PATCH 12/15] arm64: dts: apple: t6050-k116s: Add the microphone array ADT audio-hp-mic: three microphones on leap-s RX0, through the proxy ADMAC (Linux channel 1, as on J714s and J813). The AOP audio service captures them on a card of its own, AppleK116HPAI. The board file carried this as an "#if 0" block until the proxy ADMAC was described at its real address. Enable it. Checked against the K116s ADT: admac-hp-mic-ec-proxy reg 0x2d3200000 size 0x34000, dma-channel 0; admac-leap-s interrupt 638, nine RX channels; dart-aop mapper-admac-leap-s stream 11 with vm-base-11 0x10040000000 and vm-size-11 0xffff0000; leap-s-adma-rx-0 three channels, 32 bits, 48 kHz. These are the J714s values. Not tested on the hardware yet. Signed-off-by: Jens Axboe --- arch/arm64/boot/dts/apple/t6050-k116s.dts | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/arch/arm64/boot/dts/apple/t6050-k116s.dts b/arch/arm64/boot/dts/apple/t6050-k116s.dts index 72be29ec71aa2..86b8ea53c08e2 100644 --- a/arch/arm64/boot/dts/apple/t6050-k116s.dts +++ b/arch/arm64/boot/dts/apple/t6050-k116s.dts @@ -845,29 +845,28 @@ status = "okay"; }; -#if 0 /* - * OPTIONAL, second step: the microphone array, from branch m5-parity/t6050-mic-on-speakers - * (commit 1026d291ef84, on top of PR #1554; not yet in the PR). ADT audio-hp-mic: three - * microphones ("Digital Mic", input-data-selectors imi1/imi2/imi3) on leap-s ADMAC RX0, - * reached through the proxy aperture ADT admac-hp-mic-ec-proxy at 0x2d3200000 (reg not - * behind the arm-io translation; dart-aop stream 11, vm-base-11 0x10040000000, - * vm-size-11 0xffff0000; admac-leap-s IRQ 638). That branch re-describes admac_ec_proxy in - * t6050-peripherals.dtsi as a plain apple,t8140-admac at 0x2d3200000 on <&aop_dart 11>; - * without that peripherals change this block must stay off. + * The microphone array: ADT audio-hp-mic ("Digital Mic", three microphones imi1/imi2/imi3, + * 48 kHz float32) on leap-s ADMAC RX0, which the AP reaches through the proxy aperture ADT + * admac-hp-mic-ec-proxy: reg 0x2d3200000 size 0x34000 (not behind the arm-io translation, + * like the AOP setup port), dma-channel 0, admac-leap-s interrupt 638, dart-aop + * mapper-admac-leap-s stream 11 (vm-base-11 0x10040000000, vm-size-11 0xffff0000). The K116s + * ADT has the J714s values in each of these. The AOP audio service captures the array on a + * card of its own (AppleK116HPAI). The LEAP leaves have no AP power state: the firmware + * raises them with the hpai service's "pw0 " when the capture opens, and the ADMAC's + * registers are first touched after that, when the capture requests its channel. */ &admac_ec_proxy { status = "okay"; }; &aop_audio { - /* hpai: leap-s RX0 = Linux channel 1 of the proxy ADMAC (odd = DEV_TO_MEM) */ + /* hpai: leap-s RX0 is Linux channel 1 of the proxy ADMAC (2N for TX N, 2N+1 for RX N) */ dmas = <&admac_base_ns 4>, <&admac_base_ns 5>, <&admac_base_ns 0>, <&admac_base_ns 1>, <&admac_ec_proxy 1>; dma-names = "cout", "cin", "spkr", "sense", "hpai"; }; -#endif #if 1 /* From 5dd1d096e42baad3e8dfc7b03e55e730497485be Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 11 Nov 2026 12:34:32 -0700 Subject: [PATCH 13/15] arm64: dts: apple: t6050-k116s: Describe the camera capture resources The 16-inch M5 Pro OLED MacBook Pro (K116s) has the T6050 ISP that J716c and J714s describe, so take their description. Checked against the K116sAP ADT of macOS 27.2 (26B8125): - isp0: reg[0] 0x380000000 + 0x3ff0000 (0x580000000 through the arm-io range) holds the coproc, mailbox and GPIO windows; reg[1] is the pmgr window 0x280900000 + 0x3f4; interrupts 513..516 and 526; the EIC's mmio-wd-isp is 0x5c3b50000 + 0x8000; clock-ids 350 and 352. - dart-isp0: instances at 0x5828c0000, 0x5828e0000 and 0x582900000 (0xc000 each), the address filter at 0x5828d0000, interrupt 531, host streams 0 and 12, exclave streams 4/5 and 8/9, remap 1, 6, 7, 10, 11, DAPF stream mask 0xcc3. - pmgr: FAB9_SOC at 0x398, ISP_SYS at 0x3a0 (parent FAB9_SOC) and ISPSENS0 at 0x100 in the second register block. ISP_CPU, ISP_FE, DPRX, ISP_SECURE, ISP_BE and ISP_CLR are devices 0xdc, 0xdd and 0xe1..0xe4; the table gives them no register, the include's offsets 0x3b0, 0x3b8 and 0x3d8..0x3f0 are eight bytes per device from ISP_SYS (0xda) and are the range the DAPF opens to the ISP (0x2809003b0 to 0x2809003f3). - the two firmware segments are 0xc1c000 and 0x13d0000 bytes at DART address 0x10000000000, as on J716c and J714s. Two things differ from J716c and need nothing here. The ADT's address filter lists four DSID windows (0x2220004000, 0x2222004000, 0x2224004000 and 0x2226004000; active-mcc-bit-vector 0xf) where the driver's T6050 table has eight; J714s, the same M5 Pro, streams with that table. The sensor type is 0xbc and cam-connections-scheme 0x10, which the loader passes as apple,platform-id and apple,cam-connections-scheme. The ISP firmware of this build (uuid 980F533B-34EA-3FBA-878C-809F6AF57345, the IPSW's isp_bni/adc-nyx-sck11pm) has one connection table for platforms 0xb9..0xbc, with a single "FrontRGB" channel on its IMX958 sensor driver: the sensor J714s reports (0x958), which the driver runs with the 2224_01 setfile. As on the other two boards the ISP and its DARTs stay disabled until the boot loader has reserved the firmware. The include does change what the power-domain driver does without that: it turns ISP_SYS on and keeps it on, registers the six ISP power states and ISPSENS0, and marks FAB9_SOC as firmware owned. Not booted on the hardware. t6050-k116s.dtb builds without DTC warnings. Signed-off-by: Jens Axboe --- arch/arm64/boot/dts/apple/t6050-k116s.dts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t6050-k116s.dts b/arch/arm64/boot/dts/apple/t6050-k116s.dts index 86b8ea53c08e2..0948b274a997a 100644 --- a/arch/arm64/boot/dts/apple/t6050-k116s.dts +++ b/arch/arm64/boot/dts/apple/t6050-k116s.dts @@ -887,3 +887,22 @@ /* The GPU, handed over by the boot loader */ #include "t6050-k116s-gpu.dtsi" + +/* + * The camera: the T6050 ISP as J716c and J714s describe it. From the K116sAP ADT (27.2): + * - isp0 reg[0] 0x380000000 (+ the arm-io range, 0x580000000) + 0x3ff0000 holds the windows + * the include names; reg[1] 0x280900000 + 0x3f4 ends at the last ISP power state (0x3f0); + * interrupts 513..516, 526; EIC mmio-wd-isp 0x5c3b50000 + 0x8000. + * - dart-isp0: three instances at 0x5828c0000, 0x5828e0000 and 0x582900000 (0xc000 each), + * the address filter at 0x5828d0000, interrupt 531, host streams 0 and 12 (sid), exclave + * streams 4/5 and 8/9, remap 1, 6, 7, 10, 11, DAPF stream mask 0xcc3. + * - pmgr: FAB9_SOC 0x398, ISP_SYS 0x3a0 and ISPSENS0 0x100 in the second register block + * (0x280900000); ISP_CPU, ISP_FE, DPRX, ISP_SECURE, ISP_BE and ISP_CLR are devices 0xdc, + * 0xdd and 0xe1..0xe4 with no register of their own in the table, eight bytes per device + * from ISP_SYS (0xda): 0x3b0, 0x3b8 and 0x3d8..0x3f0, the range the DAPF opens. + * - two firmware segments, 0xc1c000 and 0x13d0000 bytes at DART address 0x10000000000. + * The firmware (uuid 980F533B-34EA-3FBA-878C-809F6AF57345) runs one "FrontRGB" IMX958 here, + * J714s's sensor. The sensor type is 0xbc and the connection scheme 0x10; the loader passes + * both. Everything stays disabled until the loader has reserved the firmware. + */ +#include "t6050-j716c-isp.dtsi" From 8f5a2223fd3a0064b371a28a0f985fe1422f6e6f Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 11 Nov 2026 13:43:31 -0700 Subject: [PATCH 14/15] arm64: dts: apple: t6050-k116s: drop the hard-coded speaker-config rows The boot loader copies each amp's row from the ADT (aura kboot_audio); the rows carried here were a stop-gap for a loader without it. Signed-off-by: Jens Axboe --- arch/arm64/boot/dts/apple/t6050-k116s.dts | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/arch/arm64/boot/dts/apple/t6050-k116s.dts b/arch/arm64/boot/dts/apple/t6050-k116s.dts index 0948b274a997a..38f07b8cff502 100644 --- a/arch/arm64/boot/dts/apple/t6050-k116s.dts +++ b/arch/arm64/boot/dts/apple/t6050-k116s.dts @@ -867,24 +867,6 @@ <&admac_ec_proxy 1>; dma-names = "cout", "cin", "spkr", "sense", "hpai"; }; - -#if 1 -/* - * OPTIONAL stop-gap, only while booting an aura without kboot_audio.c (the booted - * aura-m5pro-v4.bin, aura main 58d65df, does not copy apple,speaker-config): the rows of the - * K116s ADT speaker-config, byte for byte (rx_slot, amp_gain, vsense_slot, isense_slot), - * group order LW1, RW1, LW2, RW2, LT, RT. macaudio takes byte 1 & 0x1f = 15 as the level. - * Prefer the aura patch: this hard-codes one Mac's ADT into a shared tree. Remove once aura - * fills the property (aura's copy overwrites it anyway). - */ -&speaker_left_woof1 { apple,speaker-config = /bits/ 8 <0x00 0x0f 0x00 0x02>; }; -&speaker_right_woof1 { apple,speaker-config = /bits/ 8 <0x01 0x0f 0x04 0x06>; }; -&speaker_left_woof2 { apple,speaker-config = /bits/ 8 <0x02 0x0f 0x08 0x0a>; }; -&speaker_right_woof2 { apple,speaker-config = /bits/ 8 <0x03 0x0f 0x0c 0x0e>; }; -&speaker_left_tweet { apple,speaker-config = /bits/ 8 <0x04 0x0f 0x10 0x12>; }; -&speaker_right_tweet { apple,speaker-config = /bits/ 8 <0x05 0x0f 0x14 0x16>; }; -#endif - /* The GPU, handed over by the boot loader */ #include "t6050-k116s-gpu.dtsi" From cd2c9f5240787ae93105767445d27274a0a9cdba Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Thu, 12 Nov 2026 07:02:06 -0700 Subject: [PATCH 15/15] arm64: dts: apple: t6050-k116s: hold back the CPU PMU and the CLPC's SMC link The shared T6050 files gained a CPU PMU node (t6050-base.dtsi) and an apple,smc phandle on the CLPC (t6050-die0.dtsi), so both became active on every T6050 board, the K116s included. Neither has been tested on the K116s. It ran at EL1 under the boot loader's monitor when they appeared, and now runs Linux at EL2 (27.2, KVM working) with this change in place, so the PMU and the SMC link are still to be tested there. Until then keep its device tree as it was: disable the PMU node and drop the SMC link, without which the CLPC's low-power platform profile has only its frequency ceiling. With this the K116s DTB differs from the one built before the rebase only in nodes that are disabled. Signed-off-by: Jens Axboe Signed-off-by: Thomas Glanzmann --- arch/arm64/boot/dts/apple/t6050-k116s.dts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t6050-k116s.dts b/arch/arm64/boot/dts/apple/t6050-k116s.dts index 38f07b8cff502..97a7558d10fde 100644 --- a/arch/arm64/boot/dts/apple/t6050-k116s.dts +++ b/arch/arm64/boot/dts/apple/t6050-k116s.dts @@ -888,3 +888,18 @@ * both. Everything stays disabled until the loader has reserved the firmware. */ #include "t6050-j716c-isp.dtsi" + +/* + * Two things the shared T6050 files now turn on for every board are held back here until + * they have been tried on the K116s: the CPU PMU (t6050-base.dtsi, measured on the J714s) + * and the CLPC's SMC link (t6050-die0.dtsi), through which the low-power platform profile + * polls the package power. Without the link that profile has only its frequency ceiling. + * To try them, remove this block. + */ +&cpu_pmu { + status = "disabled"; +}; + +&clpc { + /delete-property/ apple,smc; +};