1.. SPDX-License-Identifier: GPL-2.0
2
3========================
4ATM cxacru device driver
5========================
6
7Firmware is required for this device: http://accessrunner.sourceforge.net/
8
9While it is capable of managing/maintaining the ADSL connection without the
10module loaded, the device will sometimes stop responding after unloading the
11driver and it is necessary to unplug/remove power to the device to fix this.
12
13Note: support for cxacru-cf.bin has been removed. It was not loaded correctly
14so it had no effect on the device configuration. Fixing it could have stopped
15existing devices working when an invalid configuration is supplied.
16
17There is a script cxacru-cf.py to convert an existing file to the sysfs form.
18
19Detected devices will appear as ATM devices named "cxacru". In /sys/class/atm/
20these are directories named cxacruN where N is the device number. A symlink
21named device points to the USB interface device's directory which contains
22several sysfs attribute files for retrieving device statistics:
23
24* adsl_controller_version
25
26* adsl_headend
27* adsl_headend_environment
28
29	- Information about the remote headend.
30
31* adsl_config
32
33	- Configuration writing interface.
34	- Write parameters in hexadecimal format <index>=<value>,
35	  separated by whitespace, e.g.:
36
37		"1=0 a=5"
38
39	- Up to 7 parameters at a time will be sent and the modem will restart
40	  the ADSL connection when any value is set. These are logged for future
41	  reference.
42
43* downstream_attenuation (dB)
44* downstream_bits_per_frame
45* downstream_rate (kbps)
46* downstream_snr_margin (dB)
47
48	- Downstream stats.
49
50* upstream_attenuation (dB)
51* upstream_bits_per_frame
52* upstream_rate (kbps)
53* upstream_snr_margin (dB)
54* transmitter_power (dBm/Hz)
55
56	- Upstream stats.
57
58* downstream_crc_errors
59* downstream_fec_errors
60* downstream_hec_errors
61* upstream_crc_errors
62* upstream_fec_errors
63* upstream_hec_errors
64
65	- Error counts.
66
67* line_startable
68
69	- Indicates that ADSL support on the device
70	  is/can be enabled, see adsl_start.
71
72* line_status
73
74	 - "initialising"
75	 - "down"
76	 - "attempting to activate"
77	 - "training"
78	 - "channel analysis"
79	 - "exchange"
80	 - "waiting"
81	 - "up"
82
83	Changes between "down" and "attempting to activate"
84	if there is no signal.
85
86* link_status
87
88	 - "not connected"
89	 - "connected"
90	 - "lost"
91
92* mac_address
93
94* modulation
95
96	 - "" (when not connected)
97	 - "ANSI T1.413"
98	 - "ITU-T G.992.1 (G.DMT)"
99	 - "ITU-T G.992.2 (G.LITE)"
100
101* startup_attempts
102
103	- Count of total attempts to initialise ADSL.
104
105To enable/disable ADSL, the following can be written to the adsl_state file:
106
107	 - "start"
108	 - "stop
109	 - "restart" (stops, waits 1.5s, then starts)
110	 - "poll" (used to resume status polling if it was disabled due to failure)
111
112Changes in adsl/line state are reported via kernel log messages::
113
114	[4942145.150704] ATM dev 0: ADSL state: running
115	[4942243.663766] ATM dev 0: ADSL line: down
116	[4942249.665075] ATM dev 0: ADSL line: attempting to activate
117	[4942253.654954] ATM dev 0: ADSL line: training
118	[4942255.666387] ATM dev 0: ADSL line: channel analysis
119	[4942259.656262] ATM dev 0: ADSL line: exchange
120	[2635357.696901] ATM dev 0: ADSL line: up (8128 kb/s down | 832 kb/s up)
121