U-Boot Changes due to PIP405 Port:
===================================

Changed files:
==============
- MAKEALL			added PIP405
- makefile			added PIP405
- common/Makefile		added Floppy disk and SCSI support
- common/board.c		added PIP405, SCSI support, get_PCI_freq()
- common/bootm.c		added IH_OS_U_BOOT, IH_TYPE_FIRMWARE
- common/cmd_i2c.c		added "defined(CONFIG_PIP405)"
- common/cmd_ide.c		changed div. functions to work with block device
				description
				added ATAPI support
- common/command.c		added SCSI and Floppy support
- common/console.c		replaced // with /* comments
				added console settings from environment
- common/devices.c		added ISA keyboard init
- common/main.c			corrected the read of bootdelay
- cpu/ppc4xx/405gp_pci.c	excluded file from PIP405
- cpu/ppc4xx/i2c.c		added 16bit read write I2C support
				added page write
- cpu/ppc4xx/speed.c		added get_PCI_freq
- cpu/ppc4xx/start.S		added CONFIG_IDENT_STRING
- disk/Makefile			added part_iso for CD support
- disk/part.c			changed to work with block device description
				added ISO CD support
				added dev_print (was ide_print in cmd_ide.c)
- disk/part_dos.c		changed to work with block device description
- disk/part_mac.c		changed to work with block device description
- include/ata.h			added ATAPI commands
- include/cmd_bsp.h		added PIP405 commands definitions
- include/cmd_condefs.h		added Floppy and SCSI support
- include/cmd_disk.h		changed to work with block device description
- include/config_LANTEC.h	excluded CONFIG_CMD_FDC and CONFIG_CMD_SCSI
- include/config_hymod.h	excluded CONFIG_CMD_FDC and CONFIG_CMD_SCSI
- include/flash.h		added INTEL_ID_28F320C3T  0x88C488C4
- include/i2c.h			added "defined(CONFIG_PIP405)"
- include/image.h		added IH_OS_U_BOOT, IH_TYPE_FIRMWARE
- include/u-boot.h		moved partitions functions definitions to part.h
				added "defined(CONFIG_PIP405)"
				added get_PCI_freq() definition
- rtc/Makefile			added MC146818 RTC support
- tools/mkimage.c		added IH_OS_U_BOOT, IH_TYPE_FIRMWARE

Added files:
============
- board/pip405			directory for PIP405
- board/pip405/cmd_pip405.c	board specific commands
- board/pip405/config.mk	config make
- board/pip405/flash.c		flash support
- board/pip405/init.s		start-up
- board/pip405/kbd.c		keyboard support
- board/pip405/kbd.h		keyboard support
- board/pip405/Makefile		Makefile
- board/pip405/pci_piix4.h	southbridge definitions
- board/pip405/pci_pip405.c	PCI support for PIP405
- board/pip405/pci_pip405.h	PCI support for PIP405
- board/pip405/pip405.c		PIP405 board init
- board/pip405/pip405.h		PIP405 board init
- board/pip405/pip405_isa.c	ISA support
- board/pip405/pip405_isa.h	ISA support
- board/pip405/u-boot.lds	Linker description
- board/pip405/u-boot.lds.debugLinker description debug
- board/pip405/sym53c8xx.c	SYM53C810A support
- board/pip405/sym53c8xx_defs.h SYM53C810A definitions
- board/pip405/vga_table.h	definitions of tables for VGA
- board/pip405/video.c		CT69000 support
- board/pip405/video.h		CT69000 support
- common/cmd_fdc.c		Floppy disk support
- common/cmd_scsi.c		SCSI support
- disk/part_iso.c		ISO CD ROM support
- disk/part_iso.h		ISO CD ROM support
- include/cmd_fdc.h		command forFloppy disk support
- include/cmd_scsi.h		command for SCSI support
- include/part.h		partitions functions definitions
				(was part of u-boot.h)
- include/scsi.h		SCSI support
- rtc/mc146818.c		MC146818 RTC support


New Config Switches:
====================
For detailed description, refer to the corresponding paragraph in the
section "Changes".

New Commands:
-------------
CONFIG_CMD_SCSI	SCSI Support
CONFIG_CMF_FDC	Floppy disk support

IDE additions:
--------------
CONFIG_IDE_RESET_ROUTINE	defines that instead of a reset Pin,
				the routine ide_set_reset(int idereset) is used.
ATAPI support (experimental)
----------------------------
CONFIG_ATAPI	enables ATAPI Support

SCSI support (experimental) only SYM53C8xx supported
----------------------------------------------------
CONFIG_SCSI_SYM53C8XX		type of SCSI controller
CFG_SCSI_MAX_LUN	8	number of supported LUNs
CFG_SCSI_MAX_SCSI_ID	7	maximum SCSI ID (0..6)
CFG_SCSI_MAX_DEVICE	CFG_SCSI_MAX_SCSI_ID * CFG_SCSI_MAX_LUN
				maximum of Target devices (multiple LUN support
				for boot)

