162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci========================
462306a36Sopenharmony_ciATM cxacru device driver
562306a36Sopenharmony_ci========================
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciFirmware is required for this device: http://accessrunner.sourceforge.net/
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciWhile it is capable of managing/maintaining the ADSL connection without the
1062306a36Sopenharmony_cimodule loaded, the device will sometimes stop responding after unloading the
1162306a36Sopenharmony_cidriver and it is necessary to unplug/remove power to the device to fix this.
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciNote: support for cxacru-cf.bin has been removed. It was not loaded correctly
1462306a36Sopenharmony_ciso it had no effect on the device configuration. Fixing it could have stopped
1562306a36Sopenharmony_ciexisting devices working when an invalid configuration is supplied.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciThere is a script cxacru-cf.py to convert an existing file to the sysfs form.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciDetected devices will appear as ATM devices named "cxacru". In /sys/class/atm/
2062306a36Sopenharmony_cithese are directories named cxacruN where N is the device number. A symlink
2162306a36Sopenharmony_cinamed device points to the USB interface device's directory which contains
2262306a36Sopenharmony_ciseveral sysfs attribute files for retrieving device statistics:
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci* adsl_controller_version
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci* adsl_headend
2762306a36Sopenharmony_ci* adsl_headend_environment
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	- Information about the remote headend.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci* adsl_config
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	- Configuration writing interface.
3462306a36Sopenharmony_ci	- Write parameters in hexadecimal format <index>=<value>,
3562306a36Sopenharmony_ci	  separated by whitespace, e.g.:
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci		"1=0 a=5"
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	- Up to 7 parameters at a time will be sent and the modem will restart
4062306a36Sopenharmony_ci	  the ADSL connection when any value is set. These are logged for future
4162306a36Sopenharmony_ci	  reference.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci* downstream_attenuation (dB)
4462306a36Sopenharmony_ci* downstream_bits_per_frame
4562306a36Sopenharmony_ci* downstream_rate (kbps)
4662306a36Sopenharmony_ci* downstream_snr_margin (dB)
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	- Downstream stats.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci* upstream_attenuation (dB)
5162306a36Sopenharmony_ci* upstream_bits_per_frame
5262306a36Sopenharmony_ci* upstream_rate (kbps)
5362306a36Sopenharmony_ci* upstream_snr_margin (dB)
5462306a36Sopenharmony_ci* transmitter_power (dBm/Hz)
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci	- Upstream stats.
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci* downstream_crc_errors
5962306a36Sopenharmony_ci* downstream_fec_errors
6062306a36Sopenharmony_ci* downstream_hec_errors
6162306a36Sopenharmony_ci* upstream_crc_errors
6262306a36Sopenharmony_ci* upstream_fec_errors
6362306a36Sopenharmony_ci* upstream_hec_errors
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci	- Error counts.
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci* line_startable
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci	- Indicates that ADSL support on the device
7062306a36Sopenharmony_ci	  is/can be enabled, see adsl_start.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci* line_status
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci	 - "initialising"
7562306a36Sopenharmony_ci	 - "down"
7662306a36Sopenharmony_ci	 - "attempting to activate"
7762306a36Sopenharmony_ci	 - "training"
7862306a36Sopenharmony_ci	 - "channel analysis"
7962306a36Sopenharmony_ci	 - "exchange"
8062306a36Sopenharmony_ci	 - "waiting"
8162306a36Sopenharmony_ci	 - "up"
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci	Changes between "down" and "attempting to activate"
8462306a36Sopenharmony_ci	if there is no signal.
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci* link_status
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci	 - "not connected"
8962306a36Sopenharmony_ci	 - "connected"
9062306a36Sopenharmony_ci	 - "lost"
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci* mac_address
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci* modulation
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci	 - "" (when not connected)
9762306a36Sopenharmony_ci	 - "ANSI T1.413"
9862306a36Sopenharmony_ci	 - "ITU-T G.992.1 (G.DMT)"
9962306a36Sopenharmony_ci	 - "ITU-T G.992.2 (G.LITE)"
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci* startup_attempts
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci	- Count of total attempts to initialise ADSL.
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ciTo enable/disable ADSL, the following can be written to the adsl_state file:
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci	 - "start"
10862306a36Sopenharmony_ci	 - "stop
10962306a36Sopenharmony_ci	 - "restart" (stops, waits 1.5s, then starts)
11062306a36Sopenharmony_ci	 - "poll" (used to resume status polling if it was disabled due to failure)
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ciChanges in adsl/line state are reported via kernel log messages::
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci	[4942145.150704] ATM dev 0: ADSL state: running
11562306a36Sopenharmony_ci	[4942243.663766] ATM dev 0: ADSL line: down
11662306a36Sopenharmony_ci	[4942249.665075] ATM dev 0: ADSL line: attempting to activate
11762306a36Sopenharmony_ci	[4942253.654954] ATM dev 0: ADSL line: training
11862306a36Sopenharmony_ci	[4942255.666387] ATM dev 0: ADSL line: channel analysis
11962306a36Sopenharmony_ci	[4942259.656262] ATM dev 0: ADSL line: exchange
12062306a36Sopenharmony_ci	[2635357.696901] ATM dev 0: ADSL line: up (8128 kb/s down | 832 kb/s up)
121