Topic: Problem in the Samsung SSD Firmware

There is a firmware problem in the Samsung Evo 840 SSD (which is built into the Novena Desktops and Laptops),
which caused my SSD to break and make the data on it inaccessible.
The SATA interface is not getting initialized correctly anymore.
The same problem could happen to any other Novena Desktop/Laptop, but the exact circumstances when the firmware bug hits are not known yet.
So BACKUP YOUR DATA! (But I would suggest that you back it up to a harddisk, not to a SSD.)
I got an offer from a data recovery company to recover the data, but I opted for getting the actual firmware bug fixed instead.
This is how far I got:
http://www2.futureware.at/~philipp/ssd/ … Manual.pdf

I found the first couple of bugs and issues, and reported them to Samsung already, but to make the SSDs reliable we need more eyeballs on it.

Your help is needed!

Re: Problem in the Samsung SSD Firmware

FWIW, it is easy to get the firmware version if your SSD is working:

tingo@kg-novena:~$ date; sudo smartctl -i /dev/sda
Mon Oct 10 20:50:52 CEST 2016
smartctl 6.4 2014-10-07 r4002 [armv7l-linux-4.4.0-00156-gc9ba6e8] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Samsung based SSDs
Device Model:     Samsung SSD 840 EVO 250GB
Serial Number:    S1DBNSBFA68606W
LU WWN Device Id: 5 002538 8a0783c72
Firmware Version: EXT0CB6Q
User Capacity:    250,059,350,016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Mon Oct 10 20:50:52 2016 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

apologies if everyone here knows this. smile

Torfinn

Re: Problem in the Samsung SSD Firmware

I made quite some progress, amongst many other things, I have the UART and DMA under control now, and figured out that there is a I2C interface for the temperature sensor:
http://www2.futureware.at/~philipp/ssd/ … Manual.pdf

Re: Problem in the Samsung SSD Firmware

I found several more bugs. The most interesting one being the classical 32 bit milliseconds integer overflow, which overflows every 49.71 days, and can lead to crashes afterwards. So until those are fixed, I would recommend that you shutdown and reboot your Novena at least every 48 days.

Re: Problem in the Samsung SSD Firmware

That's certainly a very detailed and interesting document. But how would I go about updating the SSD firmware on my Novena?
Currently I seem to have (according to smartctl):
Model Family:     Samsung based SSDs
Device Model:     Samsung SSD 840 EVO 250GB
Serial Number:    S1DBNSBFA76376R
LU WWN Device Id: 5 002538 8a0786026
Firmware Version: EXT0CB6Q

Re: Problem in the Samsung SSD Firmware

I would currently suggest to only use the official Samsung Magician from Samsung website (which I think only runs on Windows and Mac) to attempt a firmware update. The firmware update process seems to be a 2 step process. The first step of that process could be hdparm, but since it does not do the second step too, you would end up with a bricked device.
(The first step authenticates the whole firmware image, but then it only copies most the first partition of the firmware (which contains the firmware-updater) and executes that code in there. I guess that you would have to send the firmware update into the SSD a second time then)
In case you have bricked a firmware-update, there are still 2 firmware-update methods in the boot ROM, one through SATA and one through Serial-UART (and as a last resort there is always JTAG, but there is no software available for JTAG based firmware update yet). I had some signal integrity issues with the Serial-UART, so I would recommend SATA over Serial-UART.
And please make sure that you have backed-up all your data before you try a firmware update, the firmware update code doesn't look rock-solid to me.
There is one newer firmware version available for your SSD: EXT0DB6Q

Re: Problem in the Samsung SSD Firmware

Sourcerer wrote:

I would currently suggest to only use the official Samsung Magician from Samsung website (which I think only runs on Windows and Mac) to attempt a firmware update. The firmware update process seems to be a 2 step process. The first step of that process could be hdparm, but since it does not do the second step too, you would end up with a bricked device.

What does that mean? The official update procedure results in a bricked firmware? I doubt that.

Re: Problem in the Samsung SSD Firmware

No, I meant that trying the firmware update with hdparm does not work.

Re: Problem in the Samsung SSD Firmware

By the way, I developed a diagnostic software to diagnose working and non-working Samsung SSDs:
https://github.com/thesourcerer8/SSDdiag

Re: Problem in the Samsung SSD Firmware

I'm having a problem where the SSD won't appear during the boot process, but I can access it from the recovery kernel.  Think our problems are related?  I was running Portage and compiling a package when the EIOs occurred and made my system read-only.  This is what my boot message looks like (important part tagged with "<-- IMPORTANT PART" (I can't use bold in the code block :()):

U-Boot SPL 2015.04-rc1-02853-gbd5c7d3 (Sep 04 2015 - 10:11:08)
SPD checksum unexpected.
Checksum lsb in SPD = 7D, computed SPD = FA
Checksum msb in SPD = 53, computed SPD = 56
Using canned SPD
Running post-config memory test... Pass
Internal SD card
reading u-boot.img
reading u-boot.img


U-Boot 2015.04-rc1-02853-gbd5c7d3 (Sep 04 2015 - 10:11:08)

CPU:   Freescale i.MX6Q rev1.2 at 792 MHz
Reset cause: WDOG
Board: Novena 4x
I2C:   ready
DRAM:  3.8 GiB
PMIC: PFUZE100 ID=0x10
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Using default environment

auto-detected panel Chimei-FHD
Display: Chimei-FHD (1920x1080)
In:    serial
Out:   vga
Err:   vga
Net:   FEC [PRIME]
Hit any key to stop autoboot:  0
reading uEnv.txt
33 bytes read in 21 ms (1000 Bytes/s)
Loaded environment from uEnv.txt
Importing environment from mmc ...
To hook early boot process, add a variable called earlyhook
IT6251 bridge chip detected
gpio: pin 110 (gpio 110) value is 0
Press Control-C to enter U-Boot shell, or wait to enter recovery mode
sleep - delay execution for some time

Usage:
sleep N
    - delay execution for N seconds (N is _decimal_ !!!)
=> setenv bootargs init=/lib/systemd/systemd rootwait rw console=ttymxc1,115200
=> boot
reading uEnv.txt
33 bytes read in 21 ms (1000 Bytes/s)
Loaded environment from uEnv.txt
Importing environment from mmc ...
To hook early boot process, add a variable called earlyhook
IT6251 bridge chip detected
gpio: pin 110 (gpio 110) value is 1
Hold recovery button to boot to recovery, or to enter U-Boot shell.
AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part
SATA Device Info:
S/N: S1DBNSBFA56309T
Product model number: Samsung SSD 840 EVO 250GB
Firmware version: EXT0CB6Q
Capacity: 488397168 sectors
ToChook late boot process, add a variable called finalhook
Scanning sata 0:1...
**CNo partition table - sata 0 **
**CNo partition table - sata 0 **
**CNo partition table - sata 0 **
**CNo partition table - sata 0 **
**CNo partition table - sata 0 **
**CNo partition table - sata 0 **
reading zImage
5615744 bytes read in 296 ms (18.1 MiB/s)
reading novena.dtb
41415 bytes read in 26 ms (1.5 MiB/s)
Kernel image @ 0x12000000 [ 0x000000 - 0x55b080 ]
##CFlattened Device Tree blob at 11ff0000
41CBooting using the fdt blob at 0x11ff0000
43CUsing Device Tree in place at 11ff0000, end 11ffd1c6
55C
Starting kernel ...
19C
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.19.0-00485-gc5f2138 (xobs@xobs-novena-laptop) (gcc version 4.9.2 (Debian 4.9.2-10) ) #858 SMP PREEMPT Tue Sep 15 13:41:23 SGT 2015
[    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: Kosagi Novena Dual/Quad
[    0.000000] cma: Reserved 256 MiB at 0x2f800000
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] PERCPU: Embedded 11 pages/cpu @dd55d000 s12608 r8192 d24256 u45056
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 981329
[    0.000000] Kernel command line: init=/lib/systemd/systemd rootwait rw console=ttymxc1,115200 root=PARTUUID=4e6f7653-03 console=tty0
[    0.000000] log_buf_len individual max cpu contribution: 65536 bytes
[    0.000000] log_buf_len total cpu_extra contributions: 196608 bytes
[    0.000000] log_buf_len min size: 131072 bytes
[    0.000000] log_buf_len: 524288 bytes
[    0.000000] early log buf free: 129392(98%)
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 3620592K/3932156K available (8437K kernel code, 383K rwdata, 2576K rodata, 560K init, 641K bss, 49420K reserved, 262144K cma-reserved, 3153916K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]       vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]       fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]       vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
[    0.000000]       lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
[    0.000000]       pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]       modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]         .text : 0xc0008000 - 0xc0ac9694   (11014 kB)
[    0.000000]         .init : 0xc0aca000 - 0xc0b56000   ( 560 kB)
[    0.000000]         .data : 0xc0b56000 - 0xc0bb5d14   ( 384 kB)
[    0.000000]          .bss : 0xc0bb5d14 - 0xc0c56394   ( 642 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] L2C-310 erratum 769419 enabled
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 ID prefetch enabled, offset 1 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 cache controller enabled, 16 ways, 1024 kB
[    0.000000] L2C-310: CACHE_ID 0x410000c7, AUX_CTRL 0x76070001
[    0.000000] Switching to timer-based delay loop, resolution 333ns
[    0.000007] sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655765682ns
[    0.001554] Console: colour dummy device 80x30
[    0.002640] console [tty0] enabled
[    0.002676] Calibrating delay loop (skipped), value calculated using timer frequency.. 6.00 BogoMIPS (lpj=30000)
[    0.002730] pid_max: default: 32768 minimum: 301
[    0.002852] Security Framework initialized
[    0.002887] AppArmor: AppArmor disabled by boot time parameter
[    0.003090] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.003129] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.003869] Initializing cgroup subsys memory
[    0.003916] Initializing cgroup subsys devices
[    0.003950] Initializing cgroup subsys freezer
[    0.003985] Initializing cgroup subsys net_cls
[    0.004019] Initializing cgroup subsys blkio
[    0.004052] Initializing cgroup subsys perf_event
[    0.004085] Initializing cgroup subsys net_prio
[    0.004159] CPU: Testing write buffer coherency: ok
[    0.004213] ftrace: allocating 27968 entries in 83 pages
[    0.051761] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.051911] Setting up static identity map for 0x107a1fd0 - 0x107a2028
[    0.130496] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.150465] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.170471] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.170557] Brought up 4 CPUs
[    0.170629] SMP: Total of 4 processors activated (24.00 BogoMIPS).
[    0.170649] CPU: All CPU(s) started in SVC mode.
[    0.171386] devtmpfs: initialized
[    0.172246] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.187280] pinctrl core: initialized pinctrl subsystem
[    0.197971] NET: Registered protocol family 16
[    0.200570] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.229639] cpuidle: using governor ladder
[    0.259646] cpuidle: using governor menu
[    0.259836] CPU identified as i.MX6Q, silicon rev 1.2
[    0.281458] No ATAGs?
[    0.281508] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.281546] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.282154] imx6q-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver
[    0.961384] vgaarb: loaded
[    0.961770] SCSI subsystem initialized
[    0.962169] usbcore: registered new interface driver usbfs
[    0.962259] usbcore: registered new interface driver hub
[    0.962407] usbcore: registered new device driver usb
[    0.965578] stmpe-i2c 0-0044: stmpe811 detected, chip id: 0x811
[    1.055653] i2c i2c-0: IMX I2C adapter registered
[    1.055684] of_dma_request_slave_channel: dma-names property of node '/soc/aips-bus@02100000/i2c@021a0000' missing or empty
[    1.055720] i2c i2c-0: can't use DMA
[    1.056432] i2c i2c-1: IMX I2C adapter registered
[    1.056464] of_dma_request_slave_channel: dma-names property of node '/soc/aips-bus@02100000/i2c@021a4000' missing or empty
[    1.056498] i2c i2c-1: can't use DMA
[    1.057863] i2c i2c-2: IMX I2C adapter registered
[    1.057894] of_dma_request_slave_channel: dma-names property of node '/soc/aips-bus@02100000/i2c@021a8000' missing or empty
[    1.057929] i2c i2c-2: can't use DMA
[    1.058108] pps_core: LinuxPPS API ver. 1 registered
[    1.058134] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.058186] PTP clock support registered
[    1.058580] Advanced Linux Sound Architecture Driver Initialized.
[    1.059771] Bluetooth: Core ver 2.20
[    1.059837] NET: Registered protocol family 31
[    1.059857] Bluetooth: HCI device and connection manager initialized
[    1.059885] Bluetooth: HCI socket layer initialized
[    1.059910] Bluetooth: L2CAP socket layer initialized
[    1.059978] Bluetooth: SCO socket layer initialized
[    1.060665] cfg80211: Calling CRDA to update world regulatory domain
[    1.060944] Switched to clocksource mxc_timer1
[    1.095677] FS-Cache: Loaded
[    1.109249] NET: Registered protocol family 2
[    1.109983] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    1.110088] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    1.110229] TCP: Hash tables configured (established 8192 bind 8192)
[    1.110332] TCP: reno registered
[    1.110358] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    1.110436] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    1.110709] NET: Registered protocol family 1
[    1.111431] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[    1.114152] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    1.114370] audit: initializing netlink subsys (disabled)
[    1.114452] audit: type=2000 audit(1.090:1): initialized
[    1.123509] zpool: loaded
[    1.123543] zbud: loaded
[    1.124241] VFS: Disk quotas dquot_6.5.2
[    1.124485] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.125953] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.126788] fuse init (API version 7.23)
[    1.128375] pstore: Registered eepromoops as persistent store backend
[    1.131108] NET: Registered protocol family 38
[    1.131231] bounce: pool size: 64 pages
[    1.131314] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[    1.131351] io scheduler noop registered (default)
[    1.131376] io scheduler deadline registered
[    1.131625] io scheduler cfq registered
[    1.136272] imx-sdma 20ec000.sdma: Direct firmware load for imx/sdma/sdma-imx6q.bin failed with error -2
[    1.136320] imx-sdma 20ec000.sdma: external firmware not found, using ROM firmware
[    1.139644] imx-sdma 20ec000.sdma: initialized
[    1.141591] pfuze100-regulator 1-0008: Full layer: 2, Metal layer: 1
[    1.142224] pfuze100-regulator 1-0008: FAB: 0, FIN: 0
[    1.142251] pfuze100-regulator 1-0008: pfuze100 found.
[    1.235089] 21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 297, base_baud = 5000000) is a IMX
[    2.037727] console [ttymxc1] enabled
[    2.042082] 21ec000.serial: ttymxc2 at MMIO 0x21ec000 (irq = 298, base_baud = 5000000) is a IMX
[    2.051450] 21f0000.serial: ttymxc3 at MMIO 0x21f0000 (irq = 299, base_baud = 5000000) is a IMX
[    2.060694] [drm] Initialized drm 1.1.0 20060810
[    2.067616] panel supply power not found, using dummy regulator
[    2.073875] i2c 2-005c: Driver it6251 requests probe deferral
[    2.080963] imx-ipuv3 2400000.ipu: IPUv3H probed
[    2.086948] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    2.093621] [drm] No driver support for vblank timestamp query.
[    2.099661] imx-drm display-subsystem: bound imx-ipuv3-crtc.0 (ops ipu_crtc_ops)
[    2.107169] imx-drm display-subsystem: bound imx-ipuv3-crtc.1 (ops ipu_crtc_ops)
[    2.114677] imx-drm display-subsystem: bound imx-ipuv3-crtc.4 (ops ipu_crtc_ops)
[    2.122201] imx-drm display-subsystem: bound imx-ipuv3-crtc.5 (ops ipu_crtc_ops)
[    2.129913] imx-hdmi 120000.hdmi: Detected HDMI controller 0x13:0xa:0xa0:0xc1
[    2.138710] imx-drm display-subsystem: bound 120000.hdmi (ops hdmi_ops)
[    2.145471] /soc/aips-bus@02000000/ldb@020e0008/lvds-channel@0: could not find display-timings node
[    2.154566] /soc/aips-bus@02000000/ldb@020e0008/lvds-channel@0: no timings specified
[    2.162554] imx-ldb 2000000.aips-bus:ldb@020e0008: dual-channel mode, ignoring second output
[    2.171051] imx-drm display-subsystem: bound 2000000.aips-bus:ldb@020e0008 (ops imx_ldb_ops)
[    2.208728] Console: switching to colour frame buffer device 240x67
[    2.228527] imx-drm display-subsystem: fb0:    frame buffer device
[    2.234643] imx-drm display-subsystem: registered panic notifier
[    2.260985] [drm] Initialized imx-drm 1.0.0 20120507 on minor 0
[    2.267325] imx-ipuv3 2800000.ipu: IPUv3H probed
[    2.279745] brd: module loaded
[    2.286793] loop: module loaded
[    2.293015] senoko 0-0020: senoko 'S' version 2.5 (features: 0x02)
[    2.301206] ahci-imx 2200000.sata: fsl,transmit-level-mV value 1025, using 00000024
[    2.308981] ahci-imx 2200000.sata: fsl,transmit-boost-mdB value 0, using 00000000
[    2.316607] ahci-imx 2200000.sata: fsl,transmit-atten-16ths value 8, using 00002800
[    2.324389] ahci-imx 2200000.sata: fsl,receive-eq-mdB not specified, using 05000000
[    2.335156] ahci-imx 2200000.sata: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode
[    2.344097] ahci-imx 2200000.sata: flags: ncq sntf stag pm led clo only pmp pio slum part ccc apst
[    2.354996] scsi host0: ahci_platform
[    2.359082] ata1: SATA max UDMA/133 mmio [mem 0x02200000-0x02203fff] port 0x100 irq 302
[    2.369394] spi_imx 2010000.ecspi: probed
[    2.374956] libphy: Fixed MDIO Bus: probed
[    2.380431] 2188000.ethernet supply phy not found, using dummy regulator
[    2.401417] pps pps0: new PPS source ptp0
[    2.410403] libphy: fec_enet_mii_bus: probed
[    2.415359] fec 2188000.ethernet eth0: registered PHC device 0
[    2.421691] usbcore: registered new interface driver asix
[    2.427236] usbcore: registered new interface driver ax88179_178a
[    2.433512] usbcore: registered new interface driver cdc_ether
[    2.439485] usbcore: registered new interface driver cdc_eem
[    2.445304] usbcore: registered new interface driver cdc_subset
[    2.451455] usbcore: registered new interface driver cdc_ncm
[    2.457487] VFIO - User Level meta-driver version: 0.3
[    2.462965] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.469609] ehci-pci: EHCI PCI platform driver
[    2.474210] ehci-platform: EHCI generic platform driver
[    2.479904] usbcore: registered new interface driver usb-storage
[    2.490110] usbcore: registered new interface driver usbserial
[    2.499932] usbcore: registered new interface driver usbserial_generic
[    2.510378] usbserial: USB Serial support registered for generic
[    2.520306] usbcore: registered new interface driver usb_serial_simple
[    2.530705] usbserial: USB Serial support registered for carelink
[    2.540666] usbserial: USB Serial support registered for zio
[    2.550147] usbserial: USB Serial support registered for funsoft
[    2.559945] usbserial: USB Serial support registered for flashloader
[    2.570076] usbserial: USB Serial support registered for google
[    2.579711] usbserial: USB Serial support registered for vivopay
[    2.589426] usbserial: USB Serial support registered for moto_modem
[    2.599367] usbserial: USB Serial support registered for novatel_gps
[    2.609326] usbserial: USB Serial support registered for hp4x
[    2.618606] usbserial: USB Serial support registered for suunto
[    2.627987] usbserial: USB Serial support registered for siemens_mpi
[    2.648842] ci_hdrc ci_hdrc.1: doesn't support gadget
[    2.657318] ci_hdrc ci_hdrc.1: EHCI Host Controller
[    2.665531] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
[    2.690983] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
[    2.699837] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    2.709923] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.710990] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    2.729866] usb usb1: Product: EHCI Host Controller
[    2.729872] ata1.00: supports DRM functions and may not be fully accessible
[    2.729883] ata1.00: ATA-9: Samsung SSD 840 EVO 250GB, EXT0CB6Q, max UDMA/133
[    2.729892] ata1.00: 488397168 sectors, multi 1: LBA48 NCQ (depth 31/32)
[    2.758507] ata1.00: supports DRM functions and may not be fully accessible
[    2.758522] ata1.00: configured for UDMA/133
[    2.758960] scsi 0:0:0:0: Direct-Access     ATA    Samsung SSD 840  CB6Q PQ: 0 ANSI: 5
[    2.759955] sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[    2.760482] sd 0:0:0:0: [sda] Write Protect is off
[    2.760641] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.768629]    sda: unknown partition table
[    2.769622] sd 0:0:0:0: [sda] Attached SCSI disk
[    2.843301] usb usb1: Manufacturer: Linux 3.19.0-00485-gc5f2138 ehci_hcd
[    2.853271] usb usb1: SerialNumber: ci_hdrc.1
[    2.861560] hub 1-0:1.0: USB hub found
[    2.868521] hub 1-0:1.0: 1 port detected
[    2.876758] mousedev: PS/2 mouse device common for all mice
[    2.886352] input: 20b8000.kpp as /devices/soc0/soc/2000000.aips-bus/20b8000.kpp/input/input0
[    2.899503] input: Senoko keypad as /devices/soc0/soc/2100000.aips-bus/21a0000.i2c/i2c-0/0-0020/senoko-keypad.1/input/input1
[    2.915073] rtc-pcf8523 0-0068: RTC reports battery is low
[    2.927786] rtc-pcf8523 0-0068: rtc core: registered rtc-pcf8523 as rtc0
[    2.938374] snvs_rtc 20cc034.snvs-rtc-lp: rtc core: registered 20cc034.snvs-rtc-lp as rtc1
[    2.950112] i2c /dev entries driver
[    2.996618] sbs-battery 0-000b: sbs-battery: battery gas gauge device registered
[    3.011979] platform 2000000.aips-bus:tempmon: Driver imx_thermal requests probe deferral
[    3.024355] imx2-wdt 20bc000.wdog: timeout 60 sec (nowayout=0)
[    3.033851] usbcore: registered new interface driver bcm203x
[    3.042977] usbcore: registered new interface driver bpa10x
[    3.051964] usbcore: registered new interface driver btusb
[    3.060820] usbcore: registered new interface driver ath3k
[    3.069854] Driver 'mmcblk' needs updating - please use bus_type methods
[    3.079981] sdhci: Secure Digital Host Controller Interface driver
[    3.089540] sdhci: Copyright(c) Pierre Ossman
[    3.097292] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.107084] sdhci-esdhc-imx 2194000.usdhc: could not get ultra high speed state, work on normal mode
[    3.121103] sdhci-esdhc-imx 2194000.usdhc: No vmmc regulator found
[    3.130773] sdhci-esdhc-imx 2194000.usdhc: No vqmmc regulator found
[    3.181120] mmc0: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA
[    3.192256] sdhci-esdhc-imx 2198000.usdhc: could not get ultra high speed state, work on normal mode
[    3.201011] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[    3.215225] sdhci-esdhc-imx 2198000.usdhc: No vmmc regulator found
[    3.225053] sdhci-esdhc-imx 2198000.usdhc: No vqmmc regulator found
[    3.270983] mmc1: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA
[    3.282559] ledtrig-cpu: registered to indicate activity on CPUs
[    3.292340] hidraw: raw HID events driver (C) Jiri Kosina
[    3.301861] usbcore: registered new interface driver usbhid
[    3.311119] usbhid: USB HID core driver
[    3.318836] mmc1: host does not support reading read-only switch, assuming write-enable
[    3.320262] etnaviv gpu-subsystem: bound 134000.gpu (ops gpu_ops)
[    3.320286] etnaviv gpu-subsystem: bound 130000.gpu (ops gpu_ops)
[    3.320302] etnaviv gpu-subsystem: bound 2204000.gpu (ops gpu_ops)
[    3.320313] etnaviv-gpu 134000.gpu: model: GC320, revision: 5007
[    3.367848] etnaviv-gpu 130000.gpu: model: GC2000, revision: 5108
[    3.398662] usb 1-1: New USB device found, idVendor=05e3, idProduct=0614
[    3.417357] etnaviv-gpu 2204000.gpu: model: GC355, revision: 1215
[    3.427411] mmc1: new high speed SDHC card at address 59b4
[    3.427876] mmcblk0: mmc1:59b4    14.9 GiB
[    3.429282]    mmcblk0: p1 p2 p3
[    3.459612] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    3.478702] [drm] Initialized etnaviv 1.0.0 20150302 on minor 1
[    3.490666] imx-es8328 sound: es8328-hifi-analog <-> 2028000.ssi mapping ok
[    3.504160] usb 1-1: Product: USB2.0 Hub Charger
[    3.513723] hub 1-1:1.0: USB hub found
[    3.521762] hub 1-1:1.0: 4 ports detected
[    3.602890] input: imx-audio-es8328 Headphone Jack as /devices/soc0/sound/sound/card1/input2
[    3.615918] gre: GRE over IPv4 demultiplexor driver
[    3.624784] TCP: cubic registered
[    3.632053] Initializing XFRM netlink socket
[    3.640263] NET: Registered protocol family 17
[    3.648618] NET: Registered protocol family 15
[    3.657059] Bluetooth: RFCOMM TTY layer initialized
[    3.665759] Bluetooth: RFCOMM socket layer initialized
[    3.674658] Bluetooth: RFCOMM ver 1.11
[    3.682137] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    3.691159] Bluetooth: BNEP filters: protocol multicast
[    3.700057] Bluetooth: BNEP socket layer initialized
[    3.708709] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    3.718354] Bluetooth: HIDP socket layer initialized
[    3.729613] ThumbEE CPU extension supported.
[    3.736467] Registering SWP/SWPB emulation handler
[    3.744297] registered taskstats version 1
[    3.811383] usb 1-1.2: new high-speed USB device number 3 using ci_hdrc
[    3.874446] imx6q-pcie 1ffc000.pcie: PCI host bridge to bus 0000:00
[    3.883149] pci_bus 0000:00: root bus resource [io  0x1000-0xffff]
[    3.891718] pci_bus 0000:00: root bus resource [mem 0x01000000-0x01efffff]
[    3.900967] pci_bus 0000:00: root bus resource [bus 00-ff]
[    3.909121] PCI: bus0: Fast back to back transfers disabled
[    3.931025] PCI: bus1: Fast back to back transfers disabled
[    3.939002] pci 0000:00:00.0: BAR 0: assigned [mem 0x01000000-0x010fffff]
[    3.942629] usb 1-1.2: New USB device found, idVendor=0b95, idProduct=772b
[    3.942635] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.942639] usb 1-1.2: Product: AX88772B
[    3.942642] usb 1-1.2: Manufacturer: ASIX Elec. Corp.
[    3.942646] usb 1-1.2: SerialNumber: 000001
[    3.987258] pci 0000:00:00.0: BAR 14: assigned [mem 0x01100000-0x011fffff]
[    3.996489] pci 0000:00:00.0: BAR 15: assigned [mem 0x01200000-0x012fffff pref]
[    4.006142] pci 0000:00:00.0: BAR 6: assigned [mem 0x01300000-0x0130ffff pref]
[    4.015674] pci 0000:01:00.0: BAR 0: assigned [mem 0x01100000-0x0117ffff 64bit]
[    4.025320] pci 0000:01:00.0: BAR 6: assigned [mem 0x01200000-0x0120ffff pref]
[    4.034814] pci 0000:00:00.0: PCI bridge to [bus 01]
[    4.042021] pci 0000:00:00.0:   bridge window [mem 0x01100000-0x011fffff]
[    4.051018] pci 0000:00:00.0:   bridge window [mem 0x01200000-0x012fffff pref]
[    4.060632] pcieport 0000:00:00.0: Signaling PME through PCIe PME interrupt
[    4.069818] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
[    4.078793] ath9k 0000:01:00.0: enabling device (0140 -> 0142)
[    4.105477] ieee80211 phy0: Atheros AR9462 Rev:2 mem=0xf0400000, irq=320
[    4.119308] input: gpio-keys as /devices/soc0/gpio-keys/input/input3
[    4.129496] rtc-pcf8523 0-0068: setting system clock to 2017-04-21 06:09:44 UTC (1492754984)
[    4.149247] SW4: disabling
[    4.154365] usb_otg_vbus: disabling
[    4.160264] ALSA device list:
[    4.165468]     #0: DW-HDMI rev 0x0a, irq 285
[    4.171916]     #1: imx-audio-es8328
[    4.461683] it6251 2-005c: System status: 0x3e
[    4.469830] it6251 2-005c: RPCLKCnt: 907
[    4.477337] it6251 2-005c: Clock: 0x193
[    4.484132] it6251 2-005c: Ref Link State: 0x00
[    4.490802] it6251 2-005c: eDP system is already stable
[    4.774856] asix 1-1.2:1.0 eth1: register 'asix' at usb-ci_hdrc.1-1.2, ASIX AX88772B USB 2.0 Ethernet, 00:0e:c6:87:72:01
[    4.788235] Waiting for root device PARTUUID=4e6f7653-03...        <-- IMPORTANT PART
[    5.021380] usb 1-1.3: new full-speed USB device number 4 using ci_hdrc
[    5.153123] usb 1-1.3: string descriptor 0 read error: -22
[    5.160838] usb 1-1.3: New USB device found, idVendor=13d3, idProduct=3393
[    5.169935] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    5.180789] usb 1-1.3: Direct firmware load for ar3k/AthrBT_0x11020000.dfu failed with error -2
[    5.191801] Bluetooth: Patch file not found ar3k/AthrBT_0x11020000.dfu
[    5.200605] Bluetooth: Loading patch file failed
[    5.207464] ath3k: probe of 1-1.3:1.0 failed with error -2
[    5.291383] usb 1-1.4: new high-speed USB device number 5 using ci_hdrc
[    5.422754] usb 1-1.4: New USB device found, idVendor=05e3, idProduct=0614
[    5.431909] usb 1-1.4: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    5.441531] usb 1-1.4: Product: USB2.0 Hub Charger
[    5.449270] hub 1-1.4:1.0: USB hub found
[    5.455884] hub 1-1.4:1.0: 4 ports detected
[    5.741379] usb 1-1.4.1: new low-speed USB device number 6 using ci_hdrc
[    5.867875] usb 1-1.4.1: New USB device found, idVendor=04b3, idProduct=3025
[    5.877256] usb 1-1.4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.887089] usb 1-1.4.1: Product: USB NetVista Full Width Keyboard.
[    5.895695] usb 1-1.4.1: Manufacturer: LITE-ON Technology
[    5.910052] input: LITE-ON Technology USB NetVista Full Width Keyboard. as /devices/soc0/soc/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.0/0003:04B3:
179CA:3025.0001/input/input4
[    5.981277] hid-generic 0003:04B3:3025.0001: input,hidraw0: USB HID v1.10 Keyboard [LITE-ON Technology USB NetVista Full Width Keyboard.] on usb-ci_hdrc.1-1.4.1/input0
[   78.140432] random: nonblocking pool is initialized

