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