CISS(4)

πŸ’– CISS(4) β€” the ciss manual page, bestie edition πŸ’–

Kernel Interfaces Manual Β· section 4 Β· yeah we're in the kernel drivers zone, come on in πŸ¦‹


✨ NAME ✨

ciss β€” the Common Interface for SCSI-3 Support driver, aka the thing that talks to your HP/Compaq RAID controller so you don't have to πŸŽ€


🌸 SYNOPSIS 🌸

okay so if you wanna bake this driver right into your kernel, you gotta drop these lines into your kernel configuration file, no cap:

device scbus
device ciss

and alternatively β€” if you'd rather just load it as a module at boot time, which is honestly the lowkey easier route β€” you put this one line in loader.conf(5):

ciss_load="YES"

periodt. that's it. that's the whole setup πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so ciss claims to provide a common interface between generic SCSI transports and intelligent host adapters. (the word "claims" is doing a lot of work there and I love that for us πŸ’€)

it supports CISS as defined in the document CISS Command Interface for SCSI-3 Support Open Specification, Version 1.04, Valence Number 1, dated 2000/11/27, produced by Compaq Computer Corporation. iconic document. legendary really.

what it actually does: we provide a shim layer between the ciss interface and CAM(4), offloading most of the queueing and being-a-disk chores onto CAM. yes, CAM is carrying the whole group project here and honestly, main character energy. 🫢

entry to the driver happens via:

  • the PCI bus attachment β€” ciss_probe(), ciss_attach(), etc.
  • the CAM interface β€” ciss_cam_action(), and ciss_cam_poll()

now. the Compaq ciss adapters require faked responses to get reasonable behavior out of them 😭 (not me lying to a RAID controller so it behaves). on top of that, the ciss command set is by no means adequate to support the functionality of a RAID controller, and thus the supported Compaq adapters utilize portions of the control protocol from earlier Compaq adapter families. they're doing their best, bestie.

currently ciss supports the β€œsimple” and β€œperformant” transport layer. two layers, both valid, both slay ✨

non-disk devices (think internal DATs, and devices attached to the external SCSI bus) are supported as normal CAM devices β€” provided they're exported by the controller firmware and aren't marked as being masked. masked devices can be exposed by setting the hw.ciss.expose_hidden_physical tunable to non-zero at boot time. yep, that's the un-hide button πŸ”₯

Direct Access devices (like disk drives) are only exposed as pass(4) devices. that's the whole tea.

hot-insertion and removal of devices is supported, and notification messages will be reported to the console and logs. plug it in, pull it out, the logs will be watching πŸ“

πŸ’€ one more thing β€” the problem where the adapter freezes with the message β€œADAPTER HEARTBEAT FAILED” might be solved by updating the firmware and/or setting the hw.ciss.nop_message_heartbeat tunable to non-zero at boot time. might. no promises. that's the note, fr fr.

πŸ‘‘ HARDWARE πŸ‘‘

controllers supported by the ciss driver include, and this list EATS every single time:

  • Compaq Smart Array 5300 (simple mode only)
  • Compaq Smart Array 532
  • Compaq Smart Array 5i
  • HP Smart Array 5312
  • HP Smart Array 6i
  • HP Smart Array 641
  • HP Smart Array 642
  • HP Smart Array 6400
  • HP Smart Array 6400 EM
  • HP Smart Array E200
  • HP Smart Array E200i
  • HP Smart Array P212
  • HP Smart Array P220i
  • HP Smart Array P222
  • HP Smart Array P230i
  • HP Smart Array P400
  • HP Smart Array P400i
  • HP Smart Array P410
  • HP Smart Array P410i
  • HP Smart Array P411
  • HP Smart Array P420
  • HP Smart Array P420i
  • HP Smart Array P421
  • HP Smart Array P430
  • HP Smart Array P430i
  • HP Smart Array P431
  • HP Smart Array P530
  • HP Smart Array P531
  • HP Smart Array P600
  • HP Smart Array P721m
  • HP Smart Array P731m
  • HP Smart Array P800
  • HP Smart Array P812
  • HP Smart Array P830
  • HP Smart Array P830i
  • HP Modular Smart Array 20 (MSA20)
  • HP Modular Smart Array 500 (MSA500)

that's thirty-six controllers btw. not me counting. okay maybe me counting πŸ™ˆ


🌈 SEE ALSO 🌈

also, the reading list for the lore girlies:

CISS Command Interface for SCSI-3 Support Open Specification, Version 1.04, Valence Number 1, Compaq Computer Corporation, 2000/11/27.

iykyk πŸ“š


πŸ’œ AUTHORS πŸ’œ

the ciss driver was written by Mike Smith <msmith@FreeBSD.org> 🫑

this manual page is based on his comments and was written by Tom Rhodes <trhodes@FreeBSD.org> ✍️


and that's the page!! sourced from the Debian build, dated January 26, 2012 β€” a whole classic, still serving looks. ty for reading my little kernel talk, go configure your array, ily, bye!! πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…

πŸ“¦ where this page comes from