diff options
author | Mark Lord <liml@rtr.ca> | 2007-12-11 12:58:05 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-12-17 20:33:12 -0500 |
commit | 4e5200334e03e5620aa19d538300c13db270a063 (patch) | |
tree | c4a8e63e19d182a956b0618ae3fcbc2547789813 | |
parent | e41bd3e854e3536de847d5831c0e25a47f394885 (diff) |
sata_mv: improve warnings about Highpoint RocketRAID 23xx cards
Improve the existing boot/load time warnings from sata_mv
for Highpoint RocketRAID 23xx cards, based on new knowledge
about where the BIOS likes to overwrite sectors with metadata.
Harmless to us, but very useful for end users.
Signed-off-by: Mark Lord <mlord@pobox.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/ata/sata_mv.c | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c index fe0105d35bae..37b850ae0845 100644 --- a/drivers/ata/sata_mv.c +++ b/drivers/ata/sata_mv.c | |||
@@ -2506,11 +2506,31 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx) | |||
2506 | if (pdev->vendor == PCI_VENDOR_ID_TTI && | 2506 | if (pdev->vendor == PCI_VENDOR_ID_TTI && |
2507 | (pdev->device == 0x2300 || pdev->device == 0x2310)) | 2507 | (pdev->device == 0x2300 || pdev->device == 0x2310)) |
2508 | { | 2508 | { |
2509 | printk(KERN_WARNING "sata_mv: Highpoint RocketRAID BIOS" | 2509 | /* |
2510 | " will CORRUPT DATA on attached drives when" | 2510 | * Highpoint RocketRAID PCIe 23xx series cards: |
2511 | " configured as \"Legacy\". BEWARE!\n"); | 2511 | * |
2512 | printk(KERN_WARNING "sata_mv: Use BIOS \"JBOD\" volumes" | 2512 | * Unconfigured drives are treated as "Legacy" |
2513 | " instead for safety.\n"); | 2513 | * by the BIOS, and it overwrites sector 8 with |
2514 | * a "Lgcy" metadata block prior to Linux boot. | ||
2515 | * | ||
2516 | * Configured drives (RAID or JBOD) leave sector 8 | ||
2517 | * alone, but instead overwrite a high numbered | ||
2518 | * sector for the RAID metadata. This sector can | ||
2519 | * be determined exactly, by truncating the physical | ||
2520 | * drive capacity to a nice even GB value. | ||
2521 | * | ||
2522 | * RAID metadata is at: (dev->n_sectors & ~0xfffff) | ||
2523 | * | ||
2524 | * Warn the user, lest they think we're just buggy. | ||
2525 | */ | ||
2526 | printk(KERN_WARNING DRV_NAME ": Highpoint RocketRAID" | ||
2527 | " BIOS CORRUPTS DATA on all attached drives," | ||
2528 | " regardless of if/how they are configured." | ||
2529 | " BEWARE!\n"); | ||
2530 | printk(KERN_WARNING DRV_NAME ": For data safety, do not" | ||
2531 | " use sectors 8-9 on \"Legacy\" drives," | ||
2532 | " and avoid the final two gigabytes on" | ||
2533 | " all RocketRAID BIOS initialized drives.\n"); | ||
2514 | } | 2534 | } |
2515 | case chip_6042: | 2535 | case chip_6042: |
2516 | hpriv->ops = &mv6xxx_ops; | 2536 | hpriv->ops = &mv6xxx_ops; |