Skip to content

QIVICON Home Base 2

J. Neuschäfer edited this page Mar 1, 2026 · 13 revisions
photo of the device

The QIVICON Home Base 2 was sold by Telekom in Germany, and developed by Huawei.

(Photo from digitalzimmer.de)

Hardware

bottom of PCB photo top of PCB photo

Chips:

Pinout

close-up of SoC, with pin numbers

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?

Button

board-to-board connection to the button

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.

Serial port

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.

Linux

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.

Userspace

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.

SDK: hi_hlp

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.

Future research

  • Porting modern Linux to escape the horrors of the vendor kernel

References

Clone this wiki locally