What's new

Linksys WRT3200ACM USB to TTL Connection

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

chadster766

Very Senior Member
Opening the WRT3200 case:

1. Just like the WRT1900AC V2 the WRT3200ACM TTL port is located in the front of the unit. So only the two screws in the front feet\stands need to be remove in order to pull off the blue front cover.

2. The TTL port has the same pinout as the WRT1900AC V2.

Pictures of the inside of the WRT3200ACM:

1. The WRT3200ACM TLL Port

WRT3200ACM-1.png


2. Some antenna wires

WRT3200ACM-2.png


3. Original antenna wire run under board across TTL port

WRT3200ACM5.jpg


4. I routed the antenna cables differently. I don't recommend anyone else do this because it could be a mistake on my part. Only time and testing will tell ;)

WRT3200ACM-4.png


5. I added a connector to the TTL port so I don't have to leave the front cover off during troubleshooting and McDebian development.

WRT3200ACM-3.png
 
Last edited:
Serial console output:

Code:
BootROM - 1.73
Booting from NAND flash

General initialization - Version: 1.0.0
AVS selection from EFUSE disabled (Skip reading EFUSE values)
mvSysEnvIsFlavourReduced: TWSI Read of 'flavor' failed
Detected Device ID 6820
High speed PHY - Version: 2.0

Init RD NAS topology Serdes Lane 3 is USB3
Serdes Lane 4 is SGMII
board SerDes lanes topology details:
| Lane # | Speed|    Type     |
------------------------------|
|   0    |  6   |  SATA0      |
|   1    |  5   |  PCIe0      |
|   2    |  6   |  SATA1      |
|   3    |  5   |  USB3 HOST1 |
|   4    |  5   |  PCIe1      |
|   5    |  0   |  SGMII2     |
-------------------------------
:** Link is Gen1, check the EP capability
PCIe, Idx 0: Link upgraded to Gen2 based on client cpabilities
:** Link is Gen1, check the EP capability
PCIe, Idx 1: remains Gen1
High speed PHY - Ended Successfully
DDR3 Training Sequence - Ver TIP-1.46.0
mvSysEnvGetTopologyUpdateInfo: TWSI Read failed
DDR3 Training Sequence - Switching XBAR Window to FastPath Window
DDR3 Training Sequence - Ended Successfully
Not detected suspend to RAM indication
BootROM: Image checksum verification PASSED

__   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
         _   _     ____              _
        | | | |   | __ )  ___   ___ | |_
        | | | |___|  _ \ / _ \ / _ \| __|
        | |_| |___| |_) | (_) | (_) | |_
         \___/    |____/ \___/ \___/ \__|
** LOADER **


U-Boot 2013.01 (Apr 08 2016 - 15:47:50) Marvell version: 2015_T1.QA.0p16

Boot version : v0.0.4

Board: RD-NAS-88F6820-DDR3
SoC:   MV88F6820 Rev A0
       running 2 CPUs
CPU:   ARM Cortex A9 MPCore (Rev 1) LE
       CPU 0
       CPU    @ 1866 [MHz]
       L2     @ 933 [MHz]
       TClock @ 200 [MHz]
       DDR3    @ 933 [MHz]
       DDR3 32 Bit Width,FastPath Memory Access, DLB Enabled, ECC Disabled
DRAM:  512 MiB
NAND:  256 MiB
MMC:   mv_sdh: 0
DEVINFO offset == 0x7e0000
U-ENV offset == 0x200000
U-ENV offset == 0x200000
S-ENV offset == 0x220000


#### auto_recovery ####
[u_env] get auto_recovery == yes
[u_env] get auto_recovery == yes
[u_env] get boot_part == 1
[u_env] get boot_part_ready == 3
auto_recovery enabled:1, boot_part:1, boot_part_ready:3

S-ENV offset == 0x220000
[boot_count_read] block:0x220000, size:128KB, records:64
[boot_count_read_record] boot_count:2, next_record:9

[boot_count_write] erase:0, auto_recovery->block_offset:0x220000 offset=0x224800

Updating boot_count ...
[boot_count_write] offset:0x224800 , length:2048
done

PCI-e 0 (IF 0 - bus 0) Root Complex Interface, Detected Link X1, GEN 2.0
PCI-e 1 (IF 1 - bus 1) Root Complex Interface, Detected Link X1, GEN 1.1
USB2.0 0: Host Mode
USB3.0 1: Host Mode
USB3.0 0: Host Mode