I also ran smartctl on the device.  The firmware is out of date, and I've gotten a lot of CRC errors, yet the health self-assessment passes?

Script started on Thu Apr 20 23:43:29 2017
root@novena-politic-sofia:/home/frostsnow/brokenssd# smartctl /dev/sda [1@-[1@i[1@ 
smartctl 6.4 2014-10-07 r4002 [armv7l-linux-3.19.0-00404-g4061eff] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Samsung based SSDs
Device Model:     Samsung SSD 840 EVO 250GB
Serial Number:    S1DBNSBFA56309T
LU WWN Device Id: 5 002538 8a07808cc
Firmware Version: EXT0CB6Q           <-- NOT QUITE NEWEST FIRMWARE
User Capacity:    250,059,350,016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Thu Apr 20 23:43:40 2017 PDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

root@novena-politic-sofia:/home/frostsnow/brokenssd# smartctl -i /dev/sda [1@x
smartctl 6.4 2014-10-07 r4002 [armv7l-linux-3.19.0-00404-g4061eff] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Samsung based SSDs
Device Model:     Samsung SSD 840 EVO 250GB
Serial Number:    S1DBNSBFA56309T
LU WWN Device Id: 5 002538 8a07808cc
Firmware Version: EXT0CB6Q
User Capacity:    250,059,350,016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Thu Apr 20 23:43:46 2017 PDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is:   Unavailable
APM feature is:   Unavailable
Rd look-ahead is: Enabled
Write cache is:   Enabled
ATA Security is:  Disabled, NOT FROZEN [SEC1]
Unexpected SCT status 0x0001 (action_code=4, function_code=2)
Wt Cache Reorder: Unknown (SCT Feature Control command failed)

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00)    Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0)    The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:         ( 4800) seconds.
Offline data collection
capabilities:              (0x53) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003)    Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01)    Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:      (   2) minutes.
Extended self-test routine
recommended polling time:      (  80) minutes.
SCT capabilities:            (0x003d)    SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  5 Reallocated_Sector_Ct   PO--CK   100   100   010    -    0
  9 Power_On_Hours          -O--CK   099   099   000    -    4085
 12 Power_Cycle_Count       -O--CK   098   098   000    -    1694
