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
|
@ -74,7 +74,7 @@ if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
|
|||
elif [ "${platform}" = "ieee1275" ] || [ "${platform}" = "efi" ] ; then
|
||||
disk_module=
|
||||
else
|
||||
disk_module=ata
|
||||
disk_module=native
|
||||
fi
|
||||
|
||||
# Usage: usage
|
||||
|
@ -111,7 +111,7 @@ Install GRUB on your drive.
|
|||
EOF
|
||||
if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
|
||||
cat <<EOF
|
||||
--disk-module=MODULE disk module to use
|
||||
--disk-module=MODULE disk module to use (biosdisk or native)
|
||||
EOF
|
||||
fi
|
||||
if [ "${target_cpu}-${platform}" = "i386-ieee1275" ] || [ "${target_cpu}-${platform}" = "powerpc-ieee1275" ] ; then
|
||||
|
@ -489,6 +489,14 @@ done
|
|||
# Device abstraction module, if any (lvm, raid).
|
||||
devabstraction_module="`"$grub_probe" --device-map="${device_map}" --target=abstraction --device "${grub_device}"`"
|
||||
|
||||
if [ "x$disk_module" = xata ]; then
|
||||
disk_module=pata
|
||||
fi
|
||||
|
||||
if [ "x$disk_module" = xnative ]; then
|
||||
disk_module="pata ahci ohci uhci usbms"
|
||||
fi
|
||||
|
||||
# The order in this list is critical. Be careful when modifying it.
|
||||
modules="$modules $disk_module"
|
||||
modules="$modules $fs_module $partmap_module $devabstraction_module"
|
||||
|
@ -522,7 +530,7 @@ if [ "x${devabstraction_module}" = "x" ] ; then
|
|||
# Strip partition number
|
||||
grub_partition="`echo "${grub_drive}" | sed -e 's/^[^,]*[,)]//; s/)$//'`"
|
||||
grub_drive="`echo "${grub_drive}" | sed -e s/,[a-z0-9,]*//g`"
|
||||
if [ "$disk_module" = ata ] || [ "x${grub_drive}" != "x${install_drive}" ] || ([ "x$platform" != xefi ] && [ "x$platform" != xpc ] && [ x"${target_cpu}-${platform}" != x"sparc64-ieee1275" ]) ; then
|
||||
if ([ "x$disk_module" != x ] && [ "x$disk_module" != xbiosdisk ]) || [ "x${grub_drive}" != "x${install_drive}" ] || ([ "x$platform" != xefi ] && [ "x$platform" != xpc ] && [ x"${target_cpu}-${platform}" != x"sparc64-ieee1275" ]); then
|
||||
# generic method (used on coreboot and ata mod)
|
||||
uuid="`"$grub_probe" --device-map="${device_map}" --target=fs_uuid --device "${grub_device}"`"
|
||||
if [ "x${uuid}" = "x" ] ; then
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue