diff options
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/README.TQM8260 | 415 | ||||
| -rw-r--r-- | doc/README.bedbug | 89 | ||||
| -rw-r--r-- | doc/README.evb64260 | 54 | ||||
| -rw-r--r-- | doc/README.mpc74xx | 22 | ||||
| -rw-r--r-- | doc/README.usb | 80 | 
5 files changed, 660 insertions, 0 deletions
| diff --git a/doc/README.TQM8260 b/doc/README.TQM8260 new file mode 100644 index 000000000..7e03010aa --- /dev/null +++ b/doc/README.TQM8260 @@ -0,0 +1,415 @@ + +This file contains basic information on the port of U-Boot to TQM8260. +All the changes fit in the common U-Boot infrastructure, providing a +new TQM8260-specific entry in makefiles. To build U-Boot for TQM8260, +type "make TQM8260_config", edit the "include/config_TQM8260.h" file +if necessary, then type "make". + + +Common file modifications: +-------------------------- + +The following common files have been modified by this project: +(starting from the ppcboot-0.9.3/ directory) + +MAKEALL			- TQM8260 entry added +Makefile		- TQM8260_config entry added +cpu/mpc8260/Makefile	- soft_i2c.o module added +cpu/mpc8260/ether_scc.c	- TQM8260-specific definitions added, an obvious +			  bug fixed (fcr -> scr) +cpu/mpc8260/ether_fcc.c	- TQM8260-specific definitions added +include/flash.h		- added definitions for the AM29LV640D Flash chip + + +New files: +---------- + +The following new files have been added by this project: +(starting from the ppcboot-0.9.3/ directory) + +board/tqm8260/		  - board-specific directory +board/tqm8260/Makefile	  - board-specific makefile +board/tqm8260/config.mk	  - config file +board/tqm8260/flash.c	  - flash driver (for AM29LV640D) +board/tqm8260/ppcboot.lds - linker script +board/tqm8260/tqm8260.c	  - ioport and memory initialization +cpu/mpc8260/soft_i2c.c	  - software i2c EEPROM driver +include/config_TQM8260.h  - main configuration file + + +New configuration options: +-------------------------- + +CONFIG_TQM8260 + +	Main board-specific option (should be defined for TQM8260). + +CONFIG_82xx_CONS_SMC1 + +	If defined, SMC1 will be used as the console + +CONFIG_82xx_CONS_SMC2 + +	If defined, SMC2 will be used as the console + +CFG_INIT_LOCAL_SDRAM + +	If defined, the SDRAM on the local bus will be initialized and +	mapped at BR2. + + +Acceptance criteria tests: +-------------------------- + +The following tests have been conducted to validate the port of U-Boot +to TQM8260: + +1. Operation on serial console: + +With the CONFIG_82xx_CONS_SMC1 option defined in the main configuration file, +the U-Boot output appeared on the serial terminal connected to COM1 as +follows: + +------------------------------------------------------------------------------ +=> help +go      - start application at address 'addr' +run     - run commands in an environment variable +bootm   - boot application image from memory +bootp   - boot image via network using BootP/TFTP protocol +tftpboot- boot image via network using TFTP protocol +               and env variables ipaddr and serverip +rarpboot- boot image via network using RARP/TFTP protocol +bootd   - boot default, i.e., run 'bootcmd' +loads   - load S-Record file over serial line +loadb   - load binary file over serial line (kermit mode) +md      - memory display +mm      - memory modify (auto-incrementing) +nm      - memory modify (constant address) +mw      - memory write (fill) +cp      - memory copy +cmp     - memory compare +crc32   - checksum calculation +base    - print or set address offset +printenv- print environment variables +setenv  - set environment variables +saveenv - save environment variables to persistent storage +protect - enable or disable FLASH write protection +erase   - erase FLASH memory +flinfo  - print FLASH memory information +bdinfo  - print Board Info structure +iminfo  - print header information for application image +coninfo - print console devices and informations +eeprom  - EEPROM sub-system +loop    - infinite loop on address range +mtest   - simple RAM test +icache  - enable or disable instruction cache +dcache  - enable or disable data cache +reset   - Perform RESET of the CPU +echo    - echo args to console +version - print monitor version +help    - print online help +?       - alias for 'help' +=> +------------------------------------------------------------------------------ + + +2. Flash driver operation + +The following sequence was performed to test the "flinfo" command: + +------------------------------------------------------------------------------ +=> flinfo + +Bank # 1: AMD 29LV640D (64 M, uniform sector) +  Size: 32 MB in 128 Sectors +  Sector Start Addresses: +    40000000      40040000 (RO) 40080000      400C0000      40100000 +    40140000      40180000      401C0000      40200000      40240000 +    40280000      402C0000      40300000      40340000      40380000 +    403C0000      40400000      40440000      40480000      404C0000 +    40500000      40540000      40580000      405C0000      40600000 +    40640000      40680000      406C0000      40700000      40740000 +    40780000      407C0000      40800000      40840000      40880000 +    408C0000      40900000      40940000      40980000      409C0000 +    40A00000      40A40000      40A80000      40AC0000      40B00000 +    40B40000      40B80000      40BC0000      40C00000      40C40000 +    40C80000      40CC0000      40D00000      40D40000      40D80000 +    40DC0000      40E00000      40E40000      40E80000      40EC0000 +    40F00000      40F40000      40F80000      40FC0000      41000000 +    41040000      41080000      410C0000      41100000      41140000 +    41180000      411C0000      41200000      41240000      41280000 +    412C0000      41300000      41340000      41380000      413C0000 +    41400000      41440000      41480000      414C0000      41500000 +    41540000      41580000      415C0000      41600000      41640000 +    41680000      416C0000      41700000      41740000      41780000 +    417C0000      41800000      41840000      41880000      418C0000 +    41900000      41940000      41980000      419C0000      41A00000 +    41A40000      41A80000      41AC0000      41B00000      41B40000 +    41B80000      41BC0000      41C00000      41C40000      41C80000 +    41CC0000      41D00000      41D40000      41D80000      41DC0000 +    41E00000      41E40000      41E80000      41EC0000      41F00000 +    41F40000      41F80000      41FC0000 +=> +------------------------------------------------------------------------------ + + +The following sequence was performed to test the erase command: + +------------------------------------------------------------------------------ +=> cp 0 40080000 10 +Copy to Flash... done +=> erase 40080000 400bffff +Erase Flash from 0x40080000 to 0x400bffff +.. done +Erased 1 sectors +=> md 40080000 +40080000: ffffffff ffffffff ffffffff ffffffff    ................ +40080010: ffffffff ffffffff ffffffff ffffffff    ................ +40080020: ffffffff ffffffff ffffffff ffffffff    ................ +40080030: ffffffff ffffffff ffffffff ffffffff    ................ +40080040: ffffffff ffffffff ffffffff ffffffff    ................ +40080050: ffffffff ffffffff ffffffff ffffffff    ................ +40080060: ffffffff ffffffff ffffffff ffffffff    ................ +40080070: ffffffff ffffffff ffffffff ffffffff    ................ +40080080: ffffffff ffffffff ffffffff ffffffff    ................ +40080090: ffffffff ffffffff ffffffff ffffffff    ................ +400800a0: ffffffff ffffffff ffffffff ffffffff    ................ +400800b0: ffffffff ffffffff ffffffff ffffffff    ................ +400800c0: ffffffff ffffffff ffffffff ffffffff    ................ +400800d0: ffffffff ffffffff ffffffff ffffffff    ................ +400800e0: ffffffff ffffffff ffffffff ffffffff    ................ +400800f0: ffffffff ffffffff ffffffff ffffffff    ................ +=> cp 0 40080000 10 +Copy to Flash... done +=> erase 1:2 +Erase Flash Sectors 2-2 in Bank # 1 +.. done +=> md 40080000 +40080000: ffffffff ffffffff ffffffff ffffffff    ................ +40080010: ffffffff ffffffff ffffffff ffffffff    ................ +40080020: ffffffff ffffffff ffffffff ffffffff    ................ +40080030: ffffffff ffffffff ffffffff ffffffff    ................ +40080040: ffffffff ffffffff ffffffff ffffffff    ................ +40080050: ffffffff ffffffff ffffffff ffffffff    ................ +40080060: ffffffff ffffffff ffffffff ffffffff    ................ +40080070: ffffffff ffffffff ffffffff ffffffff    ................ +40080080: ffffffff ffffffff ffffffff ffffffff    ................ +40080090: ffffffff ffffffff ffffffff ffffffff    ................ +400800a0: ffffffff ffffffff ffffffff ffffffff    ................ +400800b0: ffffffff ffffffff ffffffff ffffffff    ................ +400800c0: ffffffff ffffffff ffffffff ffffffff    ................ +400800d0: ffffffff ffffffff ffffffff ffffffff    ................ +400800e0: ffffffff ffffffff ffffffff ffffffff    ................ +400800f0: ffffffff ffffffff ffffffff ffffffff    ................ +=> cp 0 40080000 10 +Copy to Flash... done +=> cp 0 400c0000 10 +Copy to Flash... done +=> erase 1:2-3 +Erase Flash Sectors 2-3 in Bank # 1 +... done +=> md 40080000 +40080000: ffffffff ffffffff ffffffff ffffffff    ................ +40080010: ffffffff ffffffff ffffffff ffffffff    ................ +40080020: ffffffff ffffffff ffffffff ffffffff    ................ +40080030: ffffffff ffffffff ffffffff ffffffff    ................ +40080040: ffffffff ffffffff ffffffff ffffffff    ................ +40080050: ffffffff ffffffff ffffffff ffffffff    ................ +40080060: ffffffff ffffffff ffffffff ffffffff    ................ +40080070: ffffffff ffffffff ffffffff ffffffff    ................ +40080080: ffffffff ffffffff ffffffff ffffffff    ................ +40080090: ffffffff ffffffff ffffffff ffffffff    ................ +400800a0: ffffffff ffffffff ffffffff ffffffff    ................ +400800b0: ffffffff ffffffff ffffffff ffffffff    ................ +400800c0: ffffffff ffffffff ffffffff ffffffff    ................ +400800d0: ffffffff ffffffff ffffffff ffffffff    ................ +400800e0: ffffffff ffffffff ffffffff ffffffff    ................ +400800f0: ffffffff ffffffff ffffffff ffffffff    ................ +=> md 400c0000 +400c0000: ffffffff ffffffff ffffffff ffffffff    ................ +400c0010: ffffffff ffffffff ffffffff ffffffff    ................ +400c0020: ffffffff ffffffff ffffffff ffffffff    ................ +400c0030: ffffffff ffffffff ffffffff ffffffff    ................ +400c0040: ffffffff ffffffff ffffffff ffffffff    ................ +400c0050: ffffffff ffffffff ffffffff ffffffff    ................ +400c0060: ffffffff ffffffff ffffffff ffffffff    ................ +400c0070: ffffffff ffffffff ffffffff ffffffff    ................ +400c0080: ffffffff ffffffff ffffffff ffffffff    ................ +400c0090: ffffffff ffffffff ffffffff ffffffff    ................ +400c00a0: ffffffff ffffffff ffffffff ffffffff    ................ +400c00b0: ffffffff ffffffff ffffffff ffffffff    ................ +400c00c0: ffffffff ffffffff ffffffff ffffffff    ................ +400c00d0: ffffffff ffffffff ffffffff ffffffff    ................ +400c00e0: ffffffff ffffffff ffffffff ffffffff    ................ +400c00f0: ffffffff ffffffff ffffffff ffffffff    ................ +=> +------------------------------------------------------------------------------ + + +The following sequence was performed to test the Flash programming commands: + +------------------------------------------------------------------------------ +=> erase 40080000 400bffff +Erase Flash from 0x40080000 to 0x400bffff +.. done +Erased 1 sectors +=> cp 0 40080000 10 +Copy to Flash... done +=> md 0 +00000000: 00000000 00000104 61100200 01000000    ........a....... +00000010: 00000000 00000000 81140000 82000100    ................ +00000020: 01080000 00004000 22800000 00000600    ......@."....... +00000030: 00200800 00000000 10000100 00008000    . .............. +00000040: 00812000 00000200 00020000 80000000    .. ............. +00000050: 00028001 00001000 00040400 00000200    ................ +00000060: 20480000 00000000 20090000 00142000     H...... ..... . +00000070: 00000000 00004000 24210000 10000000    ......@.$!...... +00000080: 02440002 10000000 00200008 00000000    .D....... ...... +00000090: 02440900 00000000 30a40000 00004400    .D......0.....D. +000000a0: 04420800 00000000 00000040 00020000    .B.........@.... +000000b0: 05020000 00100000 00060000 00000000    ................ +000000c0: 00400000 00000000 00080000 00040000    .@.............. +000000d0: 10400000 00800004 00000000 00000200    .@.............. +000000e0: 80890000 00010004 00080000 00000020    ............... +000000f0: 08000000 10000000 00010000 00000000    ................ +=> md 40080000 +40080000: 00000000 00000104 61100200 01000000    ........a....... +40080010: 00000000 00000000 81140000 82000100    ................ +40080020: 01080000 00004000 22800000 00000600    ......@."....... +40080030: 00200800 00000000 10000100 00008000    . .............. +40080040: ffffffff ffffffff ffffffff ffffffff    ................ +40080050: ffffffff ffffffff ffffffff ffffffff    ................ +40080060: ffffffff ffffffff ffffffff ffffffff    ................ +40080070: ffffffff ffffffff ffffffff ffffffff    ................ +40080080: ffffffff ffffffff ffffffff ffffffff    ................ +40080090: ffffffff ffffffff ffffffff ffffffff    ................ +400800a0: ffffffff ffffffff ffffffff ffffffff    ................ +400800b0: ffffffff ffffffff ffffffff ffffffff    ................ +400800c0: ffffffff ffffffff ffffffff ffffffff    ................ +400800d0: ffffffff ffffffff ffffffff ffffffff    ................ +400800e0: ffffffff ffffffff ffffffff ffffffff    ................ +400800f0: ffffffff ffffffff ffffffff ffffffff    ................ +=> +------------------------------------------------------------------------------ + + +The following sequence was performed to test storage of the environment +variables in Flash: + +------------------------------------------------------------------------------ +=> setenv foo bar +=> saveenv +Un-Protected 1 sectors +Erasing Flash... +.. done +Erased 1 sectors +Saving Environment to Flash... +Protected 1 sectors +=> reset +... +=> printenv +bootdelay=CONFIG_BOOTDELAY +baudrate=9600 +ipaddr=192.168.4.7 +serverip=192.168.4.1 +ethaddr=66:55:44:33:22:11 +foo=bar +stdin=serial +stdout=serial +stderr=serial + +Environment size: 170/262140 bytes +=> +------------------------------------------------------------------------------ + + +The following sequence was performed to test image download and run over +Ethernet interface (both interfaces were tested): + +------------------------------------------------------------------------------ +=> tftpboot 40000 hello_world.bin +ARP broadcast 1 +TFTP from server 192.168.2.2; our IP address is 192.168.2.7 +Filename 'hello_world.bin'. +Load address: 0x40000 +Loading: ############# +done +Bytes transferred = 65912 (10178 hex) +=> go 40004 +## Starting application at 0x00040004 ... +Hello World +argc = 1 +argv[0] = "40004" +argv[1] = "<NULL>" +Hit any key to exit ... + +## Application terminated, rc = 0x0 +=> +------------------------------------------------------------------------------ + + +The following sequence was performed to test eeprom read/write commands: + +------------------------------------------------------------------------------ +=> md 40000 +00040000: 00018148 9421ffe0 7c0802a6 bf61000c    ...H.!..|....a.. +00040010: 90010024 48000005 7fc802a6 801effe8    ...$H........... +00040020: 7fc0f214 7c7f1b78 813f004c 7c9c2378    ....|..x.?.L|.#x +00040030: 807e8000 7cbd2b78 80090010 3b600000    .~..|.+x....;`.. +00040040: 7c0803a6 4e800021 813f004c 7f84e378    |...N..!.?.L...x +00040050: 807e8004 80090010 7c0803a6 4e800021    .~......|...N..! +00040060: 7c1be000 4181003c 80bd0000 813f004c    |...A..<.....?.L +00040070: 3bbd0004 2c050000 40820008 80be8008    ;...,...@....... +00040080: 80090010 7f64db78 807e800c 3b7b0001    .....d.x.~..;{.. +00040090: 7c0803a6 4e800021 7c1be000 4081ffcc    |...N..!|...@... +000400a0: 813f004c 807e8010 80090010 7c0803a6    .?.L.~......|... +000400b0: 4e800021 813f004c 80090004 7c0803a6    N..!.?.L....|... +000400c0: 4e800021 2c030000 4182ffec 813f004c    N..!,...A....?.L +000400d0: 80090000 7c0803a6 4e800021 813f004c    ....|...N..!.?.L +000400e0: 807e8014 80090010 7c0803a6 4e800021    .~......|...N..! +000400f0: 38600000 80010024 7c0803a6 bb61000c    8`.....$|....a.. +=> eeprom write 40000 0 40 + +EEPROM write: addr 00040000  off 0000  count 64 ... done +=> mw 50000 0 1000 +=> eeprom read 50000 0 40 + +EEPROM read: addr 00050000  off 0000  count 64 ... done +=> md 50000 +00050000: 00018148 9421ffe0 7c0802a6 bf61000c    ...H.!..|....a.. +00050010: 90010024 48000005 7fc802a6 801effe8    ...$H........... +00050020: 7fc0f214 7c7f1b78 813f004c 7c9c2378    ....|..x.?.L|.#x +00050030: 807e8000 7cbd2b78 80090010 3b600000    .~..|.+x....;`.. +00050040: 00000000 00000000 00000000 00000000    ................ +00050050: 00000000 00000000 00000000 00000000    ................ +00050060: 00000000 00000000 00000000 00000000    ................ +00050070: 00000000 00000000 00000000 00000000    ................ +00050080: 00000000 00000000 00000000 00000000    ................ +00050090: 00000000 00000000 00000000 00000000    ................ +000500a0: 00000000 00000000 00000000 00000000    ................ +000500b0: 00000000 00000000 00000000 00000000    ................ +000500c0: 00000000 00000000 00000000 00000000    ................ +000500d0: 00000000 00000000 00000000 00000000    ................ +000500e0: 00000000 00000000 00000000 00000000    ................ +000500f0: 00000000 00000000 00000000 00000000    ................ +=> +------------------------------------------------------------------------------ + + +Patch per Mon, 06 Aug 2001 17:57:27: + +- upgraded Flash support (added support for the following chips: +  AM29LV800T/B, AM29LV160T/B, AM29DL322T/B, AM29DL323T/B) +- BCR tweakage for the 8260 bus mode +- SIUMCR tweakage enabling the MI interrupt (IRQ7) + +To simplify switching between the bus modes, a new configuration +option (CONFIG_BUSMODE_60x) has been added to the "config_TQM8260.h" +file. If it is defined, BCR will be configured for the 60x mode, +otherwise - for the 8260 mode. + +Concerning the SIUMCR modification: it's hard to predict whether it +will induce any problems on the other (60x mode) board. However, the +problems (if they appear) should be easy to notice - if the board +does not boot, it's most likely caused by the DPPC configuration in +SIUMCR. diff --git a/doc/README.bedbug b/doc/README.bedbug new file mode 100644 index 000000000..ed7bc122c --- /dev/null +++ b/doc/README.bedbug @@ -0,0 +1,89 @@ +BEDBUG Support for U-Boot +-------------------------- + +These changes implement the bedbug (emBEDded deBUGger) debugger in U-Boot. +A specific implementation is made for the IBM405 processor but other flavors +can be easily implemented. + +##################### +### Modifications ### +##################### + +./common/Makefile +	Included cmd_bedbug.c and bedbug.c in the Makefile. + +./common/command.c +	Added bedbug commands to command table. + +./common/board.c +	Added call to initialize debugger on startup. + +./cpu/ppc4xx/Makefile +	Added bedbug_405.c to the Makefile. + +./cpu/ppc4xx/start.S +	Added code to handle the debug exception (0x2000) on the 405. +	Also added code to handle critical exceptions since the debug +	is treated as critical on the 405. + +./cpu/ppc4xx/traps.c +	Added more detailed output for the program exception to tell +	if it is an illegal instruction, privileged instruction or +	a trap. Also added debug trap handler. + +./include/cmd_confdefs.h +	Added definition of CFG_CMD_BEDBUG. + +./include/config_WALNUT405.h +	Added CFG_CMD_BEDBUG to the CONFIG_COMMANDS for the WALNUT. + +./include/ppc_asm.tmpl +	Added code to handle critical exceptions + +################# +### New Stuff ### +################# + +./include/bedbug/ppc.h +./include/bedbug/regs.h +./include/bedbug/bedbug.h +./include/bedbug/elf.h		[obsoleted by new include/elf.h] +./include/bedbug/tables.h +./include/cmd_bedbug.h +./common/cmd_bedbug.c +./common/bedbug.c +	Bedbug library includes code for assembling and disassembling +	PowerPC instructions to/from memory as well as handling +	hardware breakpoints and stepping through code.  These +	routines are common to all PowerPC processors. + +./cpu/ppc4xx/bedbug_405.c +	IBM PPC405 specific debugger routines. + + + +Bedbug support for the MPC860 +----------------------------- + +Changes: + +	common/cmd_bedbug.c +		Added call to initialize 860 debugger. + +	cpu/mpc8xx/Makefile +		Added new file "bedbug_860.c" to the makefile + +	cpu/mpc8xx/start.S +		Added handler for InstructionBreakpoint (0xfd00) + +	cpu/mpc8xx/traps.c +		Added new routine DebugException() + +	include/config_MBX.h +		Added CFG_CMD_BEDBUG to CONFIG_COMMANDS define + + +New Files: + +	cpu/mpc8xx/bedbug_860.c +		CPU-specific routines for 860 debug registers. diff --git a/doc/README.evb64260 b/doc/README.evb64260 new file mode 100644 index 000000000..74211dea4 --- /dev/null +++ b/doc/README.evb64260 @@ -0,0 +1,54 @@ +This file contains status information for the port of U-Boot to the +Galileo Evaluation Board. + +Author: Josh Huber <huber@mclx.com> +	Mission Critical Linux, Inc. + +The support for the Galileo Evaluation board is fairly minimal now. +It's sufficient to boot Linux, but doesn't provide too much more than +what's required to do this. + +Both DUART channels are supported (to use the second one, you have to +modify the board -- see the schematics for where to solder on the +devices module).  The ethernet ports are supported, and the MPSC is +supported as a console driver. (keep in mind that the kernel has no +support for this yet) + +There are still occaisonal lockups with the MPSC console driver due to +(we think!) overrun problems.  If you're looking for something stable +to use for Linux development, consider sticking with the DUART console +for now. + +Automatic memory sizing mostly works.  We've had problems with some +combinations of memory.  Please send us email if you're having trouble +with respect to the memory detection. + +Right now, only the 512k boot flash is supported.  Support for the +16MB flash on the devices module is forthcoming.  Right now the flash +is stored at the 256k boundry in flash, wasting a whole sector (64k!) +for environment data.  This isn't really a big deal since we're not +using the 512k for anything else. (Just U-Boot and the environment) + +Finally, here is a sample output session: + +U-Boot 1.0.0-pre1 (Jun  6 2001 - 12:45:11) + +Initializing... +  CPU:   MPC7400 (altivec enabled) v2.9 +  Board: EVB64260 +  DRAM:  256 MB +  FLASH: 512 kB +  In:    serial +  Out:   serial +  Err:   serial + +=> + +The default configuration should be correct for the evaluation board, +as it's shipped from Galileo.  Keep in mind that the default baudrate +is set to 38400, 8N1. + +Good luck, and make sure to send any bugreports to us (or the +u-boot-users list). + +Josh diff --git a/doc/README.mpc74xx b/doc/README.mpc74xx new file mode 100644 index 000000000..f81f1c2e8 --- /dev/null +++ b/doc/README.mpc74xx @@ -0,0 +1,22 @@ +This file contains status information for the port of U-Boot to the +Motorola mpc74xx series of CPUs. + +Author: Josh Huber <huber@mclx.com> +	Mission Critical Linux, Inc. + +Currently the support for these CPUs is pretty minimal, but enough to +get things going.  (much like the support for the Galileo Eval Board) + +There is a framework in place to enable the L2 cache, and to program +the BATs.  Currently, there are still problems with the code which +sets up the L2 cache, so it's not enabled. (IMHO, it shouldn't be +anyway).  Additionally, there is support for enabling the MMU, which +we also don't do.  The BATs are programmed just for the benefit of +jumping into Linux in a sane configuration. + +Most of the code was based on other cpus supported by U-Boot. + +If you find any errors in the CPU setup code, please send us a note. + +Thanks, +Josh diff --git a/doc/README.usb b/doc/README.usb new file mode 100644 index 000000000..41f76f4b7 --- /dev/null +++ b/doc/README.usb @@ -0,0 +1,80 @@ +/* + * (C) Copyright 2001 + * Denis Peter, MPL AG Switzerland + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + */ + +USB Support for PIP405 and MIP405 (UHCI) +======================================== + +The USB support is implemented on the base of the UHCI Host +controller. + +Currently supported are USB Hubs, USB Keyboards and USB Floppys. +Tested with a TEAC Floppy TEAC FD-05PUB and Chicony KU-8933 Keyboard. + +How it works: +------------- + +The USB (at least the USB UHCI) needs a frame list (4k), transfer +descripor and queue headers which are all located in the main memory. +The UHCI allocates every milisecond the PCI bus and reads the current +frame pointer. This may cause to crash the OS during boot. So the USB +_MUST_ be stopped during OS boot. This is the reason, why the USB is +NOT automatically started during start-up. If someone needs the USB +he has to start it and should therefore be aware that he had to stop +it before booting the OS. + +For USB keyboards this can be done by a script which is automatically +started after the U-Boot is up and running. To boot an OS with a an +USB keyboard another script is necessary, which first disables the +USB and then executes the boot command. If the boot command fails, +the script can reenable the USB kbd. + +Common USB Commands: +- usb start: +- usb reset:	    (re)starts the USB. All USB devices will be +		    initialized and a device tree is build for them. +- usb tree:	    shows all USB devices in a tree like display +- usb info [dev]:   shows all USB infos of the device dev, or of all +		    the devices +- usb stop [f]:	    stops the USB. If f==1 the USB will also stop if +		    an USB keyboard is assigned as stdin. The stdin +		    is then switched to serial input. +Storage USB Commands: +- usb scan:	    scans the USB for storage devices.The USB must be +		    running for this command (usb start) +- usb device [dev]: show or set current USB staorage device +- usb part [dev]:   print partition table of one or all USB storage +		    devices +- usb read addr blk# cnt: +		    read `cnt' blocks starting at block `blk#'to +		    memory address `addr' +- usbboot addr dev:part: +		    boot from USB device + +Config Switches: +---------------- +CFG_CMD_USB	    enables basic USB support and the usb command +CONFIG_USB_UHCI	    defines the lowlevel part.A lowlevel part must be defined if +		    using CFG_CMD_USB +CONFIG_USB_KEYBOARD enables the USB Keyboard +CONFIG_USB_STORAGE  enables the USB storage devices |