ISO (CD-Boot) partition support (Experimental)
----------------------------------------------
CONFIG_ISO_PARTITION		CD-boot support

RTC
----
CONFIG_RTC_MC146818		MC146818 RTC support

Keyboard:
---------
CONFIG_ISA_KEYBOARD		Standard (PC-Style) Keyboard support

Video:
------
CONFIG_VIDEO_CT69000		Enable Chips & Technologies 69000 Video chip
				CONFIG_VIDEO must be defined also

External peripheral base address:
---------------------------------
CFG_ISA_IO_BASE_ADDRESS		address of all ISA-bus related parts
				_must_ be defined for ISA-bus parts

Identify:
---------
CONFIG_IDENT_STRING		added to the U_BOOT_VERSION String


I2C stuff:
----------
CFG_EEPROM_PAGE_WRITE_ENABLE	enables page write of the I2C EEPROM
				CFG_EEPROM_PAGE_WRITE_BITS _must_ be
				defined.


Environment / Console:
----------------------

CFG_CONSOLE_IS_IN_ENV		if defined, stdin, stdout and stderr used from
				the values stored in the evironment.

CFG_CONSOLE_OVERWRITE_ROUTINE	if defined, console_overwrite() decides if the
				values stored in the environment or the standard
				serial in/out put should be assigned to the console.

CFG_CONSOLE_ENV_OVERWRITE	if defined, the start-up console switching
				are stored in the environment.

PIP405 specific:
----------------
CONFIG_PORT_ADDR		address used to read boot configuration
MULTI_PURPOSE_SOCKET_ADDR	address of the multi purpose socked
SDRAM_EEPROM_WRITE_ADDRESS	addresses of the serial presence detect
SDRAM_EEPROM_READ_ADDRESS	EEPROM on the SDRAM module.


Changes:
========

Added Devices:
==============

Floppy support:
---------------
Support of a standard floppy disk controller at address CFG_ISA_IO_BASE_ADDRESS
+ 0x3F0. Enabled with define CONFIG_CMD_FDC. Reads a unformated floppy disk
with a image header (see: mkimage). No interrupts and no DMA are used for this.
Added files:
- common/cmd_fdc.c
- include/cmd_fdc.h

SCSI support:
-------------
Support for Symbios SYM53C810A chip. Implemented as follows:
- without disconnect
- only asynchrounous
- multiple LUN support (caution, needs a lot of RAM. define CFG_SCSI_MAX_LUN 1 to
  save RAM)
- multiple SCSI ID support
- no write support
- analyses the MAC, DOS and ISO pratition similar to the IDE support
- allows booting from SCSI devices similar to the IDE support.
The device numbers are not assigned like they are within the IDE support. The first
device found will get the number 0, the next 1 etc. If all SCSI IDs (0..6) and all
LUNs (8) are enabled, 56 boot devices are possible. This uses a lot of RAM since the
device descriptors are not yet dynamically allocated. 56 boot devices are overkill
anyway. Please refer to the section "Todo" chapter "block device support enhancement".
The SYM53C810A uses 1 Interrupt and must be able of mastering the PCI bus.
Added files:
- common/cmd_scsi.c
- common/board.c
- include/cmd_scsi.h
- include/scsi.h
- board/pip405/sym53c8xx.c
- board/pip405/sym53c8xx_defs.h

ATAPI support (IDE changes):
----------------------------
Added ATAPI support (with CONFIG_ATAPI) in the file cmd_ide.c.
To support a hardreset, when the IDE reset pin is not connected to the
CFG_PC_IDE_RESET pin, the switch CONFIG_IDE_RESET_ROUTINE has been added. When
this switch is enabled the routine void ide_set_reset(int idereset) must be
within the board specific files.
Only read from ATAPI devices are supported.
Found out that the function trim_trail cuts off the last character if the whole
string is filled. Added function cpy_ident instead, which trims also leading
spaces and copies the string in the buffer.
Changed files:
- common/cmd_ide.c
- include/ata.h

ISO partition support:
----------------------
Added CD boot support for El-Torito bootable ISO CDs. The bootfile image must contain
the U-Boot image header. Since CDs do not have "partitions", the boot partition is 0.
The bootcatalog feature has not been tested so far. CD Boot is supported for ATAPI
("diskboot") and SCSI ("scsiboot") devices.
Added files:
- disk/iso_part.c
- disk/iso_part.h

