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