[Request] Add support for Steam Link

Specs:
CPU: Marvell 88DE3005-A1 (ARM Cortex-A9 with NEON @ 1GHz)
RAM: Micron MT41K256M16LY-107 (512MB DDR3L)
Flash: Micron MT29F32G08CBAC (4GiB NAND)
WiFi: Marvell 88W8897 (802.11ac + BT 4.2 HLE) (device also seems to support 2.4GHz)
Hub: SMSC USB2514B
1x RJ45 ethernet
3x USB 2.0

ford_kexec
Valve's SDK

Latest (atm) full firmware

# uname -a
Linux steamlink-923A 3.8.13-mrvl #92 PREEMPT Wed May 30 17:39:38 PDT 2018 armv7l GNU/Linux

# dmesg
[    6.495346] [pxa3xx_read_page,2964] nand page 0000012F direct map buf d1856500 error, try bounce buffer
[    6.495704] [pxa3xx_read_page,2964] nand page 00000130 direct map buf d1856500 error, try bounce buffer
[    6.496075] [pxa3xx_read_page,2964] nand page 00000131 direct map buf d1856500 error, try bounce buffer
[    6.496449] [pxa3xx_read_page,2964] nand page 00000132 direct map buf d1856500 error, try bounce buffer
[    6.496807] [pxa3xx_read_page,2964] nand page 00000133 direct map buf d1856500 error, try bounce buffer
[    6.497165] [pxa3xx_read_page,2964] nand page 00000134 direct map buf d1856500 error, try bounce buffer
[    6.497536] [pxa3xx_read_page,2964] nand page 00000135 direct map buf d1856500 error, try bounce buffer
[    6.497907] [pxa3xx_read_page,2964] nand page 00000136 direct map buf d1856500 error, try bounce buffer
[    6.498264] [pxa3xx_read_page,2964] nand page 00000137 direct map buf d1856500 error, try bounce buffer
[    6.498622] [pxa3xx_read_page,2964] nand page 00000138 direct map buf d1856500 error, try bounce buffer
[    6.498994] [pxa3xx_read_page,2964] nand page 00000139 direct map buf d1856500 error, try bounce buffer
[    6.499365] [pxa3xx_read_page,2964] nand page 0000013A direct map buf d1856500 error, try bounce buffer
[    6.499752] [pxa3xx_read_page,2964] nand page 0000013B direct map buf d1856500 error, try bounce buffer
[    6.500292] [pxa3xx_read_page,2964] nand page 000000F0 direct map buf d1856500 error, try bounce buffer
[    6.500767] [pxa3xx_read_page,2964] nand page 00000000 direct map buf d1856500 error, try bounce buffer
[    6.501196] [pxa3xx_read_page,2964] nand page 00000001 direct map buf d1856500 error, try bounce buffer
[    6.501577] [pxa3xx_read_page,2964] nand page 00000002 direct map buf d1856500 error, try bounce buffer
[    6.501945] [pxa3xx_read_page,2964] nand page 00000003 direct map buf d1856500 error, try bounce buffer
[    6.502406] [pxa3xx_read_page,2964] nand page 00000004 direct map buf d1856500 error, try bounce buffer
[    6.502807] [pxa3xx_read_page,2964] nand page 00000005 direct map buf d1856500 error, try bounce buffer
[    6.503190] [pxa3xx_read_page,2964] nand page 00000006 direct map buf d1856500 error, try bounce buffer
[    6.503557] [pxa3xx_read_page,2964] nand page 00000007 direct map buf d1856500 error, try bounce buffer
[    6.503921] [pxa3xx_read_page,2964] nand page 00000008 direct map buf d1856500 error, try bounce buffer
[    6.504303] [pxa3xx_read_page,2964] nand page 00000009 direct map buf d1856500 error, try bounce buffer
[    6.504684] [pxa3xx_read_page,2964] nand page 0000000A direct map buf d1856500 error, try bounce buffer
[    6.505049] [pxa3xx_read_page,2964] nand page 0000000B direct map buf d1856500 error, try bounce buffer
[    6.505544] [pxa3xx_read_page,2964] nand page 0000000C direct map buf d1856500 error, try bounce buffer
[    6.505941] [pxa3xx_read_page,2964] nand page 0000000D direct map buf d1856500 error, try bounce buffer
[    6.506329] [pxa3xx_read_page,2964] nand page 0000000E direct map buf d1856500 error, try bounce buffer
[    6.506699] [pxa3xx_read_page,2964] nand page 0000000F direct map buf d1856500 error, try bounce buffer
[    6.507068] [pxa3xx_read_page,2964] nand page 00000010 direct map buf d1856500 error, try bounce buffer
[    6.507552] [pxa3xx_read_page,2964] nand page 00000011 direct map buf d1856500 error, try bounce buffer
[    6.507946] [pxa3xx_read_page,2964] nand page 00000012 direct map buf d1856500 error, try bounce buffer
[    6.508317] [pxa3xx_read_page,2964] nand page 00000013 direct map buf d1856500 error, try bounce buffer
[    6.508678] [pxa3xx_read_page,2964] nand page 00000014 direct map buf d1856500 error, try bounce buffer
[    6.509053] [pxa3xx_read_page,2964] nand page 00000015 direct map buf d1856500 error, try bounce buffer
[    6.509425] [pxa3xx_read_page,2964] nand page 00000016 direct map buf d1856500 error, try bounce buffer
[    6.509784] [pxa3xx_read_page,2964] nand page 00000017 direct map buf d1856500 error, try bounce buffer
[    6.510143] [pxa3xx_read_page,2964] nand page 00000018 direct map buf d1856500 error, try bounce buffer
[    6.510516] [pxa3xx_read_page,2964] nand page 00000019 direct map buf d1856500 error, try bounce buffer
[    6.510887] [pxa3xx_read_page,2964] nand page 0000001A direct map buf d1856500 error, try bounce buffer
[    6.511244] [pxa3xx_read_page,2964] nand page 0000001B direct map buf d1856500 error, try bounce buffer
[    6.511630] [pxa3xx_read_page,2964] nand page 0000001C direct map buf d1856500 error, try bounce buffer
[    6.512033] [pxa3xx_read_page,2964] nand page 0000001D direct map buf d1856500 error, try bounce buffer
[    6.512413] [pxa3xx_read_page,2964] nand page 0000001E direct map buf d1856500 error, try bounce buffer
[    6.512787] [pxa3xx_read_page,2964] nand page 0000001F direct map buf d1856500 error, try bounce buffer
[    6.513152] [pxa3xx_read_page,2964] nand page 00000020 direct map buf d1856500 error, try bounce buffer
[    6.513526] [pxa3xx_read_page,2964] nand page 00000021 direct map buf d1856500 error, try bounce buffer
[    6.513899] [pxa3xx_read_page,2964] nand page 00000022 direct map buf d1856500 error, try bounce buffer
[    6.514261] [pxa3xx_read_page,2964] nand page 00000023 direct map buf d1856500 error, try bounce buffer
[    6.514622] [pxa3xx_read_page,2964] nand page 00000024 direct map buf d1856500 error, try bounce buffer
[    6.514996] [pxa3xx_read_page,2964] nand page 00000025 direct map buf d1856500 error, try bounce buffer
[    6.515370] [pxa3xx_read_page,2964] nand page 00000026 direct map buf d1856500 error, try bounce buffer
[    6.515731] [pxa3xx_read_page,2964] nand page 00000027 direct map buf d1856500 error, try bounce buffer
[    6.516091] [pxa3xx_read_page,2964] nand page 00000028 direct map buf d1856500 error, try bounce buffer
[    6.516464] [pxa3xx_read_page,2964] nand page 00000029 direct map buf d1856500 error, try bounce buffer
[    6.516838] [pxa3xx_read_page,2964] nand page 0000002A direct map buf d1856500 error, try bounce buffer
[    6.517196] [pxa3xx_read_page,2964] nand page 0000002B direct map buf d1856500 error, try bounce buffer
[    6.517555] [pxa3xx_read_page,2964] nand page 0000002C direct map buf d1856500 error, try bounce buffer
[    6.517938] [pxa3xx_read_page,2964] nand page 0000002D direct map buf d1856500 error, try bounce buffer
[    6.518313] [pxa3xx_read_page,2964] nand page 0000002E direct map buf d1856500 error, try bounce buffer
[    6.518672] [pxa3xx_read_page,2964] nand page 0000002F direct map buf d1856500 error, try bounce buffer
[    6.519031] [pxa3xx_read_page,2964] nand page 00000030 direct map buf d1856500 error, try bounce buffer
[    6.519402] [pxa3xx_read_page,2964] nand page 00000031 direct map buf d1856500 error, try bounce buffer
[    6.519773] [pxa3xx_read_page,2964] nand page 00000032 direct map buf d1856500 error, try bounce buffer
[    6.520131] [pxa3xx_read_page,2964] nand page 00000033 direct map buf d1856500 error, try bounce buffer
[    6.520489] [pxa3xx_read_page,2964] nand page 00000034 direct map buf d1856500 error, try bounce buffer
[    6.520860] [pxa3xx_read_page,2964] nand page 00000035 direct map buf d1856500 error, try bounce buffer
[    6.521230] [pxa3xx_read_page,2964] nand page 00000036 direct map buf d1856500 error, try bounce buffer
[    6.521586] [pxa3xx_read_page,2964] nand page 00000037 direct map buf d1856500 error, try bounce buffer
[    6.521942] [pxa3xx_read_page,2964] nand page 00000038 direct map buf d1856500 error, try bounce buffer
[    6.522314] [pxa3xx_read_page,2964] nand page 00000039 direct map buf d1856500 error, try bounce buffer
[    6.522689] [pxa3xx_read_page,2964] nand page 0000003A direct map buf d1856500 error, try bounce buffer
[    6.523076] [pxa3xx_read_page,2964] nand page 0000003B direct map buf d1856500 error, try bounce buffer
[    7.124870] cfg80211: World regulatory domain updated:
[    7.124882] cfg80211:  DFS Master region FCC
[    7.124886] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[    7.124893] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2700 mBm)
[    7.124899] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 1700 mBm)
[    7.124904] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2400 mBm)
[    7.124909] cfg80211:   (5735000 KHz - 5815000 KHz @ 80000 KHz), (N/A, 3000 mBm)
[    7.347511] 8897mlan: module license 'Marvell Proprietary' taints kernel.
[    7.347522] Disabling lock debugging due to kernel taint
[    7.435097] wlan: Loading MWLAN driver
[    7.442771] vendor=0x02DF device=0x912D class=0 function=1
[    7.448548] SDIO: max_segs=128 max_seg_size=65536
[    7.453428] rx_work=0 cpu_num=1
[    7.456939] wlan: Enable TX SG mode
[    7.456946] wlan: Enable RX SG mode
[    8.622605] Wlan: FW download over, firmwarelen=792072 downloaded 792072
[    9.325100] WLAN FW is active
[    9.392623] fw_cap_info=0x1ffab, dev_cap_mask=0xffffffff
[    9.399848] SDIO rx aggr: 1 block_size=412
[    9.399855] wlan: Enable RX SG mode
[    9.399859] mpa_rx_buf_size=65280
[    9.410333] CMD_RESP: cmd 0x23a error, result=0x2
[    9.418315] cfg80211: Calling CRDA for country: US
[    9.486575] cfg80211: Regulatory domain changed to country: US
[    9.486586] cfg80211:  DFS Master region FCC
[    9.486590] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[    9.486597] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2700 mBm)
[    9.486603] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 1700 mBm)
[    9.486608] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2400 mBm)
[    9.486614] cfg80211:   (5735000 KHz - 5815000 KHz @ 80000 KHz), (N/A, 3000 mBm)
[    9.508225] wlan: version = SD8897-15.68.7.p206-C3X15C125.p1-GPL-(FP68)
[    9.519064] wlan: Driver loaded successfully
[    9.559862] drvdbg = 0x00080007
[    9.563152] MMPA_D (00008000)
[    9.566314] MIF_D  (00100000)
[    9.569492] MFW_D  (00080000) X
[    9.572742] MEVT_D (00040000)
[    9.575900] MCMD_D (00020000)
[    9.579057] MDAT_D (00010000)
[    9.582214] MIOCTL (00000080)
[    9.585374] MINTR  (00000040)
[    9.588532] MEVENT (00000020)
[    9.591689] MCMND  (00000010)
[    9.594846] MDATA  (00000008)
[    9.598003] MERROR (00000004) X
[    9.601249] MFATAL (00000002) X
[    9.604500] MMSG   (00000001) X
[   10.153896] BT: Loading driver
[   10.170275] BT FW is active(0)
[   10.173814] BT: FW already downloaded!
[   10.288193] cfg80211: Calling CRDA for country: XB
[   10.339006] cfg80211: Regulatory domain changed to country: XB
[   10.339016] cfg80211:  DFS Master region FCC
[   10.339020] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   10.339028] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2700 mBm)
[   10.339034] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 1700 mBm)
[   10.339039] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2400 mBm)
[   10.339045] cfg80211:   (5735000 KHz - 5815000 KHz @ 80000 KHz), (N/A, 3000 mBm)
[   10.359651] BT: Create /dev/mnfcchar0
[   10.505012] BT: Driver loaded successfully
[   11.869833] unionfs: new lower inode mtime (bindex=1, name=connman)
[   12.202644] wlan: mlan0 START SCAN
[   12.299288] wlan: SCAN COMPLETED: scanned AP count=1
[   13.209410] wlan: Connected to bssid c4:XX:XX:XX:47:f5 successfully
[   13.220150] cfg80211: Calling CRDA for country: US
[   13.271152] cfg80211: Regulatory domain changed to country: US
[   13.271162] cfg80211:  DFS Master region FCC
[   13.271166] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   13.271173] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2700 mBm)
[   13.271179] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 1700 mBm)
[   13.271185] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2400 mBm)
[   13.271190] cfg80211:   (5735000 KHz - 5815000 KHz @ 80000 KHz), (N/A, 3000 mBm)
[   31.012002] mv88de3100_wdt f7e82000.wdt: new timeout (4, approximant)
[   31.012016] cfg: 106250000
[   31.220424] input: Logitech Gamepad F310 as /devices/soc.0/f7ee0000.usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input1
[   31.233037] usbcore: registered new interface driver xpad
[   31.255311] [Galois][pe_agent_driver] setup cdevs device minor [1]
[   31.263760] [Galois][pe_agent_driver] create device sysfs [galois_pe_agent]
[   31.263798] [Galois][pe_agent_driver] pe_agent_driver_init OK
[   31.263803] [Galois][pe_driver] pe_driver_init OK
[   31.278502] Clear GiQuila INTR = 00000000
[   31.328525] gpu warning: of_property_read_u32 for 3D core-clock-register failed!
[   31.328536] gpu warning: of_property_read_u32 for 3D sys-clock-register failed!
[   31.328541] gpu warning: of_property_read_u32 for 3D core-clock-bitfield failed!
[   31.328545] gpu warning: of_property_read_u32 for 3D sys-clock-bitfield failed!
[   31.328568] Galcore version 5.0.11.17486
[   31.328572] gal3d options:
[   31.328575]   irqLine           = 37
[   31.328579]   registerMemBase   = 0xF7BC0000
[   31.328583]   registerMemSize   = 0x00000800
[   31.328586]   contiguousSize    = 512
[   31.328590]   contiguousBase    = 0x00000000
[   31.328593]   bankSize          = 0x00000000
[   31.328597]   fastClear         = -1
[   31.328600]   compression       = -1
[   31.328603]   signal            = 48
[   31.328606]   powerManagement   = 1
[   31.328610]   baseAddress       = 0x00000000
[   31.328613]   physSize          = 0x80000000
[   31.328616]   logFileSize       = 0 KB
[   31.328620]   recovery          = 1
[   31.328623]   stuckDump         = 1
[   31.328627]   gpuProfiler       = 0
[   33.538962] [Galois][pe_driver] drv stop fastlogo
[   33.538977] set stop_flag to 1
[   33.560151] VPP_dhub_sem_clear stop_flag=2
[   33.764157] [Galois][fastlogo_driver] dev exit done
[   33.764165] [Galois][fastlogo_driver] profile 384:
[   33.764170]    0: 01656762:00005977
[   33.764175]    1: 20551031:00005562
[   33.764179]    2: 13903576:00002372
[   33.764183]    3: 20764725:00001826
[   33.764186]    4: 15453223:00001666
[   33.764190]    5: 13032311:00001666
[   33.764194]    6: 23985195:00001647
[   33.764198]    7: 12406824:00001666
[   33.764201]    8: 13373261:00006871
[   33.764209]  237: 23496273:00005581
[   33.764213]  238: 09866089:00004565
[   34.430459] [Galois][pe_agent_driver] open filp:cfb28300 tgid:1403
[   34.430626] [Galois][pe_agent_driver] filp:cfb28300 ioctl:set pe inst:88de3100 tgid:1403 token:00000000
[   34.573968] [Galois][pe_agent_driver] open filp:cfb28600 tgid:1407
[   34.573987] [Galois][pe_agent_driver] filp:cfb28600 ioctl:set token:80000002 tgid:1407
[   34.584624] [Galois][pe_agent_driver] filp:cfb28300 ioctl:set pe inst:88de3101 tgid:1407 token:80000002
[   34.718586] [Galois][pe_agent_driver] open filp:cfb28800 tgid:1444
[   34.718603] [Galois][pe_agent_driver] filp:cfb28800 ioctl:set token:80000007 tgid:1444
[   34.718785] [Galois][pe_agent_driver] filp:cfb28300 ioctl:set pe inst:88de3102 tgid:1444 token:80000007
[   36.240856] [Galois][pe_agent_driver] open filp:cfbd2c00 tgid:1457
[   36.240875] [Galois][pe_agent_driver] filp:cfbd2c00 ioctl:set token:8000000c tgid:1457
[   36.241063] [Galois][pe_agent_driver] filp:cfb28300 ioctl:set pe inst:88de3103 tgid:1457 token:8000000c

