123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371 |
- 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_SCSI
- - include/config_hymod.h excluded CONFIG_CMD_FDC and CONFIG_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_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
- 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
- blk_desc will be used when accessing the functions in these files. The block
- device descriptor (blk_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.
|