Subversion Repositories HelenOS

Rev

Rev 4377 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4377 Rev 4692
Line 165... Line 165...
165
 
165
 
166
rsdp_found:
166
rsdp_found:
167
    LOG("%p: ACPI Root System Description Pointer\n", acpi_rsdp);
167
    LOG("%p: ACPI Root System Description Pointer\n", acpi_rsdp);
168
 
168
 
169
    acpi_rsdt = (struct acpi_rsdt *) (unative_t) acpi_rsdp->rsdt_address;
169
    acpi_rsdt = (struct acpi_rsdt *) (unative_t) acpi_rsdp->rsdt_address;
-
 
170
    if (acpi_rsdp->revision)
170
    if (acpi_rsdp->revision) acpi_xsdt = (struct acpi_xsdt *) ((uintptr_t) acpi_rsdp->xsdt_address);
171
        acpi_xsdt = (struct acpi_xsdt *) ((uintptr_t) acpi_rsdp->xsdt_address);
171
 
172
 
-
 
173
    if (acpi_rsdt)
172
    if (acpi_rsdt) map_sdt((struct acpi_sdt_header *) acpi_rsdt);
174
        map_sdt((struct acpi_sdt_header *) acpi_rsdt);
-
 
175
    if (acpi_xsdt)
173
    if (acpi_xsdt) map_sdt((struct acpi_sdt_header *) acpi_xsdt);  
176
        map_sdt((struct acpi_sdt_header *) acpi_xsdt);
174
 
177
 
175
    if (acpi_rsdt && !acpi_sdt_check((uint8_t *) acpi_rsdt)) {
178
    if (acpi_rsdt && !acpi_sdt_check((uint8_t *) acpi_rsdt)) {
176
        printf("RSDT: bad checksum\n");
179
        printf("RSDT: bad checksum\n");
177
        return;
180
        return;
178
    }
181
    }
179
    if (acpi_xsdt && !acpi_sdt_check((uint8_t *) acpi_xsdt)) {
182
    if (acpi_xsdt && !acpi_sdt_check((uint8_t *) acpi_xsdt)) {
180
        printf("XSDT: bad checksum\n");
183
        printf("XSDT: bad checksum\n");
181
        return;
184
        return;
182
    }
185
    }
183
 
186
 
-
 
187
    if (acpi_xsdt)
184
    if (acpi_xsdt) configure_via_xsdt();
188
        configure_via_xsdt();
-
 
189
    else if (acpi_rsdt)
185
    else if (acpi_rsdt) configure_via_rsdt();
190
        configure_via_rsdt();
186
 
191
 
187
}
192
}
188
 
193
 
189
/** @}
194
/** @}
190
 */
195
 */