My Book Live Duo / reboot loop

A well-known problem seems to be returned :cry:: the My Book Live Duo cannot start with two disks.
See another thread.

These disks (ssd's) contain only the initial OpenWrt system, without any customization and additional partitions, so it's not the same error as in the other thread. The error message comes up within the disk initialization:

[    0.832746] sata-dwc 4bffd1800.sata: sata_dwc_clear_dmacr DMA protocol RX and TX DMA not pending tag=0x20 pending=-813033440 dmacr: 0x00000006                                                                                                                       
[    0.845579] BUG: Kernel NULL pointer dereference at 0x00000000
[    0.851384] Faulting instruction address: 0xc03fa570
[    0.856328] Oops: Kernel access of bad area, sig: 11 [#1]```
full boot log via serial console
=> reset

U-Boot 2009.08-svn54115 (Nov 15 2011 - 10:54:56), Build: 0.0.12

CPU:   AMCC PowerPC APM82181 Rev. E at 800 MHz (PLB=200, OPB=100, EBC=100 MHz)
       Security support
       Bootstrap Option E - Boot ROM Location NOR/SRAM (8 bits)
       32 kB I-Cache 32 kB D-Cache
Board: Apollo-3G - APM82181 Board, 2*SATA, 1*USB
I2C:   ready
DRAM:  Auto calibration 256 MB
FLASH: 512 kB
DTT:   1 FAILED INIT
Net:   PHY EC1 Register: 0x2c8c
ppc_4xx_eth0

Type run flash_nfs to mount root filesystem over NFS

p=============================================================================q
|:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|:::::::::::WWWWWWWWW::::WWWWWWW::::::::WWWWWWW::DDDDDDDDDDDDDDDDD::::::::::::|
|:::::::::::WWWWWWWW::::WWWWWWWW:::::::WWWWWWW::DDDDDDDDDDDDDDDDDDDD::::::::::|
|:::::::::::WWWWWWWW:::WWWWWWWWW::::::WWWWWWW::DDDDDDDDDDDDDDDDDDDDDD:::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::DDDDDDDDDDD::::::::|
|:::::::::::WWWWWWW:::WWWWWWWWWW::::WWWWWWW::DDDDDDDDD:::::::DDDDDDDDD::::::::|
|:::::::::::WWWWWWW::WWWWWWWWWWW:::WWWWWWW::DDDDDDDDD::::::::DDDDDDDDD::::::::|
|:::::::::::WWWWWW::WWWWWW::WWWWW:WWWWWWW::DDDDDDDDDD:::::::DDDDDDDDDD::::::::|
|:::::::::::WWWWWWWWWWWWW:::WWWWWWWWWWWW::DDDDDDDDDD::::::DDDDDDDDDDD:::::::::|
|:::::::::::WWWWWWWWWWWW::::WWWWWWWWWWW::DDDDDDDDDDD:::DDDDDDDDDDDDD::::::::::|
|:::::::::::WWWWWWWWWWW:::::WWWWWWWWWW::DDDDDDDDDDDDDDDDDDDDDDDDDD::::::::::::|
|:::::::::::WWWWWWWWWW::::::WWWWWWWWW::DDDDDDDDDDDDDDDDDDDDDDDDD::::::::::::::|
|:::::::::::WWWWWWWWW:::::::WWWWWWWW::DDDDDDDDDDDDDDDDDDDDDDDD::::::::::::::::|
|:::::::::::WWWWWWWW::::::::WWWWWWW::DDDDDDDDDDDDDDDDDDDD:::::::::::::::::::::|
|:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
b=============================================================================d  
Hit any key to stop autoboot:  0 
USB:    OTG-Controller ID(0x4F54) Version(0x290A) 
Err detect usb time out hostport.d32 0x00001000 
0 USB Device(s) found
       scanning bus for storage devices... 
0 Storage Device(s) found
** Block device usb 0 not supported
Board is not configured for test. Do normal boot.
----- Checking Boot Partitions -----
SATA DWC initialization 0
init: Waiting for device...
sata_dwc: Device found
scan: Waiting for device...
SATA DWC initialization 1
init: Waiting for device...
sata_dwc: Device found
scan: Waiting for device...
supports DRM functions and may not be fully accessable.
** Bad partition 1 **
SATA DWC initialization 0
init: Waiting for device...
sata_dwc: Device found
scan: Waiting for device...
SATA DWC initialization 1
init: Waiting for device...
sata_dwc: Device found
scan: Waiting for device...
supports DRM functions and may not be fully accessable.
Loading file "/boot/boot.scr" from sata device 0:1 (gpt1)
622 bytes read
0:1
## Executing script at 00100000
SATA DWC initialization 0
init: Waiting for device...
sata_dwc: Device found
scan: Waiting for device...
SATA DWC initialization 1
init: Waiting for device...
sata_dwc: Device found
scan: Waiting for device...
supports DRM functions and may not be fully accessable.
Loading file "/boot/uImage" from sata device 0:1 (gpt1)
3732103 bytes read
Loading file "/boot/apollo3g.dtb" from sata device 0:1 (gpt1)
16384 bytes read
Loaded part 1
## Booting kernel from Legacy Image at 01000000 ...
   Image Name:   POWERPC OpenWrt Linux-5.4.179
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    3732039 Bytes =  3.6 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 01800000
   Booting using the fdt blob at 0x1800000
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 00ff9000, end 00ffffff ... OK
[    0.000000] printk: bootconsole [udbg0] enabled
[    0.000000] Linux version 5.4.179 (builder@buildhost) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r16495-bf0c965af0)) #0 Wed Feb 16 20:29:10 2022                                                                                                                          
[    0.000000] Using PowerPC 44x Platform machine description
[    0.000000] -----------------------------------------------------
[    0.000000] phys_mem_size     = 0x10000000
[    0.000000] dcache_bsize      = 0x20
[    0.000000] icache_bsize      = 0x20
[    0.000000] cpu_features      = 0x0000000000000120
[    0.000000]   possible        = 0x0000000040000120
[    0.000000]   always          = 0x0000000000000120
[    0.000000] cpu_user_features = 0x8c008000 0x00000000
[    0.000000] mmu_features      = 0x00000008
[    0.000000] -----------------------------------------------------
[    0.000000] Top of RAM: 0x10000000, Total RAM: 0x10000000
[    0.000000] Memory hole size: 0MB
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000] On node 0 totalpages: 65536
[    0.000000]   Normal zone: 576 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 65536 pages, LIFO batch:15
[    0.000000] MMU: Allocated 1088 bytes of context maps for 255 contexts
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64960
[    0.000000] Kernel command line: root=/dev/sda2 rw rootfstype=squashfs,ext4 console=ttyS0,115200
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 251688K/262144K available (6440K kernel code, 240K rwdata, 744K rodata, 180K init, 229K bss, 10456K reserved, 0K cma-reserved)                                                                                                                   
[    0.000000] Kernel virtual memory layout:
[    0.000000]   * 0xfffdf000..0xfffff000  : fixmap
[    0.000000]   * 0xd1000000..0xfffdf000  : vmalloc & ioremap
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 512, nr_irqs: 512, preallocated irqs: 16
[    0.000000] UIC0 (32 IRQ sources) at DCR 0xc0
[    0.000000] UIC1 (32 IRQ sources) at DCR 0xd0
[    0.000000] UIC2 (32 IRQ sources) at DCR 0xe0
[    0.000000] UIC3 (32 IRQ sources) at DCR 0xf0
[    0.000000] random: get_random_u32 called from 0xc07069e4 with crng_init=0
[    0.000000] time_init: decrementer frequency = 800.000008 MHz
[    0.000000] time_init: processor frequency   = 800.000008 MHz
[    0.000017] clocksource: timebase: mask: 0xffffffffffffffff max_cycles: 0xb881274fa3, max_idle_ns: 440795210636 ns
[    0.010285] clocksource: timebase mult[1400000] shift[24] registered
[    0.016605] clockevent: decrementer mult[ccccccef] shift[32] cpu[0]
[    0.022896] pid_max: default: 32768 minimum: 301
[    0.027563] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.034803] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.046910] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.056588] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.066001] NET: Registered protocol family 16
[    0.070953] DMA: preallocated 256 KiB pool for atomic allocations
[    0.078995] 256k L2-cache enabled
[    0.082339] PCIE0: Port disabled via device-tree
[    0.087538] PCI: Probing PCI hardware
[    0.105122] SCSI subsystem initialized
[    0.109662] libata version 3.00 loaded.
[    0.115382] clocksource: Switched to clocksource timebase
[    0.121432] thermal_sys: Registered thermal governor 'step_wise'
[    0.121642] NET: Registered protocol family 2
[    0.131988] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.139647] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.147931] TCP established hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.155523] TCP bind hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.162514] TCP: Hash tables configured (established 2048 bind 2048)
[    0.168885] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.175332] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.182360] NET: Registered protocol family 1
[    0.186667] PCI: CLS 0 bytes, default 32
[    0.194341] dw_dmac 4bffd0800.dma: DesignWare DMA Controller, 2 channels
[    0.206099] workingset: timestamp_bits=14 max_order=16 bucket_order=2
[    0.217820] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.286343] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.294708] GPIO line 473 (Enable Reset Button, disable NOR) hogged as output/low
[    0.302931] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.311361] printk: console [ttyS0] disabled
[    0.315628] 4ef600300.serial: ttyS0 at MMIO 0x4ef600300 (irq = 33, base_baud = 462962) is a TI16750
[    0.324600] printk: console [ttyS0] enabled
[    0.324600] printk: console [ttyS0] enabled
[    0.332872] printk: bootconsole [udbg0] disabled
[    0.332872] printk: bootconsole [udbg0] disabled
[    0.346159] loop: module loaded
[    0.346159] loop: module loaded
[    0.349336] Loading iSCSI transport class v2.0-870.
[    0.360507] sata-dwc 4bffd1000.sata: id 0, controller version 1.91
[    0.367922] scsi host0: sata-dwc
[    0.371515] ata1: SATA max UDMA/133 irq 40
[    0.375759] sata-dwc 4bffd1800.sata: id 0, controller version 1.91
[    0.383203] scsi host1: sata-dwc
[    0.386690] ata2: SATA max UDMA/133 irq 41
[    0.391609] PPC 4xx OCP EMAC driver, version 3.54
[    0.396738] MAL v2 /plb/mcmal, 1 TX channels, 1 RX channels
[    0.402507] RGMII /plb/opb/emac-rgmii@ef601500 initialized with MDIO support
[    0.409703] TAH /plb/opb/emac-tah@ef601350 initialized
[    0.415144] /plb/opb/emac-rgmii@ef601500: input 0 in rgmii mode
[    0.425798] eth0: EMAC-0 /plb/opb/ethernet@ef600c00, MAC 00:90:a9:3d:80:c1
[    0.432703] eth0: found Broadcom BCM50610 PHY (0x01)
[    0.437756] i2c /dev entries driver
[    0.441346] booke_wdt: powerpc book-e watchdog driver loaded
[    0.461637] NET: Registered protocol family 10
[    0.467870] Segment Routing with IPv6
[    0.471629] NET: Registered protocol family 17
[    0.476108] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.                                                                                                                     
[    0.489023] 8021q: 802.1Q VLAN Support v1.8
[    0.493269] drmem: No dynamic reconfiguration memory found
[    0.733642] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    0.739971] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    0.746446] ata1.00: ATA-9: Samsung SSD 840 EVO 250GB, EXT0BB0Q, max UDMA/133
[    0.753578] ata1.00: 488397168 sectors, multi 16: LBA48 NCQ (depth 1/32)
[    0.760595] ata2.00: supports DRM functions and may not be fully accessible
[    0.767547] ata2.00: ATA-9: Samsung SSD 840 EVO 250GB, EXT0DB6Q, max UDMA/133
[    0.774661] ata2.00: 488397168 sectors, multi 1: LBA48 NCQ (depth 1/32)
[    0.781466] ata1.00: configured for UDMA/133
[    0.786174] scsi 0:0:0:0: Direct-Access     ATA      Samsung SSD 840  BB0Q PQ: 0 ANSI: 5
[    0.795524] sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/233 GiB)
[    0.803547] sd 0:0:0:0: [sda] Write Protect is off
[    0.808352] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    0.813761] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    0.825329] ata2.00: supports DRM functions and may not be fully accessible
[    0.832746] sata-dwc 4bffd1800.sata: sata_dwc_clear_dmacr DMA protocol RX and TX DMA not pending tag=0x20 pending=-813033440 dmacr: 0x00000006                                                                                                                       
[    0.845579] BUG: Kernel NULL pointer dereference at 0x00000000
[    0.851384] Faulting instruction address: 0xc03fa570
[    0.856328] Oops: Kernel access of bad area, sig: 11 [#1]
[    0.861702] BE PAGE_SIZE=4K PowerPC 44x Platform
[    0.866295] Modules linked in:
[    0.869342] CPU: 0 PID: 393 Comm: scsi_eh_1 Not tainted 5.4.179 #0
[    0.875500] NIP:  c03fa570 LR: c03df86c CTR: c03fa424
[    0.880528] REGS: cfb45950 TRAP: 0300   Not tainted  (5.4.179)
[    0.886331] MSR:  00021000 <CE,ME>  CR: 48000222  XER: 00000000
[    0.892233] DEAR: 00000000 ESR: 00000000 
[    0.892233] GPR00: c03df86c cfb45a08 cfb4e640 00000000 0f962bc0 fcb10000 00000002 00000010 
[    0.892233] GPR08: 00000002 00000004 00000010 bffd1c00 ffffffff 00000000 00000001 00000047 
[    0.892233] GPR16: fafbfcfd 00000000 00000000 00029000 cfb45b18 cf9617b0 00000000 00000000 
[    0.892233] GPR24: 00000000 cf961bc0 cf973200 00000000 cf960000 00000000 cf975000 cf9617b0 
[    0.929453] Call Trace:
[    0.931894] [cfb45a08] [c003f4f8] 0xc003f4f8 (unreliable)
[    0.937275] [cfb45a78] [c03df86c] 0xc03df86c
[    0.941525] [cfb45a98] [c03dfbc0] 0xc03dfbc0
[    0.945776] [cfb45b08] [c03dff1c] 0xc03dff1c
[    0.950027] [cfb45b58] [c03e0180] 0xc03e0180
[    0.954278] [cfb45bc8] [c03e02d0] 0xc03e02d0
[    0.958529] [cfb45be8] [c03e1a48] 0xc03e1a48
[    0.962780] [cfb45cb8] [c03e2c0c] 0xc03e2c0c
[    0.967031] [cfb45ce8] [c03e3338] 0xc03e3338
[    0.971281] [cfb45d68] [c03efef4] 0xc03efef4
[    0.975532] [cfb45d88] [c03f10f8] 0xc03f10f8
[    0.979783] [cfb45e18] [c03f1c0c] 0xc03f1c0c
[    0.984034] [cfb45e48] [c03f16e0] 0xc03f16e0
[    0.988285] [cfb45e78] [c03f1b80] 0xc03f1b80
[    0.992536] [cfb45ea8] [c03bfdf8] 0xc03bfdf8
[    0.996787] [cfb45ef8] [c00441a0] 0xc00441a0
[    1.001037] [cfb45f38] [c000c22c] 0xc000c22c
[    1.005286] Instruction dump:
[    1.008244] 419e00f4 91410028 9161002c 99210048 39200004 807e0104 39400010 90c10018 
[    1.015957] 91410038 9141003c 91210030 91210034 <81230000> 81290098 2f890000 419e0018 
[    1.023849] ---[ end trace 698ed21311bb4ec8 ]---
[    1.028441] 
[    2.029963] Kernel panic - not syncing: Fatal exception
[    2.035170] Rebooting in 1 seconds..


U-Boot 2009.08-svn54115 (Nov 15 2011 - 10:54:56), Build: 0.0.12

Could anybody help, please?

Judging from the kernel version this is OpenWrt 21.02.2, correct?

A little bit more empirical research is in order. I don't have an MBL set up with serial at the moment, so you could lead the process with a bit of experimentation:

  • To rule out the disks: Does this also happen if you only use one disk? What if you only use the other disk? What if you swap the disks in the bays?
  • Does this also happen with 21.02.1 or 21.02.0? With 19.07.x?

Other than a small change that fixes USB on the MBL Duo, I see no changes to the apm821xx target between 21.02.1 and 21.02.2. I am not running 21.02 on my in-use MBLs yet, but I remember I tried some version of 21.02 (I believe 21.02.1) to debug the USB issue and it was booting fine then.

Yes, it is 21.02.2.
It boots up with the first disk (A) alone in any slots, but cannot start with the other (B) in any slots (not even alone).
It made me think the error is with disk B. I've reflashed both disks several times, and from a PC (with USB-SATA adapter) everything looks right.
However, there is an error message in the boot log: "** Bad partition 1 **", so there must be some problem on disk B.

I'll continue experimenting tomorrow, my brain is no longer working today...

That's not an error per se. That's the u-boot script indiscrimately trying to load the boot script (yes, two different things) from drive 1 (in the left handside bay), partition 1. If it fails, for example if there is not even a disk in drive bay 1, it yells "Bad partition 1" ... And then happily continues to try to do the same in the other bay, 0, which is the right handside.

Yes, we fixed the drive bay order in the boot script, this is one step higher in the bootloader that is still trying the "wrong" order (but without consequence in this case.)

That would indeed indicate that there's something not right with the disk, or the MBL for some reason really doesn't like it.

Actually, the U-Boot looks for the boot script in this order (printenv command in console):

load_boot_ap2nc=echo ----- Checking Boot Partitions -----;if run lbf1;then echo 1:1;elif run lbf2;then echo 0:1;elif run lbf3;then echo 1:2;elif run lbf4;then echo 0:2; fi                                                                                             
lbf1=sata init; ext2load sata 1:1 100000 /boot/boot.scr
lbf2=sata init; ext2load sata 0:1 100000 /boot/boot.scr
lbf3=sata init; ext2load sata 1:2 100000 /boot/boot.scr
lbf4=sata init; ext2load sata 0:2 100000 /boot/boot.scr

But this process doesn't send "Bad partition" message, just simple goes on until finds the boot.scr file.

No, sorry, it doesn't simply carry on, at least not silently: ext2load does yell "Bad partition" if it fails to find that partition, for whatever reason. Usually if there's not even a disk at that address, but probably also if there's something wrong with the disk.

This is on an empty MBL Duo enclosure (yes, I hooked up my serial now):

=> ext2load sata 1:1 100000 /boot/boot.scr
** Bad partition 1 **

(And yes, that heap of u-boot scripts is very convoluted.)

New day, new tests... :wink:

I have three SSD's: two 840 EVO (A and B), and one EVO 850 (C). Two of them (B and C) are not able to boot at all, neither alone nor in any combinations.

Test cases I've tried
  • A in slot 0, B in slot 1 --> failure
  • B in slot 0, A in slot 1 --> failure
  • A in slot 0 alone --> success
  • A in slot 1 alone --> success
  • B in slot 0 alone --> failure
  • B in slot 1 alone --> failure
  • A in slot 0 , C in slot 1 --> failure
  • C in slot 0 alone --> failure
  • C in slot 1 alone --> failure

As soon as I started using two traditional HDD's everything went smoothly. SSD's are not the friend of MBLD.

Checking the logs, I could find the difference: disks with DRM support will definitely fail to boot. No matter which slot this disk is in, and no matter if alone or in pair.
"supports DRM functions and may not be fully accessable."

See similar error here and here.

Thanks for the feedback. So it isn't a "bug" with OpenWrt, it's the disks after all. That's a bit of a relief, for a hot second I was worried that another breaking bug crept into the MBL support. Alhough it is of course rather unsatisfactory for you and anyone else who wants to use SSDs. :unamused:

I'm actually not sure what can be done about this. It may be an issue with the kernel, its configuration as built, the SATA driver, or the SATA controller. Someone much more knowledgeable than me will have to judge that.

That was a bug with the SATA driver, but a much more fundamental one, and AFAICT unrelated to this issue.

Yes, I know that was a different issue. I just linked it because the very same error came up during the investigation of that problem too.

What I noticed: The 840 EVOs have different firmwares. I know that putting the 2,5" drives into the slots is a pain but can you upgrade the older one?

Maybe this helps because... this message:

[    0.832746] sata-dwc 4bffd1800.sata: sata_dwc_clear_dmacr DMA protocol RX and TX DMA not pending tag=0x20 pending=-813033440 dmacr: 0x00000006         

... can only show up in an "hardware is confused" (error-)path:

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/ata/sata_dwc_460ex.c?h=v5.10.105#n731

	/*
	 * This should not happen, it indicates the driver is out of
	 * sync.  If it does happen, clear dmacr anyway.
	 */
	dev_err(hsdev->dev,
		"%s DMA protocol RX and TX DMA not pending tag=0x%02x pending=%d dmacr: 0x%08x\n",
		__func__, tag, hsdevp->dma_pending[tag], dmacr);
	sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr,
			SATA_DWC_DMACR_TXRXCH_CLEAR);

