[Bug 202712] [cam] [ata] System doesn't recognize older hdd after boot
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Thu May 23 06:34:27 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=202712
Scott Long <scottl at FreeBSD.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |scottl at FreeBSD.org
--- Comment #39 from Scott Long <scottl at FreeBSD.org> ---
The code in sys/cam/ata is generic protocol and transport support for all
devices. The code in sys/dev/ata is controller-specific drivers. In simple
terms, adding CHS support would happen in sys/cam/ata.
I have mixed feelings on adding CHS support. As others have mentioned, it's
ancient, and it's nearly impossible for people to test. It would exist as a
poorly tested codepath that would be prone to accidental breakage. The cost of
keeping it working, in terms of equipment procurement and operation, would
likely outweigh the benefit.
It looks like Amazon has a PCIe add-in card for ATA/IDE, but I haven't owned a
working ATA drive in almost 10 years, and I probably haven't owned a functional
CHS-only drive in at least 20 years. I have no idea where I'd get one, other
than to buy batches of them off of Ebay and hope to find some that work. 20+
years is a long time for a hard drive, even in the best of circumstances.
Moisture will invade the platter cavity through the breather hole. Lubrication
will slowly evaporate off of spindle and armature joints and redeposit itself
onto the platters and heads. Capacitors on the circuit board will slowly leak,
and copper and aluminum connectors and traces will corrode. I'm impressed that
you have a working 400MiB drive, that's a 25 year old drive at this point. I'd
worry that it would stop working in the near future.
If I were to build a rig to operate a CHS-era IDE drive (or any ATA/IDE drive
for that matter), it would be solely to recover and archive the drive data to
modern storage. For that, I'd use software that supported the use-case. If
that means using an older version of FreeBSD, or using Linux, I'd do that.
It's such a niche use case that I'd spend considerably more time resurrecting
and testing CHS code than I'd spend actually recovering the data, and that's
just not an interesting use of my time.
If there's community interest in supporting CHS long-term in FreeBSD, my
recommendation is to create a IDE-CHS specific transport in CAM that lives
alongside the ATA/SATA support, but does not rely on it. This probably means
copying sys/cam/ata/ata_xpt.c to sys/cam/ata/ide_xpt.c, removing the
SATA-specific logic in it, and adding in the IDE and CHS specific logic. Nice,
clean, and isolated so that it's less likely to be accidentally broken, and
people working on SATA aren't likely to trip on it. This would probably be a
week of work at most, assuming that test hardware is available.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-scsi
mailing list