Help to make 2.4ghz working on Juniper WLA322-WW

Hi,

I try to install lede on juniper wla322-ww dual band radio, but the 2.4 ghz refused to come up

here's the log file

U-Boot 1.1.4 (Jan 27 2014 - 15:46:40)

EWS310AP (ar934x) U-boot
DRAM:
sri
Wasp 1.2
wasp_ddr_initial_config(249): (32bit) ddr2 init
wasp_ddr_initial_config(426): Wasp ddr init done
Tap value selected = 0xc [0x0 - 0x18]
Setting 0xb8116290 to 0x20402d0f
128 MB
Top of RAM usable for U-Boot at: 88000000
Reserving 230k for U-Boot at: 87fc4000
Reserving 192k for malloc() at: 87f94000
Reserving 44 Bytes for Board Info at: 87f93fd4
Reserving 36 Bytes for Global Data at: 87f93fb0
Reserving 128k for boot params() at: 87f73fb0
Stack Pointer at: 87f73f98
Now running in RAM - U-Boot at: 87fc4000
Flash Manuf Id 0xc2, DeviceId0 0x20, DeviceId1 0x18
flash size 16MB, sector count = 256
Flash: 16 MB
pci_init_board: PCIe PLL not set for 40MHz refclk
BOARD IS NOT CALIBRATED!!!
In:    serial
Out:   serial
Err:   serial
Net:   ag934x_enet_initialize...
Fetching MAC Address from 0x87feb778
 wasp  reset mask:c03300
WASP  ----> S17 PHY *
: cfg1 0x80000000 cfg2 0x7114
eth0: 00:02:6f:e5:63:7f
athrs17_reg_init: complete
eth0 up
eth0
eth_set_enetaddr(num=0, addr=00:02:6f:e5:63:7f)
Setting new HW address on eth0
New Address is             00:02:6F:E5:63:7F
eth_set_enetaddr(num=0, addr=00:02:6f:e5:63:7f)
Setting new HW address on eth0
New Address is             00:02:6F:E5:63:7F
Hit any key to stop autoboot:  0
ar7240> printenv
baudrate=115200
factory_boot=tftp 0x3000000 vmlinux-art-ramdisk && bootm 0x3000000
failsafe_boot=bootm 0x9fdf0000
bootcmd=bootm 0x9f0a0000
bootargs=console=ttyS0,115200 root=31:04 rootfstype=squashfs init=/etc/preinit mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),320k(custom),1536k(kernel),12096k(rootfs),2048k(failsafe),64k(ART) board=EAP600
bootdelay=4
ethact=eth0
ipaddr=192.168.1.1
serverip=192.168.1.101
vmlinux_start_addr=0xbf0a0000
vmlinux_size=0x000c4e40
vmlinux_checksum=c6f4d860817d063f6b4713603b6d89d4
rootfs_start_addr=0xbf220000
rootfs_size=0x00590000
rootfs_checksum=6f2ef8101401f1f1de9ab0c19b339868
stdin=serial
stdout=serial
stderr=serial
ethaddr=00:02:6f:e5:63:7f

Environment size: 683/65532 bytes
ar7240> bootm 0x9f0a0000
## Booting image at 9f0a0000 ...
   Image Name:   MIPS OpenWrt Linux-4.4.14
   Created:      2017-11-04  21:15:13 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    1397702 Bytes =  1.3 MB
   Load Address: 80060000
   Entry Point:  80060000
   Verifying Checksum at 0x9f0a0040 ...OK
   Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80060000) ...
## Giving linux memsize in bytes, 134217728

Starting kernel ...

