19633a0e9SJakub Kicinski.. SPDX-License-Identifier: GPL-2.0
29633a0e9SJakub Kicinski
39633a0e9SJakub Kicinski========================
49633a0e9SJakub KicinskiATM cxacru device driver
59633a0e9SJakub Kicinski========================
69633a0e9SJakub Kicinski
79633a0e9SJakub KicinskiFirmware is required for this device: http://accessrunner.sourceforge.net/
89633a0e9SJakub Kicinski
99633a0e9SJakub KicinskiWhile it is capable of managing/maintaining the ADSL connection without the
109633a0e9SJakub Kicinskimodule loaded, the device will sometimes stop responding after unloading the
119633a0e9SJakub Kicinskidriver and it is necessary to unplug/remove power to the device to fix this.
129633a0e9SJakub Kicinski
139633a0e9SJakub KicinskiNote: support for cxacru-cf.bin has been removed. It was not loaded correctly
149633a0e9SJakub Kicinskiso it had no effect on the device configuration. Fixing it could have stopped
159633a0e9SJakub Kicinskiexisting devices working when an invalid configuration is supplied.
169633a0e9SJakub Kicinski
179633a0e9SJakub KicinskiThere is a script cxacru-cf.py to convert an existing file to the sysfs form.
189633a0e9SJakub Kicinski
199633a0e9SJakub KicinskiDetected devices will appear as ATM devices named "cxacru". In /sys/class/atm/
209633a0e9SJakub Kicinskithese are directories named cxacruN where N is the device number. A symlink
219633a0e9SJakub Kicinskinamed device points to the USB interface device's directory which contains
229633a0e9SJakub Kicinskiseveral sysfs attribute files for retrieving device statistics:
239633a0e9SJakub Kicinski
249633a0e9SJakub Kicinski* adsl_controller_version
259633a0e9SJakub Kicinski
269633a0e9SJakub Kicinski* adsl_headend
279633a0e9SJakub Kicinski* adsl_headend_environment
289633a0e9SJakub Kicinski
299633a0e9SJakub Kicinski	- Information about the remote headend.
309633a0e9SJakub Kicinski
319633a0e9SJakub Kicinski* adsl_config
329633a0e9SJakub Kicinski
339633a0e9SJakub Kicinski	- Configuration writing interface.
349633a0e9SJakub Kicinski	- Write parameters in hexadecimal format <index>=<value>,
359633a0e9SJakub Kicinski	  separated by whitespace, e.g.:
369633a0e9SJakub Kicinski
379633a0e9SJakub Kicinski		"1=0 a=5"
389633a0e9SJakub Kicinski
399633a0e9SJakub Kicinski	- Up to 7 parameters at a time will be sent and the modem will restart
409633a0e9SJakub Kicinski	  the ADSL connection when any value is set. These are logged for future
419633a0e9SJakub Kicinski	  reference.
429633a0e9SJakub Kicinski
439633a0e9SJakub Kicinski* downstream_attenuation (dB)
449633a0e9SJakub Kicinski* downstream_bits_per_frame
459633a0e9SJakub Kicinski* downstream_rate (kbps)
469633a0e9SJakub Kicinski* downstream_snr_margin (dB)
479633a0e9SJakub Kicinski
489633a0e9SJakub Kicinski	- Downstream stats.
499633a0e9SJakub Kicinski
509633a0e9SJakub Kicinski* upstream_attenuation (dB)
519633a0e9SJakub Kicinski* upstream_bits_per_frame
529633a0e9SJakub Kicinski* upstream_rate (kbps)
539633a0e9SJakub Kicinski* upstream_snr_margin (dB)
549633a0e9SJakub Kicinski* transmitter_power (dBm/Hz)
559633a0e9SJakub Kicinski
569633a0e9SJakub Kicinski	- Upstream stats.
579633a0e9SJakub Kicinski
589633a0e9SJakub Kicinski* downstream_crc_errors
599633a0e9SJakub Kicinski* downstream_fec_errors
609633a0e9SJakub Kicinski* downstream_hec_errors
619633a0e9SJakub Kicinski* upstream_crc_errors
629633a0e9SJakub Kicinski* upstream_fec_errors
639633a0e9SJakub Kicinski* upstream_hec_errors
649633a0e9SJakub Kicinski
659633a0e9SJakub Kicinski	- Error counts.
669633a0e9SJakub Kicinski
679633a0e9SJakub Kicinski* line_startable
689633a0e9SJakub Kicinski
699633a0e9SJakub Kicinski	- Indicates that ADSL support on the device
709633a0e9SJakub Kicinski	  is/can be enabled, see adsl_start.
719633a0e9SJakub Kicinski
729633a0e9SJakub Kicinski* line_status
739633a0e9SJakub Kicinski
749633a0e9SJakub Kicinski	 - "initialising"
759633a0e9SJakub Kicinski	 - "down"
769633a0e9SJakub Kicinski	 - "attempting to activate"
779633a0e9SJakub Kicinski	 - "training"
789633a0e9SJakub Kicinski	 - "channel analysis"
799633a0e9SJakub Kicinski	 - "exchange"
809633a0e9SJakub Kicinski	 - "waiting"
819633a0e9SJakub Kicinski	 - "up"
829633a0e9SJakub Kicinski
839633a0e9SJakub Kicinski	Changes between "down" and "attempting to activate"
849633a0e9SJakub Kicinski	if there is no signal.
859633a0e9SJakub Kicinski
869633a0e9SJakub Kicinski* link_status
879633a0e9SJakub Kicinski
889633a0e9SJakub Kicinski	 - "not connected"
899633a0e9SJakub Kicinski	 - "connected"
909633a0e9SJakub Kicinski	 - "lost"
919633a0e9SJakub Kicinski
929633a0e9SJakub Kicinski* mac_address
939633a0e9SJakub Kicinski
949633a0e9SJakub Kicinski* modulation
959633a0e9SJakub Kicinski
969633a0e9SJakub Kicinski	 - "" (when not connected)
979633a0e9SJakub Kicinski	 - "ANSI T1.413"
989633a0e9SJakub Kicinski	 - "ITU-T G.992.1 (G.DMT)"
999633a0e9SJakub Kicinski	 - "ITU-T G.992.2 (G.LITE)"
1009633a0e9SJakub Kicinski
1019633a0e9SJakub Kicinski* startup_attempts
1029633a0e9SJakub Kicinski
1039633a0e9SJakub Kicinski	- Count of total attempts to initialise ADSL.
1049633a0e9SJakub Kicinski
1059633a0e9SJakub KicinskiTo enable/disable ADSL, the following can be written to the adsl_state file:
1069633a0e9SJakub Kicinski
1079633a0e9SJakub Kicinski	 - "start"
1089633a0e9SJakub Kicinski	 - "stop
1099633a0e9SJakub Kicinski	 - "restart" (stops, waits 1.5s, then starts)
1109633a0e9SJakub Kicinski	 - "poll" (used to resume status polling if it was disabled due to failure)
1119633a0e9SJakub Kicinski
1129633a0e9SJakub KicinskiChanges in adsl/line state are reported via kernel log messages::
1139633a0e9SJakub Kicinski
1149633a0e9SJakub Kicinski	[4942145.150704] ATM dev 0: ADSL state: running
1159633a0e9SJakub Kicinski	[4942243.663766] ATM dev 0: ADSL line: down
1169633a0e9SJakub Kicinski	[4942249.665075] ATM dev 0: ADSL line: attempting to activate
1179633a0e9SJakub Kicinski	[4942253.654954] ATM dev 0: ADSL line: training
1189633a0e9SJakub Kicinski	[4942255.666387] ATM dev 0: ADSL line: channel analysis
1199633a0e9SJakub Kicinski	[4942259.656262] ATM dev 0: ADSL line: exchange
1209633a0e9SJakub Kicinski	[2635357.696901] ATM dev 0: ADSL line: up (8128 kb/s down | 832 kb/s up)
121