CISS(4)

πŸ“¦
version 15.1 Β· 4 versions
, in freebsd 14.5, freebsd 15.1

πŸ’… CISS(4) β€” the Kernel Interfaces Manual page, but make it make sense

okay so bestie, grab your iced coffee πŸ“ because this is the manual page for ciss, straight out of the Kernel Interfaces Manual (section 4, devs and drivers, iykyk). It's a lot of words but honestly? It's giving "niche but iconic." Let's go. ✨


🌸 NAME 🌸

ciss β€” the Common Interface for SCSI-3 Support driver. That's the whole name. That's the brand. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

So you wanna compile this driver into the kernel? Then bestie you're gonna place these exact lines in your kernel configuration file:

device scbus
device ciss

or, if loading it as a module at boot time is more your vibe, put this exact line in loader.conf(5):

ciss_load="YES"

Both are valid. Pick your fighter. πŸ’…


✨ DESCRIPTION ✨

So the ciss driver claims to provide a common interface between generic SCSI transports and intelligent host adapters β€” that's the pitch, and honestly it delivers.

It supports CISS as defined in the document entitled CISS Command Interface for SCSI-3 Support Open Specification, Version 1.04, Valence Number 1, dated 2000/11/27, which was produced by Compaq Computer Corporation. Iconic paperwork moment. πŸ“„

Here's the tea: we provide a shim layer between the ciss interface and CAM(4), offloading most of the queueing and being-a-disk chores onto CAM. Like, CAM does the heavy lifting, ciss just vibes and hands things over. 🫢

Entry to the driver happens via:

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

The Compaq ciss adapters require faked responses to get reasonable behavior out of them (not me making that up, that's literally in the spec, they're high-maintenance 😭). Plus, 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. Throwback behavior, honestly.

Currently ciss supports the β€œsimple” and β€œperformant” transport layer. Two layers. Both slay. ⭐

Non-disk devices (like internal DATs and devices attached to the external SCSI bus) are supported as normal CAM devices β€” provided that they're exported by the controller firmware and are not marked as being masked. Masked devices can be exposed by setting the hw.ciss.expose_hidden_physical tunable to non-zero at boot time (release them from the mask, periodt πŸ™ˆ).

Direct Access devices (like disk drives) are only exposed as pass(4) devices. Hot-insertion and removal of devices is supported, and notification messages will be reported to the console and logs. πŸ”₯

πŸ‘‘ PSA for anyone hitting the classic freeze: 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. Two options, both worth a shot. πŸ’€

🧚 HARDWARE 🧚

The ciss driver supports controllers implementing Common Interface for SCSI-3 Support Open Specification v1.04, including:

  • 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 E500
  • HP Smart Array H240
  • HP Smart Array H240ar
  • HP Smart Array H240nr
  • HP Smart Array H241
  • HP Smart Array H244br
  • HP Smart Array P212
  • HP Smart Array P220i
  • HP Smart Array P222
  • HP Smart Array P230i
  • HP Smart Array P240nr
  • HP Smart Array P244br
  • HP Smart Array P246br
  • 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 P440
  • HP Smart Array P440ar
  • HP Smart Array P441
  • HP Smart Array P530
  • HP Smart Array P531
  • HP Smart Array P542d
  • HP Smart Array P600
  • HP Smart Array P700m
  • HP Smart Array P712m
  • HP Smart Array P721m
  • HP Smart Array P731m
  • HP Smart Array P741m
  • HP Smart Array P800
  • HP Smart Array P812
  • HP Smart Array P822
  • HP Smart Array P830
  • HP Smart Array P830i
  • HP Smart Array P840
  • HP Smart Array P840ar
  • HP Smart Array P841
  • HP Modular Smart Array 20 (MSA20)
  • HP Modular Smart Array 500 (MSA500)

And there's more, bestie β€” additionally, several HP Smart Array controllers are supported by PCI subdevice ID only, because no model name is available for them:

0x3220, 0x3222, 0x3230, 0x3231, 0x3232, 0x3233, 0x3236, 0x3238, 0x3239, 0x323A, 0x323B, 0x323C, and 0x324B β€” all with PCI subvendor 0x103C.

(no name, no problem, they're still on the list πŸ’œ)


🌈 SEE ALSO 🌈

Go read these next, they're literally the friend group:

Also this absolute banger of a citation:

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

πŸŽ€ 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>. 🫢


<div align="center">🌸 🌸 🌸</div>

okay and that's the page!! πŸ’– this absolute legend of a doc came from the Debian crew, dated April 6, 2026 β€” shoutout to them, no cap. go configure your kernel, bestie, you got this. slay. βœ¨πŸ’…πŸ¦‹

πŸ“¦ where this page comes from