177 Wear_Leveling_Count     PO--C-   099   099   000    -    11
179 Used_Rsvd_Blk_Cnt_Tot   PO--C-   100   100   010    -    0
181 Program_Fail_Cnt_Total  -O--CK   100   100   010    -    0
182 Erase_Fail_Count_Total  -O--CK   100   100   010    -    0
183 Runtime_Bad_Block       PO--C-   100   100   010    -    0
187 Uncorrectable_Error_Cnt -O--CK   100   100   000    -    0
190 Airflow_Temperature_Cel -O--CK   072   051   000    -    28
195 ECC_Error_Rate          -O-RC-   200   200   000    -    0
199 CRC_Error_Count         -OSRCK   099   099   000    -    508               <-- LOTS OF ERRORS?
235 POR_Recovery_Count      -O--C-   099   099   000    -    1126
241 Total_LBAs_Written      -O--CK   099   099   000    -    4328542989
                            ||||||_ K auto-keep
                            |||||__ C event count
                            ||||___ R error rate
                            |||____ S speed/performance
                            ||_____ O updated online
                            |______ P prefailure warning

General Purpose Log Directory Version 1
SMART           Log Directory Version 1 [multi-sector log support]
Address    Access  R/W   Size  Description
0x00       GPL,SL  R/O      1  Log Directory
0x01           SL  R/O      1  Summary SMART error log
0x02           SL  R/O      1  Comprehensive SMART error log
0x03       GPL     R/O      1  Ext. Comprehensive SMART error log
0x06           SL  R/O      1  SMART self-test log
0x07       GPL     R/O      1  Extended self-test log
0x09           SL  R/W      1  Selective self-test log
0x10       GPL     R/O      1  SATA NCQ Queued Error log
0x11       GPL     R/O      1  SATA Phy Event Counters log
0x30       GPL,SL  R/O      9  IDENTIFY DEVICE data log
0x80-0x9f  GPL,SL  R/W     16  Host vendor specific log
0xa1       GPL,SL  VS      16  Device vendor specific log
0xce       GPL,SL  VS      16  Device vendor specific log
0xde           SL  VS       1  Device vendor specific log
0xe0       GPL,SL  R/W      1  SCT Command/Status
0xe1       GPL,SL  R/W      1  SCT Data Transfer