# cat /proc/cmdline
console=ttyS0,115200 root=/dev/mtdblock5 rootfstype=yaffs2 ro root_part_name=rootfs init=/sbin/init mtdparts=mv_nand:1M(block0),8M(bootloader),11M(env),512M(sysconf),32M(factory_setting),32M(bootimgs),128M(recovery),32M(fts),384M(factory),1G(rootfs),1924M(cache),8M(bbt) initrd=0x1a00000,0x4b433 macaddr=00:11:22:33:44:55

# cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 0 (v7l)
BogoMIPS        : 995.32
Features        : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x3
CPU part        : 0xc09
CPU revision    : 0

Hardware        : MV88DE3108
Revision        : 0000
Serial          : 0000000000000000

# cat /proc/iomem
00000000-000fffff : gpu_mem
01000000-11ffffff : System RAM
   01008000-015e7ecb : Kernel code
   01610000-0169356b : Kernel data
f7ab0000-f7ab01ff : mmc0
f7bc0000-f7bc07ff : gpu_base
   f7bc0000-f7bc07ff : galcore register region
f7e82000-f7e91fff : f7e82000.wdt
f7ee0000-f7eeffff : ehci_hcd
f7ef0000-f7efffff : gpu_base
   f7ef0000-f7effffe : galcore register region
