Patches by Stephan Linz, 11 Dec 2003:
- more documentation for NIOS port
- new struct nios_pio_t, struct nios_spi_t
- Reconfiguration for NIOS Development Kit DK1C20:
  o move board related code from board/dk1c20
    to board/altera/dk1c20
  o create a new common source path board/altera/common
    and move generic flash access stuff into it
  o change/expand configuration file DK1C20.h
- Add support for NIOS Development Kit DK1S10
- Add status LED support for NIOS systems
- Add dual 7-segment LED support for Altera NIOS DevKits
diff --git a/doc/README.dk1c20_std32 b/doc/README.dk1c20_std32
new file mode 100644
index 0000000..4822c6f
--- /dev/null
+++ b/doc/README.dk1c20_std32
@@ -0,0 +1,365 @@
+
+TODO:	specify IDE i/f
+	specify ASMI i/f
+	specify OCI
+
+
+===============================================================================
+	C P U ,	  M E M O R Y ,	  I N / O U T	C O M P O N E N T S
+===============================================================================
+see also [1]-[6]
+
+CPU:	"standard_32"
+	32 bit NIOS for 50 MHz
+	256 Byte for register file (15 levels)
+	4 KByte instruction cache (2 bytes in each cache line)
+	4 KByte data cache (4 bytes in each cache line)
+	2 KByte On Chip ROM with GERMS boot monitor
+	no On Chip RAM
+	MSTEP multiplier
+	no Debug Core
+	On Chip Instrumentation (OCI) enabled
+
+	U-Boot CFG:	CFG_NIOS_CPU_CLK	     = 50000000
+			CFG_NIOS_CPU_ICACHE	     = 4096
+			CFG_NIOS_CPU_DCACHE	     = 4096
+			CFG_NIOS_CPU_REG_NUMS	     = 256
+			CFG_NIOS_CPU_MUL	     = 0
+			CFG_NIOS_CPU_MSTEP	     = 1
+			CFG_NIOS_CPU_DBG_CORE	     = 0
+
+OCI:	(TODO)
+
+IRQ:	 Nr.  | used by
+	------+--------------------------------------------------------
+	 16   | TIMER0	  |  CFG_NIOS_CPU_TIMER0_IRQ = 16
+	 25   | UART0	  |  CFG_NIOS_CPU_UART0_IRQ  = 25
+	 30   | LAN91C111 |  CFG_NIOS_CPU_LAN0_IRQ   = 30
+	 35   | PIO5	  |  CFG_NIOS_CPU_PIO5_IRQ   = 35
+	 40   | PIO0	  |  CFG_NIOS_CPU_PIO0_IRQ   = 40
+	 45   | ASMI	  |  CFG_NIOS_CPU_ASMI0_IRQ  = 45
+	 50   | TIMER1	  |  CFG_NIOS_CPU_TIMER1_IRQ = 50
+
+MEMORY:	 8 MByte Flash
+	 1 MByte SRAM
+	16 MByte SDRAM
+
+ASMI:	(TODO) <-- ASMI part is 4M bits
+
+Timer:	TIMER0: high priority programmable timer (IRQ16)
+	TIMER1: low priority fixed timer for 10 ms @ 50 MHz (IRQ50)
+
+	U-Boot CFG:	CFG_NIOS_CPU_TICK_TIMER	     = 1
+			CFG_NIOS_CPU_USER_TIMER	     = 0
+
+PIO:	 Nr.  | description
+	------+--------------------------------------------------------
+	 PIO0 | BUTTON:	    4 inputs for user push buttons (IRQ40)
+	 PIO1 | LCD:	   11 in/outputs for ASCII LCD
+	 PIO2 | LED:	    8 outputs for user LEDs
+	 PIO3 | SEVENSEG:  16 outputs for user seven segment display
+	 PIO4 | RECONF:	    1 in/output for . . . . . . . . . . . .
+	 PIO5 | CFPRESENT:  1 input for CF present event (IRQ35)
+	 PIO6 | CFPOWER:    1 output to controll CF power supply
+	 PIO7 | CFATASEL:   1 output to controll CF ATA card select
+
+	U-Boot CFG:	CFG_NIOS_CPU_BUTTON_PIO	     = 0
+			CFG_NIOS_CPU_LCD_PIO	     = 1
+			CFG_NIOS_CPU_LED_PIO	     = 2
+			CFG_NIOS_CPU_SEVENSEG_PIO    = 3
+			CFG_NIOS_CPU_RECONF_PIO	     = 4
+			CFG_NIOS_CPU_CFPRESENT_PIO   = 5
+			CFG_NIOS_CPU_CFPOWER_PIO     = 6
+			CFG_NIOS_CPU_CFATASEL_PIO    = 7
+
+UART:	UART0: fixed baudrate of 115200, fixed protocol 8N1,
+	       without handshake RTS/CTS (IRQ25)
+
+LAN:	SMsC LAN91C111 with:
+	  - offset 0x300 (LAN91C111_REGISTERS_OFFSET)
+	  - data bus width 32 bit (LAN91C111_DATA_BUS_WIDTH)
+
+IDE:	(TODO)
+
+
+===============================================================================
+	M E M O R Y   M A P
+===============================================================================
+
+- - - - - - - - - - -  external memory 2  - - - - - - - - - - - - - - - - - - -
+
+  0x02000000 ---32-----------16|15------------0-
+	       |	       :	       | \
+	       |	       :	       | |
+  SDRAM	       |	       :	       |  > CFG_NIOS_CPU_SRAM_SIZE
+	       |	       :	       | |   = 0x01000000
+	       |	       :	       | /
+  0x01000000 ---32-----------16|15------------0-    CFG_NIOS_CPU_SRAM_BASE
+	       |			       |
+	       :	      gap	       :
+	       :			       :
+
+- - - - - - - - - - -	  on chip i/o	  - - - - - - - - - - - - - - - - - - -
+
+	       :			       :
+	       :	      gap	       :
+	       |			       |
+  0x________ ---32-----------16|15------------0-
+	       |	       |	       | \
+	       :  (real size   :	       : |
+  ASMI i/f     :   and content :	       :  > 0x________
+  [5]	       :   unknown)    :	       : |
+	       |	       |	       | /
+  0x00920b00 ---32-----------16|15------------0-    CFG_NIOS_CPU_ASMI0
+	       |			       |
+	       :	      gap	       :
+	       |			       |
+  0x00920a80 ---32-----------16|15------------0-
+	       |	       |	       | \
+	       :  (real size   :	       : |
+  IDE i/f      :   and content :	       :  > 0x00000080
+  [6]	       :   unknown)    :	       : |
+	       |	       |	       | /
+  0x00920a00 ---32-----------16|15------------0-    CFG_NIOS_CPU_IDE0
+	       |		     (unused)  | \
+	+ 0x1c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x18 |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x14 |- - - - - - - - - - - - - - - -| |
+  TIMER1       |		     (unused)  | |
+  [3]	+ 0x10 |- - - - - - - - - - - - - - - -|  > 0x00000020
+	       |		     (unused)  | |
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x08 |- - - - - - - - - - - - - - - -| |
+	       |  control (1 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  status (2 bit)	 (rw)  | /
+  0x009209e0 ---32-----------16|15------------0-    CFG_NIOS_CPU_TIMER1
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO7	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (1 bit)		 (wo)  | /
+  0x009209d0 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO7
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO6	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (1 bit)		 (wo)  | /
+  0x009209c0 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO6
+	       |  edgecapture (1 bit)	 (rw)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO5	       |  interruptmask (1 bit)	 (rw)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (1 bit)		 (ro)  | /
+  0x009209b0 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO5
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO4	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |  direction (1 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (1 bit)		 (rw)  | /
+  0x009209a0 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO4
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO3	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (16 bit)		 (wo)  | /
+  0x00920990 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO3
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO2	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (8 bit)		 (wo)  | /
+  0x00920980 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO2
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO1	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |  direction (11 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (11 bit)		 (rw)  | /
+  0x00920970 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO1
+	       |  edgecapture (4 bit)	 (rw)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO0	       |  interruptmask (4 bit)	 (rw)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (4 bit)		 (ro)  | /
+  0x00920960 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO0
+	       |		     (unused)  | \
+	+ 0x1c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x18 |- - - - - - - - - - - - - - - -| |
+	       |  snaph (16 bit)	 (rw)  | |
+	+ 0x14 |- - - - - - - - - - - - - - - -| |
+  TIMER0       |  snapl (16 bit)	 (rw)  | |
+  [3]	+ 0x10 |- - - - - - - - - - - - - - - -|  > 0x00000020
+	       |  periodh (16 bit)	 (rw)  | |
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+	       |  periodl (16 bit)	 (rw)  | |
+	+ 0x08 |- - - - - - - - - - - - - - - -| |
+	       |  control (4 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  status (2 bit)	 (rw)  | /
+  0x00920940 ---32-----------16|15------------0-    CFG_NIOS_CPU_TIMER0
+	       |			       | \
+	       :	      gap	       :  > (space for UART1)
+	       |			       | /
+  0x00920920 ---32-----------16|15------------0-
+	       |		     (unused)  | \
+	+ 0x1c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x18 |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x14 |- - - - - - - - - - - - - - - -| |
+  UART0	       |		     (unused)  |  > 0x00000020
+  [2]	+ 0x10 |- - - - - - - - - - - - - - - -| |
+	       |  control (10 bit)	 (rw)  | |
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+	       |  status (10 bit)	 (rw)  | |
+	+ 0x08 |- - - - - - - - - - - - - - - -| |
+	       |  txdata (8 bit)	 (wo)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  rxdata (8 bit)	 (ro)  | /
+  0x00920900 ---32-----------16|15------------0-    CFG_NIOS_CPU_UART0
+
+- - - - - - - - - - -  on chip debugging  - - - - - - - - - - - - - - - - - - -
+
+  0x00920900 -----------------------------------
+	       |			       | \
+	       :  (real size		       : |
+  OCI Debug    :   and content		       :  > CFG_NIOS_CPU_OCI_SIZE
+	       :   unknown)		       : |   = 0x00000100
+	       |			       | /
+  0x00920800 -----------------------------------    CFG_NIOS_CPU_OCI_BASE
+
+- - - - - - - - - - -	on chip memory	  - - - - - - - - - - -
+
+  0x00920800 ---32-----------16|15------------0-
+	       |	       :	       | \
+	       |	       :	       | |
+  GERMS	       |	       :	       |  > CFG_NIOS_CPU_ROM_SIZE
+	       |	       :	       | |   = 0x00000800
+	       |	       :	       | /
+  0x00920000   |- - - - - - - - - - - - - - - -+- - CFG_NIOS_CPU_RST_VECT
+  0x00920000 ---32-----------16|15------------0-    CFG_NIOS_CPU_ROM_BASE
+
+- - - - - - - - - - -	 external i/o	  - - - - - - - - - - - - - - - - - - -
+
+  0x00920000 ---32-----------16|15------------0-
+	       |	      gap	       | \
+  0x00910310 --+-------------------------------| |
+	       |			       | |
+	       |  register bank (size = 0x10)  | |
+	       | +--------.---.---.---	       | |
+	       | | bank 0 \ 1 \ 2 \ 3 \	       | |
+	       | |---------------------------+ | |
+  LAN91C111    | | BANK	       | RESERVED    | | |
+	       | |- - - - - - -|- - - - - - -| |  > na_lan91c111_size
+	       | | RPCR	       | MIR	     | | |   = 0x00010000
+	       | |- - - - - - -|- - - - - - -| | |
+	       | | COUNTER     | RCR	     | | |
+	       | |- - - - - - -|- - - - - - -| | |
+	       | | EPH STATUS  | TCR	     | | |
+	       | +---------------------------+ | |
+  0x00910300 --+--LAN91C111_REGISTERS_OFFSET---| |
+	       |	      gap	       | /
+  0x00910000 ---32-----------16|15------------0-    CFG_NIOS_CPU_LAN0_BASE
+	       |			       |
+	       :	      gap	       :
+	       :			       :
+
+- - - - - - - - - - -  external memory 1  - - - - - - - - - - - - - - - - - - -
+
+	       :			       :
+	       :	      gap	       :
+	       |			       |
+  0x00900000 ---32-----------16|15------------0-
+  0x00900000 --+32-----------16|15------------0+
+	       |	       :	       | \ \
+	       |	       :	       | | |
+	       |	       :	       | |  > CFG_NIOS_CPU_VEC_SIZE
+	       |	       :	       | | |   = 0x00000100
+	       |	       :	       | | /
+  0x008fff00   |- - - - - - - -:- - - - - - - -+-|- CFG_NIOS_CPU_VEC_BASE
+  0x008fff00   |- - - - - - - -:- - - - - - - -+-|- CFG_NIOS_CPU_STACK
+	       |	       :	       | | \
+	       |	       :	       | | |
+	       |	       :	       | |  > stack area
+	       |	       :	       | | |
+	       |	       :	       | | V
+	       |	       :	       | |
+  SRAM	       |	       :	       |  > CFG_NIOS_CPU_SRAM_SIZE
+	       |	       :	       | |   = 0x00100000
+	       |	       :	       | /
+  0x00800000 ---32-----------16|15------------0-    CFG_NIOS_CPU_SRAM_BASE
+  0x00800000 ---8-------------4|3-------------0-
+	       |  sector 127		       | \
+    + 0x7f0000 |- - - - - - - - - - - - - - - -| |
+	       |	       :	       | |
+  Flash	       |-   -	-   -  :  -   -	  -   -|  > CFG_NIOS_CPU_FLASH_SIZE
+	       |  sector 1     :	       | |   = 0x00800000
+    + 0x010000 |- - - - - - - - - - - - - - - -| |
+	       |  sector 0 (size = 0x10000)    | /
+  0x00000000 ---8-------------4|3-------------0-    CFG_NIOS_CPU_FLASH_BASE
+
+
+===============================================================================
+	F L A S H   M E M O R Y	  A L L O C A T I O N
+===============================================================================
+
+  0x00800000 ---8-------------4|3-------------0-
+	       |	       :	       | \
+  SAFE	       |	       :	       |  > 1 MByte
+  FPGA conf.   |	       :	       | /    (NOT usable by software)
+  0x00700000 --+- - - - - - - -:- - - - - - - -+-
+	       |	       :	       | \
+  USER	       |	       :	       |  > 1 MByte
+  FPGA conf.   |	       :	       | /    (NOT usable by software)
+  0x00600000 --+- - - - - - - -:- - - - - - - -+-
+	       |	       :	       | \
+	       |	       :	       | |
+  WEB pages    |	       :	       |  > 2 MByte
+	       |	       :	       | |    (provisory usable)
+	       |	       :	       | /
+  0x00400000 --+- - - - - - - -:- - - - - - - -+-
+	       |	       :	       | \
+	       |	       :	       | |
+	       |	       :	       | |
+	       |	       :	       |  > 4 MByte free for use
+	       |	       :	       | |
+  0x00040000 --+- - - - - - - -:- - - - - - - -+-|- u-boot _start()
+	       |	       :	       | /
+  0x00000000 ---8-------------4|3-------------0-
+
+
+===============================================================================
+	R E F E R E N C E S
+===============================================================================
+[1]	http://www.altera.com/literature/manual/mnl_nios_board_cyclone_1c20.pdf
+[2]	http://www.altera.com/literature/ds/ds_nios_uart.pdf
+[3]	http://www.altera.com/literature/ds/ds_nios_timer.pdf
+[4]	http://www.altera.com/literature/ds/ds_nios_pio.pdf
+[5]	http://www.altera.com/literature/ds/ds_nios_asmi.pdf
+	http://www.altera.com/literature/wp/wp_epcs_cyc.pdf
+[6]	http://www.opencores.org/projects/ata/
+	http://www.t13.org/index.html
+
+
+===============================================================================
+Stephan Linz <linz@li-pro.net>
diff --git a/doc/README.dk1s10_std32 b/doc/README.dk1s10_std32
new file mode 100644
index 0000000..33ae15e
--- /dev/null
+++ b/doc/README.dk1s10_std32
@@ -0,0 +1,353 @@
+
+TODO:	specify IDE i/f
+	specify OCI
+
+
+===============================================================================
+	C P U ,	  M E M O R Y ,	  I N / O U T	C O M P O N E N T S
+===============================================================================
+see also [1]-[5]
+
+CPU:	"standard_32"
+	32 bit NIOS for 50 MHz
+	256 Byte for register file (15 levels)
+	4 KByte instruction cache (4 bytes in each cache line)
+	4 KByte data cache (4 bytes in each cache line)
+	2 KByte On Chip ROM with GERMS boot monitor
+	64 KByte On Chip RAM
+	MSTEP multiplier
+	no Debug Core
+	On Chip Instrumentation (OCI) enabled
+
+	U-Boot CFG:	CFG_NIOS_CPU_CLK	     = 50000000
+			CFG_NIOS_CPU_ICACHE	     = 4096
+			CFG_NIOS_CPU_DCACHE	     = 4096
+			CFG_NIOS_CPU_REG_NUMS	     = 256
+			CFG_NIOS_CPU_MUL	     = 0
+			CFG_NIOS_CPU_MSTEP	     = 1
+			CFG_NIOS_CPU_DBG_CORE	     = 0
+
+OCI:	(TODO)
+
+IRQ:	 Nr.  | used by
+	------+--------------------------------------------------------
+	 16   | TIMER0	  |  CFG_NIOS_CPU_TIMER0_IRQ = 16
+	 25   | UART0	  |  CFG_NIOS_CPU_UART0_IRQ  = 25
+	 30   | LAN91C111 |  CFG_NIOS_CPU_LAN0_IRQ   = 30
+	 35   | PIO5	  |  CFG_NIOS_CPU_PIO5_IRQ   = 35
+	 40   | PIO0	  |  CFG_NIOS_CPU_PIO0_IRQ   = 40
+	 50   | TIMER1	  |  CFG_NIOS_CPU_TIMER1_IRQ = 50
+
+MEMORY:	 8 MByte Flash
+	 1 MByte SRAM
+	16 MByte SDRAM
+
+Timer:	TIMER0: high priority programmable timer (IRQ16)
+	TIMER1: low priority fixed timer for 10 ms @ 50 MHz (IRQ50)
+
+	U-Boot CFG:	CFG_NIOS_CPU_TICK_TIMER	     = 1
+			CFG_NIOS_CPU_USER_TIMER	     = 0
+
+PIO:	 Nr.  | description
+	------+--------------------------------------------------------
+	 PIO0 | BUTTON:	    4 inputs for user push buttons (IRQ40)
+	 PIO1 | LCD:	   11 in/outputs for ASCII LCD
+	 PIO2 | LED:	    8 outputs for user LEDs
+	 PIO3 | SEVENSEG:  16 outputs for user seven segment display
+	 PIO4 | RECONF:	    1 in/output for . . . . . . . . . . . .
+	 PIO5 | CFPRESENT:  1 input for CF present event (IRQ35)
+	 PIO6 | CFPOWER:    1 output to controll CF power supply
+	 PIO7 | CFATASEL:   1 output to controll CF ATA card select
+
+	U-Boot CFG:	CFG_NIOS_CPU_BUTTON_PIO	     = 0
+			CFG_NIOS_CPU_LCD_PIO	     = 1
+			CFG_NIOS_CPU_LED_PIO	     = 2
+			CFG_NIOS_CPU_SEVENSEG_PIO    = 3
+			CFG_NIOS_CPU_RECONF_PIO	     = 4
+			CFG_NIOS_CPU_CFPRESENT_PIO   = 5
+			CFG_NIOS_CPU_CFPOWER_PIO     = 6
+			CFG_NIOS_CPU_CFATASEL_PIO    = 7
+
+UART:	UART0: fixed baudrate of 115200, fixed protocol 8N1,
+	       without handshake RTS/CTS (IRQ25)
+
+LAN:	SMsC LAN91C111 with:
+	  - offset 0x300 (LAN91C111_REGISTERS_OFFSET)
+	  - data bus width 32 bit (LAN91C111_DATA_BUS_WIDTH)
+
+IDE:	(TODO)
+
+
+===============================================================================
+	M E M O R Y   M A P
+===============================================================================
+
+- - - - - - - - - - -  external memory 2  - - - - - - - - - - - - - - - - - - -
+
+  0x02000000 ---32-----------16|15------------0-
+	       |	       :	       | \
+	       |	       :	       | |
+  SDRAM	       |	       :	       |  > CFG_NIOS_CPU_SRAM_SIZE
+	       |	       :	       | |   = 0x01000000
+	       |	       :	       | /
+  0x01000000 ---32-----------16|15------------0-    CFG_NIOS_CPU_SRAM_BASE
+	       |			       |
+	       :	      gap	       :
+	       :			       :
+
+- - - - - - - - - - -	  on chip i/o	  - - - - - - - - - - - - - - - - - - -
+
+	       :			       :
+	       :	      gap	       :
+	       |			       |
+  0x00920a80 ---32-----------16|15------------0-
+	       |	       |	       | \
+	       :  (real size   :	       : |
+  IDE i/f      :   and content :	       :  > 0x00000080
+  [5]	       :   unknown)    :	       : |
+	       |	       |	       | /
+  0x00920a00 ---32-----------16|15------------0-    CFG_NIOS_CPU_IDE0
+	       |		     (unused)  | \
+	+ 0x1c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x18 |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x14 |- - - - - - - - - - - - - - - -| |
+  TIMER1       |		     (unused)  | |
+  [3]	+ 0x10 |- - - - - - - - - - - - - - - -|  > 0x00000020
+	       |		     (unused)  | |
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x08 |- - - - - - - - - - - - - - - -| |
+	       |  control (1 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  status (2 bit)	 (rw)  | /
+  0x009209e0 ---32-----------16|15------------0-    CFG_NIOS_CPU_TIMER1
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO7	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (1 bit)		 (wo)  | /
+  0x009209d0 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO7
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO6	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (1 bit)		 (wo)  | /
+  0x009209c0 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO6
+	       |  edgecapture (1 bit)	 (rw)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO5	       |  interruptmask (1 bit)	 (rw)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (1 bit)		 (ro)  | /
+  0x009209b0 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO5
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO4	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |  direction (1 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (1 bit)		 (rw)  | /
+  0x009209a0 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO4
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO3	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (16 bit)		 (wo)  | /
+  0x00920990 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO3
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO2	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (8 bit)		 (wo)  | /
+  0x00920980 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO2
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO1	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |  direction (11 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (11 bit)		 (rw)  | /
+  0x00920970 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO1
+	       |  edgecapture (4 bit)	 (rw)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO0	       |  interruptmask (4 bit)	 (rw)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (4 bit)		 (ro)  | /
+  0x00920960 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO0
+	       |		     (unused)  | \
+	+ 0x1c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x18 |- - - - - - - - - - - - - - - -| |
+	       |  snaph (16 bit)	 (rw)  | |
+	+ 0x14 |- - - - - - - - - - - - - - - -| |
+  TIMER0       |  snapl (16 bit)	 (rw)  | |
+  [3]	+ 0x10 |- - - - - - - - - - - - - - - -|  > 0x00000020
+	       |  periodh (16 bit)	 (rw)  | |
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+	       |  periodl (16 bit)	 (rw)  | |
+	+ 0x08 |- - - - - - - - - - - - - - - -| |
+	       |  control (4 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  status (2 bit)	 (rw)  | /
+  0x00920940 ---32-----------16|15------------0-    CFG_NIOS_CPU_TIMER0
+	       |			       | \
+	       :	      gap	       :  > (space for UART1)
+	       |			       | /
+  0x00920920 ---32-----------16|15------------0-
+	       |		     (unused)  | \
+	+ 0x1c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x18 |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x14 |- - - - - - - - - - - - - - - -| |
+  UART0	       |		     (unused)  |  > 0x00000020
+  [2]	+ 0x10 |- - - - - - - - - - - - - - - -| |
+	       |  control (10 bit)	 (rw)  | |
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+	       |  status (10 bit)	 (rw)  | |
+	+ 0x08 |- - - - - - - - - - - - - - - -| |
+	       |  txdata (8 bit)	 (wo)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  rxdata (8 bit)	 (ro)  | /
+  0x00920900 ---32-----------16|15------------0-    CFG_NIOS_CPU_UART0
+
+- - - - - - - - - - -  on chip debugging  - - - - - - - - - - - - - - - - - - -
+
+  0x00920900 -----------------------------------
+	       |			       | \
+	       :  (real size		       : |
+  OCI Debug    :   and content		       :  > CFG_NIOS_CPU_OCI_SIZE
+	       :   unknown)		       : |   = 0x00000100
+	       |			       | /
+  0x00920800 -----------------------------------    CFG_NIOS_CPU_OCI_BASE
+
+- - - - - - - - - - -  on chip memory 2	  - - - - - - - - - - -
+
+  0x00920800 ---32-----------16|15------------0-
+	       |	       :	       | \
+	       |	       :	       | |
+  GERMS	       |	       :	       |  > CFG_NIOS_CPU_ROM_SIZE
+	       |	       :	       | |   = 0x00000800
+	       |	       :	       | /
+  0x00920000   |- - - - - - - - - - - - - - - -+- - CFG_NIOS_CPU_RST_VECT
+  0x00920000 ---32-----------16|15------------0-    CFG_NIOS_CPU_ROM_BASE
+
+- - - - - - - - - - -	 external i/o	  - - - - - - - - - - - - - - - - - - -
+
+  0x00920000 ---32-----------16|15------------0-
+	       |	      gap	       | \
+  0x00910310 --+-------------------------------| |
+	       |			       | |
+	       |  register bank (size = 0x10)  | |
+	       | +--------.---.---.---	       | |
+	       | | bank 0 \ 1 \ 2 \ 3 \	       | |
+	       | |---------------------------+ | |
+  LAN91C111    | | BANK	       | RESERVED    | | |
+	       | |- - - - - - -|- - - - - - -| |  > na_lan91c111_size
+	       | | RPCR	       | MIR	     | | |   = 0x00010000
+	       | |- - - - - - -|- - - - - - -| | |
+	       | | COUNTER     | RCR	     | | |
+	       | |- - - - - - -|- - - - - - -| | |
+	       | | EPH STATUS  | TCR	     | | |
+	       | +---------------------------+ | |
+  0x00910300 --+--LAN91C111_REGISTERS_OFFSET---| |
+	       |	      gap	       | /
+  0x00910000 ---32-----------16|15------------0-    CFG_NIOS_CPU_LAN0_BASE
+
+- - - - - - - - - - -  on chip memory 1	  - - - - - - - - - - -
+
+  0x00910000 ---32-----------16|15------------0-
+	       |	       :	       | \
+	       |	       :	       | |
+  onchip RAM   |	       :	       |  > CFG_NIOS_CPU_RAM_SIZE
+	       |	       :	       | |   = 0x00010000
+	       |	       :	       | /
+  0x00900000 ---32-----------16|15------------0-    CFG_NIOS_CPU_RAM_BASE
+
+- - - - - - - - - - -  external memory 1  - - - - - - - - - - - - - - - - - - -
+
+  0x00900000 ---32-----------16|15------------0-
+  0x00900000 --+32-----------16|15------------0+
+	       |	       .	       | \ \
+	       |	       .	       | | |
+	       |	       .	       | |  > CFG_NIOS_CPU_VEC_SIZE
+	       |	       .	       | | |   = 0x00000100
+	       |	       .	       | | /
+  0x008fff00   |- - - - - - - - - - - - - - - -+-|- CFG_NIOS_CPU_VEC_BASE
+  0x008fff00   |- - - - - - - - - - - - - - - -+-|- CFG_NIOS_CPU_STACK
+	       |	       .	       | | \
+	       |	       .	       | | |
+	       |	       .	       | |  > stack area
+	       |	       .	       | | |
+	       |	       .	       | | V
+	       |	       .	       | |
+  SRAM	       |	       .	       |  > CFG_NIOS_CPU_SRAM_SIZE
+	       |	       .	       | |   = 0x00100000
+	       |			       | /
+  0x00800000 ---32-----------16|15------------0-    CFG_NIOS_CPU_SRAM_BASE
+  0x00800000 ---8-------------4|3-------------0-
+	       |  sector 127		       | \
+    + 0x7f0000 |- - - - - - - - - - - - - - - -| |
+	       |	       :	       | |
+  Flash	       |-   -	-   -  :  -   -	  -   -|  > CFG_NIOS_CPU_FLASH_SIZE
+	       |  sector 1     :	       | |   = 0x00800000
+    + 0x010000 |- - - - - - - - - - - - - - - -| |
+	       |  sector 0 (size = 0x10000)    | /
+  0x00000000 ---8-------------4|3-------------0-    CFG_NIOS_CPU_FLASH_BASE
+
+
+===============================================================================
+	F L A S H   M E M O R Y	  A L L O C A T I O N
+===============================================================================
+
+  0x00800000 ---8-------------4|3-------------0-
+	       |	       :	       | \
+  SAFE	       |	       :	       |  > 1 MByte
+  FPGA conf.   |	       :	       | /    (NOT usable by software)
+  0x00700000 --+- - - - - - - -:- - - - - - - -+-
+	       |	       :	       | \
+  USER	       |	       :	       |  > 1 MByte
+  FPGA conf.   |	       :	       | /    (NOT usable by software)
+  0x00600000 --+- - - - - - - -:- - - - - - - -+-
+	       |	       :	       | \
+	       |	       :	       | |
+  WEB pages    |	       :	       |  > 2 MByte
+	       |	       :	       | |    (provisory usable)
+	       |	       :	       | /
+  0x00400000 --+- - - - - - - -:- - - - - - - -+-
+	       |	       :	       | \
+	       |	       :	       | |
+	       |	       :	       | |
+	       |	       :	       |  > 4 MByte free for use
+	       |	       :	       | |
+  0x00040000 --+- - - - - - - -:- - - - - - - -+-|- u-boot _start()
+	       |	       :	       | /
+  0x00000000 ---8-------------4|3-------------0-
+
+
+===============================================================================
+	R E F E R E N C E S
+===============================================================================
+[1]	http://www.altera.com/literature/manual/mnl_nios_board_stratix_1s10.pdf
+[2]	http://www.altera.com/literature/ds/ds_nios_uart.pdf
+[3]	http://www.altera.com/literature/ds/ds_nios_timer.pdf
+[4]	http://www.altera.com/literature/ds/ds_nios_pio.pdf
+[5]	http://www.opencores.org/projects/ata/
+	http://www.t13.org/index.html
+
+
+===============================================================================
+Stephan Linz <linz@li-pro.net>
diff --git a/doc/README.dk1s40_std32 b/doc/README.dk1s40_std32
new file mode 100644
index 0000000..08c8244
--- /dev/null
+++ b/doc/README.dk1s40_std32
@@ -0,0 +1,355 @@
+
+TODO:	specify IDE i/f
+	specify OCI
+
+
+===============================================================================
+	C P U ,	  M E M O R Y ,	  I N / O U T	C O M P O N E N T S
+===============================================================================
+see also [1]-[5]
+
+CPU:	"standard_32"
+	32 bit NIOS for 50 MHz
+	256 Byte for register file (15 levels)
+	4 KByte instruction cache (4 bytes in each cache line)
+	4 KByte data cache (4 bytes in each cache line)
+	2 KByte On Chip ROM with GERMS boot monitor
+	64 KByte On Chip RAM
+	MSTEP multiplier
+	no Debug Core
+	On Chip Instrumentation (OCI) enabled
+
+	U-Boot CFG:	CFG_NIOS_CPU_CLK	     = 50000000
+			CFG_NIOS_CPU_ICACHE	     = 4096
+			CFG_NIOS_CPU_DCACHE	     = 4096
+			CFG_NIOS_CPU_REG_NUMS	     = 256
+			CFG_NIOS_CPU_MUL	     = 0
+			CFG_NIOS_CPU_MSTEP	     = 1
+			CFG_NIOS_CPU_DBG_CORE	     = 0
+
+OCI:	(TODO)
+
+IRQ:	 Nr.  | used by
+	------+--------------------------------------------------------
+	 16   | TIMER0	  |  CFG_NIOS_CPU_TIMER0_IRQ = 16
+	 25   | UART0	  |  CFG_NIOS_CPU_UART0_IRQ  = 25
+	 30   | LAN91C111 |  CFG_NIOS_CPU_LAN0_IRQ   = 30
+	 35   | PIO5	  |  CFG_NIOS_CPU_PIO5_IRQ   = 35
+	 40   | PIO0	  |  CFG_NIOS_CPU_PIO0_IRQ   = 40
+	 50   | TIMER1	  |  CFG_NIOS_CPU_TIMER1_IRQ = 50
+
+MEMORY:	 8 MByte Flash
+	 1 MByte SRAM
+	16 MByte SDRAM
+
+Timer:	TIMER0: high priority programmable timer (IRQ16)
+	TIMER1: low priority fixed timer for 10 ms @ 50 MHz (IRQ50)
+
+	U-Boot CFG:	CFG_NIOS_CPU_TICK_TIMER	     = 1
+			CFG_NIOS_CPU_USER_TIMER	     = 0
+
+PIO:	 Nr.  | description
+	------+--------------------------------------------------------
+	 PIO0 | BUTTON:	    4 inputs for user push buttons (IRQ40)
+	 PIO1 | LCD:	   11 in/outputs for ASCII LCD
+	 PIO2 | LED:	    8 outputs for user LEDs
+	 PIO3 | SEVENSEG:  16 outputs for user seven segment display
+	 PIO4 | RECONF:	    1 in/output for . . . . . . . . . . . .
+	 PIO5 | CFPRESENT:  1 input for CF present event (IRQ35)
+	 PIO6 | CFPOWER:    1 output to controll CF power supply
+	 PIO7 | CFATASEL:   1 output to controll CF ATA card select
+
+	U-Boot CFG:	CFG_NIOS_CPU_BUTTON_PIO	     = 0
+			CFG_NIOS_CPU_LCD_PIO	     = 1
+			CFG_NIOS_CPU_LED_PIO	     = 2
+			CFG_NIOS_CPU_SEVENSEG_PIO    = 3
+			CFG_NIOS_CPU_RECONF_PIO	     = 4
+			CFG_NIOS_CPU_CFPRESENT_PIO   = 5
+			CFG_NIOS_CPU_CFPOWER_PIO     = 6
+			CFG_NIOS_CPU_CFATASEL_PIO    = 7
+
+UART:	UART0: fixed baudrate of 115200, fixed protocol 8N1,
+	       without handshake RTS/CTS (IRQ25)
+
+LAN:	SMsC LAN91C111 with:
+	  - offset 0x300 (LAN91C111_REGISTERS_OFFSET)
+	  - data bus width 32 bit (LAN91C111_DATA_BUS_WIDTH)
+
+IDE:	(TODO)
+
+
+===============================================================================
+	M E M O R Y   M A P
+===============================================================================
+
+- - - - - - - - - - -  external memory 2  - - - - - - - - - - - - - - - - - - -
+
+  0x02000000 ---32-----------16|15------------0-
+	       |	       :	       | \
+	       |	       :	       | |
+  SDRAM	       |	       :	       |  > CFG_NIOS_CPU_SRAM_SIZE
+	       |	       :	       | |   = 0x01000000
+	       |	       :	       | /
+  0x01000000 ---32-----------16|15------------0-    CFG_NIOS_CPU_SRAM_BASE
+	       |			       |
+	       :	      gap	       :
+	       :			       :
+
+- - - - - - - - - - -	  on chip i/o	  - - - - - - - - - - - - - - - - - - -
+
+	       :			       :
+	       :	      gap	       :
+	       |			       |
+  0x00920a80 ---32-----------16|15------------0-
+	       |	       |	       | \
+	       :  (real size   :	       : |
+  IDE i/f      :   and content :	       :  > 0x00000080
+  [5]	       :   unknown)    :	       : |
+	       |	       |	       | /
+  0x00920a00 ---32-----------16|15------------0-    CFG_NIOS_CPU_IDE0
+	       |		     (unused)  | \
+	+ 0x1c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x18 |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x14 |- - - - - - - - - - - - - - - -| |
+  TIMER1       |		     (unused)  | |
+  [3]	+ 0x10 |- - - - - - - - - - - - - - - -|  > 0x00000020
+	       |		     (unused)  | |
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x08 |- - - - - - - - - - - - - - - -| |
+	       |  control (1 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  status (2 bit)	 (rw)  | /
+  0x009209e0 ---32-----------16|15------------0-    CFG_NIOS_CPU_TIMER1
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO7	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (1 bit)		 (wo)  | /
+  0x009209d0 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO7
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO6	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (1 bit)		 (wo)  | /
+  0x009209c0 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO6
+	       |  edgecapture (1 bit)	 (rw)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO5	       |  interruptmask (1 bit)	 (rw)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (1 bit)		 (ro)  | /
+  0x009209b0 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO5
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO4	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |  direction (1 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (1 bit)		 (rw)  | /
+  0x009209a0 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO4
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO3	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (16 bit)		 (wo)  | /
+  0x00920990 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO3
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO2	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (8 bit)		 (wo)  | /
+  0x00920980 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO2
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO1	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |  direction (11 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (11 bit)		 (rw)  | /
+  0x00920970 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO1
+	       |  edgecapture (4 bit)	 (rw)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO0	       |  interruptmask (4 bit)	 (rw)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (4 bit)		 (ro)  | /
+  0x00920960 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO0
+	       |		     (unused)  | \
+	+ 0x1c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x18 |- - - - - - - - - - - - - - - -| |
+	       |  snaph (16 bit)	 (rw)  | |
+	+ 0x14 |- - - - - - - - - - - - - - - -| |
+  TIMER0       |  snapl (16 bit)	 (rw)  | |
+  [3]	+ 0x10 |- - - - - - - - - - - - - - - -|  > 0x00000020
+	       |  periodh (16 bit)	 (rw)  | |
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+	       |  periodl (16 bit)	 (rw)  | |
+	+ 0x08 |- - - - - - - - - - - - - - - -| |
+	       |  control (4 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  status (2 bit)	 (rw)  | /
+  0x00920940 ---32-----------16|15------------0-    CFG_NIOS_CPU_TIMER0
+	       |			       | \
+	       :	      gap	       :  > (space for UART1)
+	       |			       | /
+  0x00920920 ---32-----------16|15------------0-
+	       |		     (unused)  | \
+	+ 0x1c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x18 |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x14 |- - - - - - - - - - - - - - - -| |
+  UART0	       |		     (unused)  |  > 0x00000020
+  [2]	+ 0x10 |- - - - - - - - - - - - - - - -| |
+	       |  control (10 bit)	 (rw)  | |
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+	       |  status (10 bit)	 (rw)  | |
+	+ 0x08 |- - - - - - - - - - - - - - - -| |
+	       |  txdata (8 bit)	 (wo)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  rxdata (8 bit)	 (ro)  | /
+  0x00920900 ---32-----------16|15------------0-    CFG_NIOS_CPU_UART0
+
+- - - - - - - - - - -  on chip debugging  - - - - - - - - - - - - - - - - - - -
+
+  0x00920900 -----------------------------------
+	       |			       | \
+	       :  (real size		       : |
+  OCI Debug    :   and content		       :  > CFG_NIOS_CPU_OCI_SIZE
+	       :   unknown)		       : |   = 0x00000100
+	       |			       | /
+  0x00920800 -----------------------------------    CFG_NIOS_CPU_OCI_BASE
+
+- - - - - - - - - - -  on chip memory 2	  - - - - - - - - - - -
+
+  0x00920800 ---32-----------16|15------------0-
+	       |	       :	       | \
+	       |	       :	       | |
+  GERMS	       |	       :	       |  > CFG_NIOS_CPU_ROM_SIZE
+	       |	       :	       | |   = 0x00000800
+	       |	       :	       | /
+  0x00920000   |- - - - - - - - - - - - - - - -+- - CFG_NIOS_CPU_RST_VECT
+  0x00920000 ---32-----------16|15------------0-    CFG_NIOS_CPU_ROM_BASE
+
+- - - - - - - - - - -	 external i/o	  - - - - - - - - - - - - - - - - - - -
+
+  0x00920000 ---32-----------16|15------------0-
+	       |	      gap	       | \
+  0x00910310 --+-------------------------------| |
+	       |			       | |
+	       |  register bank (size = 0x10)  | |
+	       | +--------.---.---.---	       | |
+	       | | bank 0 \ 1 \ 2 \ 3 \	       | |
+	       | |---------------------------+ | |
+  LAN91C111    | | BANK	       | RESERVED    | | |
+	       | |- - - - - - -|- - - - - - -| |  > na_lan91c111_size
+	       | | RPCR	       | MIR	     | | |   = 0x00010000
+	       | |- - - - - - -|- - - - - - -| | |
+	       | | COUNTER     | RCR	     | | |
+	       | |- - - - - - -|- - - - - - -| | |
+	       | | EPH STATUS  | TCR	     | | |
+	       | +---------------------------+ | |
+  0x00910300 --+--LAN91C111_REGISTERS_OFFSET---| |
+	       |	      gap	       | /
+  0x00910000 ---32-----------16|15------------0-    CFG_NIOS_CPU_LAN0_BASE
+
+- - - - - - - - - - -  on chip memory 1	  - - - - - - - - - - -
+
+  0x00910000 ---32-----------16|15------------0-
+	       |	       :	       | \
+	       |	       :	       | |
+  onchip RAM   |	       :	       |  > CFG_NIOS_CPU_RAM_SIZE
+	       |	       :	       | |   = 0x00010000
+	       |	       :	       | /
+  0x00900000 ---32-----------16|15------------0-    CFG_NIOS_CPU_RAM_BASE
+
+- - - - - - - - - - -  external memory 1  - - - - - - - - - - - - - - - - - - -
+
+  0x00900000 ---32-----------16|15------------0-
+  0x00900000 --+32-----------16|15------------0+
+	       |	       .	       | \ \
+	       |	       .	       | | |
+	       |	       .	       | |  > CFG_NIOS_CPU_VEC_SIZE
+	       |	       .	       | | |   = 0x00000100
+	       |	       .	       | | /
+  0x008fff00   |- - - - - - - - - - - - - - - -+-|- CFG_NIOS_CPU_VEC_BASE
+  0x008fff00   |- - - - - - - - - - - - - - - -+-|- CFG_NIOS_CPU_STACK
+	       |	       .	       | | \
+	       |	       .	       | | |
+	       |	       .	       | |  > stack area
+	       |	       .	       | | |
+	       |	       .	       | | V
+	       |	       .	       | |
+  SRAM	       |	       .	       |  > CFG_NIOS_CPU_SRAM_SIZE
+	       |	       .	       | |   = 0x00100000
+	       |			       | /
+  0x00800000 ---32-----------16|15------------0-    CFG_NIOS_CPU_SRAM_BASE
+  0x00800000 ---8-------------4|3-------------0-
+	       |  sector 127		       | \
+    + 0x7f0000 |- - - - - - - - - - - - - - - -| |
+	       |	       :	       | |
+  Flash	       |-   -	-   -  :  -   -	  -   -|  > CFG_NIOS_CPU_FLASH_SIZE
+	       |  sector 1     :	       | |   = 0x00800000
+    + 0x010000 |- - - - - - - - - - - - - - - -| |
+	       |  sector 0 (size = 0x10000)    | /
+  0x00000000 ---8-------------4|3-------------0-    CFG_NIOS_CPU_FLASH_BASE
+
+
+===============================================================================
+	F L A S H   M E M O R Y	  A L L O C A T I O N
+===============================================================================
+
+  0x00800000 ---8-------------4|3-------------0-
+	       |	       :	       | \
+	       |	       :	       | |
+  SAFE	       |	       :	       |  > 2 MByte
+  FPGA conf.   |	       :	       | |    (NOT usable by software)
+	       |	       :	       | /
+  0x00600000 --+- - - - - - - -:- - - - - - - -+-
+	       |	       :	       | \
+	       |	       :	       | |
+  USER	       |	       :	       |  > 2 MByte
+  FPGA conf.   |	       :	       | |    (NOT usable by software)
+	       |	       :	       | /
+  0x00400000 --+- - - - - - - -:- - - - - - - -+-
+	       |	       :	       | \
+	       |	       :	       | |
+  WEB pages    |	       :	       |  > 2 MByte
+	       |	       :	       | |    (provisory usable)
+	       |	       :	       | /
+  0x00200000 --+- - - - - - - -:- - - - - - - -+-
+	       |	       :	       | \
+	       |	       :	       | |
+	       |	       :	       |  > 2 MByte free for use
+  0x00040000 --+- - - - - - - -:- - - - - - - -+-|- u-boot _start()
+	       |	       :	       | /
+  0x00000000 ---8-------------4|3-------------0-
+
+
+===============================================================================
+	R E F E R E N C E S
+===============================================================================
+[1]	http://www.altera.com/literature/manual/mnl_nios_board_stratix_1s40.pdf
+[2]	http://www.altera.com/literature/ds/ds_nios_uart.pdf
+[3]	http://www.altera.com/literature/ds/ds_nios_timer.pdf
+[4]	http://www.altera.com/literature/ds/ds_nios_pio.pdf
+[5]	http://www.opencores.org/projects/ata/
+	http://www.t13.org/index.html
+
+
+===============================================================================
+Stephan Linz <linz@li-pro.net>
diff --git a/doc/README.dk20k200_std32 b/doc/README.dk20k200_std32
new file mode 100644
index 0000000..2c2b1d6
--- /dev/null
+++ b/doc/README.dk20k200_std32
@@ -0,0 +1,242 @@
+
+===============================================================================
+	C P U ,	  M E M O R Y ,	  I N / O U T	C O M P O N E N T S
+===============================================================================
+see also [1]-[4]
+
+CPU:	"standard_32"
+	32 bit NIOS for 33.333 MHz (nasys_clock_freq = 33333000)
+	256 Byte for register file (15 levels)
+	no instruction cache
+	no data cache
+	1 KByte On Chip ROM with GERMS boot monitor
+	no On Chip RAM
+	MSTEP multiplier
+	no Debug Core
+	no On Chip Instrumentation (OCI) enabled
+
+	U-Boot CFG:	CFG_NIOS_CPU_CLK	     = 50000000
+			CFG_NIOS_CPU_ICACHE	     = 0
+			CFG_NIOS_CPU_DCACHE	     = 0
+			CFG_NIOS_CPU_REG_NUMS	     = 256
+			CFG_NIOS_CPU_MUL	     = 0
+			CFG_NIOS_CPU_MSTEP	     = 1
+			CFG_NIOS_CPU_DBG_CORE	     = 0
+
+IRQ:	 Nr.  | used by
+	------+--------------------------------------------------------
+	 25   | TIMER0	  |  CFG_NIOS_CPU_TIMER0_IRQ = 25
+	 26   | UART0	  |  CFG_NIOS_CPU_UART0_IRQ  = 26
+	 27   | PIO2	  |  CFG_NIOS_CPU_PIO2_IRQ   = 27
+	 28   | UART1	  |  CFG_NIOS_CPU_UART1_IRQ  = 28    (debug)
+
+MEMORY:	  1 MByte Flash
+	256 KByte SRAM
+	(SDRAM with standard SODIMM only)
+
+Timer:	TIMER0: high priority programmable timer (IRQ25)
+
+	U-Boot CFG:	CFG_NIOS_CPU_TICK_TIMER	     = 0
+
+PIO:	 Nr.  | description
+	------+--------------------------------------------------------
+	 PIO0 | SEVENSEG:  16 outputs for user seven segment display
+	 PIO1 | LED:	    8 outputs for user LEDs
+	 PIO2 | BUTTON:	    4 inputs for user push buttons (IRQ27)
+	 PIO3 | LCD:	   11 in/outputs for ASCII LCD
+
+	U-Boot CFG:	CFG_NIOS_CPU_SEVENSEG_PIO    = 0
+			CFG_NIOS_CPU_LED_PIO	     = 1
+			CFG_NIOS_CPU_BUTTON_PIO	     = 2
+			CFG_NIOS_CPU_LCD_PIO	     = 3
+
+UART:	UART0: fixed baudrate of 115200, fixed protocol 8N2,
+	       without handshake RTS/CTS (IRQ26)
+	UART1: fixed baudrate of 115200, fixed protocol 8N1,
+	       without handshake RTS/CTS (IRQ28)
+
+
+===============================================================================
+	M E M O R Y   M A P
+===============================================================================
+
+- - - - - - - - - - -	external memory	  - - - - - - - - - - - - - - - - - - -
+
+  0x00200000 ---15------------8|7-------------0-
+	       |  sector 18		       | \
+    + 0x0f0000 |- - - - - - - - - - - - - - - -| |
+	       |	       :	       | |
+  Flash	       |-   -	-   -  :  -   -	  -   -| |
+	       |  sector 5     :	       | |
+    + 0x020000 |-   -	-   -  -  -   -	  -   -| |
+	       |  sector 4 (size = 0x10000)    | |
+    + 0x010000 |- - - - - - - - - - - - - - - -|  > CFG_NIOS_CPU_FLASH_SIZE
+	       |  sector 3 (size = 0x08000)    | |   = 0x00100000
+    + 0x008000 |- - - - - - - - - - - - - - - -| |
+	       |  sector 2 (size = 0x02000)    | |
+    + 0x006000 |- - - - - - - - - - - - - - - -| |
+	       |  sector 1 (size = 0x02000)    | |
+    + 0x004000 |- - - - - - - - - - - - - - - -| |
+	       |  sector 0 (size = 0x04000)    | /
+  0x00100000 ---15------------8|7-------------0-    CFG_NIOS_CPU_FLASH_BASE
+	       |			       |
+	       :	      gap	       :
+	       |			       |
+  0x00080000 ---32-----------16|15------------0-
+  0x00080000 --+32-----------16|15------------0+
+	       |	       .	       | \ \
+	       |	       .	       | | |
+	       |	       .	       | |  > CFG_NIOS_CPU_VEC_SIZE
+	       |	       .	       | | |   = 0x00000100
+	       |	       .	       | | /
+  0x0007ff00   |- - - - - - - - - - - - - - - -+-|- CFG_NIOS_CPU_VEC_BASE
+  0x0007ff00   |- - - - - - - - - - - - - - - -+-|- CFG_NIOS_CPU_STACK
+	       |	       .	       | | \
+	       |	       .	       | | |
+	       |	       .	       | |  > stack area
+	       |	       .	       | | |
+	       |	       .	       | | V
+	       |	       .	       | |
+  SRAM	       |	       .	       |  > CFG_NIOS_CPU_SRAM_SIZE
+	       |	       .	       | |   = 0x00040000
+	       |			       | /
+  0x00040000 ---32-----------16|15------------0-    CFG_NIOS_CPU_SRAM_BASE
+	       |			       |
+	       :	      gap	       :
+	       :			       :
+
+- - - - - - - - - - -	  on chip i/o	  - - - - - - - - - - - - - - - - - - -
+
+	       :			       :
+	       :	      gap	       :
+	       |			       |
+  0x00000400 ---32-----------16|15------------0-
+	       |		     (unused)  | \
+	+ 0x1c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x18 |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x14 |- - - - - - - - - - - - - - - -| |
+  UART0	       |		     (unused)  |  > 0x00000020
+  [2]	+ 0x10 |- - - - - - - - - - - - - - - -| |
+	       |  control (10 bit)	 (rw)  | |
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+	       |  status (10 bit)	 (rw)  | |
+	+ 0x08 |- - - - - - - - - - - - - - - -| |
+	       |  txdata (8 bit)	 (wo)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  rxdata (8 bit)	 (ro)  | /
+  0x000004c0 ---32-----------16|15------------0-    CFG_NIOS_CPU_UART1
+	       |			       |
+	       :	      gap	       :
+	       |			       |
+  0x00000490 ---32-----------16|15------------0-
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO3	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |  direction (11 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (11 bit)		 (rw)  | /
+  0x00000480 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO3
+	       |  edgecapture (12 bit)	 (rw)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO2	       |  interruptmask (12 bit) (rw)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (12 bit)		 (ro)  | /
+  0x00000470 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO2
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO1	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |  direction (2 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (2 bit)		 (rw)  | /
+  0x00000460 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO1
+	       |		     (unused)  | \
+	+ 0x1c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x18 |- - - - - - - - - - - - - - - -| |
+	       |  snaph (16 bit)	 (rw)  | |
+	+ 0x14 |- - - - - - - - - - - - - - - -| |
+  TIMER0       |  snapl (16 bit)	 (rw)  | |
+  [3]	+ 0x10 |- - - - - - - - - - - - - - - -|  > 0x00000020
+	       |  periodh (16 bit)	 (rw)  | |
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+	       |  periodl (16 bit)	 (rw)  | |
+	+ 0x08 |- - - - - - - - - - - - - - - -| |
+	       |  control (4 bit)	 (rw)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  status (2 bit)	 (rw)  | /
+  0x00000440 ---32-----------16|15------------0-    CFG_NIOS_CPU_TIMER0
+	       |		     (unused)  | \
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+  PIO0	       |		     (unused)  | |
+  [4]	+ 0x08 |- - - - - - - - - - - - - - - -|  > 0x00000010
+	       |		     (unused)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  data (16 bit)		 (wo)  | /
+  0x00000420 ---32-----------16|15------------0-    CFG_NIOS_CPU_PIO0
+	       |		     (unused)  | \
+	+ 0x1c |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x18 |- - - - - - - - - - - - - - - -| |
+	       |		     (unused)  | |
+	+ 0x14 |- - - - - - - - - - - - - - - -| |
+  UART0	       |		     (unused)  |  > 0x00000020
+  [2]	+ 0x10 |- - - - - - - - - - - - - - - -| |
+	       |  control (10 bit)	 (rw)  | |
+	+ 0x0c |- - - - - - - - - - - - - - - -| |
+	       |  status (10 bit)	 (rw)  | |
+	+ 0x08 |- - - - - - - - - - - - - - - -| |
+	       |  txdata (8 bit)	 (wo)  | |
+	+ 0x04 |- - - - - - - - - - - - - - - -| |
+	       |  rxdata (8 bit)	 (ro)  | /
+  0x00000400 ---32-----------16|15------------0-    CFG_NIOS_CPU_UART0
+
+- - - - - - - - - - -	on chip memory	  - - - - - - - - - - -
+
+  0x00000400 ---32-----------16|15------------0-
+	       |	       :	       | \
+	       |	       :	       | |
+  GERMS	       |	       :	       |  > na_boot_monitor_rom_size
+	       |	       :	       | |   = 0x00000400
+	       |	       :	       | /
+  0x00000000   |- - - - - - - - - - - - - - - -+- - nasys_reset_address
+  0x00000000 ---32-----------16|15------------0-    na_boot_monitor_rom
+
+
+===============================================================================
+	F L A S H   M E M O R Y	  A L L O C A T I O N
+===============================================================================
+
+  0x00200000 ---15------------8|7-------------0-
+	       |	       :	       | \
+  SAFE	       |	       :	       |  > 256 KByte
+  FPGA conf.   |	       :	       | /    (NOT usable by software)
+  0x001c0000 --+- - - - - - - -:- - - - - - - -+-
+	       |	       :	       | \
+  USER	       |	       :	       |  > 256 KByte
+  FPGA conf.   |	       :	       | /    (NOT usable by software)
+  0x00180000 --+- - - - - - - -:- - - - - - - -+-
+	       |	       :	       | \
+	       |	       :	       | |
+	       |	       :	       |  > 512 KByte free for use
+  0x00140000 --+- - - - - - - -:- - - - - - - -+-|- u-boot _start()
+	       |	       :	       | /
+  0x00100000 ---15------------8|7-------------0-
+
+
+===============================================================================
+	R E F E R E N C E S
+===============================================================================
+[1]	http://www.altera.com/literature/ds/ds_nios_board_apex_20k200e.pdf
+[2]	http://www.altera.com/literature/ds/ds_nios_uart.pdf
+[3]	http://www.altera.com/literature/ds/ds_nios_timer.pdf
+[4]	http://www.altera.com/literature/ds/ds_nios_pio.pdf
+
+
+===============================================================================
+Stephan Linz <linz@li-pro.net>
diff --git a/doc/README.nios b/doc/README.nios
index aee0ecd..8765df73 100644
--- a/doc/README.nios
+++ b/doc/README.nios
@@ -1,12 +1,27 @@
 
 			   U-Boot for Nios-32
 
-		    Last Update: October 15, 2003
+		    Last Update: November 30, 2003
 ====================================================================
 
 This file contains information regarding U-Boot and the Altera
 Nios CPU. For information regarding U-Boot and the Nios Development
-Kit, Cyclone Edition (DK-1C20), see doc/README.dk1c20.
+Kits see:
+
+  * Cyclone Edition (DK-1C20), see doc/README.dk1c20
+  * Stratix Edition (DK-1S10), see doc/README.dk1s10 (TODO)
+  * Stratix Edition (DK-1S40), see doc/README.dk1s40 (TODO)
+  * Stratix Edition (DK-20K200), see doc/README.dk20k200 (TODO)
+
+For informations regarding Nios Development Kit hardware overview
+and the NIOS CPU standard configuration of all known boards made by
+Altera see:
+
+  * Development Kit (DK) hardware overview, see doc/README.nios_DK
+  * NIOS CPU standard_32 at DK-1C20, see doc/README.dk1c20_std32
+  * NIOS CPU standard_32 at DK-1S10, see doc/README.dk1s10_std32
+  * NIOS CPU standard_32 at DK-1S40, see doc/README.dk1s40_std32
+  * NIOS CPU standard_32 at DK-20K200, see doc/README.dk20k200_std32
 
 For those interested in contributing ... see HELP WANTED below.
 
@@ -50,16 +65,25 @@
 2.1 Nios-specific Options/Settings
 -----------------------------------
 All configuration options/settings that are specific to Nios begin
-with "CONFIG_NIOS_" or "CFG_NIOS_". The following is a list of
-currently defined Nios-specific options/parameters. If any options
-are related to Standard-32 Nios SDK excalibur.h definitions, the
-related definition follows the description).
+with "CONFIG_NIOS_", "CFG_NIOS_", or "CFG_NIOS_CPU_".
 
+The configuration follows a two-stage process. In the first stage
+the NIOS CPU core will defined like defined in Alteras SOPC Builder.
+At this point we use the "CFG_NIOS_CPU_" defines exclusively. For
+more informations about all the definitions you have to setup see
+into current board configurations and doc/README.nios_CFG_NIOS_CPU.
+
+In second stage we bring the NIOS CPU configuration in relation to
+U-Boot configuration options/settings. The following is a list of
+currently defined Nios-specific options/parameters used inside of
+U-Boot. If any options are related to Standard-32 Nios SDK
+excalibur.h definitions, the related definition follows the
+description).
 
 CONFIG_NIOS -- defined for all Nios-32 boards.
 
 CFG_NIOS_CONSOLE -- the base address of the console UART.
-	(standard-32: na_uart1_base).
+	(standard-32: nasys_uart_0 resp. na_uart1_base).
 
 CFG_NIOS_FIXEDBAUD -- defined if the console UART PTF fixed_baud
 	parameter is set to '1'.
@@ -71,10 +95,11 @@
 
 CFG_NIOS_TMRBASE -- the base address of the timer used to support
 	xxx_timer routines (e.g. set_timer(), get_timer(), etc.).
-	(standard-32: na_lo_priority_timer2_base).
+	(standard-32: nasys_timer_1 resp. na_lo_priority_timer2_base).
 
 CFG_NIOS_TMRIRQ -- the interrupt request (vector number) assigned to
-	the timer. (standard-32: na_low_priority_timer2_irq).
+	the timer. (standard-32: nasys_timer_1_irq resp.
+	na_low_priority_timer2_irq).
 
 CFG_NIOS_TMRMS -- the period of the timer in milliseconds.
 
@@ -105,20 +130,56 @@
 but does not appear in the programmer's manual.
 
 
-4. BRAIN DAMAGE
+4. BOOT PROCESS
+---------------
+
+4.1 Boot process over GERMS
+---------------------------
+When the NIOS CPU catch a reset signal it will begin to be running
+code from CFG_NIOS_CPU_RST_VECT. Normally at this place it will
+find the GERMS monitor. That's the case for the generic NIOS CPU
+configuration "standard_32". When the GERMS monitor starts running,
+it performs important system initializations and then looks for
+executable code in flash, using the following steps:
+
+    1. Examining the two bytes at CFG_NIOS_CPU_FLASH_BASE + 0x04000C.
+    2. Examining the button 0 on the PIO CFG_NIOS_CPU_BUTTON_PIO.
+    3. If the button is not pressed and the two bytes contain 'N'
+       and 'i', the monitor executes a CALL to location
+       CFG_NIOS_CPU_FLASH_BASE + 0x040000.
+    4. If the code is not executed in step 3 or the code returns,
+       then prints an 8-digit version number to STDOUT and waits for
+       user commands from STDIN.
+
+In normal case, for "standard_32", STDIN and STDOUT are the first
+serial port.
+
+4.2 Return to GERMS command line
+--------------------------------
+During the boot process, the GERMS monitor checks for the existence
+of application software in flash memory. If found, the processor
+immediately executes the code. To return program execution to the
+GERMS monitor (that is, avoid running code stored in flash memory):
+
+    1. Hold down CFG_NIOS_CPU_BUTTON_PIO, button number 0.
+    2. Press then release the CPU reset button.
+    3. Release CFG_NIOS_CPU_BUTTON_PIO, button number 0.
+
+
+5. BRAIN DAMAGE
 ----------------
 
 This section describes some of the unfortunate and avoidable aspects
 of working with the Nios CPU ... and some things you can do to
 reduce your pain.
 
-4.1 GERMS doesn't work with Hyperterminal
+5.1 GERMS doesn't work with Hyperterminal
 ------------------------------------------
 GERMS doesn't do CR/LF mapping that is compatible with Hyperterminal
 (or minicom) -- geez. Regardless of you opion of Hyperterminal, this
 sad design decision is remedied by using U-Boot.
 
-4.2 cygwin Incompatibility
+5.2 cygwin Incompatibility
 ---------------------------
 The version of cygwin distributed with the nios GNUPro toolchain is
 out-of-date and incompatible with the latest cygwin distributions.
@@ -131,7 +192,7 @@
 The solution ... well, you can wait for Altera ... or build as
 set of tools for linux.
 
-4.3 No native gcc
+5.3 No native gcc
 ------------------
 I'm not sure how this one slipped through the cracks ... but it is
 a real pain. Basically, if you want to build anything for the native
@@ -140,9 +201,11 @@
 
 The solution ... same as above. Just download the gcc source from
 Altera and build up a set of cross tools for your favorite linux
-distro.
+distro. Anybody who wants to use an already precompiled NIOS cross
+toolchain can it found in the CDK4NIOS project hosted by Source
+Forge at http://cdk4nios.sourceforge.net.
 
-4.4 Can't build default U-Boot
+5.4 Can't build default U-Boot
 -------------------------------
 By default, when you build U-Boot you will be building some native
 tools along with the target elf, bin, and srec files. Without a
@@ -167,7 +230,7 @@
 BTW, thats a 'zero' ... not the letter 'O'.
 
 
-5. HELP WANTED
+6. HELP WANTED
 ---------------
 
 There are plenty of areas where help is needed. Here's are some ideas
@@ -190,3 +253,6 @@
 
 --Scott
 <smcnutt@psyent.com>
+
+--Stephan
+<linz@li-pro.net>
diff --git a/doc/README.nios_CFG_NIOS_CPU b/doc/README.nios_CFG_NIOS_CPU
new file mode 100644
index 0000000..e38ed91
--- /dev/null
+++ b/doc/README.nios_CFG_NIOS_CPU
@@ -0,0 +1,140 @@
+
+===============================================================================
+	C F G _ N I O S _ C P U _ *   v s .   N I O S	S D K
+===============================================================================
+
+When ever you have to make a new NIOS CPU configuration you can use this table
+as a reference list to the original NIOS SDK symbols made by Alteras SOPC
+Builder. Look into excalibur.h and excalibur.s in your SDK path cpu_sdk/inc.
+Symbols beginning with a '[ptf]:' are coming from your SOPC sytem description
+(PTF file) in sections WIZARD_SCRIPT_ARGUMENTS or SYSTEM_BUILDER_INFO.
+
+C O R E					N I O S	  S D K			[1],[7]
+-------------------------------------------------------------------------------
+CFG_NIOS_CPU_CLK					nasys_clock_freq
+CFG_NIOS_CPU_ICACHE					nasys_icache_size
+CFG_NIOS_CPU_DCACHE					nasys_dcache_size
+CFG_NIOS_CPU_REG_NUMS					nasys_nios_num_regs
+CFG_NIOS_CPU_MUL					__nios_use_multiply__
+CFG_NIOS_CPU_MSTEP					__nios_use_mstep__
+CFG_NIOS_CPU_STACK					nasys_stack_top
+CFG_NIOS_CPU_VEC_BASE					nasys_vector_table
+CFG_NIOS_CPU_VEC_SIZE					nasys_vector_table_size
+CFG_NIOS_CPU_VEC_NUMS
+CFG_NIOS_CPU_RST_VECT					nasys_reset_address
+CFG_NIOS_CPU_DBG_CORE					nasys_debug_core
+CFG_NIOS_CPU_RAM_BASE		na_onchip_ram_64_kbytes
+CFG_NIOS_CPU_RAM_SIZE		na_onchip_ram_64_kbytes_size
+CFG_NIOS_CPU_ROM_BASE		na_boot_monitor_rom
+CFG_NIOS_CPU_ROM_SIZE		na_boot_monitor_rom_size
+CFG_NIOS_CPU_OCI_BASE					nasys_oci_core
+CFG_NIOS_CPU_OCI_SIZE
+CFG_NIOS_CPU_SRAM_BASE		na_ext_ram		nasys_program_mem
+							nasys_data_mem
+CFG_NIOS_CPU_SRAM_SIZE		na_ext_ram_size		nasys_program_mem_size
+							nasys_data_mem_size
+CFG_NIOS_CPU_SDRAM_BASE		 na_sdram
+CFG_NIOS_CPU_SDRAM_SIZE		 na_sdram_size
+CFG_NIOS_CPU_FLASH_BASE		 na_ext_flash		nasys_main_flash
+							nasys_am29lv065d_flash_0
+							nasys_flash_0
+CFG_NIOS_CPU_FLASH_SIZE	    na_ext_flash_size		nasys_main_flash_size
+
+T I M E R				N I O S	  S D K			    [3]
+-------------------------------------------------------------------------------
+CFG_NIOS_CPU_TIMER_NUMS					nasys_timer_count
+CFG_NIOS_CPU_TIMER[0-9]					nasys_timer_[0-9]
+CFG_NIOS_CPU_TIMER[0-9]_IRQ				nasys_timer_[0-9]_irq
+CFG_NIOS_CPU_TIMER[0-9]_PER				[ptf]:period
+							[ptf]:period_units
+							[ptf]:mult
+CFG_NIOS_CPU_TIMER[0-9]_AR				[ptf]:always_run
+CFG_NIOS_CPU_TIMER[0-9]_FP				[ptf]:fixed_period
+CFG_NIOS_CPU_TIMER[0-9]_SS				[ptf]:snapshot
+
+U A R T					N I O S	  S D K			    [2]
+-------------------------------------------------------------------------------
+CFG_NIOS_CPU_UART_NUMS					nasys_uart_count
+CFG_NIOS_CPU_UART[0-9]					nasys_uart_[0-9]
+CFG_NIOS_CPU_UART[0-9]_IRQ				nasys_uart_[0-9]_irq
+CFG_NIOS_CPU_UART[0-9]_BR				[ptf]:baud
+CFG_NIOS_CPU_UART[0-9]_DB				[ptf]:data_bits
+CFG_NIOS_CPU_UART[0-9]_SB				[ptf]:stop_bits
+CFG_NIOS_CPU_UART[0-9]_PA				[ptf]:parity
+CFG_NIOS_CPU_UART[0-9]_HS				[ptf]:use_cts_rts
+CFG_NIOS_CPU_UART[0-9]_EOP				[ptf]:use_eop_register
+
+P I O					N I O S	  S D K			    [4]
+-------------------------------------------------------------------------------
+CFG_NIOS_CPU_PIO_NUMS					nasys_pio_count
+CFG_NIOS_CPU_PIO[0-9]					nasys_pio_[0-9]
+CFG_NIOS_CPU_PIO[0-9]_IRQ				nasys_pio_[0-9]_irq
+CFG_NIOS_CPU_PIO[0-9]_BITS				[ptf]:Data_Width
+CFG_NIOS_CPU_PIO[0-9]_TYPE				[ptf]:has_tri
+							[ptf]:has_out
+							[ptf]:has_in
+CFG_NIOS_CPU_PIO[0-9]_CAP				[ptf]:capture
+CFG_NIOS_CPU_PIO[0-9]_EDGE				[ptf]:edge_type
+CFG_NIOS_CPU_PIO[0-9]_ITYPE				[ptf]:irq_type
+
+S P I					N I O S	  S D K			    [6]
+-------------------------------------------------------------------------------
+CFG_NIOS_CPU_SPI_NUMS					nasys_spi_count
+CFG_NIOS_CPU_SPI[0-9]					nasys_spi_[0-9]
+CFG_NIOS_CPU_SPI[0-9]_IRQ				nasys_spi_[0-9]_irq
+CFG_NIOS_CPU_SPI[0-9]_BITS				[ptf]:databits
+CFG_NIOS_CPU_SPI[0-9]_MA				[ptf]:ismaster
+CFG_NIOS_CPU_SPI[0-9]_SLN				[ptf]:numslaves
+CFG_NIOS_CPU_SPI[0-9]_TCLK				[ptf]:targetclock
+CFG_NIOS_CPU_SPI[0-9]_TDELAY				[ptf]:targetdelay
+CFG_NIOS_CPU_SPI[0-9]_*					[ptf]:*
+
+I D E					N I O S	  S D K
+-------------------------------------------------------------------------------
+CFG_NIOS_CPU_IDE_NUMS					nasys_usersocket_count
+CFG_NIOS_CPU_IDE[0-9]					nasys_usersocket_[0-9]
+
+A S M I					N I O S	  S D K			    [5]
+-------------------------------------------------------------------------------
+CFG_NIOS_CPU_ASMI_NUMS					nasys_asmi_count
+CFG_NIOS_CPU_ASMI[0-9]					nasys_asmi_[0-9]
+CFG_NIOS_CPU_ASMI[0-9]_IRQ				nasys_asmi_[0-9]_irq
+
+E t h e r n e t	  ( L A N )		N I O S	  S D K
+-------------------------------------------------------------------------------
+CFG_NIOS_CPU_LAN_NUMS
+CFG_NIOS_CPU_LAN[0-9]_BASE	na_lan91c111
+CFG_NIOS_CPU_LAN[0-9]_OFFS				LAN91C111_REGISTERS_OFFSET
+CFG_NIOS_CPU_LAN[0-9]_IRQ	na_lan91c111_irq
+CFG_NIOS_CPU_LAN[0-9]_BUSW				LAN91C111_DATA_BUS_WIDTH
+CFG_NIOS_CPU_LAN[0-9]_TYPE
+
+s y s t e m   c o m p o s i n g		N I O S	  S D K
+-------------------------------------------------------------------------------
+CFG_NIOS_CPU_TICK_TIMER		(na_low_priority_timer2)
+CFG_NIOS_CPU_USER_TIMER		(na_timer1)
+CFG_NIOS_CPU_BUTTON_PIO		(na_button_pio)
+CFG_NIOS_CPU_LCD_PIO		(na_lcd_pio)
+CFG_NIOS_CPU_LED_PIO		(na_led_pio)
+CFG_NIOS_CPU_SEVENSEG_PIO	(na_seven_seg_pio)
+CFG_NIOS_CPU_RECONF_PIO		(na_reconfig_request_pio)
+CFG_NIOS_CPU_CFPRESENT_PIO	(na_cf_present_pio)
+CFG_NIOS_CPU_CFPOWER_PIO	(na_cf_power_pio)
+CFG_NIOS_CPU_CFATASEL_PIO	(na_cf_ata_select_pio)
+CFG_NIOS_CPU_USER_SPI		(na_spi)
+
+
+===============================================================================
+	R E F E R E N C E S
+===============================================================================
+[1]	http://www.altera.com/literature/ds/ds_nioscpu.pdf
+[2]	http://www.altera.com/literature/ds/ds_nios_uart.pdf
+[3]	http://www.altera.com/literature/ds/ds_nios_timer.pdf
+[4]	http://www.altera.com/literature/ds/ds_nios_pio.pdf
+[5]	http://www.altera.com/literature/ds/ds_nios_asmi.pdf
+[6]	http://www.altera.com/literature/ds/ds_nios_spi.pdf
+[7]	http://www.altera.com/literature/ds/ds_legacy_sdram_ctrl.pdf
+
+
+===============================================================================
+Stephan Linz <linz@li-pro.net>
diff --git a/doc/README.nios_DK b/doc/README.nios_DK
new file mode 100644
index 0000000..b119d76
--- /dev/null
+++ b/doc/README.nios_DK
@@ -0,0 +1,192 @@
+
+===============================================================================
+	H A R D W A R E	  O V E R V I E W
+===============================================================================
+===============|===============|===============|===============|===============
+	       |  DK20K200     |  DK1C20       |  DK1S10       |  DK1S40
+---------------|---------------|---------------|---------------|---------------
+	       |	       |	       |	       |
+  Schem. Nr.   | Nios Dev.Brd. |  P06-08713-00 |  P06-08468-01 |  P06-09178-00
+	 Rev.  | pilot.	       |  01	       |  01	       |  00
+	 Date  | 2001/02/06    |  2003/02/20   |  2003/02/14   |  2003/05/14
+[1]	       |	       |	       |	       |
+===============|===============|===============|===============|===============
+	       |	       |	       |	       |
+  FPGA	       | "APEX"	       | "Cyclon"      | "Stratix"     | "Stratix"
+	       |  EP20K200E    |  EP1C20       |  EP1S10       |  EP1S40
+	       |	       |	       |
+	       | (484 FBGA)    | (400 FBGA)    | (780 FBGA)
+[2],[3],[4]    |	       |	       |
+---------------|---------------|---------------|---------------|---------------
+	       |	       |
+  Clock (OSC)  |  33.333 MHz   |  50 MHz
+	       |	       | (with ext. supply)
+	       |
+	       |  PI49FCT3805
+[5]	       |
+---------------|---------------|---------------|---------------|---------------
+	       |	       |
+  Flash	       |  1 MByte      |  8 MByte
+	       |	       |
+	       |  AM29LV800BB  |  AM29LV065DU120REI
+	       |  8/16 bit bus |  8 bit bus
+	       |  1 chip       |  1 chip
+[6],[7]	       |	       |
+---------------|---------------|---------------|---------------|---------------
+	       |	       |	       |
+  serial       |  no such      |  4 MBits      |  no such
+  Flash	       |	       |	       |
+	       |	       |  EPCS4SI8     |
+[8]	       |	       |	       |
+---------------|---------------|---------------|---------------|---------------
+	       |	       |
+  Compact      |  no such, as  |  see below: prototype adapter
+  Flash (CF)   |  module only  |
+	       |	       |
+---------------|---------------|---------------|---------------|---------------
+	       |	       |
+  SRAM	       |  256 KByte    |  1 MByte
+	       |	       |
+	       |  IDT71V016S   |  IDT71V416S10PH
+	       |  32 bit bus   |  32 bit bus
+	       |  2 chips      |  2 chips
+	       |    interlaced |    interlaced
+[9],[10]       |	       |
+---------------|---------------|---------------|---------------|---------------
+	       |	       |
+  SDRAM	       |  SODIMM only  |  16 MByte
+	       |	       |
+	       |	       |  MT48LC4M32B2TG-7
+	       |  64 bit bus   |  32 bit bus
+	       |	       |  1 chip
+[11]	       |	       |
+===============|===============|===============|===============|===============
+	       |	       |
+  serial I/O   |  1 RS232      |  2 RS232
+	       |	       |
+	       |  LTC1386      |  MAX3237CAI
+	       |	       |
+	       |  port 1:      |  port 1:
+	       |   RxD / TxD,  |   RxD / TxD,
+	       |   RTS / CTS   |   RTS / CTS, DTR / DSR, DCD, RI
+	       |	       |
+	       |  ! ! ! ! ! !  |  port 2:      |  port 2:
+	       |  RTS/CTS can  |   RxD / TxD   |   RxD / TxD
+	       |  be RxD/TxD   |	       |   RTS / CTS, DTR / DSR
+	       |  of 2nd port  |	       |   DCD, RI
+[12],[13]      |  ! ! ! ! ! !  |	       |
+---------------|---------------|---------------|---------------|---------------
+	       |	       |
+  Ethernet     |  no such, as  |  1 10BaseT / 100BaseT
+	       |  module only  |
+	       |	       |  LAN91C111-NE
+	       |	       |  32 bit bus
+	       |	       |  no external EEPROM
+	       |	       |  LEDA# for link
+	       |	       |  LEDB# for Rx / Tx
+[14]	       |	       |
+===============|===============|===============|===============|===============
+	       |	       |
+  user	       |  8	       |  no such
+  switches     |  SW[7..0]     |
+	       |	       |
+---------------|---------------|---------------|---------------|---------------
+	       |
+  user push    |  4
+  buttons      |  PB[3..0]
+	       |
+---------------|---------------|---------------|---------------|---------------
+	       |	       |
+  user LEDs    |  2	       |  8
+	       |  LED[1..0]    |  LED[7..0]
+	       |	       |
+---------------|---------------|---------------|---------------|---------------
+	       |
+  user seven   |  2
+  segment      |  HEX[1..0][G..A,DP]
+	       |
+===============|===============|===============|===============|===============
+	       |	       |
+  3.3V proto-  |  w/o level    |  no such -- only 5V
+  type adapter |  shift buffer |
+	       |	       |
+	       |  40 I/O pins  |
+	       |  1 card sel.  |
+	       |  1 reset out. |
+	       |  1 OSC clock  |
+	       |  1 CPU clock  |
+	       |  1 clock out. |
+	       |	       |
+---------------|---------------|---------------|---------------|---------------
+	       |	       |
+  5V prototype |  with level   |  2 ports -- both card ports supplied with its
+  adapter      |  shift buffer |	     own level shift buffer
+	       |	       |
+	       |  40 I/O pins  |  port 1 & 2:
+	       |  1 card sel.  |   41 I/O pins
+	       |  1 Vee	 ? ? ? |   1 card select
+	       |  1 reset out. |   1 reset output (from dev/board)
+	       |  1 OSC clock  |   1 OSC clock	  (from dev/board)
+	       |  1 CPU clock  |   1 CPU clock	  (from dev/board)
+	       |  1 clock inp. |   1 clock input  (to dev/board)
+	       |	       |
+	       |	       |  (special) port 1:
+	       |	       |   1 CF select
+	       |	       |   1 CF present
+	       |	       |   1 CF ATA select
+	       |	       |   1 CF power
+	       |	       |
+	       |	       |  NOTE: Both card ports are prepared for raw
+	       |	       |	IDE working. You can connect such
+	       |	       |	devices directly to the 40 pin header.
+	       |	       |	The signal PDIAG (passed diagnostic)
+	       |	       |	is not connected to any I/O signal.
+	       |	       |	Card port 1 is hard wired to the on
+	       |	       |	board Copact Flash adapter together
+	       |	       |	with all other signals needed by CF
+	       |	       |	cards. Hot plug should be working too.
+[15],[16]      |	       |
+===============|===============|===============|===============|===============
+	       |	       |
+  config. CPLD |  EPM7064      |  EPM7128
+	       |	       |
+  (alternative |  decition by  |  decision by
+   FPGA conf.) |  jumper       |  push button
+	       |	       |
+	       |  FPGA config. |  FPGA config. |  FPGA config.
+	       |  from Flash   |  from Flash   |  from Flash
+	       |  only	       |  and EPCS4    |  only
+	       |	       |	       |
+===============|===============|===============|===============|===============
+===============================================================================
+
+
+===============================================================================
+	R E F E R E N C E S
+===============================================================================
+[1]	http://www.altera.com/literature/lit-nio.jsp
+[2]	http://www.altera.com/literature/lit-apx.jsp
+[3]	http://www.altera.com/literature/lit-cyc.jsp
+[4]	http://www.altera.com/literature/lit-stx.jsp
+[5]	http://www.pericom.com/pdf/datasheets/PI49FCT3805.pdf
+	http://www.pericom.com/products/clock/psempart.php?productID=PI49FCT3805
+[6]	http://www.amd.com/us-en/FlashMemory/ProductInformation/0,,37_1447_1623_1468^1532,00.html
+	http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/21490.pdf
+[7]	http://www.amd.com/us-en/FlashMemory/ProductInformation/0,,37_1447_1623_1468^1596,00.html
+	http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/23544b.pdf
+[8]	http://www.altera.com/literature/lit-config.html
+	http://preview.altera.com/literature/ds/micron.pdf
+[9]	http://www.idt.com/products/pages/Asynchronous_SRAMs-71V016SA.html
+[10]	http://www.idt.com/products/pages/Asynchronous_SRAMs-71V416SL.html
+[11]	http://www.micron.com/products/dram/sdram/part.aspx?part=MT48LC4M32B2TG-7
+[12]	http://www.linear.com/prod/datasheet.html?datasheet=33
+	http://www.linear.com/pdf/1386fa.pdf
+[13]	http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1068/ln/en
+	http://pdfserv.maxim-ic.com/en/ds/MAX3222-MAX3241.pdf
+[14]	http://www.smsc.com/main/catalog/lan91c111.html
+[15]	http://www.t13.org/index.html
+[16]	http://www.compactflash.org/faqs/faq.htm
+
+
+===============================================================================
+Stephan Linz <linz@li-pro.net>