SMART Extended Comprehensive Error Log Version: 1 (1 sectors)
No Errors Logged

SMART Extended Self-test Log Version: 1 (1 sectors)
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

SCT Status Version:                  3
SCT Version (vendor specific):       1 (0x0001)
SCT Support Level:                   1
Device State:                        Active (0)
Current Temperature:                    29 Celsius
Power Cycle Min/Max Temperature:      ?/ ? Celsius
Lifetime    Min/Max Temperature:      ?/ ? Celsius
Under/Over Temperature Limit Count:   0/24559

SCT Temperature History Version:     2
Temperature Sampling Period:         10 minutes
Temperature Logging Interval:        10 minutes
Min/Max recommended Temperature:      ?/ ? Celsius
Min/Max Temperature Limit:            ?/ ? Celsius
Temperature History Size (Index):    128 (4)

Index    Estimated Time   Temperature Celsius
   5    2017-04-20 02:30     ?  -
 ...    ..(122 skipped).    ..  -
   0    2017-04-20 23:00     ?  -
   1    2017-04-20 23:10    30  ***********
   2    2017-04-20 23:20    28  *********
   3    2017-04-20 23:30    28  *********
   4    2017-04-20 23:40    28  *********

SCT Error Recovery Control:
           Read: Disabled
          Write: Disabled

Device Statistics (GP/SMART Log 0x04) not supported

SATA Phy Event Counters (GP Log 0x11)
ID      Size     Value  Description
0x0001  2            0  Command failed due to ICRC error
0x0002  2            0  R_ERR response for data FIS
0x0003  2            0  R_ERR response for device-to-host data FIS
0x0004  2            0  R_ERR response for host-to-device data FIS
0x0005  2            0  R_ERR response for non-data FIS
0x0006  2            0  R_ERR response for device-to-host non-data FIS
0x0007  2            0  R_ERR response for host-to-device non-data FIS
0x0008  2            0  Device-to-host non-data FIS retries
0x0009  2           17  Transition from drive PhyRdy to drive PhyNRdy
0x000a  2           17  Device-to-host register FISes sent due to a COMRESET
0x000b  2            0  CRC errors within host-to-device FIS
0x000d  2            0  Non-CRC errors within host-to-device FIS
0x000f  2            0  R_ERR response for host-to-device data FIS, CRC
0x0010  2            0  R_ERR response for host-to-device data FIS, non-CRC
0x0012  2            0  R_ERR response for host-to-device non-data FIS, CRC
0x0013  2            0  R_ERR response for host-to-device non-data FIS, non-CRC

root@novena-politic-sofia:/home/frostsnow/brokenssd# exit

