Version 1.0.2
[gnuk/neug.git] / README
diff --git a/README b/README
index 6ae5449..67d55ce 100644 (file)
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
 NeuG - a true random number generator implementation (for STM32F103)
 
-                                                          Version 0.10
-                                                            2013-06-XX
+                                                         Version 1.0.2
+                                                            2015-07-18
                                                           Niibe Yutaka
                                      Free Software Initiative of Japan
 
@@ -28,10 +28,14 @@ NeuG was named after my daughter, but I don't say she is noisy.
 Release notes
 =============
 
-This is the seventh release of NeuG, which is still experimental.  Basic
-features (generating random numbers) are stable, but newly added
-things like reGNUal support should be considered unstable.  Note that
-you need Chopstx as external source code.
+This is the second minor release of NeuG, after 1.0.
+
+Basic features (generating random numbers) are stable, but newly added
+things like fraucheky (USB Mass Storage Class) support and reGNUal
+(firmware upgrad) support should be considered experimental.
+
+Note that you need Chopstx (the thread library) as external source
+code (instead of ChibiOS/RT).
 
 
 FAQ
@@ -48,14 +52,14 @@ A0-double-dash: STM32F2xx and STM32F4xx have built-in TRNG, it would
                 looks not that good).
 
 Q1: How fast is NeuG device?
-A1: It's more than 50 Ki-byte/sec for conditioned output (by SHA-256),
-    and more than 140 Ki-byte/sec for CRC-32 filtered output.
+A1: It's more than 80 kB/sec for conditioned output (by SHA-256), and
+    more than 280 kB/sec for CRC-32 filtered output (kB = 1000 byte).
 
 Q2: Should we check condition of noise sources?
 A2: Yes, we should.  Three continuous tests are implemented, following
     (Draft of) NIST SP 800-90B.  Those are Repetition Count Test,
     Adaptive Proportion Test (for 64 samples), and another Adaptive
-    Proportion Test (for 4096 samples).  When it detect an error (it
+    Proportion Test (for 4096 samples).  When it detects an error (it
     is really rare, but it could occur even for normal condition), the
     generation of random bits restart again.
 
@@ -63,17 +67,15 @@ Q3: Conditioning with SHA-256 sounds over-kill.  Why not simpler?
 A3: It is because NIST SP 800-90B mandates something like that for
     "full entropy source".  If your usage is as an entropy source for
     RNG-tools to feed entropy to your kernel, or use for computer
-    simulations, I think that CRC32 filter would be good enough.  You
-    can configure NeuG device by "stty -F /dev/ttyACM0 parenb parodd"
-    to get raw data before SHA-256 conditioning component.  With
-    high speed hub, you'll get more than 240 Ki-byte/second .
+    simulations, I think that CRC-32 filtered output would be good
+    enough.
 
 
 Targets
 =======
 
-FST-01, Olimex STM32-H103, and STM32 part of STM8S Discovery Kit are
-supported.  CQ-STARM, STBee Mini, and STBee will be supported.
+FST-01, Olimex STM32-H103, and STM32 part of STM8S Discovery Kit,
+STBee Mini, and STBee are supported.
 
 
 Souce code
@@ -81,6 +83,11 @@ Souce code
 
 NeuG source code is under src/ directory.
 
+Note that SHA-256 hash function implementation, src/sha256.c, is based
+on the original implementation by Dr. Brian Gladman.  See:
+
+  http://gladman.plushost.co.uk/oldsite/cryptography_technology/sha/index.php
+
 
 License
 =======
@@ -92,13 +99,15 @@ It is distributed under GNU General Public Licence version 3 or later
 External source code
 ====================
 
-To build NeuG device, you need external source code.
+NeuG is distributed with external source code.
 
 * chopstx/ -- Chopstx, the RT Thread Library
 
-It is available at:
+* [optional] fraucheky/ -- Fraucheky, the GPL container
+
+Those are available at:
 
-  http://gitorious.org/chopstx/chopstx
+  https://anonscm.debian.org/cgit/gnuk/chopstx/
 
 
 USB vendor ID and product ID (USB device ID)
@@ -123,11 +132,7 @@ with standalone NeuG under one of following conditions:
       that "Distributing binary" includes distributing a device which
       holds the binary.
 
-  * For general individuals:
-
-    - No additional conditions.
-
-  * For individuals with explicit permission from FSIJ.
+  * For individuals:
 
     - No additional conditions.
 
@@ -156,36 +161,48 @@ Change directory to `src':
 
 Then, run `configure':
 
-  $ ./configure
+  $ ./configure --vidpid=<VID:PID>
+
+Here, you need to specify USB vendor ID and product ID.  For FSIJ's,
+it's: --vidpid=234b:0001 .  Please read section 'USB vendor ID and
+product ID' above.
+
 
 Type:
 
   $ make
 
-Then, we will have "neug.elf".
+Then, we will have "neug.elf" under the "build" directory.
 
 
 How to install
 ==============
 
-STBee Mini and STBee
---------------------
+Olimex STM32-H103 board
+-----------------------
 
-Reset the board with "USER" switch pushed.  Type following to write
-to flash:
+If you are using Olimex JTAG-Tiny, type following to invoke OpenOCD:
 
-  # cd ../tool
-  # ./dfuse.py ../src/neug.hex
+  $ openocd -f interface/olimex-jtag-tiny.cfg -f board/olimex_stm32_h103.cfg
 
-Then, reset the board.
+Then, with another terminal, type following to write "neug.elf" to Flash ROM:
 
+  $ telnet localhost 4444
+  > reset halt
+  > flash write_image erase neug.elf
+  > reset
+  > exit
+  $ 
 
-Olimex STM32-H103 board
------------------------
 
-If you are using Olimex JTAG-Tiny, type following to invoke OpenOCD:
+Flying Stone Tiny 01 and STM8S Discovery Kit
+--------------------------------------------
 
-  $ openocd -f interface/olimex-jtag-tiny.cfg -f board/olimex_stm32_h103.cfg
+If you are using Flying Stone Tiny 01, you need a SWD writer.
+
+OpenOCD 0.6.1 or newer supports ST-Link/V2.  With that we can do:
+
+  $ openocd -f interface/stlink-v2.cfg -f target/stm32f1x_stlink.cfg
 
 Then, with another terminal, type following to write "neug.elf" to Flash ROM:
 
@@ -196,6 +213,9 @@ Then, with another terminal, type following to write "neug.elf" to Flash ROM:
   > exit
   $ 
 
+Note that OpenOCD (as of 0.7.0) doesn't support option bytes handling yet.
+
+You can also use tool/stlinkv2.py in Gnuk.
 
 
 Use of NeuG device
@@ -208,7 +228,7 @@ Before using /dev/ttyACM0, you need to configure its TTY discipline.
 
 Then, you can use output of /dev/ttyACM0.
 
-When you want to get raw output (not conditioned), you can configure:
+When you want to get CRC-32 filtered output, you can configure:
 
   $ stty -F /dev/ttyACM0 parenb parodd
 
@@ -217,7 +237,7 @@ configure:
 
   $ stty -F /dev/ttyACM0 parenb -parodd
 
-And you can get conditioned output by configuring:
+And you can get SHA-256 conditioned output by configuring:
 
   $ stty -F /dev/ttyACM0 -parenb
 
@@ -319,29 +339,28 @@ Test results
 ============
 
 See files under the directory test-results, for test result of
-"rngtest" in rng-tools, NIST STS 2.1.1, and Dieharder.
+"rngtest" in rng-tools, NIST STS 2.1.1, Dieharder, and PractRand 0.92.
 
 I collect 110 files of 125MB (= 13750MB), and use scripts to invoke
-dieharder and rngtest.  Collecting 110 files, it took three days.
+dieharder and rngtest.  Collecting 110 files, it took more than two
+days.
 
 For NIST STS 2.1.1, I used only 10 files of size 125MB.
 
 
-Read-only Git Repository
-========================
+Git Repository
+==============
 
-You can browse at http://www.gniibe.org/gitweb?p=neug.git
+NeuG is available in the Gnuk repository at:
 
-You can get it by:
+    https://anonscm.debian.org/cgit/gnuk/gnuk/
 
-  $ git clone git://www.gniibe.org/neug.git/
-
-or
+You can get it by:
 
-  $ git clone http://www.gniibe.org/git/neug.git/
+    $ git clone git://anonscm.debian.org/gnuk/gnuk/neug.git
 
 
-I put Chopstx as a submodule of Git.  Please do this:
+I put Chopstx and Fraucheky as a submodules of Git.  Please do this:
 
   $ git submodule init
   $ git submodule update
@@ -351,7 +370,13 @@ I put Chopstx as a submodule of Git.  Please do this:
 Information on the Web
 ======================
 
-Please use FST-01 Q&A Forum at: http://no-passwd.net/askbot/questions/
+Please see the FST-01 support pages:
+
+    http://www.gniibe.org/category/fst-01.html
+
+Please consider to join Gnuk-users mailing list:
+
+    https://lists.alioth.debian.org/mailman/listinfo/gnuk-users
 
 
 
@@ -360,4 +385,10 @@ Your Contributions
 
 FSIJ welcomes your contributions.  Please assign your copyright
 to FSIJ (if possible).
---
+
+
+Foot note
+==========
+
+If NeuG had a family name, it must be Kunisada.
+--