AHCI support.
* grub-core/Makefile.core.def (ata_pthru): Removed. (ahci): New module. (pata): Likewise. * grub-core/bus/usb/ohci.c (GRUB_MOD_FINI): Unregister preboot hook on unload. * grub-core/commands/hdparm.c (grub_hdparm_do_ata_cmd): Use ATA readwrite. (grub_hdparm_do_check_powermode_cmd): Likewise. (grub_hdparm_do_smart_cmd): Likewise. (grub_hdparm_set_val_cmd): Likewise. (grub_cmd_hdparm): Likewise. Check thta we have an ATA device. * grub-core/disk/ahci.c: New file. * grub-core/disk/ata.c: Factor out the low-level part into ... * grub-core/disk/pata.c: ... here. * grub-core/disk/ata_pthru.c: Contents moved to ... * grub-core/disk/pata.c: ... here. * grub-core/disk/scsi.c (grub_scsi_names): New array. (grub_scsi_iterate): Use grub_scsi_names. (grub_scsi_open): Likewise. * grub-core/kern/disk.c (grub_disk_ata_pass_through): Removed. * include/grub/ata.h (grub_ata_commands): Add DMA commands. (grub_ata_regs_t): New struct. (grub_disk_ata_pass_through_parms): Likewise. (grub_ata_device): Renamed to ... (grub_ata): ... this. (grub_ata_dev): New struct. Removed all low-level inline functions. * include/grub/scsi.h: Add PATA and AHCI subsystems. (grub_scsi_dev): Removed 'name' and 'id'. Added 'id' parameter to iterate hooks and open. All users updated. * util/grub-install.in: Handle AHCI disk module.
This commit is contained in:
commit
5ab3f48a92
15 changed files with 1799 additions and 847 deletions
|
@ -1426,18 +1426,22 @@ static struct grub_usb_controller_dev usb_controller =
|
|||
.detect_dev = grub_ohci_detect_dev
|
||||
};
|
||||
|
||||
static void *fini_hnd;
|
||||
|
||||
GRUB_MOD_INIT(ohci)
|
||||
{
|
||||
COMPILE_TIME_ASSERT (sizeof (struct grub_ohci_td) == 32);
|
||||
COMPILE_TIME_ASSERT (sizeof (struct grub_ohci_ed) == 16);
|
||||
grub_ohci_inithw ();
|
||||
grub_usb_controller_dev_register (&usb_controller);
|
||||
grub_loader_register_preboot_hook (grub_ohci_fini_hw, grub_ohci_restore_hw,
|
||||
GRUB_LOADER_PREBOOT_HOOK_PRIO_DISK);
|
||||
fini_hnd = grub_loader_register_preboot_hook (grub_ohci_fini_hw,
|
||||
grub_ohci_restore_hw,
|
||||
GRUB_LOADER_PREBOOT_HOOK_PRIO_DISK);
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI(ohci)
|
||||
{
|
||||
grub_ohci_fini_hw (0);
|
||||
grub_loader_unregister_preboot_hook (fini_hnd);
|
||||
grub_usb_controller_dev_unregister (&usb_controller);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue