Ath79: support for NEC WR8750N

Hello.

I'm trying to add support for NEC Aterm WR8750N in ath79 target.

Specification:

  • SoC: Atheros AR9344
  • RAM: 2x DDR2 64MB (H5PS5162GFR) = 128MB
  • Flash: SPI-NOR 8MB (MX25L6406E)
  • Switch: QCA8337
  • USB: 2.0 Type-A
  • Bootloader: unknown (original?)
  • OS (stock firmware): NetBSD based
  • baudrate: 9600bps

other infomations: https://memo205.wordpress.com/2018/12/07/wr8750n/
stock firmware: http://www.aterm.jp/product/atermstation/verup/warpstar/wr8750n.html
("WR8750Nファームウェアをダウンロード" means "download the firmware for WR8750N")

Repository:

Currently, when I pass the OpenWrt initramfs image via tftp, it succeeded to start the lzma-loader of OpenWrt on this device. But, An exception occurs during decoding lzma-compressed kernel and it will hard reset.

log:

boot> start tftp load openwrt-ath79-generic-nec_wr8750
end tftp load length = 3505264
start memory load ... 
memory load complete
  begin  : 0x80060000
  length : 3505240
  startup: 0x80060000
boot
begin  : 0x80060000
length : 3505240
startup: 0x80060000
option: 0x0
 
 
OpenWrt kernel loader for AR7XXX/AR9XXX
Copyright (C) 2011 Gabor Juhos 
Decompressing kernel... 
                       @
 
exception!!
ExcCode:10 "Reserved instruction exception"
 
afbf001c (param1) 0c01ff11 (param2) 00402025 (param3) 
8fbf001c (param4) 03e00008 (errno) 40008028 (cause) 
27bdffe0 (ctx) 00003825 (fpcsr) 6c0d1a80 (badvaddr) 
afa00014 (pad) 10004002 (sr) 80a00c10 (epc) 
00000001 (lo) 00000000 (hi) 
00000000 (zero) a0080000 (at) 80ab1a80 (v0) 80a00d80 (v1) 
ffffffe0 (a0) 80a01510 (a1) 00000001 (a2) 80a01511 (a3) 
80a00258 (t0) 0000000a (t1) 80a015fd (t2) 00a51a9e (t3) 
00000000 (t4) 01000000 (t5) 80d59c04 (t6) 80a0028c (t7) 
80a00900 (s0) 80060000 (s1) 0000030d (s2) 005f0e3f (s3) 
00000001 (s4) 2cfa97a1 (s5) 80d5a930 (s6) 00000010 (s7) 
00000035 (t8) 80a00120 (t9) 00000028 (k0) 0000007c (k1) 
e087c52b (gp) 80d59c00 (sp) 00000001 (fp) 80a00bec (ra) 
 
call trace
pc: 80a00c10
 
 
 
IPL:HARD-RESET

I don't know the cause of the exception and cannot solve it.
Any ideas...?

I succeeded to start Linux Kernel with gzip-compressed initramfs image, but a soft-reset occurs during boot and will be interrupted.

log:

start tftp load openwrt-ath79-tiny-nec_wr8750n-i
end tftp load length = 3583343
start memory load ... 
memory load complete
  begin  : 0x80060000
  length : 3583319
  startup: 0x80060000
boot
begin  : 0x80060000
length : 3583319
startup: 0x80060000
option: 0x0
[    0.000000] Linux version 4.14.87 (tofu@tofu-z77hvub18_openwrt) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r8695-1eb39ece8d)) #0 Tue Dec 11 13:11:03 2018
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0001974c (MIPS 74Kc)
[    0.000000] MIPS: machine is NEC Aterm WR8750N
[    0.000000] SoC: Atheros AR9344 rev 1
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] random: get_random_bytes called from 0x8045772c with crng_init=0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyS0,9600 rootfstype=squashfs,jffs2
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] Memory: 120448K/131072K available (3444K kernel code, 139K rwdata, 468K rodata, 4772K init, 195K bss, 10624K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 51
[    0.000000] CPU clock: 560.000 MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6825930166 ns
[    0.000011] sched_clock: 32 bits at 280MHz, resolution 3ns, wraps every 7669584382ns
[    0.092708] Calibrating delay loop... 278.93 BogoMIPS (lpj=1394688)
[    0.237625] pid_max: default: 32768 minimum: 301
[    0.293070] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.372219] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.460495] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.578166] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.651120] pinctrl core: initialized pinctrl subsystem
[    0.714584] NET: Registered protocol family 16
[    0.768472] Can't analyze schedule() prologue at 803b8ee4
[    0.851006] clocksource: Switched to clocksource MIPS
[    0.912540] NET: Registered protocol family 2
[    0.965460] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    1.048781] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    1.124770] TCP: Hash tables configured (established 1024 bind 1024)
[    1.200908] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    1.270713] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    1.345915] NET: Registered protocol family 1
[    1.511715] Crashlog allocated RAM at address 0x3f00000
[    1.575637] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[    1.657573] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.727362] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[   
IPL:SOFT-RESET

Hi,

Are you still working on this device? Looks TP-Link TL-WDR4300 v1 firmware works on the device (at least usable, but I have not fully tested it).

Done, but it's a personal support and no plan to submit patches to official repository.
The stock bootloader can't boot OpenWrt from flash and replacing to 3rd party u-boot is required, it is unacceptable on OpenWrt project.

Note: TL-WDR4300 v1 firmware can't be booted on this device.