]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
AHCI support.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Thu, 23 Jun 2011 22:07:55 +0000 (00:07 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Thu, 23 Jun 2011 22:07:55 +0000 (00:07 +0200)
* 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.

1  2 
ChangeLog
grub-core/Makefile.core.def
grub-core/bus/usb/ohci.c
grub-core/disk/scsi.c
grub-core/kern/disk.c
include/grub/disk.h
include/grub/scsi.h

diff --cc ChangeLog
index 655cbe25e426a3c2f62deb945e4e77b82355716d,48b7bc171bb5d19e853d80cd981bfd11753584aa..6535b6e17ca05a40f63109686792ef32e8305163
+++ b/ChangeLog
++2011-06-23  Vladimir Serbinenko  <phcoder@gmail.com>
++
++      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.
++
 +2011-06-23  Szymon Janc <szymon@janc.net.pl>
 +
 +      Add support for DRI and RSTn markers in JPEG files.
 +
 +      * grub-core/video/readers/jpeg.c (JPEG_MARKER_DRI): New define.
 +      (JPEG_MARKER_RST0): Likewise.
 +      (JPEG_MARKER_RST1): Likewise.
 +      (JPEG_MARKER_RST2): Likewise.
 +      (JPEG_MARKER_RST3): Likewise.
 +      (JPEG_MARKER_RST4): Likewise.
 +      (JPEG_MARKER_RST5): Likewise.
 +      (JPEG_MARKER_RST6): Likewise.
 +      (JPEG_MARKER_RST7): Likewise.
 +      (grub_jpeg_data): New fields dri, r1, bitmap_ptr.
 +      (grub_jpeg_decode_dri): New function.
 +      (grub_jpeg_decode_sos): Move image data related part into
 +      grub_jpeg_decode_data function.
 +      (grub_jpeg_decode_data): New function.
 +      (grub_jpeg_reset): New function.
 +      (grub_jpeg_decode_jpeg): Handle new markers.
 +
 +2011-06-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/ieee1275/ofpath.c (check_sas): Close fd.
 +      (main): Free of_path.
 +      Reported by: David Volgyes <dvolgyes>.
 +
 +2011-06-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/grub-mkpasswd-pbkdf2.c (main): Don't double-close.
 +      Reported by: David Volgyes <dvolgyes>.
 +
 +2011-06-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_is_floppy): Close
 +      file after stat.
 +      Reported by: David Volgyes <dvolgyes>.
 +
 +2011-06-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/raid.c (grub_util_raid_getmembers): Close fd before returning.
 +
 +      Reported by: David Volgyes <dvolgyes>.
 +
 +2011-06-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/lib/reed_solomon.c (rs_recover) [STANDALONE]:
 +      Prevent memory leak.
 +
 +2011-06-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/lib/reed_solomon.c (rs_recover): Prevent memory leak.
 +      (main): Close file.
 +      Reported by: David Volgyes <dvolgyes>.
 +
 +2011-06-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/loader/i386/xnu.c (grub_cpu_xnu_fill_devprop): Don't attempt
 +      to continue if allocation is failed.
 +
 +      Reported by: David Volgyes <dvolgyes>.
 +
 +2011-06-23  David Volgyes <dvolgyes>
 +
 +      * grub-core/bus/usb/ohci.c (grub_ohci_pci_iter): Avoid NULL-pointer
 +      dereference.
 +
 +2011-06-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix spurious warning.
 +
 +      * grub-core/partmap/acorn.c (grub_acorn_boot_block): Make a union.
 +      (acorn_partition_map_find): Use .bin member.
 +
 +2011-06-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/kern/emu/getroot.c (grub_guess_root_device): Don't accept
 +      /dev/root as a valid device.
 +
 +2011-06-23  Jim Meyering  <meyering@redhat.com>
 +
 +      Avoid NULL deref in grub_device_open.
 +
 +      * grub-core/kern/device.c (grub_device_open): Don't dereference
 +      a NULL pointer upon failed grub_env_get.
 +
 +2011-06-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support non-512B sectors and agglomerate reads.
 +
 +      * Makefile.util.def (libgrubmods.a): Add grub-core/commands/testload.c.
 +      * grub-core/disk/efi/efidisk.c (grub_efidisk_data): Remove disk_io.
 +      (disk_io_guid): Removed.
 +      (make_devices): Locate solely by BlockIO.
 +      (grub_efidisk_open): Fill log_sector_size and total_sectors.
 +      (grub_efidisk_read): Use read_blocks.
 +      (grub_efidisk_write): Use write_blocks.
 +      * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_open): Fill
 +      log_sector_size.
 +      (get_safe_sectors): Handle non-512B sectors.
 +      (grub_biosdisk_read): Remove special CDROM handling. Handle non-512B
 +      sectors.
 +      (grub_biosdisk_write): Handle non-512B sectors.
 +      * grub-core/disk/scsi.c (grub_scsi_open): Fill log_sector_size.
 +      (grub_scsi_read): Remove special non-512B block handling (now handled
 +      one level up).
 +      * grub-core/kern/disk.c (grub_disk_open): Fill default log_sector_size
 +      and do sanity checks.
 +      (grub_disk_adjust_range): Handle non-512B sectors.
 +      (transform_sector): New function.
 +      (grub_disk_read_small): Likewise.
 +      (grub_disk_read): Rewritten.
 +      (grub_disk_write): Handle non-512B sectors.
 +      * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_open): Fill
 +      log_sector_size.
 +      (open_device): Use log_sector_size.
 +      (grub_util_biosdisk_read): Likewise.
 +      (grub_util_biosdisk_write): Likewise.
 +      * grub-core/partmap/msdos.c (grub_partition_msdos_iterate): Handle
 +      non-512B sectors.
 +      (pc_partition_map_embed): Likewise.
 +      * include/grub/disk.h (grub_disk): New field log_sector_size.
 +      (GRUB_DISK_CACHE_SIZE): Redefined from GRUB_DISK_CACHE_BITS.
 +      (GRUB_DISK_CACHE_BITS): Increased to 6.
 +      * util/grub-fstest.c (fstest): New command testload.
 +      (argp_parser): Likewise.
 +
 +2011-06-16  Robert Millan  <rmh@gnu.org>
 +
 +      Detect `ataraid' devices on GNU/kFreeBSD.  Fix for ATA devices using
 +      `ata' driver on kernel of FreeBSD 9.
 +
 +      * util/deviceiter.c [__FreeBSD_kernel__] (get_ada_disk_name)
 +      (get_ataraid_disk_name): New functions.
 +      [__FreeBSD_kernel__] (grub_util_iterate_devices): Scan for ataraid
 +      (/dev/ar[0-9]+) and ada (/dev/ada[0-9]+) devices using
 +      get_ataraid_disk_name() and get_ada_disk_name().
 +
 +2011-06-13  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * docs/man/grub-mklayout.h2m (DESCRIPTION): Add a reference to the
 +      input format.
 +
 +2011-05-29  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * docs/grub.texi (Obtaining and Building GRUB): Substitute
 +      `ftp.gnu.org' for `alpha.gnu.org'.
 +
 +2011-05-27  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * grub-core/kern/emu/hostdisk.c (linux_find_partition): Handle
 +      partitions under /dev/disk/by-id/.
 +
 +2011-05-27  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * grub-core/kern/emu/hostdisk.c (linux_find_partition): Give up
 +      after ten consecutive open failures.  Scanning all the way up to
 +      10000 is excessive and can cause serious performance problems in
 +      some configurations.
 +      Fixes Ubuntu bug #787461.
 +
 +2011-05-21  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/disk/arc/arcdisk.c (reopen): Close old handle before
 +      opening new one.
 +
 +2011-05-21  Colin Watson  <cjwatson@ubuntu.com>
 +2011-05-21  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Don't stat devices unless we have to.
 +
 +      * grub-core/kern/emu/getroot.c (grub_find_device): Recognize
 +      dir == /dev/mapper.
 +      (grub_guess_root_device): Use already known os_dev if possible.
 +      * grub-core/kern/emu/hostdisk.c
 +      (convert_system_partition_to_system_disk): Scan only in /dev/mapper
 +      if device is known to be a dm one.
 +
 +2011-05-20  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/grub-mkconfig.in: Export GRUB_CMDLINE_LINUX_XEN_REPLACE and
 +      GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT.
 +      Reported by: Pawel Tecza.
 +
 +2011-05-19  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/Makefile.core.def (lsacpi): Fix ia64 mismerge.
 +      (lsefisystab): Likewise.
 +      (lssal): Likewise.
 +      (lsefimmap): Likewise.
 +      (hdparm): Enable on qemu-mips.
 +      (setjmp): Add ia64 nodist.
 +      (serial): Simplify tags.
 +
 +2011-05-18  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * Makefile.util.def (grub-ofpathname): Install manual page.
 +
 +2011-05-18  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * grub-core/fs/squash4.c: Add missing GRUB_MOD_LICENSE.
 +
 +2011-05-18  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * .bzrignore: Add grub-core/modinfo.sh and a number of test files.
 +
 +2011-05-18  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/bus/usb/usbhub.c (poll_nonroot_hub): Downgrade a printf
 +      into dprintf.
 +
 +2011-05-18  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Use full 64-bit division.
 +
 +      * grub-core/kern/misc.c (grub_divmod64_full): Renamed to ...
 +      (grub_divmod64): ... this.
 +      * include/grub/misc.h (grub_divmod64): Removed. All users switch to full
 +      version.
 +
 +2011-05-18  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/grub-mkrescue.in: Use portable `.' rather than non-portable
 +      `source'.
 +
 +2011-05-18  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * grub-core/genmod.sh.in: Use 'set -e' rather than '#! /bin/sh -e',
 +      to avoid accidents when debugging with 'sh -x'.
 +      * grub-core/gensyminfo.sh.in: Likewise.
 +      * tests/example_scripted_test.in: Likewise.
 +      * tests/grub_cmd_regexp.in: Likewise.
 +      * tests/grub_script_blanklines.in: Likewise.
 +      * tests/grub_script_dollar.in: Likewise.
 +      * tests/grub_script_expansion.in: Likewise.
 +      * tests/grub_script_final_semicolon.in: Likewise.
 +      * tests/partmap_test.in: Likewise.
 +      * tests/util/grub-shell-tester.in: Likewise.
 +      * tests/util/grub-shell.in: Likewise.
 +
 +2011-05-18  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      Move gfxmenu color handling to video, so that gfxterm can use it
 +      too.
 +
 +      * grub-core/gfxmenu/named_colors.c: Move to ...
 +      * grub-core/video/colors.c: ... here.  Rename
 +      grub_gui_get_named_color to grub_video_get_named_color.
 +      * grub-core/gfxmenu/gui_string_util.c (my_isxdigit): Move to ...
 +      * grub-core/video/colors.c (my_isxdigit): ... here.
 +      * grub-core/gfxmenu/gui_string_util.c (parse_hex_color_component):
 +      Move to ...
 +      * grub-core/video/colors.c (parse_hex_color_component): ... here.
 +      * grub-core/gfxmenu/gui_string_util.c (grub_gui_parse_color): Move
 +      to ...
 +      * grub-core/video/colors.c (grub_video_parse_color): ... here.
 +
 +      * include/grub/gui.h (grub_gui_color_t): Move to ...
 +      * include/grub/video.h (grub_video_rgba_color_t): ... here.
 +      * include/grub/gui.h (grub_gui_color_rgb): Move to ...
 +      * include/grub/video.h (grub_video_rgba_color_rgb): ... here.
 +      * include/grub/gui.h (grub_gui_map_color): Move to ...
 +      * include/grub/video.h (grub_video_map_rgba_color): ... here.
 +      * include/grub/gui_string_util.h (grub_gui_get_named_color): Move
 +      to ...
 +      * include/grub/video.h (grub_video_get_named_color): ... here.
 +      * include/grub/gui_string_util.h (grub_gui_parse_color): Move to ...
 +      * include/grub/video.h (grub_video_parse_color): ... here.
 +
 +      * grub-core/Makefile.core.def (kernel) [videoinkernel]: Add
 +      video/colors.c.
 +      (gfxmenu): Remove gfxmenu/named_colors.c.
 +      (video) [videomodules]: Add video/colors.c.
 +
 +      Add a background_color command.
 +
 +      * grub-core/term/gfxterm.c (grub_gfxterm_background_color_cmd): New
 +      function.
 +      (GRUB_MOD_INIT): Register background_color command.
 +      (GRUB_MOD_FINI): Unregister background_color command.
 +      (redraw_screen_rect): Allow blend/replace of text layer to be
 +      controlled independently from whether there is a background bitmap.
 +      (grub_gfxterm_background_image_cmd): Change blend_text_bg when
 +      changing bitmap.
 +
 +2011-05-18  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Patch BPB in ntldr and chainloader --bpb.
 +
 +      * grub-core/fs/fat.c: Include grub/fat.h.
 +      (grub_fat_bpb): Moved to ...
 +      * include/grub/fat.h (grub_fat_bpb): ... here. New file.
 +      * grub-core/loader/i386/pc/chainloader.c: Include grub/fat.h and
 +      grub/ntfs.h.
 +      * include/grub/i386/pc/chainloader.h (grub_chainloader_flags_t):
 +      Moved from here...
 +      * grub-core/loader/i386/pc/chainloader.c (grub_chainloader_flags_t): ...
 +      here.
 +      * grub-core/loader/i386/pc/chainloader.c (grub_chainloader_patch_bpb):
 +      New function.
 +      (grub_chainloader_cmd): Patch BPB if --bpb is given.
 +      (GRUB_MOD_INIT): Show --bpb.
 +      * grub-core/loader/i386/pc/ntldr.c (grub_cmd_ntldr): Patch BPB.
 +      * grub-core/normal/main.c (features): New variable.
 +      (GRUB_MOD_INIT): Set feature_* variables.
 +      * include/grub/i386/pc/chainloader.h (grub_chainloader_patch_bpb): New
 +      proto.
 +      * include/grub/ntfs.h (grub_ntfs_bpb): New field bios_drive.
 +
 +2011-05-18  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/Makefile.core.def (ieee1275_fb): Use enable=powerpc_ieee1275
 +      for cleanness.
 +
  2011-05-18  Vladimir Serbinenko  <phcoder@gmail.com>
  
        FreeDOS direct loading support.