Script done on Thu Apr 20 23:43:48 2017

I tried to run the SSDdiag tool but it seems I need to get sysfsgpio setup first:

Script started on Mon Apr 17 21:19:39 2017
frostsnow@novena-politic-sofia:~/SSDdiag$ ./ssddiag.pl --debug
Restarting OpenOCD ...
openocd: no process found
Open On-Chip Debugger 0.8.0 (2014-10-20-23:18)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
Error: The specified debug interface was not found (sysfsgpio)
The following debug interfaces are available:
1: parport
2: dummy
3: ftdi
4: usb_blaster
5: amt_jtagaccel
6: ep93xx
7: at91rm9200
8: gw16012
9: usbprog
10: jlink
11: vsllink
12: rlink
13: ulink
14: arm-jtag-ew
15: buspirate
16: remote_bitbang
17: hla
18: osbdm
19: opendous
20: aice
21: bcm2835gpio
22: cmsis-dap
Runtime Error: mex1.conf:4: 
in procedure 'script' 
at file "embedded:startup.tcl", line 58
in procedure 'interface' called at file "mex1.conf", line 4
Connecting to OpenOCD:
-> targets mex1
Can't call method "send" on an undefined value at ./ssddiag.pl line 26.
frostsnow@novena-politic-sofia:~/SSDdiag$ exit

Script done on Mon Apr 17 21:19:54 2017

Re: Problem in the Samsung SSD Firmware

The SSD looks good to me, from a physical point of view, so I don't think that you need SSDdiag. (SSDdiag would be necessary if you would not even see the SSD at all, no serial number, ...)
Regarding the sysfsgpio, please take a look here:
https://www.kosagi.com/w/index.php?titl … AG_adapter

Yes, there is a newer firmware available, which might improve things a bit. If you really want to try to update it, you need a Windows Machine and the software from Samsung. But I wouldn't try a firmware update at this point, it could make things worse as well.
The CRC errors ... I am not sure, whether those are SATA-CRC errors (in this case make sure that the SSD is properly attached to the Novena mainboard, or check your SATA cable in case you are using on), or whether those are Flash CRC Errors.

I think I spotted a relevant error message: sda: unknown partition table. It seems that there is no partition table on it, perhaps it was overwritten?

Re: Problem in the Samsung SSD Firmware

Sourcerer wrote:

The SSD looks good to me, from a physical point of view, so I don't think that you need SSDdiag. (SSDdiag would be necessary if you would not even see the SSD at all, no serial number, ...)
Regarding the sysfsgpio, please take a look here:
https://www.kosagi.com/w/index.php?titl … AG_adapter

Thanks for updating this.  I'll probably take a stab at it if the below fails.

Sourcerer wrote:

Yes, there is a newer firmware available, which might improve things a bit. If you really want to try to update it, you need a Windows Machine and the software from Samsung. But I wouldn't try a firmware update at this point, it could make things worse as well.

Well, I don't have a Windows or Mac machine so the only option there would be to reverse-engineer the firmware, which would be highly difficult at my current skill level.  I'll keep it in mind, though.

Sourcerer wrote:

The CRC errors ... I am not sure, whether those are SATA-CRC errors (in this case make sure that the SSD is properly attached to the Novena mainboard, or check your SATA cable in case you are using on), or whether those are Flash CRC Errors.

I do travel with it on occasion.  It's attached via SATA.  I'll try re-seating it.

Sourcerer wrote:

I think I spotted a relevant error message: sda: unknown partition table. It seems that there is no partition table on it, perhaps it was overwritten?

Negatory.  I encrypt the entire drive and don't partition it.

Re: Problem in the Samsung SSD Firmware

Most of the PHYs are figured out mostly now. The sectors can be read out directly from flash now.
I updated the manual: http://www2.futureware.at/~philipp/ssd/ … Manual.pdf

Re: Problem in the Samsung SSD Firmware

TL;DR: Device didn't boot because using UUID and not disk-id.

So I decided to remount the SSD today.  This was tricky because the back screws weren't removable with the LCD in the way, so I had to remove the LCD screen.  Sadly, the LCD screen seems to have become rather... fused, so I had to take a small, hard plastic card to forcefully pry it off of the metal, carnage is as follows:
http://imgur.com/2AbarG0
http://imgur.com/Dd07IIN
http://imgur.com/Sd7ttZC
http://imgur.com/ZE6CHoU
Sorry about the poor image quality -- I haven't figured out how get this cheap camera to take good pictures (maybe it's impossible).  Anyways, despite that, I managed to re-seat the SSD (nothing seemed broken or weird), then re-attach the LCD screen without any problems (I wanted to unscrew the SSD but only have some sextahead screwdrivers, not pentahead :/; also, I only screwed in the front two screws and not the back two so I can take it out again easier).

Sadly, the SSD still didn't mount.  ...and then I saw it.

frostsnow wrote:

[    4.788235] Waiting for root device PARTUUID=4e6f7653-03...        <-- IMPORTANT PART

...using a UUID for a device without a partition table.  Then I slowly remembered that I had swapped the main kernel with the backup kernel to see if my problem was a kernel problem, but I also swapped the U-Boot image, which used the UUID to detect the boot device.  I had made a dumb.

So I fixed that and I can get into my OS at boot again.  I'm not sure what the root cause of my SSD problem is yet -- I had a kernel log but it accidentally got nuked in a fit of poor multitasking a few days ago.  I'm going to disable irq-balance (since that's the only thing I can think of that would cause this) and see if the problem crops up again.

Re: Problem in the Samsung SSD Firmware

I have some good news, I found a cheap JTAG adapter that works with the Samsung SSDs: Altera USB Blaster. It is about 3-6 times slower than a Novena, but for bigger amounts of data you want to use SATA anyway.
In the mean time, AES and a RNG have been found.

Re: Problem in the Samsung SSD Firmware

I added information to the paper about the encryption control: http://www2.futureware.at/~philipp/ssd/ … Manual.pdf