Attempt reset via the FADT reset register.
557{
561 struct acpi_gas *reset_reg = &fadt->reset_reg;
562
563
564
565
566
568
571
572 switch (reset_reg->address_space_id) {
574
575
576
577
581
583 break;
586 break;
589
590
593 address.device = (reset_reg->address >> 32) & 0xFF;
594 address.function = (reset_reg->address >> 16) & 0xFF;
595
598 break;
599
601 pci_dev, reset_reg->address & 0xFFFF, fadt->reset_value
602 );
603 break;
604 }
605 default:
607 "unable to perform a reset: unsupported address space '%s' (%d)",
609 reset_reg->address_space_id
610 );
612 }
613
615
616
617
618
620
621 while (stalled_time < (1000 * 1000)) {
623 stalled_time += 100;
624 }
625
628 }
629
634
636}
#define ACPI_RESET_REG_SUP
@ UACPI_STATUS_UNIMPLEMENTED
const uacpi_char * uacpi_address_space_to_string(uacpi_address_space space)
@ UACPI_INIT_LEVEL_SUBSYSTEM_INITIALIZED
@ UACPI_ADDRESS_SPACE_SYSTEM_MEMORY
@ UACPI_ADDRESS_SPACE_PCI_CONFIG
@ UACPI_ADDRESS_SPACE_SYSTEM_IO
uacpi_status uacpi_kernel_io_map(uacpi_io_addr base, uacpi_size len, uacpi_handle *out_handle)
void uacpi_kernel_pci_device_close(uacpi_handle)
uacpi_status uacpi_kernel_io_write8(uacpi_handle, uacpi_size offset, uacpi_u8 in_value)
uacpi_status uacpi_kernel_pci_device_open(uacpi_pci_address address, uacpi_handle *out_handle)
uacpi_status uacpi_kernel_pci_write8(uacpi_handle device, uacpi_size offset, uacpi_u8 value)
void uacpi_kernel_io_unmap(uacpi_handle handle)