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.