[    0.000000] Linux version 4.4.14 (buildbot@owrtbuild01) (gcc version 5.3.0 (OpenWrt GCC 5.3.0 12009) ) #1 Wed Dec 6 23:56:36 UTC 2017
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0001974c (MIPS 74Kc)
[    0.000000] SoC: Atheros AR9344 rev 2
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] No valid device tree found, continuing without
[    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] 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] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line:  board=CAP4200AG console=ttyS0,115200 mtdparts=spi0.0:256k(u-boot),64k(u-boot-env),320k(custom)ro,1536k(kernel),12096k(rootfs),2048k(failsafe),64k(art),13632k@0xa0000(firmware) rootfstype=squashfs,jffs2 noinitrd
[    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: 124880K/131072K available (3134K kernel code, 174K rwdata, 784K rodata, 316K init, 206K bss, 6192K 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] Clocks: CPU:560.000MHz, DDR:450.000MHz, AHB:225.000MHz, Ref:40.000MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6825930166 ns
[    0.000009] sched_clock: 32 bits at 280MHz, resolution 3ns, wraps every 7669584382ns
[    0.008299] Calibrating delay loop... 278.93 BogoMIPS (lpj=1394688)
[    0.081137] pid_max: default: 32768 minimum: 301
[    0.086170] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.093220] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.103188] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.114893] NET: Registered protocol family 16
[    0.121004] MIPS: machine is Senao CAP4200AG
[    0.128871] registering PCI controller with io_map_base unset
[    0.354502] PCI host bridge to bus 0000:00
[    0.358917] pci_bus 0000:00: root bus resource [mem 0x10000000-0x13ffffff]
[    0.366233] pci_bus 0000:00: root bus resource [io  0x0000]
[    0.372175] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    0.379396] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.387911] pci 0000:00:00.0: invalid calibration data
[    0.393805] pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x1001ffff 64bit]
[    0.401632] pci 0000:00:00.0: BAR 6: assigned [mem 0x10020000-0x1002ffff pref]
[    0.409326] pci 0000:00:00.0: using irq 40 for pin 1
[    0.415496] clocksource: Switched to clocksource MIPS
[    0.422162] NET: Registered protocol family 2
[    0.427728] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.435152] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.441965] TCP: Hash tables configured (established 1024 bind 1024)
[    0.448812] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.455036] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.462008] NET: Registered protocol family 1
[    0.467761] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.491235] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.497509] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.510285] io scheduler noop registered
[    0.514473] io scheduler deadline registered (default)
[    0.520267] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.529756] console [ttyS0] disabled
[    0.553636] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 2500000) is a 16550A
[    0.562830] console [ttyS0] enabled
[    0.562830] console [ttyS0] enabled
[    0.570251] bootconsole [early0] disabled
[    0.570251] bootconsole [early0] disabled
[    0.583698] m25p80 spi0.0: found mx25l12805d, expected m25p80
[    0.589611] m25p80 spi0.0: mx25l12805d (16384 Kbytes)
[    0.594771] 8 cmdlinepart partitions found on MTD device spi0.0
[    0.600796] Creating 8 MTD partitions on "spi0.0":
[    0.605667] 0x000000000000-0x000000040000 : "u-boot"
[    0.612745] 0x000000040000-0x000000050000 : "u-boot-env"
[    0.619712] 0x000000050000-0x0000000a0000 : "custom"
[    0.626345] 0x0000000a0000-0x000000220000 : "kernel"
[    0.632898] 0x000000220000-0x000000df0000 : "rootfs"
[    0.639544] mtd: device 4 (rootfs) set to be root filesystem
[    0.645350] 1 squashfs-split partitions found on MTD device rootfs
[    0.651668] 0x000000410000-0x000000df0000 : "rootfs_data"
[    0.658748] 0x000000df0000-0x000000ff0000 : "failsafe"
[    0.665565] 0x000000ff0000-0x000001000000 : "art"
[    0.671907] 0x0000000a0000-0x000000df0000 : "firmware"
[    0.689390] libphy: ag71xx_mdio: probed
[    1.355774] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd072, driver=Atheros 8035 ethernet]
[    1.366612] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:RGMII
[    1.375050] NET: Registered protocol family 10
[    1.383466] NET: Registered protocol family 17
[    1.388104] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    1.400969] Bridge firewalling registered
[    1.405156] 8021q: 802.1Q VLAN Support v1.8
[    1.416580] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[    1.425183] Freeing unused kernel memory: 316K (80461000 - 804b0000)
[    2.537604] init: Console is alive
[    2.541268] init: - watchdog -
[    3.549175] usbcore: registered new interface driver usbfs
[    3.554837] usbcore: registered new interface driver hub
[    3.560377] usbcore: registered new device driver usb
[    3.570900] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.579088] ehci-platform: EHCI generic platform driver
[    3.587333] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    3.594951] ohci-platform: OHCI generic platform driver
[    3.604143] init: - preinit -
[    4.161893] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    4.186971] random: procd urandom read with 6 bits of entropy available
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    6.456957] eth0: link up (100Mbps/Full duplex)
[    6.461590] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    7.306061] mount_root: jffs2 not ready yet, using temporary tmpfs overlay
[    7.337443] eth0: link down
[    7.351182] procd: - early -
[    7.354207] procd: - watchdog -
[    8.010770] procd: - ubus -
[    8.067457] procd: - init -
Please press Enter to activate this console.
[    8.846162] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    8.866332] Loading modules backported from Linux version wt-2016-05-12-0-g7a54796
[    8.874015] Backport generated by backports.git backports-20160216-0-ge3c56e4
[    8.884607] ip_tables: (C) 2000-2006 Netfilter Core Team
[    8.900825] nf_conntrack version 0.5.0 (1956 buckets, 7824 max)
[    8.941521] xt_time: kernel timezone is -0000
[    9.004927] PPP generic driver version 2.4.2
[    9.011967] NET: Registered protocol family 24
[    9.059537] ath: phy0: disabling 2GHz band
[    9.063701] ath: phy0: both bands are disabled
[    9.068253] ath: phy0: Unable to initialize hardware; initialization status: -22
[    9.075776] ath9k ar934x_wmac: failed to initialize device
[    9.081375] ath9k: probe of ar934x_wmac failed with error -22
[    9.087405] PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
[    9.111397] ieee80211 phy1: Atheros AR9300 Rev:3 mem=0xb0000000, irq=40
[   15.911900] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
[   15.925743] jffs2_build_filesystem(): unlocking the mtd device... done.
[   15.932461] jffs2_build_filesystem(): erasing all blocks after the end marker...
[   20.701013] device eth0 entered promiscuous mode
[   20.726689] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready


any help?

What makes you believe that the Juniper WLA322-WW (QZEWLA322) is supported in the first place, respectively that OpenWrt's firmware image for the Senao CAP4200AG (U2M-CAP4200AG) is compatible to this device?

I have little to none information about either device, but the FCC images suggest that they're based on quite different PCBs, which probably differ significantly, despite using the same base SOC. Assuming both devices are not identical, it wouldn't be surprising that the PCIe/ AHB initialization (which is the part that's obviously failing here) differs between them. Except for very rare, explicitly mentioned, cases, it's not possible to use a 'similar' firmware image for a different device. Embedded devices need very specific porting to each and every different device - there are no generic firmware images.

Unless I'm mistaken regarding the paragraph above, you will have to port OpenWrt to your device, which will require quite some development work on your side - both in terms of trying to investigate the device (access to the manufacturer's GPL tarball will be beneficial; the fact that you apparently no longer have an untainted OEM firmware running will make this more difficult) and then actually transposing that into a functional device tree (and assorted initialization) compatible with your device (new device additions are only accepted for ath79, not ar71xx anymore). From a very high level examination there's a good chance that your device can be ported to OpenWrt, but apparently those steps still have to be done by someone with the hardware on their desk - and there is very little generic advice about doing so:

I believe this image can work for this device, the problem is art layout for this device is quite different. I don't know why the openwrt disabled this ath. I try to force install engenius eap600 (kamikaze) firmware to this radio, the dual band wifi come up, the only problem is band in reverse :slight_smile:

If the ART layout is different (probably, but you don't even get that far) that would be a prime example why the Juniper WLA322-WW (QZEWLA322) would require a dedicated firmware image and can't be supported by an existing one. Again, looking at the Engenius EAP600 (A8J-EAP600) doesn't suggest to use the same PCB as the Juniper WLA322-WW (QZEWLA322) either (actually the EAP600 looks closer to the Senao CAP4200AG (U2M-CAP4200AG) than the WLA322-WW).

Just trying different firmware images willy-nilly won't help you here, but rather poses a significant risk to damage your device permanently.

I can read the art content with artgui, i just don't know what the part that openwrt disabled the ath.

radio 1 art content Radio1 Radio2

How did you manage to boot the wla322 with a different firmware and get console output?
I've got a few wla322 and wla532 available, but i really don't know where to start. Any help would be welcome...

probably serial console.

The only external socket is ethernet. Opening the enclosure, there are pads (with no pins) marked as EJTAG. https://photos.app.goo.gl/BAFrsUUfGM71QgwA7

Apart from EJTAG, there are other pads on the opposite edge of the board

I'd put my money on the four holes/pads up right.

1 Like

serial console is J7, Pin 1 is VCC+, Pin2 is RX, Pin3 is TX, and Pin4 is GND. You can upload your initramfs through tftp.