f7f00000-f7f0ffff : f7f00000.nfc
f7fc9000-f7fc901f : serial
f7fca000-f7fca01f : serial

# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00100000 00100000 "block0"
mtd1: 00800000 00100000 "bootloader"
mtd2: 00b00000 00100000 "env"
mtd3: 20000000 00100000 "sysconf"
mtd4: 02000000 00100000 "factory_setting"
mtd5: 02000000 00100000 "bootimgs"
mtd6: 08000000 00100000 "recovery"
mtd7: 02000000 00100000 "fts"
mtd8: 18000000 00100000 "factory"
mtd9: 40000000 00100000 "rootfs"
mtd10: 78400000 00100000 "cache"
mtd11: 00800000 00100000 "bbt"
mtd12: 100000000 00100000 "mv_nand"

# ls /dev
0:0:0:0             galois_cc           initctl             network_throughput  shm_noncache        twsi2
block               galois_pe           input               null                snd                 twsi3
bus                 galois_pe_agent     kmsg                psaux               tty                 ubi_ctrl
console             gpio                loop-control        ptmx                ttyS0               uhid
cpu_dma_latency     graphics            loop0               pts                 ttyS1               uinput
cuse                hidraw0             mem                 random              ttyS2               urandom
full                hidraw1             mnfcchar0           rfkill              ttyS3               watchdog
fuse                hidraw2             mtd                 sg0                 tun                 zero
gal3d               hidraw3             mtd1                shm                 twsi0
galcore             hidraw4             network_latency     shm_cache           twsi1

