Using RocketRAID 1810A (hptmv) as an ordinary controller?

Pete xd888cc7541309c3f at f4n.org
Mon Jul 14 11:51:30 UTC 2008


I'd like to use my HighPoint RocketRAID 1810A as an ordinary SATA
controller without any RAID functionality. This works fine out of the
box for all sectors of the disk except the last ten, which are hidden.

The controller is identified as:
hptmv0: <RocketRAID 182x SATA Controller> mem 0xfbf00000-0xfbf7ffff irq 18 at device 2.0 on pci1
RocketRAID 182x SATA Controller driver Version v1.12 (Sep 17 2007 18:32:12)

I believe the 1810A is identical to the 1820A, except that it has four
channels less. There's a new driver out (v1.16, CVS has v1.12) but I
don't think the changes are relevant to the issue at hand.

The setup I'm using is GELI inside a GEOM label, that is:
  glabel label mylabel /dev/da1
  geli init ... /dev/label/mylabel

Due to the fact that the hptmv driver hides the last ten sectors I
can't move disks between the 1810A and an ordinary controller: a disk
configured on an ordinary controller will have its metadata (and more)
hidden, and a disk configured on the 1810A will have its "last two
sectors" (one for the label, one for GELI) ten sectors away from the
end of the disk.

Questions:

1. Looking at the src/sys/dev/hptmv/array.h there's a
SAVE_FOR_RAID_INFO which is set to 0 if ARRAY_V2_ONLY is defined,
otherwise it's set to 10. The only other references to ARRAY_V2_ONLY
are in gui_lib.c, where the capacity is once again reduced by 10
sectors if the option is in place. There is a SUPPORT_ARRAY option,
but it doesn't seem to affect SAVE_FOR_RAID_INFO.

Compiling with '#undef SUPPORT_ARRAY' seems to be terribly broken and
I don't know how to fix it. Some of the errors can be fixed with a
little '#ifdef SUPPORT_ARAY':ing, others are less obvious to me.

I also tried compiling with ARRAY_V2_ONLY=1 and also with
SAVE_FOR_RAID_INFO=0 forced, but neither seems to work, the capacity
is still ten sectors short.

Anyone have ANY ideas on how to get access to the last sectors when
the disk is connected to the 1810A, or is it prevented by the
hardware? It's OK if it sacrifices RAID functionality for all
channels.

2. If a disk has been formatted while connected to the 1810A, how
would one use it in a different controller, one which does not hide
the last ten sectors? The disk has no bsdlabel. I suppose I could
chain ten glabels, but that's just silly.

3. Should it be impossible to access the last sectors using 1810A, do
you have any recommendations of an ordinary SATA controller, or a RAID
one which optionally does not hide any sectors, and works fine with
1TB disks on FreeBSD (ideally on 6.x)?

All ideas and comments are appreciated.

Thanks in advance!


More information about the freebsd-questions mailing list