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
CONFIG_SYS_SCSI_MAX_LUN	8	number of supported LUNs
CONFIG_SYS_SCSI_MAX_SCSI_ID	7	maximum SCSI ID (0..6)
CONFIG_SYS_SCSI_MAX_DEVICE	CONFIG_SYS_SCSI_MAX_SCSI_ID * CONFIG_SYS_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:
---------------------------------
CONFIG_SYS_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

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

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

CONFIG_SYS_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.

CONFIG_SYS_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 CONFIG_SYS_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 CONFIG_SYS_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
CONFIG_SYS_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 CONFIG_SYS_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 CONFIG_SYS_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
CONFIG_SYS_CONSOLE_IS_IN_ENV is defined.
If CONFIG_SYS_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 CONFIG_SYS_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.