Block device changes:
---------------------
To allow the use of dos_part.c, mac_part.c and iso_part.c, the parameter
block_dev_desc will be used when accessing the functions in these files. The block
device descriptor (block_dev_desc) contains a pointer to the read routine of the
device, which will be used to read blocks from the device.
Renamed function ide_print to dev_print and moved it to the file disk/part.c to use
it for IDE ATAPI and SCSI devices.
Please refer to the section "Todo" chapter "block device support enhancement".
Added files:
- include/part.h
changed files:
- disk/dos_part.c
- disk/dos_part.h
- disk/mac_part.c
- disk/mac_part.h
- disk/part.c
- common/cmd_ide.c
- include/u-boot.h


MC146818 RTC support:
---------------------
Added support for MC146818 RTC with defining CONFIG_RTC_MC146818. The ISA bus IO
base address must be defined with CFG_ISA_IO_BASE_ADDRESS.
Added files:
- rtc/mc146818.c

Standard ISA bus Keyboard support:
----------------------------------
Added support for the standard PC kyeboard controller. For the PIP405 the superIO
controller must be set up previously. The keyboard uses the standard ISA IRQ, so
the ISA PIC must also be set up.
Added files:
- board/pip405/kbd.c
- board/pip405/kbd.h
- board/pip405/pip405_isa.c
- board/pip405/pip405_isa.h

Chips and Technologie 69000 VGA controller support:
---------------------------------------------------
Added support for the CT69000 VGA controller.
Added files:
- board/pip405/video.c
- board/pip405/video.h
- board/pip405/vga_table.h


Changed Items:
==============

Identify:
---------
Added the config variable CONFIG_IDENT_STRING which will be added to the
"U_BOOT_VERSION __TIME__ DATE___ " String, to allows to identify intermidiate
and custom versions.
Changed files:
- cpu/ppc4xx/start.s

Firmware Image:
---------------
Added IH_OS_U_BOOT and IH_TYPE_FIRMWARE to the image definitions to allows the
U-Boot update with prior CRC check.
Changed files:
- include/image.h
- tools/mkimage.c
- common/cmd_bootm.c

Correct PCI Frequency for PPC405:
---------------------------------
Added function (in cpu/ppc4xx/speed.c) to get the PCI frequency for PPC405 CPU.
The PCI Frequency will now be set correct in the board description in common/board.c.
(was set to the busfreq before).
Changed files:
- cpu/ppc4xx/speed.c
- common/board.c

I2C Stuff:
----------
Added defined(CONFIG_PIP405) at several points in common/cmd_i2c.c.
Added 16bit read/write support for I2C (PPC405), and page write to
I2C EEPROM if defined CFG_EEPROM_PAGE_WRITE_ENABLE.
Changed files:
- cpu/ppc4xx/i2c.c
- common/cmd_i2c.c

Environment / Console:
----------------------
Although in README.console described, the U-Boot has not assinged the values
found in the environment to the console. Corrected this behavior, but only if
CFG_CONSOLE_IS_IN_ENV is defined.
If CFG_CONSOLE_OVERWRITE_ROUTINE is defined, console_overwrite() decides if the
values stored in the environment or the standard serial in/output should be
assigned to the console. This is useful if the environment values are not correct.
If CFG_CONSOLE_ENV_OVERWRITE is defined the devices assigned to the console at
start-up time will be written to the environment. This means that if the
environment values are overwritten by the overwrite_console() routine, they will be
stored in the environment.
Changed files:
- common/console.c

Correct bootdelay intepretation:
--------------------------------
Changed bootdelay read from the environment from simple_strtoul (unsigned) to
simple_strtol (signed), to be able to get a bootdelay of -1.
Changed files:
- common/main.c

Todo:
=====

Block device support enhancement:
---------------------------------
Consider to unify the block device handling. Instead of using diskboot for IDE,
scsiboot for SCSI and fdcboot for floppy disks, it would make sense to use only
one command ("devboot" ???) with a parameter of the desired device ("hda1", "sda1",
"fd0" ???) to boot from. The other ide commands can be handled in the same way
("dev hda read.." instead of "ide read.." or "dev sda read.." instead of
"scsi read..."). Todo this, a common way of assign a block device to its name
(first found ide device = hda, second found hdb etc., or hda is device 0 on bus 0,
hdb is device 1 on bus 0 etc.) as well as the names (hdx for ide, sdx for scsi, fx for
floppy ???) must be defined.
Maybe there are better ideas to do this.

Console assingment:
-------------------
Consider to initialize and assign the console stdin, stdout and stderr as soon as
possible to see the boot messages also on an other console than serial.


Todo for PIP405:
================

LCD support for VGA:
--------------------
Add LCD support for the CT69000

Default environment:
--------------------
Consider to write a default environment to the OTP part of the EEPROM and use it
if the normal environment is not valid. Useful for serial# and ethaddr values.

Watchdog:
---------
Implement Watchdog.

Files clean-up:
---------------
Following files needs to be cleaned up:
- cmd_pip405.c
- flash.c
- pci_pip405.c
- pip405.c
- pip405_isa.c
Consider to split up the files in their functions.
