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
- arch/powerpc/cpu/ppc4xx/405gp_pci.c	excluded file from PIP405
- arch/powerpc/cpu/ppc4xx/i2c.c		added 16bit read write I2C support
				added page write
- arch/powerpc/cpu/ppc4xx/speed.c		added get_PCI_freq
- arch/powerpc/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:
- arch/powerpc/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 arch/powerpc/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:
- arch/powerpc/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:
- arch/powerpc/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.
