Adding Asus PL-AC56 (rev.A1)

Hi all,

This is a work in progress, so far everything works properly, but there are some questions remaining, about this later.

The main device (PL-AC56) is based on an AP152 board, having the following components:

QCA9563 802.11n SoC
w9751g6kb-25 64MB RAM SoC
QCA9882 802.11ac radio
QCA7500 HomePlug AV2 powerline ctrl
w631gg6kb-15 128MB RAM powerline
25L12835F 16MB SPI
QCA8337 Gigabit Ethernet switch

The slave device (PL-E56P):

QCA7500 HomePlug AV2 powerline ctrl
w631gg6kb-15 128MB RAM
25L3233F 4MB SPI
AR8035  Gigabit Ethernet PHY


About getting the serial console working, I've already a thread here:

The qca7500 PLC in the main device has no dedicated SPI for the nvm firmware and pib calibration files, as the slave device has. Instead, the nvm firmware is stored as a file in the rootfs partition of the SPI and the pib calibration data has its own 512kB partition on the SPI. The PLC firmware and pib are then loaded every time by the main system. This means, the main device's PLC is not flashable separately, but the slave device is and can be done via plc functionality.

OEM Syslog:

Aug  1 00:00:17 syslogd started: BusyBox v1.17.4
Aug  1 00:00:17 kernel: Zone PFN ranges:
Aug  1 00:00:17 kernel:   Normal   0x00000000 -> 0x00004000
Aug  1 00:00:17 kernel: Movable zone start PFN for each node
Aug  1 00:00:17 kernel: Early memory PFN ranges
Aug  1 00:00:17 kernel:     0: 0x00000000 -> 0x00004000
Aug  1 00:00:17 kernel: Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 16256
Aug  1 00:00:17 kernel: Kernel command line:  board=AP152 console=ttyS0,115200 root=/dev/mtdblock4 rootfstype=squashfs mem=64M
Aug  1 00:00:17 kernel: Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
Aug  1 00:00:17 kernel: Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
Aug  1 00:00:17 kernel: registering PCI controller with io_map_base unset
Aug  1 00:00:17 kernel: m25p80 spi0.0: found mx25l12805d, expected m25p80
Aug  1 00:00:17 kernel: Creating 7 MTD partitions on "ath79-nor0":
Aug  1 00:00:17 kernel: 0x000000000000-0x000000040000 : "Bootloader"
Aug  1 00:00:17 kernel: 0x000000040000-0x000000050000 : "nvram"
Aug  1 00:00:17 kernel: 0x000000050000-0x000000060000 : "Factory"
Aug  1 00:00:17 kernel: 0x000000060000-0x000000f80000 : "linux"
Aug  1 00:00:17 kernel: 0x000000171440-0x000000f80000 : "rootfs"
Aug  1 00:00:17 kernel: 0x000000f80000-0x000001000000 : "plc"
Aug  1 00:00:17 kernel: 0x000000000000-0x000001000000 : "ALL"
Aug  1 00:00:17 kernel: offset 0x9000 elapse 0ms
Aug  1 00:00:17 kernel: bled: GPIO#6: switch ports mask        0.
Aug  1 00:00:17 kernel: bled: GPIO#19: netdev ath0.
Aug  1 00:00:17 kernel: bled: GPIO#8: netdev ath1.
Aug  1 00:00:17 kernel: asf: module license 'Proprietary' taints kernel.
Aug  1 00:00:17 kernel: Disabling lock debugging due to kernel taint
Aug  1 00:00:17 kernel: ****Address of trace_timer :834226a0 
Aug  1 00:00:17 kernel: ath_hal: Unknown parameter `ce_level'
Aug  1 00:00:17 kernel: ath_tx99: Version 2.0
Aug  1 00:00:17 kernel: Copyright (c) 2010 Atheros Communications, Inc, All Rights Reserved
Aug  1 00:00:17 kernel: __ath_attach: Set global_scn[0]
Aug  1 00:00:17 kernel: *** All the minfree values should be <= ATH_TXBUF-32, otherwise default value will be used instead ***
Aug  1 00:00:17 kernel: ACBKMinfree = 48
Aug  1 00:00:17 kernel: ACBEMinfree = 32
Aug  1 00:00:17 kernel: ACVIMinfree = 16
Aug  1 00:00:17 kernel: ACVOMinfree = 0
Aug  1 00:00:17 kernel: CABMinfree = 48
Aug  1 00:00:17 kernel: UAPSDMinfree = 0
Aug  1 00:00:17 kernel: ATH_TXBUF=540
Aug  1 00:00:17 kernel: ART Version : 10.517
Aug  1 00:00:17 kernel: SW Image Version : 0.20.-12.0.2
Aug  1 00:00:17 kernel: Board Revision :  
Aug  1 00:00:17 kernel: ar9300_attach: nf_2_nom -110 nf_2_max -60 nf_2_min -125 
Aug  1 00:00:17 kernel: SPECTRAL : get_capability not registered
Aug  1 00:00:17 kernel: HAL_CAP_PHYDIAG : Capable
Aug  1 00:00:17 kernel: SPECTRAL : Need to fix the capablity check for RADAR (spectral_attach : 231)
Aug  1 00:00:17 kernel: SPECTRAL : get_capability not registered
Aug  1 00:00:17 kernel: HAL_CAP_RADAR   : Capable
Aug  1 00:00:17 kernel: SPECTRAL : Need to fix the capablity check for SPECTRAL
Aug  1 00:00:17 kernel:  (spectral_attach : 236)
Aug  1 00:00:17 dnsmasq[251]: no servers found in /etc/resolv.conf, will retry
Aug  1 00:00:18 kernel: SPECTRAL : get_capability not registered
Aug  1 00:00:18 kernel: HAL_CAP_SPECTRAL_SCAN : Capable
Aug  1 00:00:18 kernel: SPECTRAL : get_tsf64 not registered
Aug  1 00:00:18 kernel: spectral_init_netlink 65 NULL SKB
Aug  1 00:00:18 kernel: SPECTRAL : No ADVANCED SPECTRAL SUPPORT
Aug  1 00:00:18 kernel: SPECTRAL :----- module attached
Aug  1 00:00:18 kernel: Green-AP : Green-AP : Attached
Aug  1 00:00:18 kernel: ath_get_caps[6267] rx chainmask mismatch actual 3 sc_chainmak 0
Aug  1 00:00:18 kernel: ath_get_caps[6242] tx chainmask mismatch actual 3 sc_chainmak 0
Aug  1 00:00:18 kernel: band steering initialized for direct attach hardware 
Aug  1 00:00:18 kernel: ieee80211_bsteering_attach: Band steering initialized
Aug  1 00:00:18 kernel: ath_attach_dfs[12799] dfsdomain 1
Aug  1 00:00:18 kernel: SPECTRAL : module already attached
Aug  1 00:00:18 kernel: ath_tx_paprd_init sc 82f48000 PAPRD disabled in HAL
Aug  1 00:00:18 kernel: PCI device id is 003c :003c
Aug  1 00:00:18 kernel: PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
Aug  1 00:00:18 kernel:  ol_ath_pci_configure : num_desired MSI set to 0
Aug  1 00:00:18 kernel:  Using PCI Legacy Interrupt
Aug  1 00:00:18 kernel: CE_per_engine_handler_adjust, base=82a77200 offset=00057400 
Aug  1 00:00:18 kernel: CE_per_engine_handler_adjust, base=82a77200 offset=00057800 
Aug  1 00:00:18 kernel: __ol_ath_attach: ath_attach TODO
Aug  1 00:00:18 kernel: __ol_ath_attach: dev name wifi1
Aug  1 00:00:18 kernel: ol_ath_set_default_tgt_config : AC Minfree buffer allocation through module param (umac.ko)
Aug  1 00:00:18 kernel:  OL_ACBKMinfree : 0
Aug  1 00:00:18 kernel:  OL_ACBEMinfree : 0
Aug  1 00:00:18 kernel:  OL_ACVIMinfree : 0
Aug  1 00:00:18 kernel:  OL_ACVOMinfree : 0
Aug  1 00:00:18 kernel: ol_ath_attach() BMI inited.
Aug  1 00:00:18 kernel: ol_ath_attach() BMI Get Target Info.
Aug  1 00:00:18 kernel: ol_ath_attach() TARGET TYPE: 7 Vers 0x4100016c
Aug  1 00:00:18 kernel: NUM_DEV=1 FWMODE=0x2 FWSUBMODE=0x0 FWBR_BUF 0
Aug  1 00:00:18 kernel: ol_ath_attach() configure Target .
Aug  1 00:00:18 kernel: ath_nand_local_read: cal_part [Factory] from 5000 len 844
Aug  1 00:00:18 PL-AC56: start httpd
Aug  1 00:00:18 kernel: qc98xx_verify_checksum: flash checksum passed: 0x911f
Aug  1 00:00:18 kernel: ol_transfer_bin_file 2238: Download Flash data len 2116
Aug  1 00:00:18 kernel:  Download AR9888v2_bin
Aug  1 00:00:18 kernel: ol_transfer_bin_file 2159: Download Firmware data len 235636
Aug  1 00:00:18 kernel: ol_ath_attach() Download FW. 
Aug  1 00:00:18 kernel: ol_ath_attach() HT Create .
Aug  1 00:00:18 kernel: ol_ath_attach() HIF Claim.
Aug  1 00:00:18 kernel: ol_ath_attach() BMI Done. 
Aug  1 00:00:18 kernel: ol_ath_attach() WMI attached. wmi_handle 82820000 
Aug  1 00:00:18 kernel: +HWT
Aug  1 00:00:18 kernel: SOC_RESET_CONTROL_ADDRESS : 800
Aug  1 00:00:18 kernel: CPU_INTR_ADDRESS = [0]
Aug  1 00:00:18 kernel: SOC_GLOBAL_RESET_ADDRESS = [0]
Aug  1 00:00:18 kernel: Rx_Filter : [0]
Aug  1 00:00:18 kernel: CE_per_engine_handler_adjust, base=82a77200 offset=00057400 
Aug  1 00:00:18 kernel: CE_per_engine_handler_adjust, base=82a77200 offset=00057800 
Aug  1 00:00:18 kernel: CE_per_engine_handler_adjust, base=82a77200 offset=00057c00 
Aug  1 00:00:18 kernel: CE_per_engine_handler_adjust, base=82a77200 offset=00058000 
Aug  1 00:00:18 kernel: CE_per_engine_handler_adjust, base=82a77200 offset=00058400 
Aug  1 00:00:18 kernel: CE_per_engine_handler_adjust, base=82a77200 offset=00058800 
Aug  1 00:00:18 kernel: CE_recv_buf_enqueue 653 Populate last entry 512 for CE 5
Aug  1 00:00:18 kernel: CE_recv_buf_enqueue 662 CE 5 wi 511 dest_ptr 0x29fd840 nbytes 0 recv_ctxt 0x829e9540
Aug  1 00:00:18 kernel: Target:83d97000 HTC Service:0x0001, ULpipe:0 DLpipe:1 id:0 Ready
Aug  1 00:00:18 kernel: -HWT
Aug  1 00:00:18 kernel: Target:83d97000 HTC Service:0x0300, ULpipe:4 DLpipe:5 id:1 Ready
Aug  1 00:00:18 kernel: HTC Service:0x0300 ep:1 TX flow control disabled
Aug  1 00:00:18 kernel: CE_pkt_dl_len_set CE 4 Pkt download length 64
Aug  1 00:00:18 kernel: ol_txrx_pdev_attach: 1424 tx desc's allocated ; range starts from 81c40000
Aug  1 00:00:18 kernel: Target:83d97000 HTC Service:0x0100, ULpipe:3 DLpipe:2 id:2 Ready
Aug  1 00:00:18 kernel: HTC Service:0x0100 ep:2 TX flow control disabled
Aug  1 00:00:18 kernel: wmi_service_ready_event_rx:  WMI UNIFIED SERVICE READY event 
Aug  1 00:00:18 kernel: num_rf_chain : 00000002
Aug  1 00:00:18 kernel: ht_cap_info: : 0000085b
Aug  1 00:00:18 kernel: vht_cap_info : 338001b2
Aug  1 00:00:18 kernel: vht_supp_mcs : 0000fffa
Aug  1 00:00:18 kernel: LARGE_AP enabled. num_peers 144, num_vdevs 16, num_tids 256, lteu_support 0
Aug  1 00:00:18 kernel: idx 0 req 1  num_units 0 num_unit_info 2 unit size 440 actual units 145 
Aug  1 00:00:18 kernel: chunk 0 len 63800 requested ,ptr  0x1c60000 
Aug  1 00:00:18 kernel: FIRMWARE:P 145 V 16 T 443
Aug  1 00:00:18 kernel:  
Aug  1 00:00:18 kernel: FIRMWARE:_wlan_rtt_enable 
Aug  1 00:00:18 kernel: wmi_ready_event_rx:  WMI UNIFIED READY event 
Aug  1 00:00:18 kernel: ol_ath_connect_htc() WMI is ready
Aug  1 00:00:18 kernel: ol_ath_set_host_app_area TODO
Aug  1 00:00:18 kernel: target uses HTT version 2.1; host uses 2.1
Aug  1 00:00:18 kernel: ol_ath_attach() connect HTC. 
Aug  1 00:00:18 kernel: bypasswmi : 0
Aug  1 00:00:18 kernel: ol_regdmn_start: reg-domain param: regdmn=0, countryName=, wModeSelect=FFFFFFFF, netBand=FFFFFFFF, extendedChanMode=0.
Aug  1 00:00:18 syslog: Generating SSL certificate...
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x2) flags 0x2150
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x4) flags 0xa0
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x8) flags 0xc0
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x20) flags 0xd0
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x40) flags 0x150
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x800) flags 0x10080
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x2000) flags 0x20080
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x4000) flags 0x40080
Aug  1 00:00:18 kernel: Add VHT80 channel: 5210
Aug  1 00:00:18 kernel: Add VHT80 channel: 5775
Aug  1 00:00:18 kernel: Skipping VHT80 channel 5825
Aug  1 00:00:18 kernel: ol_ath_phyerr_attach: called
Aug  1 00:00:18 kernel: OL Resmgr Init-ed
Aug  1 00:00:18 kernel: ieee80211_bsteering_attach: Band steering initialized
Aug  1 00:00:18 kernel: ol_if_spectral_setup
Aug  1 00:00:18 kernel: SPECTRAL : get_capability not registered
Aug  1 00:00:18 kernel: HAL_CAP_PHYDIAG : Capable
Aug  1 00:00:18 kernel: SPECTRAL : Need to fix the capablity check for RADAR (spectral_attach : 231)
Aug  1 00:00:18 kernel: SPECTRAL : get_capability not registered
Aug  1 00:00:18 kernel: HAL_CAP_RADAR   : Capable
Aug  1 00:00:18 kernel: SPECTRAL : Need to fix the capablity check for SPECTRAL
Aug  1 00:00:18 kernel:  (spectral_attach : 236)
Aug  1 00:00:18 kernel: SPECTRAL : get_capability not registered
Aug  1 00:00:18 kernel: HAL_CAP_SPECTRAL_SCAN : Capable
Aug  1 00:00:18 kernel: SPECTRAL : get_tsf64 not registered
Aug  1 00:00:18 kernel: spectral_init_netlink 65 NULL SKB
Aug  1 00:00:18 kernel: Green-AP : Green-AP : Attached
Aug  1 00:00:18 kernel: Green-AP : Attached
Aug  1 00:00:18 kernel: ol_if_dfs_setup: called 
Aug  1 00:00:18 kernel: ol_if_dfs_attach: called; ptr=81c3d974, radar_info=837b7b78
Aug  1 00:00:18 kernel: ol_ath_rtt_meas_report_attach: called
Aug  1 00:00:18 kernel: ol_ath_attach() UMAC attach . 
Aug  1 00:00:18 kernel: ol_if_dfs_configure: called
Aug  1 00:00:18 kernel: ol_if_dfs_configure: UNINIT domain
Aug  1 00:00:18 kernel: ol_if_dfs_disable: called
Aug  1 00:00:18 kernel: ol_ath_attach: Calling ol_if_dfs_configure
Aug  1 00:00:18 kernel: __ol_ath_attach: init tx/rx TODO
Aug  1 00:00:18 kernel: __ol_ath_attach: hard_header_len reservation 58
Aug  1 00:00:18 kernel: sc nodebug 0 
Aug  1 00:00:18 kernel: ath_attach_dfs[12799] dfsdomain 1
Aug  1 00:00:18 kernel: isCountryCodeValid: EEPROM regdomain 0x0
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x2) flags 0x2150
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x4) flags 0xa0
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x8) flags 0xc0
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x20) flags 0xd0
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x40) flags 0x150
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x800) flags 0x10080
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x2000) flags 0x20080
Aug  1 00:00:18 kernel: ol_regdmn_init_channels: !avail mode 0x1f9001 (0x4000) flags 0x40080
Aug  1 00:00:18 kernel: Add VHT80 channel: 5210
Aug  1 00:00:18 kernel: Add VHT80 channel: 5290
Aug  1 00:00:18 kernel: Add VHT80 channel: 5530
Aug  1 00:00:18 kernel: Skipping VHT80 channel 5580
Aug  1 00:00:18 kernel: Skipping VHT80 channel 5660
Aug  1 00:00:18 kernel: Skipping VHT80 channel 5680
Aug  1 00:00:18 kernel: Skipping VHT80 channel 5700
Aug  1 00:00:18 kernel: [wifi1] FWLOG: [22831] WAL_DBGID_TX_AC_BUFFER_SET ( 0x3, 0x1e, 0x460, 0x460, 0x0 )
Aug  1 00:00:18 kernel: [wifi1] FWLOG: [22831] WAL_DBGID_TX_AC_BUFFER_SET ( 0x12, 0x1e, 0x460, 0x460, 0x0 )
Aug  1 00:00:18 kernel: [wifi1] FWLOG: [22831] WAL_DBGID_TX_AC_BUFFER_SET ( 0x45, 0x1e, 0x460, 0x460, 0x0 )
Aug  1 00:00:18 kernel: [wifi1] FWLOG: [22831] WAL_DBGID_TX_AC_BUFFER_SET ( 0x67, 0x1e, 0x460, 0x460, 0x0 )
Aug  1 00:00:18 kernel: [wifi1] FWLOG: [22836] WHAL_ERROR_RECV_STOPPCU ( 0x110298a, 0x3 )
Aug  1 00:00:18 kernel: [wifi1] FWLOG: [22836] WHAL_ERROR_RESET_PM (  )
Aug  1 00:00:19 kernel: [wifi1] FWLOG: [22844] WAL_DBGID_DEV_RESET ( 0x1, 0x1, 0x1 )
Aug  1 00:00:19 kernel: [wifi1] FWLOG: [23023] ANI Enable:  1
Aug  1 00:00:19 kernel: [wifi1] FWLOG: [23030] WAL_DBGID_DEV_RESET ( 0x1, 0x1, 0x1 )
Aug  1 00:00:19 kernel: wlan_vap_create : enter. devhandle=0x82f50380, opmode=IEEE80211_M_HOSTAP, flags=0x1
Aug  1 00:00:19 kernel: wlan_vap_create : exit. devhandle=0x82f50380, opmode=IEEE80211_M_HOSTAP, flags=0x1.
Aug  1 00:00:19 kernel: VAP device ath0 created osifp: (81c3ab80) os_if: (83138000)
Aug  1 00:00:19 kernel: ath_ioctl: SIOC80211IFCREATE CALLED
Aug  1 00:00:19 kernel: wmi_unified_vdev_create_send: ID = 0 VAP Addr = xx:xx:xx:xx:xx:xx:
Aug  1 00:00:19 kernel: Setting dscp for vap id: 0
Aug  1 00:00:19 kernel: VAP device ath1 created osifp: (83135380) os_if: (83100000)
Aug  1 00:00:19 kernel: 	DCS for CW interference mitigation:   0
Aug  1 00:00:19 kernel: 	DCS for WLAN interference mitigation: 0
Aug  1 00:00:19 kernel: Set freq vap 0 stop send + 83138000
Aug  1 00:00:19 kernel: Set freq vap 0 stop send -83138000
Aug  1 00:00:19 kernel: Set wait done --83138000
Aug  1 00:00:19 kernel: Set freq vap 0 stop send + 83100000
Aug  1 00:00:19 kernel: OL vap_stop +
Aug  1 00:00:19 kernel: wmi_unified_vdev_stop_send for vap 0 (82820000)
Aug  1 00:00:19 kernel: OL vap_stop -
Aug  1 00:00:19 kernel: STOPPED EVENT for vap 0 (82820000)
Aug  1 00:00:19 kernel: Set freq vap 0 stop send -83100000
Aug  1 00:00:19 kernel: Set wait done --83100000

OpenWRT bootlog:

U-Boot 1.1.4-g37ca0402 (Jan 18 2016 - 09:33:38)

PL-AC56 bootloader version: 1.0.0.1
ap152 - Dragonfly 1.0DRAM:
sri
ath_ddr_initial_config(278): (ddr2 init)
ath_sys_frequency: cpu 775 ddr 650 ahb 258
Tap values = (0xf, 0xf, 0xf, 0xf)
64 MB
ASUS PL-AC56 gpio init : wps / reset pin
Flash Manuf Id 0xc2, DeviceId0 0x20, DeviceId1 0x18
flash size 16MB, sector count = 256
Flash: 16 MB
Maximum malloc length: 128 KBytes
mem_malloc_start/brk/end: 0x83f98000/83f98000/83fc8000
*** Warning - bad CRC, using default environment

plat_dev_init: read 16384 bytes from offset 9fff1000 of WLANCAL fail! (r = -1)
In:    serial
Out:   serial
Err:   serial
Net:   ath_gmac_enet_initialize...
Fetching MAC Address from 0x83fed5ec
ath_gmac_enet_initialize: reset mask:c02200
athr_mgmt_init ::done
Dragonfly  ----> S17 PHY *
athrs17_reg_init: complete
SGMII in forced mode
athr_gmac_sgmii_setup SGMII done
: cfg1 0x80000000 cfg2 0x7114
eth0: xx:xx:xx:xx:xx:xx
eth0 up
eth0
ath_set_tuning_caps: read WLANCAL fail!!! (r = -1)

Please choose the operation:
   1: Load System code to SDRAM via TFTP.
   2: Load System code then write to Flash via TFTP.
   3: Boot System code via Flash (default).
   4: Entr boot command line interface.
   7: Load Boot Loader code then write to Flash via Serial.
   9: Load Boot Loader code then write to Flash via TFTP.                                                                         0
   3: Boot System code via Flash (default).

PL-AC56 bootloader version: 1.0.0.1
MAC Address: xx:xx:xx:xx:xx:xx
## Checking 1st firmware at 9f060000 ...
   Image Name:   MIPS OpenWrt Linux-5.10.90
   Created:      2022-01-11  16:24:20 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    2226525 Bytes =  2.1 MB
   Load Address: 80060000
   Entry Point:  80060000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
## Giving linux ramsize: 67108864 (64 MB)

Starting kernel ...

[    0.000000] Linux version 5.10.90 (osboxes@osboxes) (mips-openwrt-linux-musl-gcc (OpenWrt GCC 11.2.0 r18554-d8a07c35d2) 11.2.0, GNU ld (GNU Binutils) 2.37) #0 Tue Jan 11 16:24:20 2022
[    0.000000] printk: bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019750 (MIPS 74Kc)
[    0.000000] MIPS: machine is ASUS PL-AC56
[    0.000000] SoC: Qualcomm Atheros QCA956X ver 1 rev 0
[    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-0x0000000003ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16240
[    0.000000] Kernel command line: console=ttyS0,115200n8 rootfstype=squashfs,jffs2
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 56188K/65536K available (5439K kernel code, 598K rwdata, 1196K rodata, 1204K init, 201K bss, 9348K 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] random: get_random_bytes called from start_kernel+0x3c0/0x5b0 with crng_init=0
[    0.000000] CPU clock: 775.000 MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 4932285024 ns
[    0.000008] sched_clock: 32 bits at 387MHz, resolution 2ns, wraps every 5541893118ns
[    0.008222] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
[    0.074768] pid_max: default: 32768 minimum: 301
[    0.079759] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.087472] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.097344] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[    0.107629] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.118034] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.125300] pinctrl core: initialized pinctrl subsystem
[    0.131724] NET: Registered protocol family 16
[    0.185632] clocksource: Switched to clocksource MIPS
[    0.192048] NET: Registered protocol family 2
[    0.196827] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.204963] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.213867] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.221966] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.229409] TCP: Hash tables configured (established 1024 bind 1024)
[    0.236239] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.243148] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.250775] NET: Registered protocol family 1
[    0.255392] PCI: CLS 0 bytes, default 32
[    0.264914] workingset: timestamp_bits=14 max_order=14 bucket_order=0
[    0.275155] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.281359] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.295049] pinctrl-single 1804002c.pinmux: 544 pins, size 68
[    0.302075] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[    0.309461] printk: console [ttyS0] disabled
[    0.314030] 18020000.uart: ttyS0 at MMIO 0x18020000 (irq = 9, base_baud = 1562500) is a 16550A
[    0.323178] printk: console [ttyS0] enabled
[    0.323178] printk: console [ttyS0] enabled
[    0.332238] printk: bootconsole [early0] disabled
[    0.332238] printk: bootconsole [early0] disabled
[    0.351915] spi-nor spi0.0: mx25l12805d (16384 Kbytes)
[    0.357343] 5 fixed-partitions partitions found on MTD device spi0.0
[    0.363898] Creating 5 MTD partitions on "spi0.0":
[    0.368871] 0x000000000000-0x000000040000 : "u-boot"
[    0.377403] 0x000000040000-0x000000050000 : "u-boot-env"
[    0.383718] 0x000000050000-0x000000060000 : "art"
[    0.390990] 0x000000060000-0x000000f80000 : "firmware"
[    0.397356] 2 uimage-fw partitions found on MTD device firmware
[    0.403479] Creating 2 MTD partitions on "firmware":
[    0.408663] 0x000000000000-0x000000220000 : "kernel"
[    0.416011] 0x000000220000-0x000000f20000 : "rootfs"
[    0.421879] mtd: device 5 (rootfs) set to be root filesystem
[    0.428621] 1 squashfs-split partitions found on MTD device rootfs
[    0.435029] 0x000000630000-0x000000f20000 : "rootfs_data"
[    0.441415] 0x000000f80000-0x000001000000 : "plc"
[    0.453339] libphy: Fixed MDIO Bus: probed
[    1.166297] libphy: ag71xx_mdio: probed
[    1.173702] switch0: Atheros AR8337 rev. 2 switch registered on mdio.0
[    1.837133] ag71xx 19000000.eth: connected to PHY at mdio.0:00 [uid=004dd036, driver=Atheros AR8216/AR8236/AR8316]
[    1.848421] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode: sgmii
[    1.854986] i2c /dev entries driver
[    1.860333] NET: Registered protocol family 10
[    1.871003] Segment Routing with IPv6
[    1.874886] NET: Registered protocol family 17
[    1.879595] 8021q: 802.1Q VLAN Support v1.8
[    1.884645] PCI host bridge /ahb/pcie-controller@18250000 ranges:
[    1.891016]  MEM 0x0000000012000000..0x0000000013ffffff
[    1.896429]   IO 0x0000000000000000..0x0000000000000000
[    1.901990] PCI host bridge to bus 0000:00
[    1.906267] pci_bus 0000:00: root bus resource [mem 0x12000000-0x13ffffff]
[    1.913364] pci_bus 0000:00: root bus resource [io  0x0000]
[    1.919130] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    1.926152] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    1.934367] pci 0000:00:00.0: [168c:003c] type 00 class 0x028000
[    1.940618] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    1.947685] pci 0000:00:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[    1.954677] pci 0000:00:00.0: supports D1
[    1.958834] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    1.965608] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    1.972493] pci 0000:00:00.0: BAR 0: assigned [mem 0x12000000-0x121fffff 64bit]
[    1.980082] pci 0000:00:00.0: BAR 6: assigned [mem 0x12200000-0x1220ffff pref]
[    1.994179] VFS: Mounted root (squashfs filesystem) readonly on device 31:5.
[    2.008091] Freeing unused kernel memory: 1204K
[    2.012774] This architecture does not have kernel memory protection.
[    2.019456] Run /sbin/init as init process
[    2.530349] init: Console is alive
[    2.534316] init: - watchdog -
[    2.545665] random: fast init done
[    3.476235] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.512381] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.530329] init: - preinit -
[    4.882181] random: jshn: uninitialized urandom read (4 bytes read)
[    5.020869] random: jshn: uninitialized urandom read (4 bytes read)
[    5.208097] random: jshn: uninitialized urandom read (4 bytes read)
[    6.608945] Atheros AR8216/AR8236/AR8316 mdio.0:00: Port 1 is up
[    6.623300] eth0: link up (1000Mbps/Full duplex)
[    6.634125] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    6.654830] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.1: link becomes ready
[    6.683091] urandom_read: 4 callbacks suppressed
[    6.683099] random: procd: uninitialized urandom read (4 bytes read)
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
[   10.985236] jffs2: notice: (455) jffs2_build_xattr_subsystem: complete building xattr subsystem, 9 of xdatum (0 unchecked, 1 orphan) and 12 of xref (1 dead, 0 orphan) found.
[   11.003094] mount_root: switching to jffs2 overlay
[   11.012214] overlayfs: upper fs does not support tmpfile.
[   11.024631] urandom-seed: Seeding with /etc/urandom.seed
[   11.135194] eth0: link down
[   11.157724] procd: - early -
[   11.161026] procd: - watchdog -
[   11.840009] procd: - watchdog -
[   11.869439] procd: - ubus -
[   11.953386] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.962558] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.979902] procd: - init -
Please press Enter to activate this console.
[   13.123688] kmodloader: loading kernel modules from /etc/modules.d/*
[   13.521742] urngd: v1.0.2 started.
[   13.652350] Loading modules backported from Linux version v5.15.8-0-g43e577d7a2cb
[   13.660142] Backport generated by backports.git v5.15.8-1-0-g83f664bb
[   13.710334] random: crng init done
[   13.738953] xt_time: kernel timezone is -0000
[   14.021905] PPP generic driver version 2.4.2
[   14.037311] NET: Registered protocol family 24
[   14.121534] ath10k 5.15 driver, optimized for CT firmware, probing pci device: 0x3c.
[   14.146770] ath10k_pci 0000:00:00.0: enabling device (0000 -> 0002)
[   14.153393] ath10k_pci 0000:00:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0
[   18.028775] ath10k_pci 0000:00:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043222ff sub 0000:0000
[   18.038367] ath10k_pci 0000:00:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   18.050317] ath10k_pci 0000:00:00.0: firmware ver 10.1-ct-8x-__fW-022-ecad3248 api 2 features wmi-10.x,has-wmi-mgmt-tx,mfp,txstatus-noack,wmi-10.x-CT,ratemask-CT,txrate-CT,get-temp-CT,tx-rc-CT,cust-stats-CT,retry-gt2-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT crc32 3e4cf97f
[   18.595218] ath10k_pci 0000:00:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
[   19.599063] ath10k_pci 0000:00:00.0: 10.1 wmi init: vdevs: 16  peers: 127  tid: 256
[   19.617016] ath10k_pci 0000:00:00.0: wmi print 'P 128 V 8 T 410'
[   19.623266] ath10k_pci 0000:00:00.0: wmi print 'msdu-desc: 1424  sw-crypt: 0 ct-sta: 0'
[   19.631558] ath10k_pci 0000:00:00.0: wmi print 'alloc rem: 24984 iram: 38672'
[   19.688263] ath10k_pci 0000:00:00.0: htt-ver 2.1 wmi-op 2 htt-op 2 cal file max-sta 128 raw 0 hwcrypto 1
[   19.703519] ath10k_pci 0000:00:00.0: NOTE:  Firmware DBGLOG output disabled in debug_mask: 0x10000000
[   19.928215] ieee80211 phy1: Atheros AR9561 Rev:0 mem=0xb8100000, irq=2
[   19.960819] kmodloader: done loading kernel modules from /etc/modules.d/*
[   35.810446] eth0: link up (1000Mbps/Full duplex)
[   35.815249] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   35.830425] br-lan: port 1(eth0.1) entered blocking state
[   35.836062] br-lan: port 1(eth0.1) entered disabled state
[   35.841907] device eth0.1 entered promiscuous mode
[   35.847023] device eth0 entered promiscuous mode
[   35.871498] br-lan: port 1(eth0.1) entered blocking state
[   35.877130] br-lan: port 1(eth0.1) entered forwarding state
[   36.825942] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready



BusyBox v1.35.0 (2022-01-11 16:24:20 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r18554-d8a07c35d2
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:/# /etc/init.d/plc_basic start
plc_basic: plcenable plc_basic: setting to 0
plc_basic: plcnetwork plc_basic: setting to lan
plc_basic: plcbridge br-lan
plc_basic: board name asus,pl-ac56
plc_basic: plcinterface eth0.2
plc_basic: plcmac plc_basic: setting from art xx:xx:xx:xx:xx:xx
plc_basic: plcnmk plc_basic: setting from art 50:d3:e4:93:3f:85:5b:70:40:78:4d:f8:15:aa:8d:b7
plc_basic: plcenable 1
plc_basic: start plchost
root@OpenWrt:/# eth0.2 00:B0:52:00:00:01 Write /lib/plc/QCA7500-2.10.0032_modules_5-6_stripped.nvm (1) (00000040:32120)
eth0.2 00:B0:52:00:00:01 Start /lib/plc/QCA7500-2.10.0032_modules_5-6_stripped.nvm (1) (000000C0)
eth0.2 00:B0:52:00:00:01 Write /lib/plc/QCA7500-WallAdapter_EN50561-1.pib (1) (00400000:22344)
eth0.2 00:B0:52:00:00:01 Write /lib/plc/QCA7500-2.10.0032_modules_5-6_stripped.nvm (4) (00597B0C:522772)
eth0.2 00:B0:52:00:00:01 Start /lib/plc/QCA7500-2.10.0032_modules_5-6_stripped.nvm (4) (00597EFC)
eth0.2 xx:xx:xx:xx:xx:xx MAC-QCA7500-2.10.0.32-01-20200626-CS is running
eth0.2 00:B0:52:00:00:01 Fetch Network Information
eth0.2 xx:xx:xx:xx:xx:xx Found 1 Network(s)

plc_basic: Adding eth0.2 to br-lan
[   64.087712] br-lan: port 2(eth0.2) entered blocking state
[   64.093300] br-lan: port 2(eth0.2) entered disabled state
[   64.099206] device eth0.2 entered promiscuous mode
[   64.104293] br-lan: port 2(eth0.2) entered blocking state
[   64.109924] br-lan: port 2(eth0.2) entered forwarding state

Now the questions;
There are two external files needed to be used here, one is the script I modified after @netadair , which is handling all the PLC stuff, the second is a newer PLC firmware (nvm) file, because the latest from Asus is pretty old.
The script I can provide as it is, for example paste it up on a wiki page for the device even, but the nvm file is an external stuff, best I got is a forum link, where it can be downloaded from.
I don't know if this is sufficient, or even the correct way. Please let me know how it should be prepared correctly.

I'd say the external files need to be packaged as ipk and added to the openwrt/packages feed. the build process should get the files (and updates) from a public git (like github or gitlab)

I was thinking the same, however I'm not sure if this could work. I was on github devolo/dlan, that they are also not distributing PLC firmware and pib files, due to legal reasons. I'd say this can be very true for this case as well.
Maybe I really have to stick to pasting the script on the device page and giving a link to the aforementioned forum's thread for downloads?

that can work if you intend to maintain the firmware only yourself as the core openwrt developers won't merge this kind of incomplete code

Alright, I'd need still a possibility to enter some plc commands rights before a reset-button, or restore-defaults via button event would occur. I.e. some customization before the /etc/rc.button scripts will be called.
Is this possible somehow to be done?

Well I figured out the button details and everything is almost done - actually it works 100%, but I'll just make a bit more polishing.

I'd like to thank everyone the help, especially to @jdwl1o1 :wink:
If interested, its all here: https://github.com/therealsummoner/openwrt/tree/feature_plac56

1 Like

Very keen to try OpenWRT for PL-AC56. I bought the unit several years ago and ended up throwing it in a cupboard because it was unstable and there were no updates for it. I have openwrt running on a very old crappy dlink device. Would be keen to get the wifi end of AC56 working with OpenWRT.

Its on the way, everything is working, I'm just busy with another Asus device :wink:
Nice you are interested in !

1 Like

PR is just up for the device :wink:

1 Like