-
Notifications
You must be signed in to change notification settings - Fork 3
QIVICON Home Base 2
The QIVICON Home Base 2 was sold by Telekom in Germany, and developed by Huawei.
(Photo from digitalzimmer.de)
Chips:
- HiSilicon SD5650T V110 SoC
- Winbond W25Q80: 1 MiB QSPI flash
- Micron 29F4G: 512 MiB NAND flash
- Samsung K4B4G1646D-BCK0: 512 MiB DDR3 RAM
- Silicon Labs EM3587: ZigBee/802.15.4
- RTL8192: 802b/g/n USB WLAN
- RTL8761: Bluetooth controller
- Microchip/SMSC USB2514: USB 2.0 4-port hub
- P24JPVSK: unknown chip manufactured by ST
- HM-MOD-UART-AW-SH-2: Homematic module
The SD5650T V110 comes in a LQFP256 package.
- Pin 10/11: ??
- Pin 13/14, 16/17: Ethernet (two diffpairs)
- Pin 93/94: some kind of signal @ 3.3V, 12 MHz sample rate, continually transmitting
- Pin 177/178: USB?
The front side of the plastic shell has one feature, namely a large button with a home symbol and a LED backlight. It is connected to the mainboard through a 5-wire flat cable. Pin 1 is marked by the red wire.
| pin | function | polarity |
|---|---|---|
| 1 | white LED | active high |
| 2 | ??? LED | active high |
| 3 | red LED | active high |
| 4 | GND | -- |
| 5 | button pressed | active low |
When power is supplied to the board, the button blinks white for a minute or so, then it turns off, of shows another pattern to indicate different conditions.
The name of the Homematic module HM-MOD-UART-AW-SH-2 implies that it is connected to a UART, which could potentially be reused for something else (debugging). The pinout is fortunately documented online (although, very confusingly, the author of that document listed the pins in a random order):
| pin | function | comments |
|---|---|---|
| 1 | +UB | supply voltage (3.3V - 5V, I guess) |
| 2 | GND | |
| 3 | C2D | for programming the module |
| 4 | C2CK | |
| 5 | TX | (the module's TX) |
| 6 | RX |
In other words, pin 6 is connected to the SoC's TX line. Note: Annoyingly this row of pins has a 2 mm pitch rather than the usual 2.54 mm.
Boot log:
-------------------
- VER5610 bootrom -
-------------------
-
>> hit <ctrl+c> to stop autoboot:0
-
----------------------------------
- Flash type .......... [ NAND ]
- Boot mode ........... [ NONSEC ]
- Read page0 .......... [ OK ]
- DDR ................. [ OK ]
- bootloader .......... [ OK ]
----------------------------------
-
>> startup bootloader...
DRAM : 512MB SYS : 0xc0c00000
STACK DATA : 0xc0020000 STACK SVC : 0xc0030000
STACK FIQ : 0xc0040000 STACK ABT : 0xc0050000
STACK UND : 0xc0060000 STACK IRQ : 0xc0070000
Memory : total 511.5MB
Memory : start 0xc2000000 available 64MB
Memory : code 177KB bss 95KB highmem 416MB 0xc6000000
############
copy 3010080 bytes successful!
Uncompressing Linux... done, booting the kernel.
Bootrom interaction
>> hit <ctrl+c> to stop autoboot: 1
bootrom > help
cmd - usage - help
------------------------------------------------------------
boot - boot - read info from flash and boot
go - go <addr> - jump to application at 'addr'
help - help - print description of all commands
loady - loady <addr> - load file from the serial line
md - md <addr> - memory display
mw - mw <addr> - memory write
reset - reset - system reboot
run - run <addr> - execute application at 'addr'
bootrom > md 0x10100000
10100000: 00550224 00000000 00000000 00000006 $.U.............
10100010: 00000001 000009fe 00000000 00100800 ................
10100020: 00000000 00000000 00000000 00100800 ................
10100030: 00000000 00000000 18000000 18000000 ................
bootrom > md 0x10100800
10100800: 56102110 00000000 00000000 00000000 .!.V............
10100810: 00000000 00000000 00000000 00000000 ................
10100820: 00000000 00000000 00000000 00000000 ................
10100830: 00000000 00000000 00000000 00000000 ................
Hitting Ctrl-C a little later spawns another bootloader shell:
>> startup bootloader...
DRAM : 512MB SYS : 0xc0c00000
STACK DATA : 0xc0020000 STACK SVC : 0xc0030000
STACK FIQ : 0xc0040000 STACK ABT : 0xc0050000
STACK UND : 0xc0060000 STACK IRQ : 0xc0070000
Memory : total 511.5MB
Memory : start 0xc2000000 available 64MB
Memory : code 177KB bss 95KB highmem 416MB 0xc6000000
hi #
Without any interruption, the second bootloader loads and starts Linux.
After Linux boots, the port is used to talk to the Homematic module so we don't get any more debug output at that point.
Kernel boot log
Booting Linux on physical CPU 0
Linux version 3.4.11-rt19 (root@WUH1000003808) (gcc version 4.4.6 (crosstool-NG 1.13.2 - hsan-5610) ) #1 SMP PREEMPT Sat Apr 16 12:16:01 CST 2016
CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: hsan
Memory policy: ECC disabled, Data cache writealloc
HSAN:mapping io
PERCPU: Embedded 7 pages/cpu @c0a91000 s5536 r8192 d14944 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 124968
Kernel command line: mem=492M root=mtd:rootfs ro rootfstype=jffs2 console=ttyAMA1,115200 root=/dev/sda1 rootwait init=/bin/sh
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)
Memory: 492MB = 492MB total
Memory: 492516k/492516k available, 11292k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xdf000000 - 0xff000000 ( 512 MB)
lowmem : 0xc0000000 - 0xdec00000 ( 492 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.text : 0xc0008000 - 0xc05355c8 (5302 kB)
.init : 0xc0536000 - 0xc055a5a0 ( 146 kB)
.data : 0xc055c000 - 0xc0591420 ( 214 kB)
.bss : 0xc0591444 - 0xc06abd38 (1131 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
Preemptible hierarchical RCU implementation.
Dump stacks of tasks blocking RCU-preempt GP.
NR_IRQS:160
HSAN:apb bus clk is 100000000
sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 4294967286ms
console [ttyAMA1] enabled
Calibrating delay loop... 1397.55 BogoMIPS (lpj=6987776)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
smp_twd: clock not found: -2
Calibrating local timer... 174.98MHz.
Setting up static identity map for 0x815c4220 - 0x815c4254
CPU1: Booted secondary processor
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
CPU1: Unknown IPI message 0x1
Brought up 2 CPUs
SMP: Total of 2 processors activated (2795.11 BogoMIPS).
devtmpfs: initialized
hardware timer init sucessful!
kiconconvInit enter
bhal: bhalInit entry
NET: Registered protocol family 16
ACP:controller succ
L2cache:controller succ
PCI:0 1.1 Device Link Up.
PCI:1 1.1 Device Link Down.
PCI:0 busnr=0 setup
PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io 0x0000-0xffffffff]
pci_bus 0000:00: root bus resource [mem 0x00000000-0xffffffff]
PCI: bus0: Fast back to back transfers disabled
pci 0000:00:00.0: BAR 2: assigned [mem 0x40000000-0x40003fff 64bit]
pci 0000:00:00.0: BAR 0: assigned [io 0x40a00000-0x40a000ff]
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
hw_ssp_ker_lsw_init_manager:first use hi-mem!
current lastword info:Add=0xdf011000;max_num=127;Add1=0xdf011000;Add2=0xdf016000;Add3=0x48012000;
Broadcom IQoS v0.1 Apr 16 2016 12:15:29 initialized
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
cfg80211: Calling CRDA to update world regulatory domain
Switching to clocksource sourcetimer:1
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 5, 196608 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
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
serial: hisi uart driver
ttyAMA0 at MMIO 0x1010e000 (irq = 77) is a ttyAMA
squashfs: version 4.0 (2009/01/31) Phillip Lougher
NTFS driver 2.1.30 [Flags: R/W DEBUG].
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
fuse init (API version 7.18)
msgmni has been set to 961
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
brd: module loaded
loop: module loaded
HSAN Nand Flash Controller V600 Device Driver, Version 1.0
hi_nand_kernel_get_spec come in ...
index 0 addr:0,len:80
index 1 addr:80,len:280
index 2 addr:300,len:280
index 3 addr:580,len:0
index 4 addr:580,len:8000
index 5 addr:8580,len:0
index 6 addr:8580,len:8000
index 7 addr:10580,len:0
index 8 addr:10580,len:0
index 9 addr:10580,len:14000
index 10 addr:24580,len:14000
index 11 addr:38580,len:0
index 12 addr:38580,len:2bc00
index 13 addr:64180,len:7800
index 14 addr:6b980,len:8000
index 15 addr:6b980,len:8000
index 16 addr:7b980,len:500
index 17 addr:7be80,len:500
index 18 addr:7c380,len:0
index 19 addr:7c380,len:500
index 20 addr:7c880,len:500
index 21 addr:7cd80,len:500
index 22 addr:7d280,len:500
index 23 addr:7d780,len:500
index 24 addr:7dc80,len:500
index 25 addr:7e180,len:0
index 26 addr:7e180,len:f00
index 27 addr:7f080,len:280
index 28 addr:7f300,len:280
index 29 addr:7f580,len:280
index 30 addr:7f800,len:800
index 31 addr:8000,len:0
s_sw_protect_addr_start end addr:e160000
Creating 20 MTD partitions on "hi_nfc":
0x000000160000-0x000002160000 : "rootfs"
0x000000000000-0x000020000000 : "all"
0x00001ee60000-0x00001fc20000 : "config"
0x00001fc20000-0x00001fcc0000 : "equip"
0x00001fd60000-0x00001fe00000 : "upgflag"
0x000000000000-0x000000020000 : "blrom"
0x000000020000-0x0000000c0000 : "rootfstag"
0x00001ae60000-0x00001ce60000 : "reserved"
0x000000000000-0x000020000000 : "html"
0x00001fcc0000-0x00001fd60000 : "wlanrf"
0x000000160000-0x000020000000 : "kernel"
0x000002160000-0x000020000000 : "kernelbak"
0x000000000000-0x000020000000 : "middleware"
0x000004160000-0x000020000000 : "web"
0x000004160000-0x000020000000 : "webbak"
0x000004160000-0x000009160000 : "jvmosgi"
0x000009160000-0x00000e160000 : "jvmosgibak"
0x00000e160000-0x000019060000 : "bundles"
0x000019060000-0x00001ae60000 : "module"
0x00001ae60000-0x00001ce60000 : "osigconfig"
sky2: driver version 1.30
PPP generic driver version 2.4.2
PPP BSD Compression module registered
PPP Deflate Compression module registered
NET: Registered protocol family 24
hi_usb_start_hcd sucessful!
xhci-hcd hiusb3.0: xHCI Host Controller
xhci-hcd hiusb3.0: new USB bus registered, assigned bus number 1
xhci-hcd hiusb3.0: irq 71, io mem 0x10a50000
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: xHCI Host Controller
usb usb1: Manufacturer: Linux 3.4.11-rt19 xhci-hcd
usb usb1: SerialNumber: hiusb3.0
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
xhci-hcd hiusb3.0: xHCI Host Controller
xhci-hcd hiusb3.0: new USB bus registered, assigned bus number 2
usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb2: Product: xHCI Host Controller
usb usb2: Manufacturer: Linux 3.4.11-rt19 xhci-hcd
usb usb2: SerialNumber: hiusb3.0
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
usbcore: registered new interface driver usbserial
usbcore: registered new interface driver usbserial_generic
USB Serial support registered for generic
usbserial: USB Serial Driver core
usbcore: registered new interface driver xr_usb_serial
USB Serial support registered for EXAR USB serial port
Exar USB UART (serial port) driver: 1A
breath_trig_init
atp_ipv6_rcv_processpacket_init init ok
gpio key init!
input: bcm_gpio_key as /devices/platform/bcm_gpio_key/input/input0
u32 classifier
Actions configured
Netfilter messages via NETLINK v0.30.
nfnl_acct: registering with nfnetlink.
nf_conntrack version 0.5.0 (7695 buckets, 30780 max)
IPv4 over IPv4 tunneling driver
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP: cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 10
ip6_tables: (C) 2000-2006 Netfilter Core Team
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
L2TP core driver, V2.0
L2TP IP encapsulation support (L2TPv3)
L2TP netlink interface
L2TP ethernet pseudowire support (L2TPv3)
8021q: 802.1Q VLAN Support v1.8
Setting init=/bin/sh on the kernel command line doesn't work, but a look at
the filesystem shows that's present. The issue might be that the driver for
UART 1 is in a separate module, which isn't loaded until userspace had a chance to.
The hi_serial driver lists both ports, but registers only one.
USB mass storage and EXT3 drivers are included but apparently not compiled in,
so root=/dev/sda1 doesn't work. EXT3 partitions on USB sticks are
automatically mounted. On a typical boot, it looks somewhat like this (the
parameters are device, mountpoint, flags):
do_mount("devtmpfs", "/", 00008000) = 0
do_mount("mtd:rootfs", "/root", 00008001) = 0
do_mount("devtmpfs", "dev", 00008000) = 0
do_mount(".", "/", 00002000) = 0
do_mount("none", "/dev", 00008000) = 0
do_mount("/proc", "/proc", 00008000) = 0
do_mount("none", "/proc/bus/usb", 00008000) = 0
do_mount("none", "/sys", 00008000) = 0
do_mount("none", "/var", 00008004) = 0
do_mount("none", "/tmp", 00008004) = 0
do_mount("none", "/mnt", 00008004) = 0
do_mount("/dev/mtdblock2", "/config", 00008000) = 0
do_mount("/dev/mtdblock15", "/mnt/jvm", 00008001) = 0
do_mount("/dev/mtdblock19", "/mnt/osgi_config", 00008000) = 0
do_mount("/dev/mtdblock17", "/mnt/osgi_bundles", 00008000) = 0
do_mount("/dev/mtdblock18", "/opt", 00008000) = 0
do_mount("/dev/sda1", "/mnt/Innostor-1F754620_usb1_1", 00008008) = -22
do_mount("/dev/sda1", "/mnt/Innostor-1F754620_usb1_1", 00008008) = -22
do_mount("/dev/sda1", "/mnt/Innostor-1F754620_usb1_1", 00008008) = -22
do_mount("/dev/sda1", "/mnt/Innostor-1F754620_usb1_1", 00008008) = 0
USB serial drivers (for PL2303 and others) are present, but the OS doesn't spawn a shell/login on them.
The NAND flash partition table (and thus the list of /dev/mtdblock*) is as
follows:
| idx | start | end | name |
|---|---|---|---|
| 0 | 0x000000160000 |
0x000002160000 |
rootfs |
| 1 | 0x000000000000 |
0x000020000000 |
all |
| 2 | 0x00001ee60000 |
0x00001fc20000 |
config |
| 3 | 0x00001fc20000 |
0x00001fcc0000 |
equip |
| 4 | 0x00001fd60000 |
0x00001fe00000 |
upgflag |
| 5 | 0x000000000000 |
0x000000020000 |
blrom |
| 6 | 0x000000020000 |
0x0000000c0000 |
rootfstag |
| 7 | 0x00001ae60000 |
0x00001ce60000 |
reserved |
| 8 | 0x000000000000 |
0x000020000000 |
html |
| 9 | 0x00001fcc0000 |
0x00001fd60000 |
wlanrf |
| 10 | 0x000000160000 |
0x000020000000 |
kernel |
| 11 | 0x000002160000 |
0x000020000000 |
kernelbak |
| 12 | 0x000000000000 |
0x000020000000 |
middleware |
| 13 | 0x000004160000 |
0x000020000000 |
web |
| 14 | 0x000004160000 |
0x000020000000 |
webbak |
| 15 | 0x000004160000 |
0x000009160000 |
jvmosgi |
| 16 | 0x000009160000 |
0x00000e160000 |
jvmosgibak |
| 17 | 0x00000e160000 |
0x000019060000 |
bundles |
| 18 | 0x000019060000 |
0x00001ae60000 |
module |
| 19 | 0x00001ae60000 |
0x00001ce60000 |
osigconfig |
The kernel is old enough that it hasn't heard of devicetrees yet. Boot
information is provided as an ATAG list. Initramfs support appears to
be disabled in this kernel, injecting ATAG_INITRD2 has no effect.
The older initrd support (where you load a disk image into RAM, instead of unpacking a cpio archive into a tmpfs) is included, as well as filesystem drivers for cramfs, squashfs, minix FS, and ext2. However, the expected usecase is to load the ramdisk from storage; not to find it in a RAM region filled by the bootloader.
The JFFS2 filesystem images can either be mounted on a real Linux system (which
is a bit of a hassle, you might have to modprobe nandsim), or extracted with
jefferson.
Most of the action happens on rootfs, although the jvm partition isn't
empty either, containing an OpenJDK 1.8.0. The application part of the firmware
is apperently written using the OSGi framework.
Root FS listing
rootfs/
├── bin
│ ├── ash -> busybox
│ ├── atpget
│ ├── atpsync -> mic
│ ├── atserver
│ ├── bluetoothctl
│ ├── bluetoothd
│ ├── brctl
│ ├── bs
│ ├── busybox
│ ├── cat -> busybox
│ ├── cfgfileproc
│ ├── chmod -> busybox
│ ├── chown -> busybox
│ ├── cms
│ ├── cp -> busybox
│ ├── cwmp
│ ├── date -> busybox
│ ├── dbus-daemon
│ ├── dectule
│ ├── df -> busybox
│ ├── dhcp6c
│ ├── dhcpc
│ ├── dhcps
│ ├── dialup
│ ├── dns
│ ├── echo -> busybox
│ ├── ecryptfsd
│ ├── equipcmd
│ ├── ethcmd
│ ├── ezspcmd
│ ├── grep -> busybox
│ ├── gzip -> busybox
│ ├── hciconfig
│ ├── hcidump
│ ├── hcitool
│ ├── hi_cli
│ ├── hi_init
│ ├── hi_slic
│ ├── hi_voip_cli
│ ├── hi_xpon
│ ├── hsanportinit
│ ├── httpdetect
│ ├── ifstat
│ ├── ip
│ ├── ip6tables -> xtables-multi
│ ├── ipcheck
│ ├── ipdr
│ ├── iptables -> xtables-multi
│ ├── iwcontrol
│ ├── iwpriv
│ ├── kill -> busybox
│ ├── ln -> busybox
│ ├── ls -> busybox
│ ├── mic
│ ├── mirror
│ ├── mkdir -> busybox
│ ├── mknod -> busybox
│ ├── mlogserver
│ ├── mount -> busybox
│ ├── mv -> busybox
│ ├── netstat -> busybox
│ ├── nginx
│ ├── nstat
│ ├── ntfs-3g
│ ├── osgiboot
│ ├── ping -> busybox
│ ├── ping6 -> busybox
│ ├── pppc
│ ├── ps -> busybox
│ ├── rm -> busybox
│ ├── rtacct
│ ├── rtlbtmp_skt
│ ├── runner
│ ├── sd5610_ec.bin
│ ├── sdptool
│ ├── sed -> busybox
│ ├── sh -> busybox
│ ├── sleep -> busybox
│ ├── smmsync
│ ├── sntp
│ ├── sshd
│ ├── startbsp
│ ├── stat -> busybox
│ ├── su -> busybox
│ ├── syslog
│ ├── tar -> busybox
│ ├── tc
│ ├── traceroute6 -> busybox
│ ├── true -> busybox
│ ├── umount -> busybox
│ ├── upg
│ ├── upnp
│ ├── usbcontroller
│ ├── usbmonitor
│ ├── usbmount
│ ├── usleep -> busybox
│ ├── voiper
│ ├── web
│ ├── wscd
│ └── xtables-multi
├── cgroup
├── config
├── dev
│ └── pts
├── etc
│ ├── bluetooth
│ │ ├── audio.conf
│ │ ├── bdaddr
│ │ └── main.conf
│ ├── br-version
│ ├── create.sh
│ ├── cwmprootchain.pem
│ ├── dbus-1
│ │ ├── session.conf
│ │ ├── session.d
│ │ ├── system.conf
│ │ └── system.d
│ │ └── bluetooth.conf
│ ├── dectimage.bin
│ ├── defaultcfg.xml
│ ├── devicetable
│ ├── dummyvdb.sql
│ ├── ecrypfs_key.pem
│ ├── export_info.sh
│ ├── fstab
│ ├── group -> /var/group
│ ├── group1
│ ├── handy_dss_key
│ ├── handy_rsa_key
│ ├── hm
│ │ ├── bin
│ │ │ ├── crypttool
│ │ │ ├── eq3configcmd
│ │ │ ├── insmod_hm.sh
│ │ │ ├── multimacd
│ │ │ ├── rfd
│ │ │ └── SetInterfaceClock
│ │ ├── etc
│ │ │ ├── config
│ │ │ │ ├── access_dummy
│ │ │ │ ├── crypttool.cfg
│ │ │ │ ├── ids
│ │ │ │ ├── multimacd.conf
│ │ │ │ ├── reset_dummy
│ │ │ │ ├── rfd.conf
│ │ │ │ └── rfd_hmip.conf
│ │ │ └── init.d
│ │ │ ├── S60multimacd
│ │ │ ├── S60rfd
│ │ │ └── S61rfd
│ │ ├── firmware
│ │ │ ├── coprocessor_update.eq3
│ │ │ ├── coprocessor_update_hm_only.eq3
│ │ │ ├── fwmap
│ │ │ ├── hm-lgw-o-tw-w-eu_update.eq3
│ │ │ ├── HM-MOD-UART_update_rtte_V1_4.eq3
│ │ │ ├── hmw_io_12_fm_hw0.hex
│ │ │ ├── hmw_io12_sw14_dr_hw0.hex
│ │ │ ├── hmw_io12_sw7_dr_hw0.hex
│ │ │ ├── hmw_io_4_fm_hw0.hex
│ │ │ ├── hmw_io_sr_fm_hw0_unstable.hex
│ │ │ ├── hmw_lc_bl1_dr_hw0.hex
│ │ │ ├── hmw_lc_dim1l_dr_hw0.hex
│ │ │ ├── hmw_lc_sw2_dr_hw0.hex
│ │ │ ├── hmw-lgw-o-dr-gs-eu_update.eq3
│ │ │ ├── hmw_sen_sc_12_dr_hw0.hex
│ │ │ ├── hmw_sen_sc_12_fm_hw0.hex
│ │ │ ├── hs485types
│ │ │ │ ├── hmw_central.xml
│ │ │ │ ├── hmw_generic.xml
│ │ │ │ ├── hmw_io_12_fm.xml
│ │ │ │ ├── hmw_io12_sw14_dr.xml
│ │ │ │ ├── hmw_io12_sw7_dr_V3_02.xml
│ │ │ │ ├── hmw_io12_sw7_dr.xml
│ │ │ │ ├── hmw_io_4_fm_V3_02.xml
│ │ │ │ ├── hmw_io_4_fm.xml
│ │ │ │ ├── hmw_io_sr_fm.xml
│ │ │ │ ├── hmw_lc_bl1_dr_V3_02.xml
│ │ │ │ ├── hmw_lc_bl1_dr.xml
│ │ │ │ ├── hmw_lc_dim1l_dr.xml
│ │ │ │ ├── hmw_lc_sw2_dr_V3_02.xml
│ │ │ │ ├── hmw_lc_sw2_dr.xml
│ │ │ │ └── hmw_sen_sc_12_dr.xml
│ │ │ └── rftypes
│ │ │ ├── replaceMap
│ │ │ │ └── rfReplaceMap.xml
│ │ │ ├── rf_4dis.xml
│ │ │ ├── rf_ash550.xml
│ │ │ ├── rf_bl_644.xml
│ │ │ ├── rf_bl_conf_644_e_v2_0.xml
│ │ │ ├── rf_bl_conf_644_e_v2_1.xml
│ │ │ ├── rf_bl_conf_644.xml
│ │ │ ├── rf_bl_le_v2_3.xml
│ │ │ ├── rf_bl.xml
│ │ │ ├── rf_cc_rt_dn_bom.xml
│ │ │ ├── rf_cc_rt_dn.xml
│ │ │ ├── rf_cc_tc_le_v1_9.xml
│ │ │ ├── rf_cc_tc.xml
│ │ │ ├── rf_cc_vd.xml
│ │ │ ├── rf_central.xml
│ │ │ ├── rf_cfm_tw.xml
│ │ │ ├── rf_cfm.xml
│ │ │ ├── rf_cf.xml
│ │ │ ├── rf_cmm.xml
│ │ │ ├── rf_cm.xml
│ │ │ ├── rf_ddc.xml
│ │ │ ├── rf_dim_1l_644_le_v2_4.xml
│ │ │ ├── rf_dim_1l_644.xml
│ │ │ ├── rf_dim_1pwm_644_le_v2_4.xml
│ │ │ ├── rf_dim_1pwm_644.xml
│ │ │ ├── rf_dim_1t_644_le_v2_4.xml
│ │ │ ├── rf_dim_1t_644.xml
│ │ │ ├── rf_dim_1tconf_644_le_v2_4.xml
│ │ │ ├── rf_dim_1tconf_644.xml
│ │ │ ├── rf_dim_1t_fm_lf.xml
│ │ │ ├── rf_dim_2l_644_le_v2_4.xml
│ │ │ ├── rf_dim_2l_644.xml
│ │ │ ├── rf_dim_2t_644_le_v2_4.xml
│ │ │ ├── rf_dim_2t_644.xml
│ │ │ ├── rf_dim_t_le_v1_9.xml
│ │ │ ├── rf_dim_t.xml
│ │ │ ├── rf_dis_wm55.xml
│ │ │ ├── rf_d_le_v1_7.xml
│ │ │ ├── rf_d_le_v1_9.xml
│ │ │ ├── rf_d.xml
│ │ │ ├── rf_em_8.xml
│ │ │ ├── rf_es_pmsw_le_v2_4.xml
│ │ │ ├── rf_es_pmsw.xml
│ │ │ ├── rf_es_tx_wm_le_v1_0.xml
│ │ │ ├── rf_es_tx_wm.xml
│ │ │ ├── rf_fs_ba.xml
│ │ │ ├── rf_hm-wds100-c6-o-2.xml
│ │ │ ├── rf_keymatic.xml
│ │ │ ├── rf_ks550.xml
│ │ │ ├── rf_oligo_smart_iq.xml
│ │ │ ├── rf_ou_led16_ge_v1_1.xml
│ │ │ ├── rf_ou_led16_le_v1_0.xml
│ │ │ ├── rf_pb-2-wm55_ge_v1_4.xml
│ │ │ ├── rf_pb-2-wm55_le_v1_3.xml
│ │ │ ├── rf_pb-2.xml
│ │ │ ├── rf_pbi.xml
│ │ │ ├── rf_rc_12.xml
│ │ │ ├── rf_rc_19.xml
│ │ │ ├── rf_rc_2_fm.xml
│ │ │ ├── rf_rc-4-2.xml
│ │ │ ├── rf_rc-4-3_single_on.xml
│ │ │ ├── rf_rc_dis.xml
│ │ │ ├── rf_rc-key4-2.xml
│ │ │ ├── rf_rc-sec4-2.xml
│ │ │ ├── rf_rc_single_on.xml
│ │ │ ├── rf_rc.xml
│ │ │ ├── rf_rd_le_v1_3.xml
│ │ │ ├── rf_rd.xml
│ │ │ ├── rf_rep.xml
│ │ │ ├── rf_resc_win_pcb_sc.xml
│ │ │ ├── rf_rgbw.xml
│ │ │ ├── rf_rhs_e_v1_7.xml
│ │ │ ├── rf_rhs_le_v1_6.xml
│ │ │ ├── rf_rhs.xml
│ │ │ ├── rf_roto_wdf_solar.xml
│ │ │ ├── rf_s_1conf_644_le_v2_1.xml
│ │ │ ├── rf_s_1conf_644_le_v2_3.xml
│ │ │ ├── rf_s_1conf_644.xml
│ │ │ ├── rf_s_4_ba.xml
│ │ │ ├── rf_s550ia.xml
│ │ │ ├── rf_s_644.xml
│ │ │ ├── rf_s_8_ba.xml
│ │ │ ├── rf_s_ba.xml
│ │ │ ├── rf_scd_v1_0.xml
│ │ │ ├── rf_sc_e_v1_7.xml
│ │ │ ├── rf_sci_3.xml
│ │ │ ├── rf_sc_le_v1_6.xml
│ │ │ ├── rf_sc.xml
│ │ │ ├── rf_sec_mdir_v1_5.xml
│ │ │ ├── rf_sec_mdir.xml
│ │ │ ├── rf_sec_sco.xml
│ │ │ ├── rf_sec_sd_2.xml
│ │ │ ├── rf_sec_sd_schueco.xml
│ │ │ ├── rf_sec_sd.xml
│ │ │ ├── rf_sec_sfa.xml
│ │ │ ├── rf_sec_sir_wm.xml
│ │ │ ├── rf_sen_db.xml
│ │ │ ├── rf_sen_ep.xml
│ │ │ ├── rf_sen_li.xml
│ │ │ ├── rf_sen_mdir_v1_5.xml
│ │ │ ├── rf_sen_mdir_wm55.xml
│ │ │ ├── rf_sen_mdir.xml
│ │ │ ├── rf_sen_wa_od.xml
│ │ │ ├── rf_s_le_v1_5.xml
│ │ │ ├── rf_s_le_v2_3.xml
│ │ │ ├── rf_s_mega168.xml
│ │ │ ├── rf_st_6_sh.xml
│ │ │ ├── rf_swi.xml
│ │ │ ├── rf_s.xml
│ │ │ ├── rf_tc_it_wm-w-eu.xml
│ │ │ ├── rf_tis_le_v1_0.xml
│ │ │ ├── rf_tis.xml
│ │ │ ├── rf_wds30_ot2.xml
│ │ │ ├── rf_wds40_th_i_2.xml
│ │ │ ├── rf_wds_v1_0.xml
│ │ │ ├── rf_wds_v1_1.xml
│ │ │ ├── rf_winmatic.xml
│ │ │ └── rf_ws550.xml
│ │ ├── fwversion
│ │ └── lib
│ │ ├── libelvutils.so
│ │ ├── libeq3config.so
│ │ ├── libhsscomm.so
│ │ ├── libLanDeviceUtils.so
│ │ ├── libUnifiedLanComm.so
│ │ ├── libxmlparser.so
│ │ └── libXmlRpc.so
│ ├── hosts
│ ├── init.d
│ │ └── rcS
│ ├── inittab
│ ├── inputrc
│ ├── insmod_all.sh
│ ├── insmod_eth.sh
│ ├── insmod_wlan.sh
│ ├── issue
│ ├── ld.so.conf
│ ├── lua
│ │ ├── atputil.lua
│ │ ├── bj.lua
│ │ ├── dmj.lua
│ │ ├── dtj.lua
│ │ ├── exportcfg.lua
│ │ ├── importcfg.lua
│ │ └── json.lua
│ ├── mtab -> /proc/mounts
│ ├── nginx
│ │ ├── conf
│ │ │ ├── directpc.conf
│ │ │ ├── directpc_debugmode.conf
│ │ │ ├── mime.types
│ │ │ ├── normal.conf
│ │ │ └── normal_debugmode.conf
│ │ └── html
│ │ └── errorpages
│ │ ├── apple-touch-icon-120x120.png
│ │ ├── apple-touch-icon-152x152.png
│ │ ├── apple-touch-icon-76x76.png
│ │ ├── apple-touch-icon.png
│ │ ├── css
│ │ │ └── style.css
│ │ ├── favicon.ico
│ │ ├── favicon.png
│ │ ├── font
│ │ │ └── ui.shared
│ │ │ ├── proximanovasoft-bold-webfont.eot
│ │ │ ├── proximanovasoft-bold-webfont.ttf
│ │ │ ├── proximanovasoft-bold-webfont.woff
│ │ │ ├── proximanovasoft-medium-unprotected.ttf
│ │ │ ├── proximanovasoft-medium-webfont.eot
│ │ │ ├── proximanovasoft-medium-webfont.ttf
│ │ │ ├── proximanovasoft-medium-webfont.woff
│ │ │ ├── proximanovasoft-regular-unprotected.ttf
│ │ │ ├── proximanovasoft-regular-webfont.eot
│ │ │ ├── proximanovasoft-regular-webfont.ttf
│ │ │ ├── proximanovasoft-regular-webfont.woff
│ │ │ ├── proximanovasoft-semibold-unprotected.ttf
│ │ │ ├── proximanovasoft-semibold-webfont.eot
│ │ │ ├── proximanovasoft-semibold-webfont.ttf
│ │ │ ├── proximanovasoft-semibold-webfont.woff
│ │ │ ├── wf_qbats.svg
│ │ │ ├── wf_qbats.ttf
│ │ │ └── wf_qbats.woff
│ │ ├── img
│ │ │ ├── spinner.gif
│ │ │ └── ui.shared
│ │ │ ├── icons
│ │ │ │ ├── add_circular-ring.svg
│ │ │ │ ├── add.svg
│ │ │ │ ├── checkmark_circular-ring-bg.svg
│ │ │ │ ├── checkmark_circular-ring.svg
│ │ │ │ ├── confirm.svg
│ │ │ │ ├── delete_circular-ring.svg
│ │ │ │ └── delete.svg
│ │ │ └── loading-icon
│ │ │ └── loading-icon.svg
│ │ ├── js
│ │ │ └── login.js
│ │ ├── starting_de.html
│ │ ├── starting_en.html
│ │ └── tileicon.png
│ ├── openssl-ca.cnf
│ ├── openssl-server.cnf
│ ├── passwd -> /var/passwd
│ ├── passwd1
│ ├── profile
│ ├── protocols
│ ├── random-seed
│ ├── resolv.conf
│ ├── root.pem
│ ├── securetty
│ ├── servercert.pem
│ ├── serverkey.pem
│ ├── services
│ ├── shadow
│ ├── share.map
│ ├── simplecfgservice.xml
│ ├── system.data
│ ├── TZ -> /var/TZ
│ ├── upnp
│ ├── usbmonitor
│ │ └── usbmonitor.xml
│ ├── vdb.sql
│ ├── wscd.conf
│ ├── zigbee.ebl
│ ├── zigbee_em3587.ebl
│ └── zwave_firmware.bin
├── home
│ └── cli
│ ├── api
│ │ ├── cap
│ │ │ ├── getcap
│ │ │ └── setcap
│ │ ├── ecs
│ │ │ ├── chip
│ │ │ │ ├── get_chip_attr
│ │ │ │ ├── get_port_attr
│ │ │ │ ├── set_chip_attr
│ │ │ │ └── set_port_attr
│ │ │ ├── gpio
│ │ │ │ ├── getbitattr
│ │ │ │ ├── readbit
│ │ │ │ ├── setbitattr
│ │ │ │ └── writebit
│ │ │ ├── kphy
│ │ │ │ ├── mapping_dump
│ │ │ │ ├── mapping_read
│ │ │ │ ├── mapping_write
│ │ │ │ ├── power_down
│ │ │ │ ├── power_down_all
│ │ │ │ ├── power_up
│ │ │ │ ├── power_up_all
│ │ │ │ └── read_inner_status
│ │ │ ├── mdio
│ │ │ │ ├── read_exreg
│ │ │ │ ├── read_extern
│ │ │ │ ├── read_inner
│ │ │ │ ├── write_exreg
│ │ │ │ ├── write_extern
│ │ │ │ └── write_inner
│ │ │ ├── mem
│ │ │ │ ├── phymr
│ │ │ │ └── phymw
│ │ │ ├── port
│ │ │ │ ├── display_ed_status
│ │ │ │ ├── display_eee_attr
│ │ │ │ ├── get_mrr_attr
│ │ │ │ ├── patch_phy
│ │ │ │ ├── set_eee_attr
│ │ │ │ └── set_mrr_attr
│ │ │ ├── power
│ │ │ │ ├── get_clk_axi_acp
│ │ │ │ ├── get_clk_axi_ahb
│ │ │ │ ├── get_clk_axi_peri
│ │ │ │ ├── get_clk_dp
│ │ │ │ ├── get_clk_pfe
│ │ │ │ ├── get_cpu_status
│ │ │ │ ├── get_dsl_status
│ │ │ │ ├── get_ec_freq
│ │ │ │ ├── get_ec_status
│ │ │ │ ├── get_fe_status
│ │ │ │ ├── get_ge_status
│ │ │ │ ├── get_hw_status
│ │ │ │ ├── get_led_status
│ │ │ │ ├── get_nand_status
│ │ │ │ ├── get_pcie_lx
│ │ │ │ ├── get_pcie_status
│ │ │ │ ├── get_ram_retention
│ │ │ │ ├── get_sci_status
│ │ │ │ ├── get_sfc_status
│ │ │ │ ├── get_spi_status
│ │ │ │ ├── get_tsenser_status
│ │ │ │ ├── get_tsenser_temp
│ │ │ │ ├── get_usb_status
│ │ │ │ ├── get_voip_status
│ │ │ │ ├── set_clk_axi_acp
│ │ │ │ ├── set_clk_axi_ahb
│ │ │ │ ├── set_clk_axi_peri
│ │ │ │ ├── set_clk_dp
│ │ │ │ ├── set_clk_pfe
│ │ │ │ ├── set_cpu1
│ │ │ │ ├── set_cpu_freq
│ │ │ │ ├── set_dsl_status
│ │ │ │ ├── set_ec_freq
│ │ │ │ ├── set_ec_status
│ │ │ │ ├── set_fe_status
│ │ │ │ ├── set_ge_status
│ │ │ │ ├── set_hw_status
│ │ │ │ ├── set_led_status
│ │ │ │ ├── set_nand_status
│ │ │ │ ├── set_pcie_lx
│ │ │ │ ├── set_pcie_status
│ │ │ │ ├── set_ram_retention
│ │ │ │ ├── set_sci_status
│ │ │ │ ├── set_sfc_status
│ │ │ │ ├── set_spi_status
│ │ │ │ ├── set_tsenser_status
│ │ │ │ ├── set_usb_status
│ │ │ │ └── set_voip_status
│ │ │ └── version
│ │ ├── env
│ │ │ ├── dump
│ │ │ ├── get
│ │ │ ├── load
│ │ │ ├── save
│ │ │ └── set
│ │ ├── eth
│ │ │ └── keeptag
│ │ ├── intf
│ │ │ ├── add
│ │ │ ├── addroot
│ │ │ ├── delete
│ │ │ ├── relateif
│ │ │ ├── setfwd
│ │ │ ├── setip
│ │ │ ├── setipv6
│ │ │ ├── setmac
│ │ │ ├── setmatch
│ │ │ ├── setmcmac
│ │ │ ├── setppp
│ │ │ ├── setpri
│ │ │ ├── settnl
│ │ │ ├── setvid
│ │ │ └── setvlanpass
│ │ ├── mc
│ │ │ ├── add_member
│ │ │ ├── add_rsv_ip
│ │ │ └── del_member
│ │ ├── phy
│ │ │ ├── get_mode
│ │ │ ├── patch_phy
│ │ │ └── set_mode
│ │ ├── qos
│ │ │ ├── add_car
│ │ │ ├── add_flow
│ │ │ ├── add_soft_fwd_flow
│ │ │ ├── change_dfe_mode_queue
│ │ │ ├── del_all_car
│ │ │ ├── del_car
│ │ │ ├── del_flow
│ │ │ ├── dsl_down_set_flush
│ │ │ ├── set_default_flow
│ │ │ ├── set_dfe_queue
│ │ │ ├── set_egr_shaper
│ │ │ ├── set_loop_port
│ │ │ ├── set_mode
│ │ │ ├── set_pkt_car
│ │ │ ├── set_pkt_pq
│ │ │ └── set_queue
│ │ └── srv
│ │ ├── get_linkmax
│ │ ├── set_flowrange
│ │ └── set_linkmax
│ ├── debug
│ │ ├── app
│ │ │ ├── mc
│ │ │ │ ├── add_rsvip
│ │ │ │ ├── add_sip
│ │ │ │ ├── clear_grpusr_info
│ │ │ │ ├── clearl_sip
│ │ │ │ ├── clear_member
│ │ │ │ ├── dump_grpinfo
│ │ │ │ ├── dump_hash
│ │ │ │ ├── dump_member
│ │ │ │ ├── dump_rsvip
│ │ │ │ ├── dump_sip
│ │ │ │ ├── dump_userinfo
│ │ │ │ ├── dump_usrlist
│ │ │ │ ├── get_age
│ │ │ │ ├── get_debug
│ │ │ │ ├── get_match_mode
│ │ │ │ ├── get_mc_sta
│ │ │ │ ├── get_proto_en
│ │ │ │ ├── get_transmode
│ │ │ │ ├── set_age
│ │ │ │ ├── set_debug
│ │ │ │ ├── set_match_mode
│ │ │ │ ├── set_proto_en
│ │ │ │ ├── set_sta
│ │ │ │ └── set_transmode
│ │ │ ├── qos
│ │ │ │ ├── dump_car
│ │ │ │ ├── dump_flow
│ │ │ │ ├── dump_pkt_car
│ │ │ │ ├── dump_pkt_pq
│ │ │ │ ├── dump_port_shaper
│ │ │ │ ├── dump_queue
│ │ │ │ └── set_queue_adjust
│ │ │ ├── res
│ │ │ │ ├── add_l2mc
│ │ │ │ ├── add_noip
│ │ │ │ ├── add_usr
│ │ │ │ ├── addv4
│ │ │ │ ├── add_v4mc
│ │ │ │ ├── addv6
│ │ │ │ ├── add_v6mc
│ │ │ │ ├── clrbondingstat
│ │ │ │ ├── del_grp
│ │ │ │ ├── del_noip
│ │ │ │ ├── del_usr
│ │ │ │ ├── delv4
│ │ │ │ ├── delv6
│ │ │ │ ├── dump_hook
│ │ │ │ ├── dump_intf
│ │ │ │ ├── dump_link_intf
│ │ │ │ ├── dump_link_pos
│ │ │ │ ├── dump_link_res
│ │ │ │ ├── dump_link_srv
│ │ │ │ ├── dump_link_swap
│ │ │ │ ├── dump_node
│ │ │ │ ├── flushlink
│ │ │ │ ├── getbondingpara
│ │ │ │ ├── getbondingstat
│ │ │ │ ├── getcap
│ │ │ │ ├── get_napt_limit
│ │ │ │ ├── get_wifi_flag
│ │ │ │ ├── hook_add
│ │ │ │ ├── hook_clear
│ │ │ │ ├── hook_del
│ │ │ │ ├── setbondingcar
│ │ │ │ ├── setbondingflow
│ │ │ │ ├── setbondingmode
│ │ │ │ ├── setbondingpara
│ │ │ │ ├── setbondingtnl
│ │ │ │ ├── setcap
│ │ │ │ ├── set_napt_limit
│ │ │ │ └── setswaporder
│ │ │ ├── sip
│ │ │ │ ├── acc_add
│ │ │ │ ├── acc_del
│ │ │ │ ├── cfg_cid
│ │ │ │ ├── cfg_codec
│ │ │ │ ├── cfg_fax_mode
│ │ │ │ ├── cfg_server
│ │ │ │ ├── deinit
│ │ │ │ ├── init
│ │ │ │ ├── query_acc
│ │ │ │ ├── query_fax_mode
│ │ │ │ ├── query_media_state
│ │ │ │ ├── start_rmttrace
│ │ │ │ └── stop_rmttrace
│ │ │ └── voip
│ │ │ ├── kvoip
│ │ │ │ ├── add_conference_user
│ │ │ │ ├── allchancodecstate
│ │ │ │ ├── cfg_2833pt
│ │ │ │ ├── cfg_agc
│ │ │ │ ├── cfg_chan_spfeature
│ │ │ │ ├── cfg_codec
│ │ │ │ ├── cfg_composedtone
│ │ │ │ ├── cfg_dtmf_erase
│ │ │ │ ├── cfg_dtmf_table
│ │ │ │ ├── cfg_dtmftransmode
│ │ │ │ ├── cfg_ec
│ │ │ │ ├── cfg_gain
│ │ │ │ ├── cfg_ipudp
│ │ │ │ ├── cfg_jb
│ │ │ │ ├── cfg_pktdirec
│ │ │ │ ├── cfg_pots_sampling_freq
│ │ │ │ ├── cfg_pt
│ │ │ │ ├── cfg_rfc2198
│ │ │ │ ├── cfg_rtcp
│ │ │ │ ├── cfg_rtp
│ │ │ │ ├── cfg_simpletone
│ │ │ │ ├── cfg_t38_nosignal
│ │ │ │ ├── cfg_td_table
│ │ │ │ ├── cfg_timeslot
│ │ │ │ ├── cfg_tonedetect
│ │ │ │ ├── cfg_tos_precedence
│ │ │ │ ├── chanrxstat
│ │ │ │ ├── chanstat
│ │ │ │ ├── chansubstat
│ │ │ │ ├── chipstat
│ │ │ │ ├── clear_rtp
│ │ │ │ ├── clear_sendmsg
│ │ │ │ ├── closechannel
│ │ │ │ ├── create_conference
│ │ │ │ ├── create_connection
│ │ │ │ ├── deinit
│ │ │ │ ├── deinitial
│ │ │ │ ├── del_conference_user
│ │ │ │ ├── delete_conference
│ │ │ │ ├── destroy_connection
│ │ │ │ ├── ecinfo
│ │ │ │ ├── event_mask
│ │ │ │ ├── generaltone
│ │ │ │ ├── getmailboxinfo
│ │ │ │ ├── init
│ │ │ │ ├── initial
│ │ │ │ ├── kvoip_setcfg
│ │ │ │ ├── load_announcement
│ │ │ │ ├── omnipotent
│ │ │ │ ├── openchannal
│ │ │ │ ├── play_dtmf
│ │ │ │ ├── query_dtmf_erase
│ │ │ │ ├── query_jb
│ │ │ │ ├── query_rtcp
│ │ │ │ ├── query_rtp
│ │ │ │ ├── query_sendmsg
│ │ │ │ ├── query_t38
│ │ │ │ ├── reportevent_test
│ │ │ │ ├── send_fsk
│ │ │ │ ├── showsyserror
│ │ │ │ ├── start_announcement
│ │ │ │ ├── start_cmdtrace
│ │ │ │ ├── start_iptrace
│ │ │ │ ├── start_tdmtrace
│ │ │ │ ├── stop_announcement
│ │ │ │ ├── stop_cmdtrace
│ │ │ │ ├── stop_dtmf
│ │ │ │ ├── stop_fsk
│ │ │ │ ├── stop_iptrace
│ │ │ │ ├── stop_tdmtrace
│ │ │ │ └── version
│ │ │ └── voip
│ │ │ ├── add_conference_user
│ │ │ ├── add_tone_check
│ │ │ ├── cfg_2833playmode
│ │ │ ├── cfg_2833pt
│ │ │ ├── cfg_agc
│ │ │ ├── cfg_codec
│ │ │ ├── cfg_composedtone
│ │ │ ├── cfg_dtmf_erase
│ │ │ ├── cfg_dtmf_table
│ │ │ ├── cfg_dtmftransmode
│ │ │ ├── cfg_ec
│ │ │ ├── cfg_faxmodem_transmode
│ │ │ ├── cfg_gain
│ │ │ ├── cfg_ipudp
│ │ │ ├── cfg_jb
│ │ │ ├── cfg_pktdirec
│ │ │ ├── cfg_plc_ctl
│ │ │ ├── cfg_pots_sampling_freq
│ │ │ ├── cfg_pt
│ │ │ ├── cfg_ptime
│ │ │ ├── cfg_rfc2198
│ │ │ ├── cfg_rtcp
│ │ │ ├── cfg_rtcpctl
│ │ │ ├── cfg_sc
│ │ │ ├── cfg_simpletone
│ │ │ ├── cfg_sn
│ │ │ ├── cfg_t38fax
│ │ │ ├── cfg_t38_nosignal
│ │ │ ├── cfg_t38param
│ │ │ ├── cfg_timeslot
│ │ │ ├── cfg_tonedetect
│ │ │ ├── cfg_tos_dscp
│ │ │ ├── cfg_tos_precedence
│ │ │ ├── clear_rtp
│ │ │ ├── clear_sendmsg
│ │ │ ├── create_conference
│ │ │ ├── create_connection
│ │ │ ├── deinit
│ │ │ ├── del_conference_user
│ │ │ ├── delete_conference
│ │ │ ├── delete_tone_check
│ │ │ ├── destroy_connection
│ │ │ ├── enter_coredump
│ │ │ ├── event_mask
│ │ │ ├── init
│ │ │ ├── kvoip_setcfg
│ │ │ ├── load_announcement
│ │ │ ├── modify_conference_user
│ │ │ ├── omnipotent
│ │ │ ├── play_dtmf
│ │ │ ├── query_coredump_buf
│ │ │ ├── query_dtmf_erase
│ │ │ ├── query_jb
│ │ │ ├── query_rtcp
│ │ │ ├── query_rtp
│ │ │ ├── query_sendmsg
│ │ │ ├── query_t38
│ │ │ ├── reportevent_test
│ │ │ ├── send_fsk
│ │ │ ├── start_announcement
│ │ │ ├── start_composedtone
│ │ │ ├── start_rmttrace
│ │ │ ├── start_t38
│ │ │ ├── start_tone
│ │ │ ├── start_vbd
│ │ │ ├── stop_announcement
│ │ │ ├── stop_dtmf
│ │ │ ├── stop_fsk
│ │ │ ├── stop_rmttrace
│ │ │ ├── stop_t38
│ │ │ ├── stop_tone
│ │ │ ├── stop_vbd
│ │ │ ├── test_talk
│ │ │ ├── tone
│ │ │ │ ├── test_a.pcm
│ │ │ │ └── test_u.pcm
│ │ │ └── voip_setcfg
│ │ ├── basic
│ │ │ ├── cli
│ │ │ │ ├── hi_cli_get_glb
│ │ │ │ └── hi_cli_set_glb
│ │ │ ├── ifm
│ │ │ │ ├── dumphash
│ │ │ │ └── dumplist
│ │ │ ├── khlp
│ │ │ │ └── kdump
│ │ │ ├── klog
│ │ │ │ ├── clearcfg
│ │ │ │ ├── getcfg
│ │ │ │ ├── kdump
│ │ │ │ └── setcfg
│ │ │ └── log
│ │ │ ├── clearcfg
│ │ │ ├── getcfg
│ │ │ └── setcfg
│ │ ├── driver
│ │ │ ├── efuse
│ │ │ │ ├── burn
│ │ │ │ ├── getdata
│ │ │ │ └── setdata
│ │ │ ├── kgpio
│ │ │ │ ├── getbitattr
│ │ │ │ ├── readbit
│ │ │ │ ├── setbitattr
│ │ │ │ └── writebit
│ │ │ ├── kmdio
│ │ │ │ ├── read_exreg
│ │ │ │ ├── read_extern
│ │ │ │ ├── read_inner
│ │ │ │ ├── write_exreg
│ │ │ │ ├── write_extern
│ │ │ │ └── write_inner
│ │ │ ├── kphy
│ │ │ │ ├── mapping_dump
│ │ │ │ ├── mapping_read
│ │ │ │ ├── mapping_write
│ │ │ │ ├── power_down
│ │ │ │ ├── power_down_all
│ │ │ │ ├── power_up
│ │ │ │ ├── power_up_all
│ │ │ │ └── read_inner_status
│ │ │ ├── led
│ │ │ │ ├── test_key
│ │ │ │ └── test_led
│ │ │ ├── slic
│ │ │ │ ├── active
│ │ │ │ ├── deactive
│ │ │ │ ├── deinit
│ │ │ │ ├── get_line_state
│ │ │ │ ├── init
│ │ │ │ ├── init_metering
│ │ │ │ ├── kernel_get_line_state
│ │ │ │ ├── read_spi
│ │ │ │ ├── register_dump
│ │ │ │ ├── reportevent_test
│ │ │ │ ├── send_howl
│ │ │ │ ├── send_ring
│ │ │ │ ├── set_flashhook
│ │ │ │ ├── set_gain
│ │ │ │ ├── set_howl
│ │ │ │ ├── set_impedence
│ │ │ │ ├── set_line
│ │ │ │ ├── set_ring
│ │ │ │ ├── slic_deinit
│ │ │ │ ├── slic_init
│ │ │ │ ├── start_metering
│ │ │ │ ├── stop_howl
│ │ │ │ ├── stop_ring
│ │ │ │ ├── vp_cmd
│ │ │ │ ├── vphal_init
│ │ │ │ └── write_spi
│ │ │ └── tsenser
│ │ │ ├── getattr
│ │ │ ├── read
│ │ │ └── setattr
│ │ ├── sdk
│ │ │ └── sd56xx
│ │ │ ├── level_0
│ │ │ │ ├── flow
│ │ │ │ │ ├── clear_ifc_table_item
│ │ │ │ │ ├── clear_ofc_table_item
│ │ │ │ │ ├── get_udf_attr
│ │ │ │ │ ├── read_fc_key_table_item
│ │ │ │ │ ├── read_fc_table_item
│ │ │ │ │ ├── read_ifc_table_item
│ │ │ │ │ ├── read_ofc_table_item
│ │ │ │ │ ├── read_pa_table_item
│ │ │ │ │ ├── set_udf_attr
│ │ │ │ │ ├── write_fc_key_table_item
│ │ │ │ │ ├── write_fc_table_item
│ │ │ │ │ ├── write_ifc_table_item
│ │ │ │ │ ├── write_ofc_table_item
│ │ │ │ │ └── write_pa_table_item
│ │ │ │ ├── hlp_dump
│ │ │ │ ├── l2
│ │ │ │ │ ├── add_arl_table
│ │ │ │ │ ├── del_arl_table
│ │ │ │ │ ├── get_arl_table
│ │ │ │ │ ├── op_arl_table
│ │ │ │ │ ├── read_arl_table
│ │ │ │ │ ├── read_mvlan_table
│ │ │ │ │ ├── write_arl_table
│ │ │ │ │ └── write_mvlan_table
│ │ │ │ ├── l3
│ │ │ │ │ ├── read_intf_table
│ │ │ │ │ ├── read_ipv4_fib_table
│ │ │ │ │ ├── read_ipv4_mcmt_table
│ │ │ │ │ ├── read_ipv4_otrt_table
│ │ │ │ │ ├── read_ipv6_fib_table
│ │ │ │ │ ├── read_ipv6_mcmt_table
│ │ │ │ │ ├── read_ipv6_otrt_table
│ │ │ │ │ ├── read_nhp_table
│ │ │ │ │ ├── read_tfrt_table
│ │ │ │ │ ├── read_tt_table
│ │ │ │ │ ├── write_intf_table
│ │ │ │ │ ├── write_ipv4_fib_table
│ │ │ │ │ ├── write_ipv4_mcmt_table
│ │ │ │ │ ├── write_ipv4_otrt_table
│ │ │ │ │ ├── write_ipv6_fib_table
│ │ │ │ │ ├── write_ipv6_mcmt_table
│ │ │ │ │ ├── write_ipv6_otrt_table
│ │ │ │ │ ├── write_nhp_table
│ │ │ │ │ ├── write_tfrt_table
│ │ │ │ │ └── write_tt_table
│ │ │ │ ├── napt
│ │ │ │ │ ├── op_inqry_indir_table
│ │ │ │ │ ├── read_indir_table
│ │ │ │ │ └── write_indir_table
│ │ │ │ ├── oam
│ │ │ │ │ ├── clr_lm_sta
│ │ │ │ │ ├── get_3ah_event_attr
│ │ │ │ │ ├── get_3ah_event_data
│ │ │ │ │ ├── get_3ah_loop_attr
│ │ │ │ │ ├── get_lm_sta
│ │ │ │ │ ├── get_lm_test_en
│ │ │ │ │ ├── read_lmcntmap_table_item
│ │ │ │ │ ├── read_mp_table_item
│ │ │ │ │ ├── set_3ah_event_attr
│ │ │ │ │ ├── set_3ah_loop_attr
│ │ │ │ │ ├── set_lm_test_en
│ │ │ │ │ ├── write_lmcntmap_table_item
│ │ │ │ │ └── write_mp_table_item
│ │ │ │ ├── port
│ │ │ │ │ ├── clr_drop_sta
│ │ │ │ │ ├── clr_egressn_sta
│ │ │ │ │ ├── clr_tocpu_sta
│ │ │ │ │ ├── clr_wan_sta
│ │ │ │ │ ├── get_drop_sta
│ │ │ │ │ ├── get_egressn_sta
│ │ │ │ │ ├── get_mrr_attr
│ │ │ │ │ ├── get_pie_map
│ │ │ │ │ ├── get_port_mac_mtu
│ │ │ │ │ ├── get_tocpu_attr
│ │ │ │ │ ├── get_tocpu_sta
│ │ │ │ │ ├── get_up_port
│ │ │ │ │ ├── get_wan_sta
│ │ │ │ │ ├── get_wan_sta_attr
│ │ │ │ │ ├── set_mrr_attr
│ │ │ │ │ ├── set_pie_map
│ │ │ │ │ ├── set_port_mac_mtu
│ │ │ │ │ ├── set_tocpu_attr
│ │ │ │ │ ├── set_up_port
│ │ │ │ │ └── set_wan_sta_attr
│ │ │ │ ├── prbs
│ │ │ │ │ ├── clr_sta
│ │ │ │ │ ├── get_ctrl_attr
│ │ │ │ │ ├── get_format_attr
│ │ │ │ │ ├── get_rx_attr
│ │ │ │ │ ├── get_sta
│ │ │ │ │ ├── get_sync_status
│ │ │ │ │ ├── get_tx_attr
│ │ │ │ │ ├── get_tx_en
│ │ │ │ │ ├── get_tx_pause_en
│ │ │ │ │ ├── set_ctrl_attr
│ │ │ │ │ ├── set_format_attr
│ │ │ │ │ ├── set_rx_attr
│ │ │ │ │ ├── set_tx_attr
│ │ │ │ │ ├── set_tx_en
│ │ │ │ │ └── set_tx_pause_en
│ │ │ │ ├── qos
│ │ │ │ │ ├── add_common_scheduler
│ │ │ │ │ ├── add_queue
│ │ │ │ │ ├── add_special_scheduler
│ │ │ │ │ ├── clr_hsi_sta
│ │ │ │ │ ├── dump_debug
│ │ │ │ │ ├── get_car_attr
│ │ │ │ │ ├── get_hsi_qid_map
│ │ │ │ │ ├── get_hsi_sta
│ │ │ │ │ ├── get_queue_mod
│ │ │ │ │ ├── init_queue
│ │ │ │ │ ├── read_car_templet
│ │ │ │ │ ├── read_car_templet_map
│ │ │ │ │ ├── read_color_cfg
│ │ │ │ │ ├── read_dscp_map_to_8021p
│ │ │ │ │ ├── read_psche_shaper_templet_map_table_item
│ │ │ │ │ ├── read_queue
│ │ │ │ │ ├── read_queue_attr_templet_map_table_item
│ │ │ │ │ ├── read_queue_attr_templet_table_item
│ │ │ │ │ ├── read_queue_cnt
│ │ │ │ │ ├── read_queue_group_attr_table_item
│ │ │ │ │ ├── read_queue_map_table_item
│ │ │ │ │ ├── read_queue_shaper_templet_map_table_item
│ │ │ │ │ ├── read_scheduler
│ │ │ │ │ ├── read_sche_shaper_templet_map_table_item
│ │ │ │ │ ├── read_shaper_templet_table_item
│ │ │ │ │ ├── read_wred_map
│ │ │ │ │ ├── read_wred_templet
│ │ │ │ │ ├── read_wred_templet_map
│ │ │ │ │ ├── remove_queue
│ │ │ │ │ ├── remove_scheduler
│ │ │ │ │ ├── set_car_attr
│ │ │ │ │ ├── set_hsi_qid_map
│ │ │ │ │ ├── set_queue_mod
│ │ │ │ │ ├── write_car_templet
│ │ │ │ │ ├── write_car_templet_map
│ │ │ │ │ ├── write_color_cfg
│ │ │ │ │ ├── write_dscp_map_to_8021p
│ │ │ │ │ ├── write_psche_shaper_templet_map_table_item
│ │ │ │ │ ├── write_queue_attr_templet_map_table_item
│ │ │ │ │ ├── write_queue_attr_templet_table_item
│ │ │ │ │ ├── write_queue_group_attr_table_item
│ │ │ │ │ ├── write_queue_map_table_item
│ │ │ │ │ ├── write_queue_shaper_templet_map_table_item
│ │ │ │ │ ├── write_sche_shaper_templet_map_table_item
│ │ │ │ │ ├── write_shaper_templet_table_item
│ │ │ │ │ ├── write_wred_map
│ │ │ │ │ ├── write_wred_templet
│ │ │ │ │ └── write_wred_templet_map
│ │ │ │ ├── safe
│ │ │ │ │ ├── add_vlanf_table_item
│ │ │ │ │ ├── clear_vlanf_table_item
│ │ │ │ │ ├── read_ipv4_filter_table_item
│ │ │ │ │ ├── read_ipv6_filter_table_item
│ │ │ │ │ ├── read_mac_filter_table_item
│ │ │ │ │ ├── read_vlanf_table_item
│ │ │ │ │ ├── write_ipv4_filter_table_item
│ │ │ │ │ ├── write_ipv6_filter_table_item
│ │ │ │ │ ├── write_mac_filter_table_item
│ │ │ │ │ └── write_vlanf_table_item
│ │ │ │ ├── special_pkt
│ │ │ │ │ ├── clr_sta
│ │ │ │ │ ├── get_act
│ │ │ │ │ ├── get_sta
│ │ │ │ │ ├── get_ude_template
│ │ │ │ │ ├── read_ude_table_item
│ │ │ │ │ ├── set_act
│ │ │ │ │ ├── set_ude_template
│ │ │ │ │ └── write_ude_table_item
│ │ │ │ ├── sta
│ │ │ │ │ ├── clr_drop
│ │ │ │ │ ├── clr_egr
│ │ │ │ │ ├── clr_eps
│ │ │ │ │ ├── clr_eqm
│ │ │ │ │ ├── clr_eqm_cnt
│ │ │ │ │ ├── clr_fam
│ │ │ │ │ ├── clr_ge
│ │ │ │ │ ├── clr_ge_t
│ │ │ │ │ ├── clr_hsi
│ │ │ │ │ ├── clr_ifc
│ │ │ │ │ ├── clr_ifc_cnt
│ │ │ │ │ ├── clr_ifc_statis_table
│ │ │ │ │ ├── clr_ips
│ │ │ │ │ ├── clr_l2
│ │ │ │ │ ├── clr_l3
│ │ │ │ │ ├── clr_l3_mc
│ │ │ │ │ ├── clr_mcc
│ │ │ │ │ ├── clr_memp
│ │ │ │ │ ├── clr_napt
│ │ │ │ │ ├── clr_ofc
│ │ │ │ │ ├── clr_ofc_cnt
│ │ │ │ │ ├── clr_ofc_statis_table
│ │ │ │ │ ├── clr_opp
│ │ │ │ │ ├── clr_pa
│ │ │ │ │ ├── clr_pe
│ │ │ │ │ ├── clr_pfe
│ │ │ │ │ ├── clr_pie
│ │ │ │ │ ├── clr_ptc
│ │ │ │ │ ├── clr_special_pkt
│ │ │ │ │ ├── clr_tocpu
│ │ │ │ │ ├── clr_wan
│ │ │ │ │ ├── get_drop
│ │ │ │ │ ├── get_egr
│ │ │ │ │ ├── get_eps
│ │ │ │ │ ├── get_eqm
│ │ │ │ │ ├── get_eqm_cnt
│ │ │ │ │ ├── get_fam
│ │ │ │ │ ├── get_ge
│ │ │ │ │ ├── get_ge_t
│ │ │ │ │ ├── get_hsi
│ │ │ │ │ ├── get_ifc
│ │ │ │ │ ├── get_ifc_cnt
│ │ │ │ │ ├── get_ifc_statis_table
│ │ │ │ │ ├── get_ips
│ │ │ │ │ ├── get_l2
│ │ │ │ │ ├── get_l3
│ │ │ │ │ ├── get_l3_mc
│ │ │ │ │ ├── get_mcc
│ │ │ │ │ ├── get_memp
│ │ │ │ │ ├── get_napt
│ │ │ │ │ ├── get_ofc
│ │ │ │ │ ├── get_ofc_cnt
│ │ │ │ │ ├── get_ofc_statis_table
│ │ │ │ │ ├── get_opp
│ │ │ │ │ ├── get_pa
│ │ │ │ │ ├── get_pe
│ │ │ │ │ ├── get_pie
│ │ │ │ │ ├── get_ptc
│ │ │ │ │ ├── get_queue
│ │ │ │ │ ├── get_special_pkt
│ │ │ │ │ ├── get_tocpu
│ │ │ │ │ └── get_wan
│ │ │ │ ├── table
│ │ │ │ │ ├── clr_arl
│ │ │ │ │ ├── clr_fib
│ │ │ │ │ ├── clr_ifc
│ │ │ │ │ ├── clr_l3intf
│ │ │ │ │ ├── clr_mcmt
│ │ │ │ │ ├── clr_nhp
│ │ │ │ │ ├── clr_ofc
│ │ │ │ │ ├── clr_otrt
│ │ │ │ │ ├── clr_queue
│ │ │ │ │ ├── clr_tfrt
│ │ │ │ │ ├── clr_tt
│ │ │ │ │ ├── get_arl
│ │ │ │ │ ├── get_car_templet
│ │ │ │ │ ├── get_car_templet_map
│ │ │ │ │ ├── get_dscp_map_to_8021p
│ │ │ │ │ ├── get_egr_act
│ │ │ │ │ ├── get_fib
│ │ │ │ │ ├── get_ifc
│ │ │ │ │ ├── get_igr_act
│ │ │ │ │ ├── get_igr_color_cfg
│ │ │ │ │ ├── get_ip_filter
│ │ │ │ │ ├── get_l3intf
│ │ │ │ │ ├── get_mac_filter
│ │ │ │ │ ├── get_mcmt
│ │ │ │ │ ├── get_mvlan
│ │ │ │ │ ├── get_nhp
│ │ │ │ │ ├── get_ofc
│ │ │ │ │ ├── get_otrt
│ │ │ │ │ ├── get_port_default_tag
│ │ │ │ │ ├── get_port_isolation
│ │ │ │ │ ├── get_psche_shaper_templet_map
│ │ │ │ │ ├── get_queue_attr_templet
│ │ │ │ │ ├── get_queue_attr_templet_map
│ │ │ │ │ ├── get_queue_connect
│ │ │ │ │ ├── get_queue_group_attr
│ │ │ │ │ ├── get_queue_map
│ │ │ │ │ ├── get_queue_shaper_templet_map
│ │ │ │ │ ├── get_queue_wred_templet_map
│ │ │ │ │ ├── get_scheduler
│ │ │ │ │ ├── get_scheduler_input
│ │ │ │ │ ├── get_sche_shaper_templet_map
│ │ │ │ │ ├── get_shaper_templet
│ │ │ │ │ ├── get_special_pkt_act
│ │ │ │ │ ├── get_tag
│ │ │ │ │ ├── get_tfrt
│ │ │ │ │ ├── get_tocpu_attr
│ │ │ │ │ ├── get_tt
│ │ │ │ │ ├── get_ude_cmd
│ │ │ │ │ ├── get_ude_template
│ │ │ │ │ ├── get_udf
│ │ │ │ │ ├── get_vlanf
│ │ │ │ │ ├── get_wan_sta_attr
│ │ │ │ │ ├── get_wred_map
│ │ │ │ │ └── get_wred_templet
│ │ │ │ └── tag
│ │ │ │ ├── read_act_table
│ │ │ │ └── write_act_table
│ │ │ ├── level_1
│ │ │ │ ├── flow
│ │ │ │ │ ├── clr_ifc_sta
│ │ │ │ │ ├── clr_ifc_stat
│ │ │ │ │ ├── clr_ofc_sta
│ │ │ │ │ ├── delete_eflow
│ │ │ │ │ ├── delete_iflow
│ │ │ │ │ ├── dump_eflow
│ │ │ │ │ ├── dump_eflow_all
│ │ │ │ │ ├── dump_iflow
│ │ │ │ │ ├── dump_iflow_all
│ │ │ │ │ ├── dump_srvc_rang
│ │ │ │ │ ├── get_eflow
│ │ │ │ │ ├── get_ifc_sta
│ │ │ │ │ ├── get_ifc_stat
│ │ │ │ │ ├── get_iflow
│ │ │ │ │ ├── get_ofc_sta
│ │ │ │ │ ├── set_eflow
│ │ │ │ │ ├── set_eflow_sta
│ │ │ │ │ ├── set_iflow
│ │ │ │ │ ├── set_iflow_sta
│ │ │ │ │ └── set_srvc_rang
│ │ │ │ ├── glb
│ │ │ │ │ ├── dumpmapping
│ │ │ │ │ ├── get_attr
│ │ │ │ │ ├── get_mapping
│ │ │ │ │ ├── set_attr
│ │ │ │ │ └── set_mapping
│ │ │ │ ├── l2
│ │ │ │ │ ├── add_l2mac
│ │ │ │ │ ├── del_l2mac
│ │ │ │ │ └── get_l2mac
│ │ │ │ ├── l3
│ │ │ │ │ └── get_l3if
│ │ │ │ ├── mac
│ │ │ │ │ ├── get_attr
│ │ │ │ │ └── set_attr
│ │ │ │ ├── mdio
│ │ │ │ │ ├── read
│ │ │ │ │ └── write
│ │ │ │ ├── port
│ │ │ │ │ ├── add_vlan
│ │ │ │ │ ├── del_vlan
│ │ │ │ │ ├── get_tag_attr
│ │ │ │ │ └── set_tag_attr
│ │ │ │ ├── qos
│ │ │ │ │ ├── add_car
│ │ │ │ │ ├── add_car_template
│ │ │ │ │ ├── add_flow
│ │ │ │ │ ├── del_all_car
│ │ │ │ │ ├── del_car
│ │ │ │ │ ├── del_flow
│ │ │ │ │ ├── dump_car_template
│ │ │ │ │ ├── dump_loop_queue
│ │ │ │ │ ├── dump_shaper_template
│ │ │ │ │ ├── get_car
│ │ │ │ │ ├── get_car_template
│ │ │ │ │ ├── get_egr_shaper
│ │ │ │ │ ├── get_flow
│ │ │ │ │ ├── get_igr_car
│ │ │ │ │ ├── get_pkt_pq
│ │ │ │ │ ├── get_queue
│ │ │ │ │ ├── get_queue_cnt
│ │ │ │ │ ├── get_record
│ │ │ │ │ ├── get_wred
│ │ │ │ │ ├── set_egr_shaper
│ │ │ │ │ ├── set_igr_car
│ │ │ │ │ ├── set_pkt_pq
│ │ │ │ │ ├── set_queue
│ │ │ │ │ └── set_wred
│ │ │ │ └── security
│ │ │ │ ├── get_nni_vlan_auth
│ │ │ │ ├── get_uni_vlan_auth
│ │ │ │ ├── set_nni_vlan_auth
│ │ │ │ └── set_uni_vlan_auth
│ │ │ └── level_2
│ │ │ ├── cfg_dump_chan
│ │ │ ├── cfg_get_acc_chan
│ │ │ ├── cfg_get_cap_chan
│ │ │ ├── cfg_get_port_chan
│ │ │ ├── cfg_set_acc_chan
│ │ │ ├── cfg_set_cap_chan
│ │ │ ├── cfg_set_port_chan
│ │ │ ├── dfw_dump
│ │ │ ├── if_add
│ │ │ ├── if_del
│ │ │ ├── if_disable
│ │ │ ├── if_dump
│ │ │ ├── if_enable
│ │ │ ├── if_get_fwdmode
│ │ │ ├── if_get_ip
│ │ │ ├── if_get_mac
│ │ │ ├── if_get_mcmac
│ │ │ ├── if_get_mtu
│ │ │ ├── if_get_port
│ │ │ ├── if_get_ppp
│ │ │ ├── if_get_pri
│ │ │ ├── if_get_pvc
│ │ │ ├── if_get_resid
│ │ │ ├── if_get_tnl
│ │ │ ├── if_get_vlan
│ │ │ ├── if_get_vlanmode
│ │ │ ├── if_get_wanid
│ │ │ ├── if_set_fwdmode
│ │ │ ├── if_set_ip
│ │ │ ├── if_set_mac
│ │ │ ├── if_set_mcmac
│ │ │ ├── if_set_mtu
│ │ │ ├── if_set_port
│ │ │ ├── if_set_ppp
│ │ │ ├── if_set_pri
│ │ │ ├── if_set_pvc
│ │ │ ├── if_set_resid
│ │ │ ├── if_set_tnl
│ │ │ ├── if_set_vlan
│ │ │ ├── if_set_vlanmode
│ │ │ ├── if_set_wanid
│ │ │ ├── ipv4_add
│ │ │ ├── ipv4_del
│ │ │ ├── ipv4_stat
│ │ │ ├── ipv6_add
│ │ │ ├── ipv6_del
│ │ │ ├── ipv6_stat
│ │ │ ├── l3if_dump
│ │ │ ├── mc_add_grp
│ │ │ ├── mc_add_usr
│ │ │ ├── mc_del_grp
│ │ │ ├── mc_del_usr
│ │ │ ├── mc_dump
│ │ │ ├── mc_get_matchmode
│ │ │ ├── mc_get_transmode
│ │ │ ├── mc_set_matchmode
│ │ │ ├── mc_set_transmode
│ │ │ ├── notip_add
│ │ │ ├── notip_del
│ │ │ ├── notip_stat
│ │ │ ├── pie_car_disable
│ │ │ └── pie_car_enable
│ │ └── test
│ │ ├── bonding
│ │ │ ├── get_param
│ │ │ ├── set_expires
│ │ │ ├── set_param
│ │ │ └── start
│ │ ├── eth
│ │ │ ├── datadump
│ │ │ ├── drvdump
│ │ │ ├── glbdump
│ │ │ ├── intswitch
│ │ │ ├── netmapdump
│ │ │ ├── regdump
│ │ │ └── specialsend
│ │ ├── kmem
│ │ │ ├── dump_stack
│ │ │ ├── mr
│ │ │ ├── mw
│ │ │ ├── phymr
│ │ │ └── phymw
│ │ ├── knetlink
│ │ │ └── kdump
│ │ ├── led
│ │ │ └── test_key
│ │ ├── port
│ │ │ ├── display_auto_neg_cap
│ │ │ ├── display_ed
│ │ │ ├── display_ed_status
│ │ │ ├── display_eee_attr
│ │ │ ├── display_eee_cap
│ │ │ ├── display_eee_cap_adv
│ │ │ ├── display_eee_cap_remote
│ │ │ ├── display_eth_phy
│ │ │ ├── display_isolate_attr
│ │ │ ├── display_led_attr
│ │ │ ├── display_loopback
│ │ │ ├── display_lpi_attr
│ │ │ ├── display_max_frm_len
│ │ │ ├── display_mdimode
│ │ │ ├── display_msmode
│ │ │ ├── display_phy_clk
│ │ │ ├── display_porten
│ │ │ ├── display_status
│ │ │ ├── display_workmode
│ │ │ ├── get_inner_mac_status
│ │ │ ├── patch_phy
│ │ │ ├── phy_reset
│ │ │ ├── port_reset
│ │ │ ├── set_auto_neg_cap
│ │ │ ├── set_ed
│ │ │ ├── set_eee_attr
│ │ │ ├── set_eee_cap_adv
│ │ │ ├── set_enable
│ │ │ ├── set_inner_mac_status
│ │ │ ├── set_isolate_attr
│ │ │ ├── set_led_attr
│ │ │ ├── set_loopback
│ │ │ ├── set_lpi_attr
│ │ │ ├── set_max_frm_len
│ │ │ ├── set_mdimode
│ │ │ ├── set_msmode
│ │ │ ├── set_phy_clk
│ │ │ └── set_workmode
│ │ ├── power
│ │ │ ├── get_avs
│ │ │ ├── get_clk_ahb
│ │ │ ├── get_clk_axi_acp
│ │ │ ├── get_clk_axi_peri
│ │ │ ├── get_clk_dp
│ │ │ ├── get_clk_pfe
│ │ │ ├── get_cpu_status
│ │ │ ├── get_dsl_status
│ │ │ ├── get_ec_freq
│ │ │ ├── get_ec_status
│ │ │ ├── get_hw_status
│ │ │ ├── get_ipsec_status
│ │ │ ├── get_led_status
│ │ │ ├── get_lsw_auto_freq
│ │ │ ├── get_mii_status
│ │ │ ├── get_nand_status
│ │ │ ├── get_pcie_lx
│ │ │ ├── get_pcie_status
│ │ │ ├── get_ram_retention
│ │ │ ├── get_rgmii_status
│ │ │ ├── get_sci_status
│ │ │ ├── get_sfc_status
│ │ │ ├── get_spi_status
│ │ │ ├── get_tsenser_status
│ │ │ ├── get_tsenser_temp
│ │ │ ├── get_usb_status
│ │ │ ├── get_voip_status
│ │ │ ├── set_avs
│ │ │ ├── set_clk_ahb
│ │ │ ├── set_clk_axi_acp
│ │ │ ├── set_clk_axi_peri
│ │ │ ├── set_clk_dp
│ │ │ ├── set_clk_pfe
│ │ │ ├── set_cpu1
│ │ │ ├── set_cpu_freq
│ │ │ ├── set_dsl_status
│ │ │ ├── set_ec_freq
│ │ │ ├── set_ec_status
│ │ │ ├── set_hw_status
│ │ │ ├── set_ipsec_status
│ │ │ ├── set_led_status
│ │ │ ├── set_lsw_auto_freq
│ │ │ ├── set_mii_status
│ │ │ ├── set_nand_status
│ │ │ ├── set_pcie_lx
│ │ │ ├── set_pcie_status
│ │ │ ├── set_ram_retention
│ │ │ ├── set_rgmii_status
│ │ │ ├── set_sci_status
│ │ │ ├── set_sfc_status
│ │ │ ├── set_spi_status
│ │ │ ├── set_tsenser_status
│ │ │ ├── set_usb_status
│ │ │ └── set_voip_status
│ │ └── sci
│ │ ├── close
│ │ ├── conf_detect
│ │ ├── config_all
│ │ ├── conf_vcc
│ │ ├── deactive
│ │ ├── get_atr
│ │ ├── get_param
│ │ ├── get_pps_data
│ │ ├── get_status
│ │ ├── open
│ │ ├── print_reg
│ │ ├── receive_data
│ │ ├── reset
│ │ ├── send_data
│ │ ├── send_pps_data
│ │ ├── set_baud
│ │ ├── set_blocktimeout
│ │ ├── set_chartimeout
│ │ ├── set_chguard
│ │ ├── set_clk_mode
│ │ ├── set_txretry
│ │ └── switch_protocol
│ ├── example
│ └── test
│ ├── bonding
│ │ ├── get_param
│ │ ├── set_expires
│ │ ├── set_param
│ │ └── start
│ └── eth
│ └── specialsend
├── html
│ └── html
│ ├── checkindex.html
│ ├── css
│ │ ├── apps.css
│ │ ├── dropdowns.css
│ │ ├── main.css
│ │ ├── sui2.css
│ │ ├── sui.css
│ │ └── thickbox.css
│ ├── data
│ │ ├── changestatus.json
│ │ ├── enc.json
│ │ ├── heartbeat.json
│ │ ├── importstatus.json
│ │ ├── language.json
│ │ ├── language.lua
│ │ ├── localnetwork.json
│ │ ├── logindelay.json
│ │ ├── login.json
│ │ ├── login.lua
│ │ ├── loginok.json
│ │ ├── loginother.json
│ │ ├── logoutstatus.json
│ │ ├── network.json
│ │ ├── network.lua
│ │ ├── passvalid.json
│ │ ├── passwd.lua
│ │ ├── submitres.json
│ │ └── token.json
│ ├── html
│ │ ├── config
│ │ │ ├── config.html
│ │ │ └── localnetwork.html
│ │ ├── status
│ │ │ └── status.html
│ │ └── system
│ │ ├── backup.html
│ │ ├── copyright.html
│ │ ├── freset.html
│ │ ├── fresetinfo.html
│ │ ├── login.html
│ │ ├── modinfo.html
│ │ ├── passwderr.html
│ │ ├── passwd.html
│ │ ├── passwdinfo.html
│ │ ├── reboot.html
│ │ ├── rebootinfo.html
│ │ ├── system.html
│ │ ├── update.html
│ │ ├── upgerr.html
│ │ ├── upg.html
│ │ ├── upginfo.html
│ │ ├── uploaderr.html
│ │ └── uploadinfo.html
│ ├── img
│ │ ├── icons
│ │ │ ├── arrow_down.png
│ │ │ ├── console-login.png
│ │ │ ├── dialog_close.png
│ │ │ ├── error_small.png
│ │ │ ├── favicon.ico
│ │ │ ├── icon-error-big.png
│ │ │ ├── icon_logout.png
│ │ │ ├── important.png
│ │ │ ├── info-icon.png
│ │ │ ├── pulldown-icon.png
│ │ │ └── warning_big.png
│ │ ├── Java_Powered_clr_hori.png
│ │ ├── logo.png
│ │ └── processing.gif
│ ├── index.html
│ ├── js
│ │ ├── backup.js
│ │ ├── base64.js
│ │ ├── common.js
│ │ ├── disable.js
│ │ ├── Dropdowns.js
│ │ ├── external.libs.js
│ │ ├── freset.js
│ │ ├── heartbeat.js
│ │ ├── jquery-1.7.2.min.js
│ │ ├── jquery.form.min.js
│ │ ├── jquery.i18n.js
│ │ ├── jsbn.js
│ │ ├── localnetwork.js
│ │ ├── login.js
│ │ ├── passwd.js
│ │ ├── prng4.js
│ │ ├── reboot.js
│ │ ├── rng.js
│ │ ├── rsa.js
│ │ ├── sha1.js
│ │ ├── sjcl.js
│ │ ├── thickbox.js
│ │ ├── token.js
│ │ ├── VarType.js
│ │ └── XHTML1.js
│ └── lang
│ ├── de.js
│ └── en.js
├── init -> ./bin/busybox
├── lib
│ ├── ecryptfs
│ │ └── libecryptfs_key_mod_openssl.so
│ ├── extra
│ │ ├── hi_kbasic.ko
│ │ ├── hi_kcfe_fw_deliver.ko
│ │ ├── hi_kcfe_lrn_br.ko
│ │ ├── hi_kcfe_lrn_diagnose.ko
│ │ ├── hi_kcfe_lrn_mc.ko
│ │ ├── hi_kcfe_lrn_napt.ko
│ │ ├── hi_kcfe_lrn_rt.ko
│ │ ├── hi_kcfe_lrn_tnl.ko
│ │ ├── hi_kcfe_res.ko
│ │ ├── hi_kcfe_srv_ifusb.ko
│ │ ├── hi_kcfe_srv_ifwifi_bcm43217.ko
│ │ ├── hi_kcfe_srv_ifwifi_qualcomma9880.ko
│ │ ├── hi_kcfe_srv_ifwifi_ralink3593.ko
│ │ ├── hi_kcfe_srv_ifwifi_rt5392.ko
│ │ ├── hi_kcfe_srv_mark.ko
│ │ ├── hi_kcfe_srv_qos.ko
│ │ ├── hi_kcfe_sw_bonding.ko
│ │ ├── hi_kcfe_sw_mc.ko
│ │ ├── hi_kcfe_sw_normal.ko
│ │ ├── hi_kdying_gasp.ko
│ │ ├── hi_kefuse.ko
│ │ ├── hi_kenv.ko
│ │ ├── hi_keth_chip.ko
│ │ ├── hi_keth.ko
│ │ ├── hi_kgpio.ko
│ │ ├── hi_khw.ko
│ │ ├── hi_kled.ko
│ │ ├── hi_kmdio.ko
│ │ ├── hi_kmisc.ko
│ │ ├── hi_koam.ko
│ │ ├── hi_kphy.ko
│ │ ├── hi_kphy_mng_stub.ko
│ │ ├── hi_kport.ko
│ │ ├── hi_kpower.ko
│ │ ├── hi_kslic.ko
│ │ ├── hi_kspi.ko
│ │ ├── hi_ktest.ko
│ │ ├── hi_kvoip.ko
│ │ ├── hi_sdk_l0_dump.ko
│ │ ├── hi_sdk_l0.ko
│ │ ├── hi_sdk_l1.ko
│ │ ├── hi_sdk_l2.ko
│ │ ├── hisihwfirewall.ko
│ │ ├── hisi_spi2tty.ko
│ │ ├── ipcdrv.ko
│ │ ├── rtl8192cd.ko
│ │ └── tri_ctl.ko
│ ├── firmware
│ │ ├── mp_rtl8761a_config
│ │ └── mp_rtl8761a_fw
│ ├── kernel
│ │ ├── arch
│ │ │ └── arm
│ │ │ └── mach-hsan
│ │ │ └── hi_serial_uart1.ko
│ │ ├── drivers
│ │ │ ├── bluetooth
│ │ │ │ └── rtk_btusb.ko
│ │ │ ├── char
│ │ │ │ ├── eq3_char_loop.ko
│ │ │ │ ├── mxs_raw_auart.ko
│ │ │ │ └── tpm
│ │ │ │ ├── hw_gpio_i2c.ko
│ │ │ │ └── tpm_gpio_i2c_stm_st33.ko
│ │ │ ├── scsi
│ │ │ │ └── scsi_wait_scan.ko
│ │ │ └── usb
│ │ │ ├── class
│ │ │ │ └── cdc-acm.ko
│ │ │ ├── serial
│ │ │ │ ├── cp210x.ko
│ │ │ │ ├── ftdi_sio.ko
│ │ │ │ ├── option.ko
│ │ │ │ ├── pl2303.ko
│ │ │ │ └── usb_wwan.ko
│ │ │ └── storage
│ │ │ └── usb-storage.ko
│ │ └── net
│ │ └── softqos
│ │ └── hi_ksoft_qos.ko
│ ├── ld-uClibc-0.9.32.1-git.so
│ ├── ld-uClibc.so.0 -> ld-uClibc-0.9.32.1-git.so
│ ├── libatapi.so
│ ├── libatproxyapi.so
│ ├── libbhalapi.so
│ ├── libcfmapi.so
│ ├── libcfma.so
│ ├── libcjson.so
│ ├── libcrypt-0.9.32.1-git.so
│ ├── libcrypto_openssl.so -> libcrypto.so.1.0.0
│ ├── libcrypto.so.1.0.0
│ ├── libcrypt.so.0 -> libcrypt-0.9.32.1-git.so
│ ├── libc.so.0 -> libuClibc-0.9.32.1-git.so
│ ├── libdbus-1.so.3
│ ├── libdhcpsstack.so
│ ├── libdl-0.9.32.1-git.so
│ ├── libdl.so.0 -> libdl-0.9.32.1-git.so
│ ├── libdongleapi.so
│ ├── libecryptfs.so.1
│ ├── libexpat.so.1
│ ├── libflashapi.so
│ ├── libgcc_s.so.1
│ ├── libglib-2.0.so.0
│ ├── libgplutil.so
│ ├── libhistory.so.5 -> libhistory.so.5.2
│ ├── libhistory.so.5.2
│ ├── libhttpapi.so
│ ├── libiconv.so.2
│ ├── libintl.so
│ ├── libkeyutils.so.1
│ ├── liblgplutil.so
│ ├── liblogincontrolapi.so
│ ├── liblua.so
│ ├── libm-0.9.32.1-git.so
│ ├── libmini_upnp.so
│ ├── libmsgapi.so
│ ├── libm.so.0 -> libm-0.9.32.1-git.so
│ ├── libnsl-0.9.32.1-git.so
│ ├── libnsl.so.0 -> libnsl-0.9.32.1-git.so
│ ├── libnspr4.so
│ ├── libnss3.so
│ ├── libnssutil3.so
│ ├── libntfs-3g.so.85
│ ├── libpcre.so.1 -> libpcre.so.1.2.6
│ ├── libpcre.so.1.2.6
│ ├── libplc4.so
│ ├── libplds4.so
│ ├── libpthread-0.9.32.1-git.so
│ ├── libpthread.so.0 -> libpthread-0.9.32.1-git.so
│ ├── libreadline.so.5 -> libreadline.so.5.2
│ ├── libreadline.so.5.2
│ ├── libresolv-0.9.32.1-git.so
│ ├── libresolv.so.0 -> libresolv-0.9.32.1-git.so
│ ├── librestcore.so
│ ├── librt-0.9.32.1-git.so
│ ├── librt.so.0 -> librt-0.9.32.1-git.so
│ ├── libsecapi.so
│ ├── libsmime3.so
│ ├── libsmmsdk.so
│ ├── libsqlite.so
│ ├── libssl3.so
│ ├── libssl_openssl.so -> libssl.so.1.0.0
│ ├── libssl.so.1.0.0
│ ├── libstdc++.so -> libstdc++.so.6.0.13
│ ├── libstdc++.so.6 -> libstdc++.so.6.0.13
│ ├── libstdc++.so.6.0.13
│ ├── libstoragedeviceapi.so
│ ├── libthread_db-0.9.32.1-git.so
│ ├── libthread_db.so.1 -> libthread_db-0.9.32.1-git.so
│ ├── libtpmapi.so
│ ├── libtspi.so.1
│ ├── libuClibc-0.9.32.1-git.so
│ ├── libupnpcommon.so
│ ├── libusb-1.0.so -> libusb-1.0.so.0.1.0
│ ├── libusb-1.0.so.0 -> libusb-1.0.so.0.1.0
│ ├── libusb-1.0.so.0.1.0
│ ├── libutil-0.9.32.1-git.so
│ ├── libutil.so.0 -> libutil-0.9.32.1-git.so
│ ├── libvdb.so
│ ├── libxmlapi.so
│ ├── libz.so
│ └── libz.so.1 -> libz.so
├── lib64 -> lib
├── mnt
├── opt
├── proc
├── sbin
│ ├── arp -> ../bin/busybox
│ ├── halt -> ../bin/busybox
│ ├── ifconfig -> ../bin/busybox
│ ├── init -> ../bin/busybox
│ ├── insmod -> ../bin/busybox
│ ├── makedevs -> ../bin/busybox
│ ├── mount.ecryptfs
│ ├── poweroff -> ../bin/busybox
│ ├── reboot -> ../bin/busybox
│ ├── rmmod -> ../bin/busybox
│ ├── route -> ../bin/busybox
│ ├── setconsole -> ../bin/busybox
│ ├── smuxctl -> ../bin/busybox
│ ├── start-stop-daemon -> ../bin/busybox
│ ├── syslogd -> ../bin/busybox
│ ├── tcsd
│ └── vconfig -> ../bin/busybox
├── sys
├── tmp
├── uImage
├── usr
│ ├── bin
│ │ ├── [ -> ../../bin/busybox
│ │ ├── [[ -> ../../bin/busybox
│ │ ├── awk -> ../../bin/busybox
│ │ ├── crontab -> ../../bin/busybox
│ │ ├── cut -> ../../bin/busybox
│ │ ├── diff -> ../../bin/busybox
│ │ ├── dnsdiag -> ../../bin/busybox
│ │ ├── find -> ../../bin/busybox
│ │ ├── ftpget -> ../../bin/busybox
│ │ ├── ftpput -> ../../bin/busybox
│ │ ├── killall -> ../../bin/busybox
│ │ ├── mcast -> ../../bin/busybox
│ │ ├── renice -> ../../bin/busybox
│ │ ├── taskset -> ../../bin/busybox
│ │ ├── test -> ../../bin/busybox
│ │ ├── top -> ../../bin/busybox
│ │ ├── traceroute -> ../../bin/busybox
│ │ └── wget -> ../../bin/busybox
│ ├── lib
│ ├── lib64 -> lib
│ ├── sbin
│ │ ├── crond -> ../../bin/busybox
│ │ └── rtlbtmp
│ └── share
│ └── udhcpc
└── var
165 directories, 1615 files
A quick look at /sbin/init shows a few things:
- It's BusyBox!
- libc:
/lib/ld-uClibc.so.0 - GCC: (crosstool-NG 1.13.2 - hsan-5610) 4.4.6
How to get a somewhat usable system:
mount -t jffs2 /dev/mtdblock18 /opt # disable HomeMatic stuff
mv /opt/hm /opt/hm.nope
mount -t tmpfs tmp /etc/hm/ # and its backup
sh /etc/profile & sleep 20 # initialize everything (esp. ethernet)
kill -9 -1 # then stop all the weird services
Once Ethernet is up, you can kill all those services with kill -9 -1.
Networking is set up in such a way that the traffic goes through nas1.
You may then pivot to a system installed on USB (Debian jessie for armel, and maybe newer releases, should work):
mount /dev/sda1 /mnt; cd /mnt
LD_LIBRARY_PATH=$PWD/lib/arm-linux-gnueabi lib/ld-linux.so.3 sbin/pivot_root . old
exec /bin/bash
mount -a # or:
mount -t proc proc proc
mount -t sysfs sys sys
mount -t devtmpfs dev dev
#vi /etc/inittab # set up a shell on ttyAMA1
exec init # sysvcore instead of systemd recommended, for ease of debugging
The devpts pseudo-filesystem is not enabled in the kernel, just the older
UNIX 98 pseudo-TTY interface.
The shortest path towards mounting a USB stick:
/etc/insmod_all.sh
mount -t ext3 /dev/sda1 /mnt
mount --bind /mnt/busybox /bin/busybox
echo; for x in $(busybox seq 0 4 0x10c); do busybox devmem $((0x14880000 + x)); done
(Note that this needs a custom build of busybox, because the preinstalled
busybox doesn't have seq or devmem). Annotated result (after kernel boot):
0x00000000 0x8202324C 0x10000000 0x8101928C SC_SYSSTAT ECSPLL_CTRL[01] ETHPLL_CTRL0
0x10000000 0x00000000 0x00000000 0xFFFFFFFF ETHPLL_CTRL1 SC_PER{EN,DIS,CLKST}0
0x00000000 0x00000000 0xFFFFFFFF 0x2FCFCFFF SC_PER{EN,DIS,CLKST}1 SC_RST_CTRL0
0xFFFFFFFF 0x0000003C 0x00000000 0x00000080 SC_RST_CTRL[12] CPU_CFG HW_CFG
0x00000001 0x00000043 0x0000401F 0x00000000 SC_PERCTRL[012] reserved
0x00000006 0x0100748B 0x0000010A 0x00000500 SC_PERCTRL[3456]
0x00000000 0x12345610 0x55555555 0xAA55A5A5 SC_PERCTRL[78] RAM_CTRL_BUS WDG_INIT_CFG
0x00000000 0x8101E488 0x11000000 0x00000000 OSC_CFG reserved
0x00000000 0x00000000 0x00000000 0x00000000
0x01702071 0x00000000 0x00000001 0x00000000 CFG_STAT0 DYING_GASP_{PRE_INT,INT_MASK,INT_INSERT}
0x00000000 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x56102100 0xFFFF0000 0x00000000 0x00000000 SC_CHIP_ID CRG_REV0
Something that stands out compared to a dump of the CRG registers taken in
bootrom context is that all bits of SC_PERCLKST0/1 and SC_RST_CTRL1 are
set. In other words, all peripheral clocks are active and most resets are
unasserted (letting the corresponding peripherals run).
echo; for x in $(busybox seq 0 4 0x3fc); do busybox devmem $((0x10a70000 + x)); done
Before init
0x00000000 0x00000000 0x000FFFFF 0x00000000 [0x000]
0x0000FFFF 0x00000001 0x00000000 0x00000000 [0x010]
0x00000000 0x00000000 0x00000000 0x00000000 [0x020]
0x00000000 0x00000000 0x00000000 0x00000000 [0x030]
0x00000000 0x00000000 0x00000000 0x00000000 [0x040]
0x00000000 0x00000000 0x00000000 0x00000000 [0x050]
0x00000000 0x00000000 0x00000000 0x00000000 [0x060]
0x0000007D 0x00000000 0x00000000 0x00000000 [0x070]
0x00010001 0x00010001 0x00010001 0x00010001 [0x080]
0x00000000 0x00000000 0x00000000 0x00000000 [0x090]
0x00000000 0x00000000 0x00000000 0x00000000 [0x0a0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x0b0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x0c0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x0d0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x0e0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x0f0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x100]
0x00000000 0x00000000 0x00000000 0x00000000 [0x110]
0x00000000 0x00000000 0x00000000 0x00000000 [0x120]
0x00000000 0x00000000 0x00000000 0x00000000 [0x130]
0x00000000 0x00000000 0x00000000 0x00000000 [0x140]
0x00000000 0x00000000 0x00000000 0x00000000 [0x150]
0x00000000 0x00000000 0x00000000 0x00000000 [0x160]
0x00000000 0x00000000 0x00000000 0x00000000 [0x170]
0x000812FF 0x00010001 0x00010001 0x00010001 [0x180] RX_FLAGS
0x00010001 0x00000000 0x00000000 0x00000077 [0x190]
0x00000000 0x00000000 0x00000000 0x00000000 [0x1a0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x1b0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x1c0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x1d0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x1e0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x1f0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x200]
0x00000000 0x00000000 0x00000000 0x00000000 [0x210]
0x00000000 0x00000000 0x00000000 0x00000000 [0x220]
0x00000000 0x00000000 0x00000000 0x00000000 [0x230]
0x00100037 0x00000000 0x00000000 0x00000000 [0x240]
0x00000000 0x00000000 0x00000000 0x00000000 [0x250]
0x00000000 0x00000000 0x00000000 0x00000000 [0x260]
0x00000000 0x00000000 0x00000000 0x00000000 [0x270]
0x00000000 0x00000000 0x00000000 0x00000000 [0x280]
0x00000000 0x00000000 0x00000000 0x00000000 [0x290]
0x00000000 0x00000000 0x00000000 0x00000000 [0x2a0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x2b0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x2c0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x2d0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x2e0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x2f0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x300]
0x00000000 0x00000000 0x00000000 0x00000000 [0x310]
0x00000000 0x00000000 0x00000000 0x00000000 [0x320]
0x00000000 0x01209209 0x00000000 0x00000000 [0x330]
0x00000000 0x00000000 0x00000000 0x00000000 [0x340]
0x00000000 0x00000000 0x00000000 0x00000000 [0x350]
0x00000000 0x00000000 0x00000000 0x00000000 [0x360]
0x00000000 0x00000000 0x00000000 0x00000000 [0x370]
0x00000000 0x00000000 0x00000000 0x00000000 [0x380]
0x00000000 0x00000000 0x00000000 0x00000000 [0x390]
0x00000000 0x00000000 0x00000000 0x00000000 [0x3a0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x3b0]
0x00000001 0x00000000 0x00000000 0x00000000 [0x3c0]
0x00000000 0xFF000000 0xFF000000 0x00000000 [0x3d0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x3e0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x3f0]
After init
0x00000000 0x00000200 0x000FFFFF 0x00000000 [0x000]
0x0000FF00 0x00000001 0x00000000 0x00000000 [0x010]
0x00000000 0x00000000 0x00000000 0x00000001 [0x020]
0x00000001 0x00000001 0x00000001 0x00000001 [0x030]
0x00000001 0x00000001 0x00000001 0x00000001 [0x040]
0x00000001 0x00000001 0x00000001 0x00000000 [0x050]
0x00000000 0x00000000 0x00000000 0x00000000 [0x060]
0x0000007D 0x00000000 0x00000000 0x00000000 [0x070]
0x00010001 0x00010001 0x00010001 0x00010001 [0x080]
0x00000000 0x00000000 0x00000000 0x00000000 [0x090]
0x00000000 0x00000000 0x00000000 0x00000000 [0x0a0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x0b0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x0c0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x0d0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x0e0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x0f0]
0x9ECC8000 0x00000004 0x0000000F 0x00040000 [0x100] CHAN0_RX_RING
0x9ECCA000 0x00000004 0x00000001 0x00060002 [0x110] 1
0x9ECCE000 0x00000004 0x0000000F 0x00040000 [0x120] 2
0x9ED13000 0x00000004 0x0000000F 0x00040000 [0x130] 3
0x9ED93000 0x00000004 0x0000000F 0x00040000 [0x140] 4
0x9ED95000 0x00000004 0x0000000F 0x00040000 [0x150] 5
0x9ED97000 0x00000004 0x0000000F 0x00040000 [0x160] 6
0x9ED99000 0x00000004 0x0000000F 0x00040000 [0x170] 7
0x00081200 0x00010001 0x00010001 0x00010001 [0x180] RX_FLAGS
0x00010001 0x000000E4 0x00000000 0x00000077 [0x190]
0x00000000 0x00000000 0x00000000 0x00000000 [0x1a0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x1b0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x1c0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x1d0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x1e0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x1f0]
0x9EDA2000 0x00000008 0x00000000 0x00000000 [0x200] CHAN0_TX_RING
0x00000000 0x00000000 0x00000000 0x00000000 [0x210]
0x00000000 0x00000000 0x00000000 0x00000000 [0x220]
0x00000000 0x00000000 0x00000000 0x00000000 [0x230]
0x00100037 0x00000000 0x00000000 0x00000000 [0x240]
0x9EDA3000 0x00000008 0x00000005 0x00050005 [0x250] CHAN1_TX_RING
0x9EF30000 0x00000008 0x00000000 0x00000000 [0x260] 2
0x9EF31000 0x00000008 0x00000000 0x00000000 [0x270] 3
0x9EF32000 0x00000008 0x00000000 0x00000000 [0x280] 4
0x9EF33000 0x00000008 0x00000000 0x00000000 [0x290] 5
0x9EF34000 0x00000008 0x00000000 0x00000000 [0x2a0] 6
0x9EF35000 0x00000008 0x00000000 0x00000000 [0x2b0] 7
0x00000000 0x00000000 0x00000000 0x00000000 [0x2c0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x2d0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x2e0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x2f0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x300]
0x00000000 0x00000000 0x00000000 0x00000000 [0x310]
0x00000000 0x00000000 0x00000000 0x00000000 [0x320]
0x00000000 0x01209209 0x00000000 0x00000000 [0x330]
0x00000000 0x00000000 0x00000000 0x00000000 [0x340]
0x00000159 0x00000159 0x00000000 0x00000000 [0x350]
0x00008000 0x9EDD9120 0x00000000 0x00000000 [0x360] pointers to packet buffers (+4),
0x00004151 0x9EDD9120 0x03008044 0x00000000 [0x370] and probably length/status (+0)
0x0000C05A 0x9E2E4812 0x00000000 0x00000000 [0x380] why? unknown, maybe diagnostics
0x0000405A 0x9E2E4812 0x00000000 0x00000000 [0x390] both RX (0/8) and TX (4/c) pkts
0x00000000 0x00003333 0x00E00016 0x5555FC55 [0x3a0]
0xFFFF8044 0xFFFFFFFF 0x93688469 0x8100F32F [0x3b0]
0x00000001 0x00000010 0x00000010 0x00000000 [0x3c0]
0x00000000 0xFF000000 0x00FF0000 0x00000000 [0x3d0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x3e0]
0x00000000 0x00000000 0x00000000 0x00000000 [0x3f0]
RX descriptors:
0x00008000 0x9F1C6120 0x00000000 0x00000000
0x00008000 0x9F1C3120 0x00000000 0x00000000
0x00008000 0x9F1C2120 0x00000000 0x00000000
0x00008000 0x9F1C1120 0x00000000 0x00000000
TX descriptors:
0x00004066 0x9DB8560E 0x70000007 0x54040000
0x00004066 0x9DB8580E 0x70000007 0x54040000
0x00004066 0x9DB8560E 0x70000007 0x54040000
0x00004066 0x9DB8580E 0x70000007 0x54040000
A transmitted packet:
[dest. MAC addr.] 60 83 34 XX XX XX 81 00 0F A0
08 00 45 00 00 54 59 04 00 00 40 01 0D A2 0A 00
00 03 0A 00 00 01 00 00 23 9C 00 07 08 62 E9 1F
BC 69 00 00 00 00 6E 9E 01 00 00 00 00 00 10 11
12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21
22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31
32 33 34 35 36 37 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
... printed with
echo; for x in $(busybox seq 0 0x80); do busybox devmem $((0x9DB8560E + x)) 8; done
or similar (note that you need to be running a replaced shell so the $((...))
calculation doesn't turn negative).
A mechanism in the HiSilicon SDK used on this device is the /dev/hi_hlp
interface, which allows userspace programs to call kernel functions by name:
/* note: struct/field names are mine, the layout is original */
struct hlp_req {
u32 arg_size;
char func_name[128];
char arg[];
};
int fd = open("/dev/hi_hlp", O_RDWR);
struct hlp_req r = { ... };
ioctl(fd, 0, &r);The arg and arg_size fields are bi-directional: Before the call, userspace
fills them, after the call, userspace can expect the kernel to have filled
them (although for specific functions one or the other direction might be more
significant).
The API exposed through the hi_hlp mechanism, specifically function names and
corresponding argument names and sizes, is described in interface definition
files stored in /home/cli in the root filesystem. /bin/hi_cli serves as a
command-line wrapper around hi_hlp.
In the kernel, functions are registered with through hi_hlp_regko, and
unregistered through hi_hlp_unregko:
typedef int hlp_fn(void *args, unsigned long in_length, unsigned long out_length);
int hi_help_regko(const char *name, hlp_fn *fn);
int hi_help_unregko(const char *name);Several kernel modules in /lib/extra expose functionality in this way.
- Porting modern Linux to escape the horrors of the vendor kernel
PowerPC:
Servers/BMCs:
E-Book readers:
- Allwinner F1E200 based
- Kobo Aura (U-Boot, SD boot)
- Tolino Shine (SD boot), Shine2HD
- Netronix EC, eKTF2132 touchscreen
Cameras/DVRs:
- AHB780XTB DVR (Hi3520D), NBD8032
- Hi3518-based
Networking equipment:
TVs and set-top boxes:
Linux: