Commit 9f4a3a798df6ac963b144073da2e342d948d05dc

Kano 2013-05-17T15:05:51

Update documentation for icarus switch to USB

diff --git a/ASIC-README b/ASIC-README
index 8796a79..6341617 100644
--- a/ASIC-README
+++ b/ASIC-README
@@ -44,17 +44,12 @@ If your distribution does not have the plugdev group you can create it with:
  sudo groupadd plugdev
 
 In order for the BFL devices to instantly be owned by the plugdev group and
-accessible by anyone from the plugdev group you can either copy the file
+accessible by anyone from the plugdev group you can copy the file
 "01-cgminer.rules" from the cgminer archive into the /etc/udev/rules.d
 directory with the following command:
 
  sudo cp 01-cgminer.rules /etc/udev/rules.d/
 
-Or you can manually create a file/add to a rules.d file with following rules
-(most users won't want to do this manually):
-ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev"
-ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0003", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev"
-
 After this you can either manually restart udev and re-login, or more easily
 just reboot.
 
diff --git a/FPGA-README b/FPGA-README
index 4dfed2a..98730b0 100644
--- a/FPGA-README
+++ b/FPGA-README
@@ -2,8 +2,8 @@
 This README contains extended details about FPGA mining with cgminer
 
 
-For ModMinerQuad (MMQ) and BitForce (BFL)
------------------------------------------
+For ModMinerQuad (MMQ) BitForce (BFL) and Icarus (ICA, BLT, LLT, AMU, CMR)
+--------------------------------------------------------------------------
 
 When mining on windows, the driver being used will determine if mining will work.
 
@@ -11,8 +11,6 @@ If the driver doesn't allow mining, you will get a "USB init," error message
 i.e. one of:
  open device failed, err %d, you need to install a Windows USB driver for the device
 or
- kernel detach failed :(
-or
  claim interface %d failed, err %d
 
 The best solution for this is to use a tool called Zadig to set the driver:
@@ -32,19 +30,16 @@ with cgminer (not the libusbx version)
 When mining on linux, but not using 'sudo' and not logged into 'root' you
 may get a USB priviledge error (-3), so you may also need to do the following:
 
-Create /etc/udev/rules.d/01-cgminer.rules
-With:
- ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev"
- ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0003", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev"
+ sudo cp 01-cgminer.rules /etc/udev/rules.d/
 
 And also:
  sudo usermod -G plugdev -a `whoami`
 
-Then reboot ...
-
 If your linux distro doesn't have the 'plugdev' group, you can create it like:
  sudo groupadd plugdev
 
+Then reboot ...
+
 -
 
 There is a hidden option in cgminer to dump out a lot of information
@@ -53,8 +48,7 @@ problems:
 
  --usb-dump 0
 
-It will only help if you have a working MMQ or BFL device attached to the
-computer
+It will only help if you have a working FPGA device listed above
 
 
 ModMinerQuad (MMQ)
@@ -190,8 +184,8 @@ the MH/s value reported with the changed firmware - and the MH/s reported
 will be less than the firmware speed since you lose work on every block change.
 
 
-Icarus (ICA)
-------------
+Icarus (ICA, BLT, LLT, AMU, CMR)
+--------------------------------
 
 There are two hidden options in cgminer when Icarus support is compiled in:
 
@@ -245,8 +239,8 @@ scan hash time, for the first 5 nonce's or one minute (whichever is longer)
 
 In 'default' or 'value' mode the 'constants' are calculated once at the start, based on the default
 value or the value specified
-The optional additional =N specifies to set the default abort at N 1/10ths of a second, not the
-calculated value, which is 112 for 2.6316ns
+The optional additional =N specifies to set the default abort at N * 100ms, not the calculated
+value, which is ~112 for 2.6316ns
 
 To determine the hash time value for a non Icarus Rev3 device or an Icarus Rev3 with a different
 bitstream to the default one, use 'long' mode and give it at least a few hundred shares, or use
@@ -258,6 +252,9 @@ Icarus Rev3 requires and also is less than ~840MH/s and greater than 2MH/s
 If an FPGA device does hash faster than ~840MH/s it should work correctly if you supply the
 correct hash time nanoseconds value
 
+The Icarus code will automatically detect Icarus, Lancelot, AsicminerUSB and Cairnsmore1
+FPGA devices and set default settings to match those devices if you don't specify them
+
 The timing code itself will affect the Icarus performance since it increases the delay after
 work is completed or aborted until it starts again
 The increase is, however, extremely small and the actual increase is reported with the
diff --git a/README b/README
index bda7fd8..84ca072 100644
--- a/README
+++ b/README
@@ -111,7 +111,7 @@ CGMiner specific configuration options:
 	--disable-adl           Override detection and disable building with adl
 	--enable-bflsc          Compile support for BFL ASICs (default disabled)
 	--enable-bitforce       Compile support for BitForce FPGAs(default disabled)
-	--enable-icarus         Compile support for Icarus Board(default disabled)
+	--enable-icarus         Compile support for Icarus bitstream FPGAs(default disabled)
 	--enable-modminer       Compile support for ModMiner FPGAs(default disabled)
 	--enable-ztex           Compile support for Ztex Board(default disabled)
 	--enable-avalon         Compile support for Avalon (default disabled)
@@ -235,13 +235,14 @@ ASIC and FPGA mining boards (BFL ASIC, BitForce, Icarus, ModMiner, Ztex)
 only options:
 
 Cgminer will automatically find all of your BFL ASIC, BitForce FPGAs,
-ModMiner FPGAs or Ztex FPGAs
-The --usb option can restrict how many BFL ASIC, BitForce FPGAs or
-ModMiner FPGAs it finds:
+ModMiner FPGAs, Icarus bitstream FPGAs or Ztex FPGAs
+
+The --usb option can restrict how many BFL ASIC, BitForce FPGAs,
+ModMiner FPGAs or Icarus bitstream FPGAs it finds:
 
   --usb 1:2,1:3,1:4,1:*
 or
-  --usb BAS:1,BFL:1,MMQ:0
+  --usb BAS:1,BFL:1,MMQ:0,ICA:0
 or
   --usb :10
 
@@ -260,15 +261,16 @@ This is useful if you unplug a device then plug it back in the same port,
 it usually reappears with the same bus_number but a different device_address
 
 You can see the list of all USB devices on linux with 'sudo lsusb'
-Cgminer will list the recognised USB devices with the '--usb-dump 0' option
+Cgminer will list the recognised USB devices with the '-n' option or the
+'--usb-dump 0' option
 The '--usb-dump N' option with a value of N greater than 0 will dump a lot
 of details about each recognised USB device
 If you wish to see all USB devices, include the --usb-list-all option
 
 The second version
-  --usb BAS:1,BFL:1,MMQ:0
+  --usb BAS:1,BFL:1,MMQ:0,ICA:0
 allows you to specify how many devices to choose based on each device
-driver cgminer has - there are currently 3 USB drivers: BAS, BFL & MMQ
+driver cgminer has - there are currently 4 USB drivers: BAS, BFL, MMQ & ICA
 N.B. you can only specify which device driver to limit, not the type of
 each device, e.g. with BAS:n you can limit how many BFL ASIC devices will
 be checked, but you cannot limit the number of each type of BFL ASIC
@@ -283,28 +285,8 @@ not scan for any more
 If one of the 10 devices stops working, hotplug - if enabled, as is default
 - will scan normally again until it has 10 devices
 
+  --usb :0 will disable all USB I/O other than to initialse libusb
 
---scan-serial|-S <arg> Serial port to probe for Icarus mining device
-
-This option is only for Icarus bitstream FPGAs
-
-By default, cgminer will scan for autodetected Icarus unless at least one
--S is specified for that driver. If you specify -S and still want cgminer
-to scan, you must also use "-S auto". If you want to prevent cgminer from
-scanning without specifying a device, you can use "-S noauto". Note that
-presently, autodetection only works on Linux, and might only detect one
-device depending on the version of udev being used.
-
-On linux <arg> is usually of the format /dev/ttyUSBn
-On windows <arg> is usually of the format \\.\COMn
-(where n = the correct device number for the Icarus device)
-
-The official supplied binaries are compiled with support for all FPGAs.
-To force the code to only attempt detection with a specific driver,
-prepend the argument with the driver name followed by a colon.
-For example, "icarus:/dev/ttyUSB0" or using the short name: "ica:/dev/ttyUSB0"
-This option not longer matters since Icarus is the only serial-USB
-device that uses it
 
 For other FPGA details see the FPGA-README
 
@@ -657,27 +639,6 @@ A: Cgminer currently supports 2 ASICs: Avalon and BitForce SC devices. They
 are Application Specify Integrated Circuit devices and provide the highest
 performance per unit power due to being dedicated to only one purpose.
 
-Q: How do I get my Icarus/Lancelot/Cairnsmore device to auto-recognise?
-A: On linux, if the /dev/ttyUSB* devices don't automatically appear, the only
-thing that needs to be done is to load the driver for them:
-Icarus: sudo modprobe pl2303 vendor=0x067b product=0x230
-Lancelot: sudo modprobe ftdi_sio vendor=0x0403 product=0x6001
-Cairnsmore: sudo modprobe ftdi_sio product=0x8350 vendor=0x0403
-On windows you must install the pl2303 or ftdi driver required for the device
-pl2303: http://prolificusa.com/pl-2303hx-drivers/
-ftdi: http://www.ftdichip.com/Drivers/VCP.htm
-
-Q: On linux I can see the /dev/ttyUSB* devices for my Icarus FPGAs, but
-cgminer can't mine on them
-A: Make sure you have the required priviledges to access the /dev/ttyUSB* devices:
- sudo ls -las /dev/ttyUSB*
-will give output like:
- 0 crw-rw---- 1 root dialout 188, 0 2012-09-11 13:49 /dev/ttyUSB0
-This means your account must have the group 'dialout' or root priviledges
-To permanently give your account the 'dialout' group:
- sudo usermod -G dialout -a `whoami`
-Then logout and back in again
-
 Q: Can I mine scrypt with FPGAs or ASICs?
 A: No.
 
diff --git a/cgminer.c b/cgminer.c
index 974496c..086b0d9 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -1089,7 +1089,7 @@ static struct opt_table opt_config_table[] = {
 #ifdef USE_FPGA_SERIAL
 	OPT_WITH_ARG("--scan-serial|-S",
 		     add_serial, NULL, NULL,
-		     "Serial port to probe for Icarus FPGA Mining device"),
+		     "Serial port to probe for Avalon Mining device"),
 #endif
 	OPT_WITH_ARG("--scan-time|-s",
 		     set_int_0_to_9999, opt_show_intval, &opt_scantime,
diff --git a/driver-ztex.c b/driver-ztex.c
index 2ab4a4d..0938726 100644
--- a/driver-ztex.c
+++ b/driver-ztex.c
@@ -7,7 +7,7 @@
  *   Copyright (C) 2009-2011 ZTEX GmbH.
  *   http://www.ztex.de
  *
- *   This work is based upon the icarus.c worker which is
+ *   This work is based upon the icarus.c worker which was
  *   Copyright 2012 Luke Dashjr
  *   Copyright 2012 Xiangfu <xiangfu@openmobilefree.com>
  *