AMR(4)

🌸 NAME 🌸

amr β€” the MegaRAID SCSI/ATA/SATA RAID driver, aka the girl who talks to your crusty-but-iconic RAID controller πŸ’…

This one lives in section 4 of the Kernel Interfaces Manual, so it's a driver page, not a command page. No cap.


✨ SYNOPSIS ✨

Okay so if you wanna bake this driver right into your kernel (main character move, honestly), you drop these lines into your kernel config file:

device pci
device scbus
device amr

Orrr if you'd rather load it as a module at boot time, no kernel rebuild needed, just put this line in loader.conf(5):

amr_load="YES"

Periodt. That's the whole vibe.


πŸ¦‹ DESCRIPTION πŸ¦‹

So like… amr is the driver that gives you support for LSI Logic MegaRAID SCSI, ATA and SATA RAID controllers, plus the legacy American Megatrends MegaRAID SCSI RAID controllers. And yes, that includes the models that got relabeled and sold by Dell and Hewlett-Packard β€” same hardware, different name badge, we love a rebrand moment πŸŽ€

⚠️ Important bestie warning: LSI MegaRAID SAS controllers are supported by mfi(4) and will not work with this driver. Do not come for amr with a SAS card, she will simply not answer the phone. πŸ’€

πŸ‘‘ HARDWARE πŸ‘‘

The controllers that amr is obsessed with and will actually support include:

  • MegaRAID SATA 150-4
  • MegaRAID SATA 150-6
  • MegaRAID SATA 300-4X
  • MegaRAID SATA 300-8X
  • MegaRAID SCSI 320-1E
  • MegaRAID SCSI 320-2E
  • MegaRAID SCSI 320-4E
  • MegaRAID SCSI 320-0X
  • MegaRAID SCSI 320-2X
  • MegaRAID SCSI 320-4X
  • MegaRAID SCSI 320-0
  • MegaRAID SCSI 320-1
  • MegaRAID SCSI 320-2
  • MegaRAID SCSI 320-4
  • MegaRAID Series 418
  • MegaRAID i4 133 RAID
  • MegaRAID Elite 1500 (Series 467)
  • MegaRAID Elite 1600 (Series 493)
  • MegaRAID Elite 1650 (Series 4xx)
  • MegaRAID Enterprise 1200 (Series 428)
  • MegaRAID Enterprise 1300 (Series 434)
  • MegaRAID Enterprise 1400 (Series 438)
  • MegaRAID Enterprise 1500 (Series 467)
  • MegaRAID Enterprise 1600 (Series 471)
  • MegaRAID Express 100 (Series 466WS)
  • MegaRAID Express 200 (Series 466)
  • MegaRAID Express 300 (Series 490)
  • MegaRAID Express 500 (Series 475)
  • Dell PERC
  • Dell PERC 2/SC
  • Dell PERC 2/DC
  • Dell PERC 3/DCL
  • Dell PERC 3/QC
  • Dell PERC 4/DC
  • Dell PERC 4/IM
  • Dell PERC 4/SC
  • Dell PERC 4/Di
  • Dell PERC 4e/DC
  • Dell PERC 4e/Di
  • Dell PERC 4e/Si
  • Dell PERC 4ei
  • HP NetRAID-1/Si
  • HP NetRAID-3/Si (D4943A)
  • HP Embedded NetRAID
  • Intel RAID Controller SRCS16
  • Intel RAID Controller SRCU42X

Look at that list. It's giving range. 🌈


😭 DIAGNOSTICS 😭

πŸ’œ Driver initialisation/shutdown phase πŸ’œ

These are the messages you might see while the driver is waking up (or going to sleep). Let's get into it:

amr%d: memory window not available
amr%d: I/O window not available

The PCI BIOS did not allocate resources necessary for the correct operation of the controller. So basically the driver cannot attach to this controller. Sad. 😭

amr%d: busmaster bit not set, enabling

The PCI BIOS did not enable busmaster DMA, which is required for the correct operation of the controller. But don't worry bestie β€” the driver has enabled this bit and initialisation will proceed. She fixed it herself, we love an independent queen. πŸ’…

amr%d: can't allocate register window
amr%d: can't allocate interrupt
amr%d: can't set up interrupt
amr%d: can't allocate parent DMA tag
amr%d: can't allocate buffer DMA tag
amr%d: can't allocate scatter/gather DMA tag
amr%d: can't allocate s/g table
amr%d: can't allocate mailbox tag
amr%d: can't allocate mailbox memory

A resource allocation error occurred while initialising the driver; initialisation has failed and the driver will not attach to this controller. It's giving "couldn't get a table at the restaurant." πŸ™ˆ

amr%d: can't obtain configuration data from controller
amr%d: can't obtain product data from controller

The driver was unable to obtain vital configuration data from the controller. Initialisation has failed and the driver will not attach to this controller.

amr%d: can't establish configuration hook
amr%d: can't scan controller for drives

The scan for logical drives managed by the controller failed. No drives will be attached. Not one. Zero. πŸ’€

amr%d: device_add_child failed
amr%d: bus_generic_attach returned %d

Creation of the logical drive instances failed; attachment of one or more logical drives may have been aborted.

amr%d: flushing cache...

The controller cache is being flushed prior to shutdown or detach. Just her doing her little goodbye ritual before she leaves. 🫢


πŸ“ Operational diagnostics πŸ“

Now for the stuff that happens once she's already up and running, iykyk:

amr%d: I/O beyond end of unit (%u,%d > %u)

A partitioning error or disk corruption has caused an I/O request beyond the end of the logical drive. This may also occur if FlexRAID Virtual Sizing is enabled and an I/O operation is attempted on a portion of the virtual drive beyond the actual capacity available.

amr%d: polled command timeout

An initialisation command timed out. The initialisation process may fail as a result. Not her finest moment ngl.

amr%d: bad slot %d completed

The controller reported completion of a command that the driver did not issue. This may result in data corruption, and suggests a hardware or firmware problem with the system or controller. Okay so THIS one is a real one, bestie. Take it seriously. 🚨

amr%d: I/O error - %x

An I/O error has occurred. That's it, that's the message. Short and ominous. πŸŽ€


🌈 SEE ALSO 🌈

cd(4), da(4), mfi(4), sa(4), scsi(4)

Go read those too, they're all part of the same friend group. πŸ¦‹


πŸŽ€ AUTHORS πŸŽ€

The amr driver was written by Mike Smith <msmith@FreeBSD.org>.

This manual page was written by Mike Smith <msmith@FreeBSD.org> and Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>.

Absolute icons, both of them. πŸ‘‘


okay so that's the whole page, bestie β€” this one's from the Debian crew, dated March 29, 2006, and it's the AMR(4) page from the Kernel Interfaces Manual. oldie but a goodie fr fr πŸ’–βœ¨

πŸ“¦ where this page comes from