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