That negative "pending" shows that something is amiss. This looks like a memory corruption has happend and that's what is causing the MBL to crash.

I've checked the logs, and found that the 840 EVO disk with the older firmware (EXT0BB0Q) is booting fine, while the newer one (EXT0DB6Q) fails. The same is true for the 850 EVO, it has the latest firmware (EMT02B6Q), and it can't boot.

I'll try to find a way to upgrade the only one bootable disk to the latest firmware, but I've doubts it would help...

EDIT 1: Unfortunately I cannot upgrade the SSD's firmware.
The firmware from Samsung comes as a bootable ISO file (isolinux+FreeDos+upgrade software), but none of my machines supports legacy mode boot (only UEFI). Probably there is a way to make GRUB boot the ISO file (or the FreeDos part), but I don't know how to do that. :cry:

EDIT 2: Anyway, I don't want to use SSD's in MBLD, so it's not that important to solve... I just grabbed the first SATA drives around, and thought those could serve to test self-build openwrt systems, as suggested by takimata in the other thread. But no problem, I'll do that on HDD's.

1 Like

This is valuable information! Thank you. I think I was able to reproduce the issue locally (I had a 840 EVO 120G in an old laptop) and track it down. Apparently the 840 EVO with that firmware doesn't like ATA_CMD_READ_LOG_DMA_EXT. Whenever this is due to the circumstance or because of some other reason I don't know.