Map:   Code:                    0x1feab000:0x1ff75a20
       BSS:                     0x1ffef164
       Stack:                   0x1f9aaf20
       Heap:                    0x1f9ab000:0x1feab000
U-ENV offset == 0x200000
U-ENV offset == 0x200000
       U-Boot Environment:      0x00200000:0x00220000 (NAND)

Board configuration detected:
mvEthE6171SwitchBasicInit init
Net:
|  port  | Interface | PHY address  |
|--------|-----------|--------------|
| egiga0 |   RGMII   |     0x01     |
| egiga1 |   SGMII   |     0x00     |
| egiga2 |   SGMII   |   In-Band    |
egiga0 [PRIME], egiga1, egiga2
auto_recovery_check changes bootcmd: run nandboot
Hit any key to stop autoboot:  0

NAND read: device 0 offset 0xa00000, size 0x600000
6291456 bytes read: OK
## Booting kernel from Legacy Image at 02000000 ...
   Image Name:   Linksys WRT3200 Router
   Created:      2016-08-26   0:55:45 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4659771 Bytes = 4.4 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK
 
More serial console output:

Code:
Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0x0
Linux version 3.10.70 (root@build-vm) (gcc version 4.6.4 (Linaro GCC branch-4.6.4. Marvell GCC Dev 201310-2126.3d181f66 64K MAXPAGESIZE ALIGN) ) #1 SMP Thu Aug 25 17:55:29 PDT 2016
CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Marvell Armada 380/381/382/383/384/385/388 (Device Tree), model: Marvell Armada 385 Development Board
bootconsole [earlycon0] enabled
Memory policy: ECC disabled, Data cache writealloc
PERCPU: Embedded 7 pages/cpu @c1162000 s7488 r8192 d12992 u32768
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyS0,115200 root=/dev/mtdblock6 ro rootdelay=1 rootfstype=jffs2 earlyprintk mtdparts=armada-nand:2048K(uboot)ro,128K(u_env),256K(s_env),256K@8064K(devinfo),1920K@8320K(sysdiag),80m@10m(kernel),74m@16m(rootfs),80m@90m(alt_kernel),74m@96m(alt_rootfs),160m@10m(ubifs),-@170m(syscfg)
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
allocated 1048576 bytes of page_cgroup
please try 'cgroup_disable=memory' option if you don't want memory cgroups
Memory: 512MB = 512MB total
Memory: 508716k/508716k available, 15572k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    vmalloc : 0xe0800000 - 0xfff00000   ( 503 MB)
    lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    modules : 0xbf000000 - 0xbfe00000   (  14 MB)
      .text : 0xc0008000 - 0xc084ccd4   (8468 kB)
      .init : 0xc084d000 - 0xc088ed40   ( 264 kB)
      .data : 0xc0890000 - 0xc08e4260   ( 337 kB)
       .bss : 0xc08e4260 - 0xc09ab18c   ( 796 kB)
Hierarchical RCU implementation.
        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
NR_IRQS:16 nr_irqs:16 16

  LSP version: linux-3.10.70-2015_T1.1p7

