Hardware - Highpoint - RocketRAID - Notes

2314

Tested on PCLinuxOS 2022.12:

As stated: use partitions up until the last 2 GB of the disk.

Rationale:

* Re: sata_mv and Highpoint RocketRAID 230x, corruption?
  2010-10-20 20:03 sata_mv and Highpoint RocketRAID 230x, corruption? Mathias Burén
@ 2010-10-23  1:59 ` Mark Lord
  2010-10-23  2:21   ` Daniel Taylor
  2010-10-23 12:57   ` Mathias Burén
  0 siblings, 2 replies; 12+ messages in thread
From: Mark Lord @ 2010-10-23  1:59 UTC (permalink / raw)
  To: Mathias Burén; +Cc: linux-kernel

On 10-10-20 04:03 PM, Mathias Burén wrote:
..
> I'm currently not using the BIOS of the raid controller for anything
> else then staggered disk spinup. The HDD partitions start at sector
> 2048 (to get a 1MB alignment since they're 4k sector drives, WD20EARS)
> and end at the last sector.
> What I'm worried about is the corruption mentioned in dmesg, is this
> explained somewhere in more detail? Google didn't reveal much. Am I in
> danger?

Yes.  Just repartition the drives to avoid the final 2GB of each drive,
and then you'll be safe.

The RocketRaid BIOS that I examined here a couple of years ago,
liked to write "metadata" over top of whatever was in certain sectors
near the end of the drive.  EVEN FOR NON-RAID DRIVES.

I think it was the last even (power-of-two) multiple of 1GB or something,
so if you leave the final 2GB untouched, you're guaranteed to avoid it.

Thus the recommendation.

Cheers

linux-kernel.vger.kernel.org archive mirror - * sata_mv and Highpoint RocketRAID 230x, corruption?

From https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/ata/sata_mv.c:

case chip_7042:
		hp_flags |= MV_HP_PCIE | MV_HP_CUT_THROUGH;
		if (pdev->vendor == PCI_VENDOR_ID_TTI &&
		    (pdev->device == 0x2300 || pdev->device == 0x2310))
		{
			/*
			 * Highpoint RocketRAID PCIe 23xx series cards:
			 *
			 * Unconfigured drives are treated as "Legacy"
			 * by the BIOS, and it overwrites sector 8 with
			 * a "Lgcy" metadata block prior to Linux boot.
			 *
			 * Configured drives (RAID or JBOD) leave sector 8
			 * alone, but instead overwrite a high numbered
			 * sector for the RAID metadata.  This sector can
			 * be determined exactly, by truncating the physical
			 * drive capacity to a nice even GB value.
			 *
			 * RAID metadata is at: (dev->n_sectors & ~0xfffff)
			 *
			 * Warn the user, lest they think we're just buggy.
			 */
			dev_warn(&pdev->dev, "Highpoint RocketRAID"
				" BIOS CORRUPTS DATA on all attached drives,"
				" regardless of if/how they are configured."
				" BEWARE!\n");
			dev_warn(&pdev->dev, "For data safety, do not"
				" use sectors 8-9 on \"Legacy\" drives,"
				" and avoid the final two gigabytes on"
				" all RocketRAID BIOS initialized drives.\n");
		}