Simple merge
Simple merge
index 5497b3c4804832a6a23f45d70dbe9f77ef718def,ab345d0ed7459ee4f380b952eddd4aee3cf64b9f..35b8525c215074eda218c9e73985b4386d0b279a
@@@ -32,6 -32,12 +32,12 @@@ GRUB_MOD_LICENSE ("GPLv3+")
  \f
  static grub_scsi_dev_t grub_scsi_dev_list;
  
 -char grub_scsi_names[GRUB_SCSI_NUM_SUBSYSTEMS][5] = {
++const char grub_scsi_names[GRUB_SCSI_NUM_SUBSYSTEMS][5] = {
+   [GRUB_SCSI_SUBSYSTEM_USBMS] = "usb",
+   [GRUB_SCSI_SUBSYSTEM_PATA] = "ata",
+   [GRUB_SCSI_SUBSYSTEM_AHCI] = "ahci"
+ };
  void
  grub_scsi_dev_register (grub_scsi_dev_t dev)
  {
Simple merge
Simple merge
index b30d317c71c3b60868143276fa548ce5bcb9b0e0,5b6ccc9f4b64a3ca23890b5c78a3ef9ddce385b0..f71ef099dc32f25f2c46415ac7c1873b779aa889
@@@ -29,9 -29,13 +29,13 @@@ struct grub_scsi
  enum
    {
      GRUB_SCSI_SUBSYSTEM_USBMS,
-     GRUB_SCSI_SUBSYSTEM_ATAPI
+     GRUB_SCSI_SUBSYSTEM_PATA,
+     GRUB_SCSI_SUBSYSTEM_AHCI,
+     GRUB_SCSI_NUM_SUBSYSTEMS
    };
  
 -extern char grub_scsi_names[GRUB_SCSI_NUM_SUBSYSTEMS][5];
++extern const char grub_scsi_names[GRUB_SCSI_NUM_SUBSYSTEMS][5];
  #define GRUB_SCSI_ID_SUBSYSTEM_SHIFT 24
  #define GRUB_SCSI_ID_BUS_SHIFT 8
  #define GRUB_SCSI_ID_LUN_SHIFT 0