Rev 4153 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4153 | Rev 4581 | ||
---|---|---|---|
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 | */ |