@@ -452,9 +452,10 @@ export function getQuirksForGeneration(gen: HardwareProfile['generation'], mothe
452452 quirks . DevirtualiseMmio = true ;
453453 quirks . AppleCpuPmCfgLock = false ;
454454 quirks . SetupVirtualMap = true ;
455- // Z390 boards need ProtectUefiServices — Source: config.plist/coffee-lake.html
455+ // Z390 boards need ProtectUefiServices and must disable SetupVirtualMap — Source: config.plist/coffee-lake.html
456456 if ( mb . includes ( 'z390' ) ) {
457457 quirks . ProtectUefiServices = true ;
458+ quirks . SetupVirtualMap = false ;
458459 }
459460 break ;
460461 case 'Comet Lake' :
@@ -788,8 +789,7 @@ export function getRequiredResources(profile: HardwareProfile) {
788789 // Will be conditionally added if Broadcom card detected
789790 }
790791
791- const mb = profile . motherboard . toLowerCase ( ) ;
792- const needsAmdCpuSsdt = / \b ( a 5 2 0 | b 5 5 0 | a 6 2 0 | b 6 5 0 | x 6 7 0 | x 6 7 0 e | b 8 5 0 | x 8 7 0 | x 8 7 0 e ) \b / . test ( mb ) ;
792+ const needsAmdCpuSsdt = / \b ( a 5 2 0 | b 5 5 0 | a 6 2 0 | b 6 5 0 | x 6 7 0 | x 6 7 0 e | b 8 5 0 | x 8 7 0 | x 8 7 0 e ) \b / . test ( motherboard ) ;
793793
794794 // SSDTs by platform — Source: per-gen config.plist pages
795795 // Laptops use SSDT-EC-USBX-LAPTOP.aml instead of the desktop variant.
@@ -809,15 +809,15 @@ export function getRequiredResources(profile: HardwareProfile) {
809809 pushSsdt ( ecUsbxSsdt ) ;
810810 // SSDT-PMC required for 300-series boards (Z370/Z390/H370/B360/H310) for native NVRAM
811811 // Source: config.plist/coffee-lake.html — "Required for all 300-series motherboards"
812- if ( ! profile . isLaptop && ( mb . includes ( 'z390' ) || mb . includes ( 'z370' ) || mb . includes ( 'h370' ) || mb . includes ( 'b360' ) || mb . includes ( 'b365' ) || mb . includes ( 'h310' ) || mb . includes ( 'q370' ) ) ) {
812+ if ( ! profile . isLaptop && ( motherboard . includes ( 'z390' ) || motherboard . includes ( 'z370' ) || motherboard . includes ( 'h370' ) || motherboard . includes ( 'b360' ) || motherboard . includes ( 'b365' ) || motherboard . includes ( 'h310' ) || motherboard . includes ( 'q370' ) ) ) {
813813 pushSsdt ( 'SSDT-PMC.aml' ) ;
814814 }
815815 // Laptop Coffee Lake+ also needs SSDT-PMC for 300-series mobile chipsets
816816 if ( profile . isLaptop && [ 'Coffee Lake' ] . includes ( profile . generation ) ) {
817817 pushSsdt ( 'SSDT-PMC.aml' ) ;
818818 }
819819 // SSDT-RHUB: USB root hub reset required on Z490 Comet Lake boards — Source: Dortania comet-lake.html
820- if ( ! profile . isLaptop && profile . generation === 'Comet Lake' && mb . includes ( 'z490' ) ) {
820+ if ( ! profile . isLaptop && profile . generation === 'Comet Lake' && motherboard . includes ( 'z490' ) ) {
821821 pushSsdt ( 'SSDT-RHUB.aml' ) ;
822822 }
823823 } else if ( [ 'Haswell' , 'Broadwell' ] . includes ( profile . generation ) ) {
@@ -860,7 +860,7 @@ export function getRequiredResources(profile: HardwareProfile) {
860860 pushSsdt ( 'SSDT-EC.aml' ) ;
861861 }
862862 } else if ( profile . architecture === 'AMD' ) {
863- pushSsdt ( 'SSDT-EC-USBX-DESKTOP.aml' ) ;
863+ pushSsdt ( ecUsbxSsdt ) ;
864864 if ( needsAmdCpuSsdt ) {
865865 pushSsdt ( 'SSDT-CPUR.aml' ) ;
866866 }
@@ -875,6 +875,7 @@ export function getRequiredResources(profile: HardwareProfile) {
875875// required by the macOS 26 kernel and are not supported by any valid SMBIOS on Tahoe.
876876// Source: Dortania tahoe.html compatibility table.
877877const TAHOE_UNSUPPORTED_GENERATIONS = new Set < HardwareProfile [ 'generation' ] > ( [
878+ 'Wolfdale' , 'Yorkfield' , 'Nehalem' , 'Westmere' , 'Arrandale' , 'Clarkdale' ,
878879 'Penryn' , 'Sandy Bridge' , 'Ivy Bridge' , 'Haswell' , 'Broadwell' ,
879880] ) ;
880881
@@ -949,8 +950,8 @@ export function generateConfigPlist(profile: HardwareProfile): string {
949950 }
950951
951952 // CPUID spoofing for unsupported Intel gens
952- let cpuid1Data = "AAAAAAAAAAAAAAAAAAAA " ;
953- let cpuid1Mask = "AAAAAAAAAAAAAAAAAAAA " ;
953+ let cpuid1Data = "AAAAAAAAAAAAAAAAAAAAAA== " ;
954+ let cpuid1Mask = "AAAAAAAAAAAAAAAAAAAAAA== " ;
954955 // Rocket Lake (11th gen) needs Comet Lake CPUID spoof — unsupported CPUID in macOS
955956 // Alder/Raptor Lake also need spoofing — Source: Dortania per-gen guides
956957 if ( [ 'Rocket Lake' , 'Alder Lake' , 'Raptor Lake' ] . includes ( profile . generation ) ) {
@@ -1031,7 +1032,7 @@ export function generateConfigPlist(profile: HardwareProfile): string {
10311032 'Sandy Bridge' :'AAAFAA==' , // 0x00050000
10321033 'Ivy Bridge' : 'BwBiAQ==' , // 0x01620007
10331034 'Haswell' : 'BAASBA==' , // 0x04120004
1034- 'Broadwell' : 'BgAmFg ==' , // 0x16260006 (no Dortania-specified desktop headless; using mobile fallback)
1035+ 'Broadwell' : 'BAAmFg ==' , // 0x16260004 — Dortania desktop headless
10351036 'Skylake' : 'AQASGQ==' , // 0x19120001
10361037 'Kaby Lake' : 'AwASWQ==' , // 0x59120003
10371038 'Coffee Lake' : 'AwCRPg==' , // 0x3E910003
@@ -1093,7 +1094,7 @@ export function generateConfigPlist(profile: HardwareProfile): string {
10931094 : 'PciRoot(0x0)/Pci(0x1b,0x0)' ;
10941095
10951096 // Audio layout-id as base64
1096- const layoutIdBase64 = btoa ( String . fromCharCode ( audioLayoutId , 0 , 0 , 0 ) ) ;
1097+ const layoutIdBase64 = Buffer . from ( [ audioLayoutId & 0xFF , ( audioLayoutId >> 8 ) & 0xFF , 0 , 0 ] ) . toString ( 'base64' ) ;
10971098
10981099 // ── ACPI Delete entries ──────────────────────────────────────────────────
10991100 // Sandy Bridge / Ivy Bridge: delete CpuPm and Cpu0Ist ACPI tables
0 commit comments