SATA SSD Not Detected in Linux on ASUS ESC8000A-E12

Duc Bui
Duc Bui

Article ID: KB-SATA-ESC8000A-001
Product: ASUS ESC8000A-E12 GPU Server
OS: Ubuntu Server (HWE kernel), Rocky Linux 9.x, Rocky Linux 10.1+
Component: Marvell 88SE9230 SATA Controller


Summary

SATA SSDs connected to the ASUS ESC8000A-E12 are visible in BIOS but not detected by Linux (lsblk shows nothing). This is caused by two issues: the Marvell 88SE9230 SATA controller operating in RAID mode by default, and the stock kernel lacking the driver support needed to enumerate drives in that mode.


Symptoms

  • Drive appears in BIOS storage inventory
  • lsblk shows no SATA block device
  • dmesg shows repeated IDENTIFY failures on ata1/ata8 with err_mask=0x4
  • SATA link cycles: link up → qc timeout → failed to IDENTIFY → link up (repeating)
  • lspci identifies: Marvell Technology Group Ltd. 88SE9230 PCIe 2.0 x2 4-port SATA 6 Gb/s RAID Controller
  • Drive IS visible when connected via USB-to-SATA adapter

Root Cause

Two contributing factors:

  1. The Marvell 88SE9230 defaults to RAID mode. Linux has no native AHCI driver for this controller in RAID mode, preventing drive enumeration.
  2. The stock Ubuntu LTS kernel (non-HWE) and older Rocky kernels lack the updated Marvell driver needed to communicate with drives on this controller.

Note: BIOS detects the drive via a shallow PHY-layer handshake. Linux performs a full ATA IDENTIFY command sequence which fails when the controller is in RAID mode without proper driver support.


Resolution

Step 1: Enable Generic Mode in BIOS

Navigate to the following path in BIOS and set Generic Mode to Enabled:

Chipset
└── PCH Configuration
    └── PCH Debug Configuration
        └── SB SATA Debug Configuration
            └── Generic Mode = [Enabled]

Note: This switches the Marvell controller from proprietary RAID mode to generic AHCI-compatible mode, allowing Linux to enumerate attached drives.


Step 2: Verify

After reboot, confirm the drive is detected:

lsblk
dmesg | grep -iE "(ata|sata|ahci)" | tail -20

Expected result: drive appears in lsblk, dmesg shows AHCI mode and successful IDENTIFY with no err_mask errors.


Alternate Solution: Install Updated Kernel

If enabling Generic Mode is not an option, an updated kernel with improved Marvell driver support may resolve drive detection without the BIOS change.

Ubuntu — options:

  • Enable Generic Mode in BIOS (see primary resolution above)
  • Install using the Hardware Enablement kernel

Rocky Linux 10.1+ — Stock kernel is sufficient. No additional steps required.

Rocky Linux 9.x — Generic Mode must be enabled in BIOS (see primary resolution above). The stock kernel alone is not sufficient.


Diagnostic Commands

CommandPurpose
lsblkList block devices -- drive should appear if detected
dmesg | grep -i sataCheck SATA link status and errors
dmesg | grep -iE "(ata|error)" | tail -30Check for IDENTIFY failures and I/O errors
lspci | grep -i sataIdentify SATA controller and mode
lsmod | grep mvCheck if Marvell driver is loaded

Additional Notes

  • The ESC8000A-E12 is a GPU-dense server. NVMe is the recommended storage medium for OS drives on this platform.
  • The Marvell RAID_SW1/SW2 jumpers on the backplane control sideband signaling mode for bays 1-4 and 5-8 respectively. These are separate from the Generic Mode BIOS setting.
  • SATA/SAS support on bays 5-8 requires an ASUS PIKE II card connected via MSAS_HD2.
  • A drive that passes BIOS detection but fails Linux IDENTIFY is not necessarily dead -- test via USB-SATA adapter to isolate controller vs drive.

Exxact Corporation -- Internal Knowledge Base

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.