sched_clock: 32 bits at 25MHz, resolution 40ns, wraps every 171798ms
L310 cache controller enabled
l2x0: 16 ways, CACHE_ID 0x410054c9, AUX_CTRL 0x16070000, Cache size: 1048576 B
Console: colour dummy device 80x30
Calibrating delay loop... 3726.54 BogoMIPS (lpj=18632704)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
Initializing cgroup subsys memory
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Calibrating local timer... 933.29MHz.
Setting up static identity map for 0xc064cc58 - 0xc064ccb0
mvebu-pmsu: Initializing Power Management Service Unit
Initializing CPU Reset module
CPU1: Booted secondary processor
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
Brought up 2 CPUs
SMP: Total of 2 processors activated (7453.08 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
mvebu-soc-id: MVEBU SoC ID=0x6820, Rev=0x4
xor: measuring software checksum speed
   arm4regs  :  3309.200 MB/sec
   8regs     :  2234.400 MB/sec
   32regs    :  1905.600 MB/sec
xor: using function: arm4regs (3309.200 MB/sec)
pinctrl core: initialized pinctrl subsystem
regulator-dummy: no parameters
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
irq: Cannot allocate irq_descs @ IRQ195, assuming pre-allocated
irq: Cannot allocate irq_descs @ IRQ227, assuming pre-allocated
bio: create slab <bio-0> at 0
raid6: int32x1    232 MB/s
raid6: int32x2    344 MB/s
raid6: int32x4    437 MB/s
raid6: int32x8    444 MB/s
raid6: using algorithm int32x8 (444 MB/s)
raid6: using intx1 recovery algorithm
mvebu-pcie pcie-controller.6: PCIe0.0: link up
mvebu-pcie pcie-controller.6: PCIe1.0: link up
mvebu-pcie pcie-controller.6: PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io  0x1000-0xfffff]
pci_bus 0000:00: root bus resource [mem 0xe0000000-0xe7ffffff]
pci_bus 0000:00: root bus resource [bus 00-ff]
PCI: bus0: Fast back to back transfers disabled
pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:00:02.0: bridge configuration invalid ([bus 00-00]), reconfiguring
PCI: bus1: Fast back to back transfers disabled
PCI: bus2: Fast back to back transfers disabled
pci 0000:00:01.0: BAR 8: assigned [mem 0xe0000000-0xe02fffff]
pci 0000:00:02.0: BAR 8: assigned [mem 0xe0400000-0xe06fffff]
pci 0000:01:00.0: BAR 0: assigned [mem 0xe0000000-0xe01fffff 64bit pref]
pci 0000:01:00.0: BAR 2: assigned [mem 0xe0200000-0xe02fffff 64bit pref]
pci 0000:00:01.0: PCI bridge to [bus 01]
pci 0000:00:01.0:   bridge window [mem 0xe0000000-0xe02fffff]
pci 0000:02:00.0: BAR 0: assigned [mem 0xe0400000-0xe05fffff 64bit pref]
pci 0000:02:00.0: BAR 2: assigned [mem 0xe0600000-0xe06fffff 64bit pref]
pci 0000:00:02.0: PCI bridge to [bus 02]
pci 0000:00:02.0:   bridge window [mem 0xe0400000-0xe06fffff]
PCI: enabling device 0000:00:01.0 (0140 -> 0143)
PCI: enabling device 0000:00:02.0 (0140 -> 0143)
vgaarb: loaded
 
A little more serial console output :rolleyes:

Code:
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
Bluetooth: Core ver 2.16
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
Switching to clocksource armada_370_xp_clocksource
cfg80211: Calling CRDA to update world regulatory domain
NET: Registered protocol family 2
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP: reno registered
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
fuse init (API version 7.22)
msgmni has been set to 993
async_tx: api initialized (async)
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
armada-38x-pinctrl f1018000.pinctrl: registered pinctrl driver
mv_xor f1060800.xor: Marvell shared XOR driver
mv_xor f1060800.xor: Marvell XOR (Descriptor Mode): ( xor cpy intr pq )
mv_xor f1060800.xor: freeing 1 in use descriptors!
mv_xor f1060800.xor: Marvell XOR (Descriptor Mode): ( intr crc32c )
mv_xor f1060900.xor: Marvell shared XOR driver
mv_xor f1060900.xor: Marvell XOR (Descriptor Mode): ( xor cpy intr pq )
mv_xor f1060900.xor: freeing 1 in use descriptors!
mv_xor f1060900.xor: Marvell XOR (Descriptor Mode): ( intr crc32c )
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 44) is a 16550A
console [ttyS0] enabled, bootconsole disabled
console [ttyS0] enabled, bootconsole disabled
ahci_mv f10a8000.sata: AHCI 0001.0000 32 slots 2 ports 6 Gbps 0x3 impl platform mode
ahci_mv f10a8000.sata: flags: 64bit ncq sntf led only pmp fbs pio slum part sxs
scsi0 : ahci_mv_platform
scsi1 : ahci_mv_platform
ata1: SATA max UDMA/133 mmio [mem 0xf10a8000-0xf10a9fff] port 0x100 irq 58
ata2: SATA max UDMA/133 mmio [mem 0xf10a8000-0xf10a9fff] port 0x180 irq 58
armada-nand f10d0000.nand: Initialize HAL based NFC in 8bit mode with DMA Disabled using BCH 4bit ECC
NAND device: Manufacturer ID: 0x01, Chip ID: 0xda (AMD/Spansion NAND 256MiB 3,3V 8-bit), 256MiB, page size: 2048, OOB size: 64
Bad block table found at page 131008, version 0x01
Bad block table found at page 130944, version 0x01
11 cmdlinepart partitions found on MTD device armada-nand
Creating 11 MTD partitions on "armada-nand":
0x000000000000-0x000000200000 : "uboot"
0x000000200000-0x000000220000 : "u_env"
0x000000220000-0x000000260000 : "s_env"
0x0000007e0000-0x000000820000 : "devinfo"
0x000000820000-0x000000a00000 : "sysdiag"
0x000000a00000-0x000005a00000 : "kernel"
0x000001000000-0x000005a00000 : "rootfs"
0x000005a00000-0x00000aa00000 : "alt_kernel"
0x000006000000-0x00000aa00000 : "alt_rootfs"
0x000000a00000-0x00000aa00000 : "ubifs"
0x00000aa00000-0x000010000000 : "syscfg"
bonding: Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
SoC: model = 0x6820, revision = 0x4
mvPncVirtBase = 0xe0c00000, pncTcamSize = 1024
  o 3 Giga ports supported
  o SKB recycle supported for SWF (Disabled)
  o NETA acceleration mode 4
  o BM supported for CPU: 4 BM pools
  o PnC supported (Enabled)
  o RX Queue support: 8 Queues * 256 Descriptors
  o TX Queue support: 8 Queues * 532 Descriptors
  o GSO supported
  o GRO supported
  o Receive checksum offload supported
  o Transmit checksum offload supported
  o Driver ERROR statistics enabled
  o Driver INFO statistics enabled
  o Driver DEBUG statistics enabled