At least this is enough to get the device+sata to behave:

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 0c854aebfe0b..819799cb788d 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4015,6 +4015,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
 	{ "Crucial_CT*MX100*",		"MU01",	ATA_HORKAGE_NO_NCQ_TRIM |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 	{ "Samsung SSD 840*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
+						ATA_HORKAGE_NO_DMA_LOG |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 	{ "Samsung SSD 850*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },

But the crash itself is interesting. This will also need to be fixed, the driver shouldn't cause a crash like that.
I know that it's because hsdev->chan is NULL in dma_dwc_xfer_setup() but this shouldn't happen?! Unless something is really screwed up in the libata and it issues DMAs without telling the driver to setup DMA channels first?!

So this could be either a issue with sata_dwc_460ex or libata and/or the EVO.

(Regardless of how this shakes out: If you give me your name + email. I could include you as the Reporter in the patch I'm going to send to upstream.)

(I wonder if you could dump the drive information of both of your EVOs. I'm looking if there's a good way to do that with OpenWrt. It would be interesting to know if the older firmware sets the capability bits for supporting the READ_LOG_DMA or not.)

1 Like

@ticerex: The patch for the sata_dwc_460ex issue' (this one has a really good story attached!)
I'm planning to post both. (If you don't want your real name/mail published, please let me know.
so I can post the patches with just your forum nick.)

diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c
index bec33d781ae0..061b27584667 100644
--- a/drivers/ata/sata_dwc_460ex.c
+++ b/drivers/ata/sata_dwc_460ex.c
@@ -137,7 +137,7 @@ struct sata_dwc_device {
 #endif
 };
 
-#define SATA_DWC_QCMD_MAX      32
+#define SATA_DWC_QCMD_MAX      33
 
 struct sata_dwc_device_port {
        struct sata_dwc_device  *hsdev;

this now fixes the boot (even without the Samsung patch from above... But with some logspam)

[    4.176751] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    4.183090] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    4.191736] ata2.00: supports DRM functions and may not be fully accessible
[    4.198688] ata2.00: ATA-9: Samsung SSD 840 EVO 120GB, EXT0DB6Q, max UDMA/133
[    4.205796] ata2.00: 234441648 sectors, multi 1: LBA48 NCQ (depth 1/32)
[    4.212699] ata1.00: ATA-8: Hitachi HDT721010SLA360, ST6OA3AA, max UDMA/133
[    4.219709] ata1.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 1/32)
[    4.229149] ata1.00: configured for UDMA/133
[    4.233850] ata2.00: supports DRM functions and may not be fully accessible
[    4.241108] scsi 0:0:0:0: Direct-Access     ATA      Hitachi HDT72101 A3AA PQ: 0 ANSI: 5
[    4.249178] sata-dwc 4bffd1800.sata: sata_dwc_isr: DMA not pending intpr=0x80000080 status=0x00000050 pending=0
[    4.249219] sata-dwc 4bffd1800.sata: sata_dwc_clear_dmacr DMA protocol RX and TX DMA not pending tag=0x20 pending=0 dmacr: 0x00000006
[    4.249227] sata-dwc 4bffd1800.sata: DMA not pending tag=0x20 pending=0
[    4.249235] sata-dwc 4bffd1800.sata: sata_dwc_dma_xfer_complete DMA protocol RX and TX DMA not pending dmacr: 0x00000004
[    4.249241] sata-dwc 4bffd1800.sata: RX DMA PENDING
[    4.293645] sata-dwc 4bffd1800.sata: sata_dwc_isr: DMA not pending intpr=0x80000080 status=0x00000050 pending=0
[    4.303713] sata-dwc 4bffd1800.sata: sata_dwc_clear_dmacr DMA protocol RX and TX DMA not pending tag=0x20 pending=0 dmacr: 0x00000006
[    4.315655] sata-dwc 4bffd1800.sata: DMA not pending tag=0x20 pending=0
[    4.322239] sata-dwc 4bffd1800.sata: sata_dwc_dma_xfer_complete DMA protocol RX and TX DMA not pending dmacr: 0x00000004
[    4.333055] sata-dwc 4bffd1800.sata: RX DMA PENDING
[    4.338030] sata-dwc 4bffd1800.sata: sata_dwc_isr: DMA not pending intpr=0x80000080 status=0x00000050 pending=0
[    4.348096] sata-dwc 4bffd1800.sata: sata_dwc_clear_dmacr DMA protocol RX and TX DMA not pending tag=0x20 pending=0 dmacr: 0x00000006
[    4.360039] sata-dwc 4bffd1800.sata: DMA not pending tag=0x20 pending=0
[    4.366623] sata-dwc 4bffd1800.sata: sata_dwc_dma_xfer_complete DMA protocol RX and TX DMA not pending dmacr: 0x00000004
[    4.377438] sata-dwc 4bffd1800.sata: RX DMA PENDING
[    4.382332] ata2.00: configured for UDMA/133
[    4.387700] scsi 1:0:0:0: Direct-Access     ATA      Samsung SSD 840  DB6Q PQ: 0 ANSI: 5
[    4.396056] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[    4.404157] sd 0:0:0:0: [sda] Write Protect is off
[    4.408958] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    4.415210] sd 1:0:0:0: [sdb] 234441648 512-byte logical blocks: (120 GB/112 GiB)
[    4.423029] sd 1:0:0:0: [sdb] Write Protect is off
[    4.427832] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    4.432991] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    4.442093] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    4.457632]  sdb: sdb1 sdb2 sdb3 sdb4 sdb5
1 Like