# lsmod
gal3d 150885 2 - Live 0xbf127000
gfx 5594 0 - Live 0xbf121000
galois_pe 23250 10 - Live 0xbf116000
xpad 20177 0 - Live 0xbf10d000
bt8xxx 65343 1 - Live 0xbf0f5000
sd8897 465471 1 - Live 0xbf06c000
8897mlan 386305 1 sd8897, Live 0xbf000000 (P)

# lsusb
Bus 001 Device 002: ID 0424:2514
Bus 001 Device 001: ID 1d6b:0002
Bus 001 Device 003: ID 28de:1142
Bus 001 Device 004: ID 046d:c21d
Bus 001 Device 005: ID 0781:5590

# dd if=/dev/urandom of=/dev/null bs=1 count=1M
1048576+0 records in
1048576+0 records out
1048576 bytes (1.0MB) copied, 6.717406 seconds, 152.4KB/s

# dd if=/dev/zero of=/dev/null bs=1M count=4K
4096+0 records in
4096+0 records out
4294967296 bytes (4.0GB) copied, 4.594491 seconds, 891.5MB/s

Usually, the person wanting support - is the one who brings support.

Does your device have a serial connector inside?

Also, since you're the one with a device, just know, you'll have to be willing to test.

I was trying to get one for experimenting but shipping to Croatia is ridiculously expensive