port #0: is_sgmii=0, is_rgmii=1, phy_addr=0
  o Loading network interface(s) for port #0: cpu_mask=0x3, tx_csum_limit=9800

  o Port 0 is connected to Linux netdevice
    o eth0, ifindex = 3, GbE port = 0
        giga p=0: mtu=1500, mac=60:38:e0:b4:47:a0 (hw config)

port #2: is_sgmii=1, is_rgmii=0, phy_addr=1
  o Loading network interface(s) for port #2: cpu_mask=0x3, tx_csum_limit=2048

  o Port 2 is connected to Linux netdevice
    o eth1, ifindex = 4, GbE port = 2
        giga p=2: mtu=1500, mac=e2:d5:94:2f:af:12 (random)

(error) mv_switch_probe(5780) (rc=-22): read switch fdt file failed
mv_soho_switch: probe of switch.3 failed with error 1
  o Loading Switch QuarterDeck driver
    o Device ID     : 0x352
    o No. of Ports  : 7
    o CPU Port      : 5
    o Setting Switch Port #5 connected to GMAC port for 1000 Full with FC
    o Setting Switch Port #6 connected to GMAC port for 1000 Full with FC
gprtPhyIntEnable failed port 4
Switch driver init:
    o preset mode = Transparent
    o tag mode    = No Tag
port #0 establish switch connection

libphy: orion_mdio_bus: probed
mdio_bus f1072004.mdio-mi: cannot get PHY at address 0
mdio_bus f1072004.mdio-mi: cannot get PHY at address 1
e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
e1000: Copyright (c) 1999-2006 Intel Corporation.
e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k
e1000e: Copyright(c) 1999 - 2013 Intel Corporation.

Ok I think that's enough serial console output :D
 
Opening the WRT3200 case:

1. Just like the WRT1900AC V2 the WRT3200ACM TTL port is located in the front of the unit. So only the two screws in the front feet\stands need to be remove in order to pull off the blue front cover.

2. The TTL port has the same pinout as the WRT1900AC V2.

thanks for sharing - would be nice to get some decent lighting on the entire board - as locating the JTAG can be useful...

FWIW - having a decent USB to Serial TTL cable can be quite handy - having something like a Pi doing the Serial side thru USB, and then driving JTAG thru the Pi's GPIO ports - what I'm getting at it that a Pi can be a really nice little terminal server to support development on the WRT...

Also nice to note that the ACM pretty much follows the mapping that ACv2/1200ac/ACS does - which is expected as it's an evolution of the platform compared to ACv1... note that the partition sizes did change however with ACM.
 

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top