- Saved searches
- Use saved searches to filter your results more quickly
- lolyinseo/samsung-nvme-firmware
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- режим работы Samsung NVMe SM951 в Ubuntu 16.4.1
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Collection of SAMSUNG nvme firmware
lolyinseo/samsung-nvme-firmware
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Collection of SAMSUNG NVMe SSD firmware
Almost all modern SSD drives support firmware upgrade via NVM Express commands. For linux you can use https://github.com/linux-nvme/nvme-cli
$ sudo nvme list Node SN Model Namespace Usage Format FW Rev ---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- -------- /dev/nvme0n1 S27FNY0HB04880 SAMSUNG MZVPV512HDGL-000H1 1 163.17 GB / 512.11 GB 512 B + 0 B BXW74H0Q
$ sudo nvme id-ctrl -H /dev/nvme0 NVME Identify Controller: vid : 0x144d ssvid : 0x144d sn : S27FNY0HB04880 mn : SAMSUNG MZVPV512HDGL-000H1 fr : BXW74H0Q rab : 2 ieee : 002538 cmic : 0 [2:2] : 0 PCI [1:1] : 0 Single Controller [0:0] : 0 Single Port mdts : 5 cntlid : 1 ver : 0 rtd3r : 0 rtd3e : 0 oaes : 0 [8:8] : 0 Namespace Attribute Changed Event Not Supported oacs : 0x7 [3:3] : 0 NS Management and Attachment Not Supported [2:2] : 0x1 FW Commit and Download Supported [1:1] : 0x1 Format NVM Supported [0:0] : 0x1 Sec. Send and Receive Supported acl : 7 aerl : 3 frmw : 0x6 [4:4] : 0 Firmware Activate Without Reset Not Supported [3:1] : 0x3 Number of Firmware Slots [0:0] : 0 Firmware Slot 1 Read/Write lpa : 0x1 [1:1] : 0 Command Effects Log Page Not Supported [0:0] : 0x1 SMART/Health Log Page per NS Supported elpe : 63 npss : 4 avscc : 0x1 [0:0] : 0x1 Admin Vendor Specific Commands uses NVMe Format apsta : 0x1 [0:0] : 0x1 Autonomous Power State Transitions Supported wctemp : 0 cctemp : 0 mtfa : 0 hmpre : 0 hmmin : 0 tnvmcap : 0 unvmcap : 0 rpmbs : 0 [31:24]: 0 Access Size [23:16]: 0 Total Size [5:3] : 0 Authentication Method [2:0] : 0 Number of RPMB Units sqes : 0x66 [7:4] : 0x6 Max SQ Entry Size (64) [3:0] : 0x6 Min SQ Entry Size (64) cqes : 0x44 [7:4] : 0x4 Max CQ Entry Size (16) [3:0] : 0x4 Min CQ Entry Size (16) nn : 1 oncs : 0x1f [5:5] : 0 Reservations Not Supported [4:4] : 0x1 Save and Select Supported [3:3] : 0x1 Write Zeroes Supported [2:2] : 0x1 Data Set Management Supported [1:1] : 0x1 Write Uncorrectable Supported [0:0] : 0x1 Compare Supported fuses : 0 [0:0] : 0 Fused Compare and Write Not Supported fna : 0 [2:2] : 0 Crypto Erase Not Supported as part of Secure Erase [1:1] : 0 Crypto Erase Applies to Single Namespace(s) [0:0] : 0 Format Applies to Single Namespace(s) vwc : 0x1 [0:0] : 0x1 Volatile Write Cache Present awun : 255 awupf : 0 nvscc : 1 [0:0] : 0x1 NVM Vendor Specific Commands uses NVMe Format acwu : 0 sgls : 0 [0:0] : 0 Scatter-Gather Lists Not Supported ps 0 : mp:9.00W operational enlat:5 exlat:5 rrt:0 rrl:0 rwt:0 rwl:0 idle_power:- active_power:- ps 1 : mp:4.00W operational enlat:30 exlat:30 rrt:1 rrl:1 rwt:1 rwl:1 idle_power:- active_power:- ps 2 : mp:3.00W operational enlat:100 exlat:100 rrt:2 rrl:2 rwt:2 rwl:2 idle_power:- active_power:- ps 3 : mp:0.0700W non-operational enlat:500 exlat:5000 rrt:3 rrl:3 rwt:3 rwl:3 idle_power:- active_power:- ps 4 : mp:0.0050W non-operational enlat:2000 exlat:22000 rrt:4 rrl:4 rwt:4 rwl:4 idle_power:- active_power:-
As we see the disk support Firmware Image Download command (0x1 FW Commit and Download Supported), has 3 Firmware Slots (0x3 Number of Firmware Slots) and 1st Firmware Slot in Read/Write mode(0 Firmware Slot 1 Read/Write) but I don’t recommend using it.. Try to use free Firmware Slot, do not overwrite the original firmware.
Lets download firmware to controller SRAM
$ sudo nvme fw-download -f firmware.bin /dev/nvme0 Firmware download success
Write firmware to free Firmware Slot 2 without activation
$ sudo nvme fw-commit -s 2 -a 0 /dev/nvme0 Success committing firmware action:0 slot:2
$ sudo nvme fw-commit -s 2 -a 2 /dev/nvme0 Success committing firmware action:2 slot:2
M | Z | X | X | X | X | X | X | X | X | X | X | — | X | X | X | X | X |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
##### | Type | Value |
---|---|---|
1 | Type | Memory (M) |
2 | Module Classification | Z: SSD |
3 | Form Factor | V: PCIeM.2 (22*80, PCIe x4), Q: PCIe2.5 inch 7mmt, 7: 2.5″ 7mmT SATA |
4 | Line-Up | L: Client/SV (VNAND 3bit MLC), K: Client/SV (VNAND 2bit MLC) |
5 | Controller | B: Phoenix, 2: Elpis, 7: Pascal, T: RFX, W: Polaris, 4: MARVELL |
6-8 | SSD Density | 256, 512, 1T0, 2T0 |
9 | NAND PKG & NAND Voltage | H: BGA (LF,HF) |
10 | Flash Generation | M: 1st Generation, A: 2nd, B: 3rd, C: 4th, D: 5th, E: 6th . |
11-12 | NAND Density | JR: 2T ODP 2CE (FBI), LS: 4T HDP 2CE(FBI), LA: 8T HDP 2CE(FBI), HQ: 1T QDP 4CE, JQ: 2T ODP 4CE, LR: 4T HDP 4CE, LB: 8T HDP 4CE |
14 | Default | 0 |
15 | HW revision | 0: No revision |
16 | Packaging type | 0: Bulk, A: General |
17-18 | Customer | 00: World wide (non-SED), 07: World wide (SED), H7 — HP SED, L7 — Lenovo SED, D7 — Dell SED, etc |
About
Collection of SAMSUNG nvme firmware
режим работы Samsung NVMe SM951 в Ubuntu 16.4.1
Прошу помощи по решению следующего вопроса: SAMSUNG MZHPV256HDGL-00000 в убунте работает под управлением драйвера ядра ahci вместо nvme.
Тестовое запускал под виндой и на ней все в порядке — определяется и работает полноценно, а тут такая петрушка.
Как привести в чувство (к работе под управлением драйвера ядра nvme)?
Вывод команд для анализа.
Система:
root@m1:/var/log# uname -a Linux RCR-Labs-r00t 4.7.5-040705-generic #201609240533 SMP Sat Sep 24 09:35:42 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
root@m1:/var/log# lsmod | grep nvm nvme 28672 0 nvme_core 28672 1 nvme
root@m1:/var/log# modinfo nvme filename: /lib/modules/4.7.5-040705-generic/kernel/drivers/nvme/host/nvme.ko version: 1.0 license: GPL author: Matthew Wilcox srcversion: BF9D78B02F25F7ABD49954C alias: pci:v0000106Bd00002001sv*sd*bc*sc*i* alias: pci:v*d*sv*sd*bc01sc08i02* alias: pci:v00008086d00005845sv*sd*bc*sc*i* alias: pci:v00008086d00000A54sv*sd*bc*sc*i* alias: pci:v00008086d00000A53sv*sd*bc*sc*i* alias: pci:v00008086d00000953sv*sd*bc*sc*i* depends: nvme-core intree: Y vermagic: 4.7.5-040705-generic SMP mod_unload modversions parm: use_threaded_interrupts:int parm: use_cmb_sqes:use controller’s memory buffer for I/O SQes (bool)
root@m1:/var/log# lspci -s 01:00.0 -v 01:00.0 SATA controller: Samsung Electronics Co Ltd Device a801 (rev 01) (prog-if 01 [AHCI 1.0]) Subsystem: Samsung Electronics Co Ltd Device a801 Physical Slot: 1 Flags: bus master, fast devsel, latency 0, IRQ 33 Memory at fb500000 (32-bit, non-prefetchable) [size=8K] Capabilities: [40] Power Management version 3 Capabilities: [50] MSI: Enable+ Count=8/8 Maskable- 64bit+ Capabilities: [70] Express Endpoint, MSI 00 Capabilities: [100] Advanced Error Reporting Capabilities: [148] Device Serial Number 00-00-00-00-00-00-00-00 Capabilities: [158] Power Budgeting Capabilities: [168] #19 Capabilities: [188] Latency Tolerance Reporting Capabilities: [190] L1 PM Substates Kernel driver in use: ahci Kernel modules: ahci
root@m1:/var/log# dmesg | grep -i samsung [ 6.497337] ata11.00: ATA-9: SAMSUNG MZHPV256HDGL-00000, BXW2500Q, max UDMA/133 [ 6.776935] scsi 10:0:0:0: Direct-Access ATA SAMSUNG MZHPV256 500Q PQ: 0 ANSI: 5
root@m1:/var/log# hdparm -i /dev/sdb /dev/sdb: Model=SAMSUNG MZHPV256HDGL-00000, FwRev=BXW2500Q, SerialNo=S1X2NYAG504698 Config= < Fixed >RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0 BuffType=unknown, BuffSize=unknown, MaxMultSect=1, MultSect=1 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=500118192 IORDY=on/off, tPIO=, tDMA= PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 AdvancedPM=no WriteCache=enabled Drive conforms to: unknown: ATA/ATAPI-2,3,4,5,6,7
* signifies the current active mode
root@m1:/var/log# hdparm -Tt /dev/sdb /dev/sdb: Timing cached reads: 8950 MB in 2.00 seconds = 4476.78 MB/sec Timing buffered disk reads: 3766 MB in 3.00 seconds = 1255.10 MB/sec
Для сравнения SATA SSD KINGSTON SKC300S37A480G:
root@m1:/var/log# hdparm -Tt /dev/sda /dev/sda: Timing cached reads: 9338 MB in 2.00 seconds = 4670.38 MB/sec Timing buffered disk reads: 1280 MB in 3.00 seconds = 426.07 MB/sec
root@m1:/var/log# hdparm -i /dev/sda /dev/sda: Model=KINGSTON SKC300S37A480G, FwRev=520ABBF0, SerialNo=50026B723502B1CE Config=< HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% > RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=937703088 IORDY=on/off, tPIO=, tDMA= PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 AdvancedPM=yes: unknown setting WriteCache=enabled Drive conforms to: unknown: ATA/ATAPI-2,3,4,5,6,7 * signifies the current active mode