SG_SES_MICROCODE(8) SG3_UTILS SG_SES_MICROCODE(8) (NAME) sg_ses_microcode - SCSI (SYNOPSIS) sg_ses_microcode [--bpw=CS] [--dry-run] [--ealsd] [--help] [--id=ID] [--in=FILE] [--length=LEN] [--mode=MO] [--non] [--offset=OFF] [--skip=SKIP] [--subenc=MS] [--tlength=TLEN] [--verbose] [--version] DEVICE (DESCRIPTION) () ( ) DEVICE () . SCSI ( SES) T10 . SCSI SEND DIAGNOSTIC RECEIVE DIAGNOSTIC RESULTS . ( dpage) . ( --mode=MO ) . () --in=FILE . SCSI ( SES-3) T10/2149-D http://www.t10.org . SES SES-2 ANSI INCITS 305-1998 ANSI INCITS 448-2008 . SES ( ) sg_ses . SCSI WRITE BUFFER SPC-4 sg_write_buffer . (OPTIONS) . -b, --bpw=CS CS . SEND DIAGNOSTIC . CS SEND DIAGNOSTIC . SEND DIAGNOSTIC . CS <<,act>> <<,activate>> . DEVICE <> [0xf] . -d, --dry-run SEND DIAGNOSTIC RECEIVE DIAGNOSTIC RESULTS . SCSI DEVICE . /dev/null ( ) . RECEIVE DIAGNOSTIC RESULTS ( ). . . -e, --ealsd SEND DIAGNOSTIC. SES <<>> RECEIVE DIAGNOSTIC RESULTS . RECEIVE DIAGNOSTIC RESULTS <> . RECEIVE DIAGNOSTIC RESULTS . --bpw=CS . 1.10 [20180112] ( RECEIVE DIAGNOSTIC RESULTS) . -h, --help . . -i, --id=ID BUFFER ID . ID () . -I, --in=FILE FILE SEND DIAGNOSTIC . FILE <<->> (stdin) (EOF) ( --raw). FILE --skip=SKIP . -l, --length=LEN LEN . ( --in=FILE --raw ) . --in=FILE --raw ( ) 0xff . -m, --mode=MO (MODE) . MO ( dmc_status ) . . << (MODES)>> . ( <<--mode=xxx>>) <<-h>> . -N, --non RECEIVE DIAGNOSTIC RESULTS . . -o, --offset=OFF BUFFER OFFSET . OFF () 2**32-1 . --bpw=CS ( stderr ). -s, --skip=SKIP --in=FILE FILE stdin. SKIP ( --length=LEN ) . ( ). -S, --subenc=SEID SEID . . -t, --tlength=TLEN TLEN ( ) . . TLEN LEN . TLEN SES DEVICE LEN ( ). ( ). -v, --verbose ( ). -V, --version . (MODES) MO . MO . dmc_status [0, 0x0] RECEIVE DIAGNOSTIC RESULTS . dmc_offs [6, 0x6] . dmc_offs_save [7, 0x7] . dmc_offs_defer [14, 0xe] . activate_mc [15, 0xf] . RECEIVE DIAGNOSTIC RESULTS DEVICE . dmc_status . dmc_status RECEIVE DIAGNOSTIC RESULTS . (WHEN THE DOWNLOAD FAILS) . <> ( ) . SCSI INQUIRY sg_inq . (power cycle) . dmc_offs_defer [0xe] activate_mc . . () : ( ) T10 . . . --non . --non . (NOTES) . . SCSI . ( SG_IO sg) sysfs 2.6 3 ( /sys/block/sda/queue/max_sectors_kb) . ( ) . <> --bpw=CS CS SEND DIAGNOSTIC . (sense key) ILLEGAL REQUEST asc/ascq 0x26,0x0 <> ( ) . --non . . . () SEND DIAGNOSTIC . . <<0x>> <<0X>> ( <> <>) . (EXAMPLES) / . : $ sg_ses_microcode /dev/sg3 Download microcode status diagnostic page: number of secondary sub-enclosures: 0 generation code: 0x0 sub-enclosure identifier: 0 [primary] download microcode status: No download microcode operation in progress [0x0] download microcode additional status: 0x0 download microcode maximum size: 1048576 bytes download microcode expected buffer id: 0x0 download microcode expected buffer id offset: 0 / . . . ( ) : sg_ses_microcode -b 4k -m dmc_offs_save -I firmware.bin /dev/sg4 . Extended Inquiry VPD . (EXIT STATUS) sg_ses_microcode . sg3_utils(8) . (AUTHORS) Douglas Gilbert. (REPORTING BUGS) . (COPYRIGHT) (C) 2014-2026 Douglas Gilbert BSD-2-Clause . . (SEE ALSO) sg_ses, sg_write_buffer, sg_inq(sg3_utils) sg3_utils-1.43 March 2026 SG_SES_MICROCODE(8)