Error 4117 – Length is larger than Min/Max window ^
En ocasiones, al compilar nuestro DSDT con la herramienta de línea de comandos iasl obtenemos este error 4117 que se presenta así:
589: 0xFFF00000, // Length Error 4117 - Length is larger than Min/Max window ^
Si vamos a la límea 589 en la que según iasl está el error vemos:
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x00100000, // Range Minimum 0xFEBFFFFF, // Range Maximum 0x00000000, // Translation Offset 0xFFF00000, // Length
Lo que nos está diciendo este error es que el valor de Length no es correcto porque está fuera de los límites que marcan Range Minimum y Range Maximum.
El gurú mitch_de ha propuesto una solución que parece funcionar bien corrigendo el valor de Length de acuerdo a la fórmula
Range Maximum – Range Minimum + 1 = Lenght
Estos cálculos se pueden hacer con la calculadora incorporada en Snow Leopard, pasando al modo «De programación» (Visualización > De programación o Cmd + 3) en lenguaje hexadecimal.
Si convertimos de hexadecimal a decimal, en el ejemplo de arriba los valores son:
- Length = 4.293.918.720
- Range minimum = 1.048.576
- Range maximum = 4.273.995.775
Usando la fórmula propuesta por mitch_de se obtiene un valor
Length = 0xFEB00000 (en decimal 4.272.947.200)
que ahora sí está dentro del rango. Modificamos DSDT.dsl de esta forma:
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x00100000, // Range Minimum 0xFEBFFFFF, // Range Maximum 0x00000000, // Translation Offset 0xFEB00000, // Length NUEVO VALOR
La nueva compilación con iasl produce un DSDT.aml sin errores.
Fuente: Insanely Mac.