Please use my forum nick.

I have hdparm and smartmontools installed on MBLD, but I couldn't find any information related to DMA.

yea, linux-ide started to argue about that.

The maintainer thinks, I should drop the Reported-By. The reviewer wants to keep it.
https://marc.info/?l=linux-ide&m=164761303922854&w=2

Let's see how this plays out.

"DMA" is kind of a strange term when it comes to SATA SSDs. SATA had sort of inherited this all as part of being "(E)IDE"'s successor, legacy... or technical debt bearer.

You mentioned hdparm. You can find dump the information with "-i".
(here's an example from a Samsung 870 EVO 1 TB)

# hdparm -I /dev/sda
ATA device, with non-removable media
        Model Number:       Samsung SSD 870 EVO 1TB                 
        Firmware Revision:  SVT01B6Q
        Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
        Used: unknown (minor revision code 0x005e) 
        Supported: 11 8 7 6 5 
        Likely used: 11
Configuration:
        Logical         max     current   
        cylinders       16383   16383 <----- this is the ghost of IDE (disc geometry for SSDs)
        heads           16      16
        sectors/track   63      63
        --
        CHS current addressable sectors:    16514064
        LBA    user addressable sectors:   268435455
        LBA48  user addressable sectors:  1953525168
        Logical  Sector size:                   512 bytes
        Physical Sector size:                   512 bytes
        Logical Sector-0 offset:                  0 bytes
        device size with M = 1024*1024:      953869 MBytes
        device size with M = 1000*1000:     1000204 MBytes (1000 GB)
        cache/buffer size  = unknown
        Form Factor: 2.5 inch
        Nominal Media Rotation Rate: Solid State Device
Capabilities:
        LBA, IORDY(can be disabled)
        Queue depth: 32
        Standby timer values: spec'd by Standard, no device specific minimum
        R/W multiple sector transfer: Max = 1   Current = 1
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
             ^^ here are the "old DMA modes) <--------------------------
        PIO: pio0 pio1 pio2 pio3 pio4 
            ^^ here are more IDE Ghosts
Commands/features:
        Enabled Supported:
           *    SMART feature set
                Security Mode feature set
           *    Power Management feature set
           *    Write cache
           *    Look-ahead
           *    Host Protected Area feature set
           *    WRITE_BUFFER command
           *    READ_BUFFER command
           *    NOP cmd
           *    DOWNLOAD_MICROCODE
                SET_MAX security extension
           *    48-bit Address feature set
           *    Device Configuration Overlay feature set
           *    Mandatory FLUSH_CACHE
           *    FLUSH_CACHE_EXT
           *    SMART error logging
           *    SMART self-test
           *    General Purpose Logging feature set
           *    WRITE_{DMA|MULTIPLE}_FUA_EXT
           *    64-bit World wide name
                Write-Read-Verify feature set
           *    WRITE_UNCORRECTABLE_EXT command
           *    {READ,WRITE}_DMA_EXT_GPL commands
           *    Segmented DOWNLOAD_MICROCODE
           *    Gen1 signaling speed (1.5Gb/s)
           *    Gen2 signaling speed (3.0Gb/s)
           *    Gen3 signaling speed (6.0Gb/s)
           *    Native Command Queueing (NCQ)
           *    Phy event counters
           *    READ_LOG_DMA_EXT equivalent to READ_LOG_EXT <=== And this is the Feature that crashed your MBLD
           *    DMA Setup Auto-Activate optimization
                Device-initiated interface power management
           *    Asynchronous notification (eg. media change)
           *    Software settings preservation
                Device Sleep (DEVSLP)
                unknown 78[10]
           *    SMART Command Transport (SCT) feature set
           *    SCT Write Same (AC2)
           *    SCT Error Recovery Control (AC3)
           *    SCT Features Control (AC4)
           *    SCT Data Tables (AC5)
           *    Device encrypts all user data
           *    DOWNLOAD MICROCODE DMA command
           *    SET MAX SETPASSWORD/UNLOCK DMA commands
           *    WRITE BUFFER DMA command
           *    READ BUFFER DMA command
           *    Data Set Management TRIM supported (limit 8 blocks)
           *    Deterministic read ZEROs after TRIM
[...]

(This is for fun. If you have the 840 EVOs it would be cool if you could dump the information regarding the "READ_LOG_DMA_EXT" thing. Though this is not required.)

@ticerex

I've opened up a issue on OpenWrt's github with your information.

(Reason for this is that, BugLink tags that's used in the patch is linked to bugtracker.)

Here are the hdparm results for the SSD's:

Samsung SSD 840 EVO 250GB / EXT0BB0Q --> boot successfull
ATA device, with non-removable media
	Model Number:       Samsung SSD 840 EVO 250GB               
	Serial Number:      S1DBNSADA17593E     
	Firmware Revision:  EXT0BB0Q
	Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
	Used: unknown (minor revision code 0x0039) 
	Supported: 9 8 7 6 5 
	Likely used: 9
Configuration:
	Logical		max	current
	cylinders	16383	16383
	heads		16	16
	sectors/track	63	63
	--
	CHS current addressable sectors:    16514064
	LBA    user addressable sectors:   268435455
	LBA48  user addressable sectors:   488397168
	Logical  Sector size:                   512 bytes
	Physical Sector size:                   512 bytes
	Logical Sector-0 offset:                  0 bytes
	device size with M = 1024*1024:      238475 MBytes
	device size with M = 1000*1000:      250059 MBytes (250 GB)
	cache/buffer size  = unknown
	Nominal Media Rotation Rate: Solid State Device
Capabilities:
	LBA, IORDY(can be disabled)
	Queue depth: 32
	Standby timer values: spec'd by Standard, no device specific minimum
	R/W multiple sector transfer: Max = 16	Current = 16
	DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
	     Cycle time: min=120ns recommended=120ns
	PIO: pio0 pio1 pio2 pio3 pio4 
	     Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
	Enabled	Supported:
	   *	SMART feature set
	    	Security Mode feature set
	   *	Power Management feature set
	   *	Write cache
	   *	Look-ahead
	   *	Host Protected Area feature set
	   *	WRITE_BUFFER command
	   *	READ_BUFFER command
	   *	NOP cmd
	   *	DOWNLOAD_MICROCODE
	    	SET_MAX security extension
	   *	48-bit Address feature set
	   *	Device Configuration Overlay feature set
	   *	Mandatory FLUSH_CACHE
	   *	FLUSH_CACHE_EXT
	   *	SMART error logging
	   *	SMART self-test
	   *	General Purpose Logging feature set
	   *	WRITE_{DMA|MULTIPLE}_FUA_EXT
	   *	64-bit World wide name
	    	Write-Read-Verify feature set
	   *	WRITE_UNCORRECTABLE_EXT command
	   *	{READ,WRITE}_DMA_EXT_GPL commands
	   *	Segmented DOWNLOAD_MICROCODE
	   *	Gen1 signaling speed (1.5Gb/s)
	   *	Gen2 signaling speed (3.0Gb/s)
	   *	Gen3 signaling speed (6.0Gb/s)
	   *	Native Command Queueing (NCQ)
	   *	Phy event counters
	   *	READ_LOG_DMA_EXT equivalent to READ_LOG_EXT
	    	DMA Setup Auto-Activate optimization
	    	Device-initiated interface power management
	   *	Asynchronous notification (eg. media change)
	   *	Software settings preservation
	   *	SMART Command Transport (SCT) feature set
	   *	SCT Write Same (AC2)
	   *	SCT Error Recovery Control (AC3)
	   *	SCT Features Control (AC4)
	   *	SCT Data Tables (AC5)
	   *	reserved 69[4]
	   *	DOWNLOAD MICROCODE DMA command
	   *	SET MAX SETPASSWORD/UNLOCK DMA commands
	   *	WRITE BUFFER DMA command
	   *	READ BUFFER DMA command
	   *	Data Set Management TRIM supported (limit 8 blocks)
Security: 
	Master password revision code = 65534
		supported
	not	enabled
	not	locked
	not	frozen
	not	expired: security count
		supported: enhanced erase
	2min for SECURITY ERASE UNIT. 8min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 50025388a006660c
	NAA		: 5
	IEEE OUI	: 002538
	Unique ID	: 8a006660c
Checksum: correct
Samsung SSD 840 EVO 250GB / EXT0DB6Q --> boot fails
ATA device, with non-removable media
	Model Number:       Samsung SSD 840 EVO 250GB               
	Serial Number:      S1DBNSAF394372X     
	Firmware Revision:  EXT0DB6Q
	Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
	Used: unknown (minor revision code 0x0039) 
	Supported: 9 8 7 6 5 
	Likely used: 9
Configuration:
	Logical		max	current
	cylinders	16383	16383
	heads		16	16
	sectors/track	63	63
	--
	CHS current addressable sectors:    16514064
	LBA    user addressable sectors:   268435455
	LBA48  user addressable sectors:   488397168
	Logical  Sector size:                   512 bytes
	Physical Sector size:                   512 bytes
	Logical Sector-0 offset:                  0 bytes
	device size with M = 1024*1024:      238475 MBytes
	device size with M = 1000*1000:      250059 MBytes (250 GB)
	cache/buffer size  = unknown
	Nominal Media Rotation Rate: Solid State Device
Capabilities:
	LBA, IORDY(can be disabled)
	Queue depth: 32
	Standby timer values: spec'd by Standard, no device specific minimum
	R/W multiple sector transfer: Max = 1	Current = 1
	DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
	     Cycle time: min=120ns recommended=120ns
	PIO: pio0 pio1 pio2 pio3 pio4 
	     Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
	Enabled	Supported:
	   *	SMART feature set
	    	Security Mode feature set
	   *	Power Management feature set
	   *	Write cache
	   *	Look-ahead
	   *	Host Protected Area feature set
	   *	WRITE_BUFFER command
	   *	READ_BUFFER command
	   *	NOP cmd
	   *	DOWNLOAD_MICROCODE
	    	SET_MAX security extension
	   *	48-bit Address feature set
	   *	Device Configuration Overlay feature set
	   *	Mandatory FLUSH_CACHE
	   *	FLUSH_CACHE_EXT
	   *	SMART error logging
	   *	SMART self-test
	   *	General Purpose Logging feature set
	   *	WRITE_{DMA|MULTIPLE}_FUA_EXT
	   *	64-bit World wide name
	    	Write-Read-Verify feature set
	   *	WRITE_UNCORRECTABLE_EXT command
	   *	{READ,WRITE}_DMA_EXT_GPL commands
	   *	Segmented DOWNLOAD_MICROCODE
	   *	Gen1 signaling speed (1.5Gb/s)
	   *	Gen2 signaling speed (3.0Gb/s)
	   *	Gen3 signaling speed (6.0Gb/s)
	   *	Native Command Queueing (NCQ)
	   *	Phy event counters
	   *	READ_LOG_DMA_EXT equivalent to READ_LOG_EXT
	    	DMA Setup Auto-Activate optimization
	    	Device-initiated interface power management
	   *	Asynchronous notification (eg. media change)
	   *	Software settings preservation
	   *	SMART Command Transport (SCT) feature set
	   *	SCT Write Same (AC2)
	   *	SCT Error Recovery Control (AC3)
	   *	SCT Features Control (AC4)
	   *	SCT Data Tables (AC5)
	   *	reserved 69[4]
	   *	DOWNLOAD MICROCODE DMA command
	   *	SET MAX SETPASSWORD/UNLOCK DMA commands
	   *	WRITE BUFFER DMA command
	   *	READ BUFFER DMA command
	   *	Data Set Management TRIM supported (limit 8 blocks)
Security: 
	Master password revision code = 65534
		supported
	not	enabled
	not	locked
	not	frozen
	not	expired: security count
		supported: enhanced erase
	2min for SECURITY ERASE UNIT. 8min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 50025388a02ba995
	NAA		: 5
	IEEE OUI	: 002538
	Unique ID	: 8a02ba995
Checksum: correct
Samsung SSD 850 EVO 250GB / EMT02B6Q --> boot fails
ATA device, with non-removable media
	Model Number:       Samsung SSD 850 EVO 250GB               
	Serial Number:      S21PNXAG789835H     
	Firmware Revision:  EMT02B6Q
	Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
	Used: unknown (minor revision code 0x0039) 
	Supported: 9 8 7 6 5 
	Likely used: 9
Configuration:
	Logical		max	current
	cylinders	16383	16383
	heads		16	16
	sectors/track	63	63
	--
	CHS current addressable sectors:    16514064
	LBA    user addressable sectors:   268435455
	LBA48  user addressable sectors:   488397168
	Logical  Sector size:                   512 bytes
	Physical Sector size:                   512 bytes
	Logical Sector-0 offset:                  0 bytes
	device size with M = 1024*1024:      238475 MBytes
	device size with M = 1000*1000:      250059 MBytes (250 GB)
	cache/buffer size  = unknown
	Nominal Media Rotation Rate: Solid State Device
Capabilities:
	LBA, IORDY(can be disabled)
	Queue depth: 32
	Standby timer values: spec'd by Standard, no device specific minimum
	R/W multiple sector transfer: Max = 1	Current = 1
	DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
	     Cycle time: min=120ns recommended=120ns
	PIO: pio0 pio1 pio2 pio3 pio4 
	     Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
	Enabled	Supported:
	   *	SMART feature set
	    	Security Mode feature set
	   *	Power Management feature set
	   *	Write cache
	   *	Look-ahead
	   *	Host Protected Area feature set
	   *	WRITE_BUFFER command
	   *	READ_BUFFER command
	   *	NOP cmd
	   *	DOWNLOAD_MICROCODE
	    	SET_MAX security extension
	   *	48-bit Address feature set
	   *	Device Configuration Overlay feature set
	   *	Mandatory FLUSH_CACHE
	   *	FLUSH_CACHE_EXT
	   *	SMART error logging
	   *	SMART self-test
	   *	General Purpose Logging feature set
	   *	WRITE_{DMA|MULTIPLE}_FUA_EXT
	   *	64-bit World wide name
	    	Write-Read-Verify feature set
	   *	WRITE_UNCORRECTABLE_EXT command
	   *	{READ,WRITE}_DMA_EXT_GPL commands
	   *	Segmented DOWNLOAD_MICROCODE
	   *	Gen1 signaling speed (1.5Gb/s)
	   *	Gen2 signaling speed (3.0Gb/s)
	   *	Gen3 signaling speed (6.0Gb/s)
	   *	Native Command Queueing (NCQ)
	   *	Phy event counters
	   *	READ_LOG_DMA_EXT equivalent to READ_LOG_EXT
	    	DMA Setup Auto-Activate optimization
	    	Device-initiated interface power management
	   *	Asynchronous notification (eg. media change)
	   *	Software settings preservation
	    	Device Sleep (DEVSLP)
	   *	SMART Command Transport (SCT) feature set
	   *	SCT Write Same (AC2)
	   *	SCT Error Recovery Control (AC3)
	   *	SCT Features Control (AC4)
	   *	SCT Data Tables (AC5)
	   *	reserved 69[4]
	   *	DOWNLOAD MICROCODE DMA command
	   *	SET MAX SETPASSWORD/UNLOCK DMA commands
	   *	WRITE BUFFER DMA command
	   *	READ BUFFER DMA command
	   *	Data Set Management TRIM supported (limit 8 blocks)
Security: 
	Master password revision code = 65534
		supported
	not	enabled
	not	locked
	not	frozen
	not	expired: security count
		supported: enhanced erase
	2min for SECURITY ERASE UNIT. 8min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 5002538d4036157f
	NAA		: 5
	IEEE OUI	: 002538
	Unique ID	: d4036157f
Device Sleep:
	DEVSLP Exit Timeout (DETO): 50 ms (drive)
	Minimum DEVSLP Assertion Time (MDAT): 30 ms (drive)
Checksum: correct

I can't see any difference in the DMA parameters...

Is there anything I can help you to maintain the patch?

1 Like

Upstream linux-ide/lib-ata Maintainer "Damien Le Moal" said:
"No worries, a fix will go in :)"

1 Like

Finally, It's friday :wink:

I've merged a fix into snapshot. If it builds I'll backport it to the openwrt 22.03 and 21.02 releases just in case upstream is bogged down by the new 5.18-rc1 phase longer than expected. (Otherwise the fix will take the upstream route and gets backported there)

4 Likes