wdenk | fe8c280 | 2002-11-03 00:38:21 +0000 | [diff] [blame] | 1 | U-Boot Changes due to PIP405 Port: |
| 2 | =================================== |
| 3 | |
| 4 | Changed files: |
| 5 | ============== |
| 6 | - MAKEALL added PIP405 |
| 7 | - makefile added PIP405 |
| 8 | - common/Makefile added Floppy disk and SCSI support |
| 9 | - common/board.c added PIP405, SCSI support, get_PCI_freq() |
| 10 | - common/bootm.c added IH_OS_U_BOOT, IH_TYPE_FIRMWARE |
| 11 | - common/cmd_i2c.c added "defined(CONFIG_PIP405)" |
| 12 | - common/cmd_ide.c changed div. functions to work with block device |
| 13 | description |
| 14 | added ATAPI support |
| 15 | - common/command.c added SCSI and Floppy support |
| 16 | - common/console.c replaced // with /* comments |
| 17 | added console settings from environment |
| 18 | - common/devices.c added ISA keyboard init |
| 19 | - common/main.c corrected the read of bootdelay |
| 20 | - cpu/ppc4xx/405gp_pci.c excluded file from PIP405 |
| 21 | - cpu/ppc4xx/i2c.c added 16bit read write I2C support |
| 22 | added page write |
| 23 | - cpu/ppc4xx/speed.c added get_PCI_freq |
| 24 | - cpu/ppc4xx/start.S added CONFIG_IDENT_STRING |
| 25 | - disk/Makefile added part_iso for CD support |
| 26 | - disk/part.c changed to work with block device description |
| 27 | added ISO CD support |
| 28 | added dev_print (was ide_print in cmd_ide.c) |
| 29 | - disk/part_dos.c changed to work with block device description |
| 30 | - disk/part_mac.c changed to work with block device description |
| 31 | - include/ata.h added ATAPI commands |
| 32 | - include/cmd_bsp.h added PIP405 commands definitions |
| 33 | - include/cmd_condefs.h added Floppy and SCSI support |
| 34 | - include/cmd_disk.h changed to work with block device description |
| 35 | - include/config_LANTEC.h excluded CFG_CMD_FDC and CFG_CMD_SCSI from |
| 36 | CONFIG_CMD_FULL |
| 37 | - include/config_hymod.h excluded CFG_CMD_FDC and CFG_CMD_SCSI from |
| 38 | CONFIG_CMD_FULL |
| 39 | - include/flash.h added INTEL_ID_28F320C3T 0x88C488C4 |
| 40 | - include/i2c.h added "defined(CONFIG_PIP405)" |
| 41 | - include/image.h added IH_OS_U_BOOT, IH_TYPE_FIRMWARE |
| 42 | - include/u-boot.h moved partitions functions definitions to part.h |
| 43 | added "defined(CONFIG_PIP405)" |
| 44 | added get_PCI_freq() definition |
| 45 | - rtc/Makefile added MC146818 RTC support |
| 46 | - tools/mkimage.c added IH_OS_U_BOOT, IH_TYPE_FIRMWARE |
| 47 | |
| 48 | Added files: |
| 49 | ============ |
| 50 | - board/pip405 directory for PIP405 |
| 51 | - board/pip405/cmd_pip405.c board specific commands |
| 52 | - board/pip405/config.mk config make |
| 53 | - board/pip405/flash.c flash support |
| 54 | - board/pip405/init.s start-up |
| 55 | - board/pip405/kbd.c keyboard support |
| 56 | - board/pip405/kbd.h keyboard support |
| 57 | - board/pip405/Makefile Makefile |
| 58 | - board/pip405/pci_piix4.h southbridge definitions |
| 59 | - board/pip405/pci_pip405.c PCI support for PIP405 |
| 60 | - board/pip405/pci_pip405.h PCI support for PIP405 |
| 61 | - board/pip405/pip405.c PIP405 board init |
| 62 | - board/pip405/pip405.h PIP405 board init |
| 63 | - board/pip405/pip405_isa.c ISA support |
| 64 | - board/pip405/pip405_isa.h ISA support |
| 65 | - board/pip405/u-boot.lds Linker description |
| 66 | - board/pip405/u-boot.lds.debugLinker description debug |
| 67 | - board/pip405/sym53c8xx.c SYM53C810A support |
| 68 | - board/pip405/sym53c8xx_defs.h SYM53C810A definitions |
| 69 | - board/pip405/vga_table.h definitions of tables for VGA |
| 70 | - board/pip405/video.c CT69000 support |
| 71 | - board/pip405/video.h CT69000 support |
| 72 | - common/cmd_fdc.c Floppy disk support |
| 73 | - common/cmd_scsi.c SCSI support |
| 74 | - disk/part_iso.c ISO CD ROM support |
| 75 | - disk/part_iso.h ISO CD ROM support |
| 76 | - include/cmd_fdc.h command forFloppy disk support |
| 77 | - include/cmd_scsi.h command for SCSI support |
| 78 | - include/part.h partitions functions definitions |
| 79 | (was part of u-boot.h) |
| 80 | - include/scsi.h SCSI support |
| 81 | - rtc/mc146818.c MC146818 RTC support |
| 82 | |
| 83 | |
| 84 | New Config Switches: |
| 85 | ==================== |
| 86 | For detailed description, refer to the corresponding paragraph in the |
| 87 | section "Changes". |
| 88 | |
| 89 | New Commands: |
| 90 | ------------- |
| 91 | CFG_CMD_SCSI SCSI Support |
| 92 | CFG_CMF_FDC Floppy disk support |
| 93 | |
| 94 | IDE additions: |
| 95 | -------------- |
| 96 | CONFIG_IDE_RESET_ROUTINE defines that instead of a reset Pin, |
| 97 | the routine ide_set_reset(int idereset) is used. |
| 98 | ATAPI support (experimental) |
| 99 | ---------------------------- |
| 100 | CONFIG_ATAPI enables ATAPI Support |
| 101 | |
| 102 | SCSI support (experimental) only SYM53C8xx supported |
| 103 | ---------------------------------------------------- |
| 104 | CONFIG_SCSI_SYM53C8XX type of SCSI controller |
| 105 | CFG_SCSI_MAX_LUN 8 number of supported LUNs |
| 106 | CFG_SCSI_MAX_SCSI_ID 7 maximum SCSI ID (0..6) |
| 107 | CFG_SCSI_MAX_DEVICE CFG_SCSI_MAX_SCSI_ID * CFG_SCSI_MAX_LUN |
| 108 | maximum of Target devices (multiple LUN support |
| 109 | for boot) |
| 110 | |
| 111 | ISO (CD-Boot) partition support (Experimental) |
| 112 | ---------------------------------------------- |
| 113 | CONFIG_ISO_PARTITION CD-boot support |
| 114 | |
| 115 | RTC |
| 116 | ---- |
| 117 | CONFIG_RTC_MC146818 MC146818 RTC support |
| 118 | |
| 119 | Keyboard: |
| 120 | --------- |
| 121 | CONFIG_ISA_KEYBOARD Standard (PC-Style) Keyboard support |
| 122 | |
| 123 | Video: |
| 124 | ------ |
| 125 | CONFIG_VIDEO_CT69000 Enable Chips & Technologies 69000 Video chip |
| 126 | CONFIG_VIDEO must be defined also |
| 127 | |
| 128 | External peripheral base address: |
| 129 | --------------------------------- |
| 130 | CFG_ISA_IO_BASE_ADDRESS address of all ISA-bus related parts |
| 131 | _must_ be defined for ISA-bus parts |
| 132 | |
| 133 | Identify: |
| 134 | --------- |
| 135 | CONFIG_IDENT_STRING added to the U_BOOT_VERSION String |
| 136 | |
| 137 | |
| 138 | I2C stuff: |
| 139 | ---------- |
| 140 | CFG_EEPROM_PAGE_WRITE_ENABLE enables page write of the I2C EEPROM |
| 141 | CFG_EEPROM_PAGE_WRITE_BITS _must_ be |
| 142 | defined. |
| 143 | |
| 144 | |
| 145 | Environment / Console: |
| 146 | ---------------------- |
| 147 | |
| 148 | CFG_CONSOLE_IS_IN_ENV if defined, stdin, stdout and stderr used from |
| 149 | the values stored in the evironment. |
| 150 | |
| 151 | CFG_CONSOLE_OVERWRITE_ROUTINE if defined, console_overwrite() decides if the |
| 152 | values stored in the environment or the standard |
| 153 | serial in/out put should be assigned to the console. |
| 154 | |
| 155 | CFG_CONSOLE_ENV_OVERWRITE if defined, the start-up console switching |
| 156 | are stored in the environment. |
| 157 | |
| 158 | PIP405 specific: |
| 159 | ---------------- |
| 160 | CONFIG_PORT_ADDR address used to read boot configuration |
| 161 | MULTI_PURPOSE_SOCKET_ADDR address of the multi purpose socked |
| 162 | SDRAM_EEPROM_WRITE_ADDRESS addresses of the serial presence detect |
| 163 | SDRAM_EEPROM_READ_ADDRESS EEPROM on the SDRAM module. |
| 164 | |
| 165 | |
| 166 | Changes: |
| 167 | ======== |
| 168 | |
| 169 | Added Devices: |
| 170 | ============== |
| 171 | |
| 172 | Floppy support: |
| 173 | --------------- |
| 174 | Support of a standard floppy disk controller at address CFG_ISA_IO_BASE_ADDRESS |
| 175 | + 0x3F0. Enabled with define CFG_CMD_FDC. Reads a unformated floppy disk with a |
| 176 | image header (see: mkimage). No interrupts and no DMA are used for this. |
| 177 | Added files: |
| 178 | - common/cmd_fdc.c |
| 179 | - include/cmd_fdc.h |
| 180 | |
| 181 | SCSI support: |
| 182 | ------------- |
| 183 | Support for Symbios SYM53C810A chip. Implemented as follows: |
| 184 | - without disconnect |
| 185 | - only asynchrounous |
| 186 | - multiple LUN support (caution, needs a lot of RAM. define CFG_SCSI_MAX_LUN 1 to |
| 187 | save RAM) |
| 188 | - multiple SCSI ID support |
| 189 | - no write support |
| 190 | - analyses the MAC, DOS and ISO pratition similar to the IDE support |
| 191 | - allows booting from SCSI devices similar to the IDE support. |
| 192 | The device numbers are not assigned like they are within the IDE support. The first |
| 193 | device found will get the number 0, the next 1 etc. If all SCSI IDs (0..6) and all |
| 194 | LUNs (8) are enabled, 56 boot devices are possible. This uses a lot of RAM since the |
| 195 | device descriptors are not yet dynamically allocated. 56 boot devices are overkill |
| 196 | anyway. Please refer to the section "Todo" chapter "block device support enhancement". |
| 197 | The SYM53C810A uses 1 Interrupt and must be able of mastering the PCI bus. |
| 198 | Added files: |
| 199 | - common/cmd_scsi.c |
| 200 | - common/board.c |
| 201 | - include/cmd_scsi.h |
| 202 | - include/scsi.h |
| 203 | - board/pip405/sym53c8xx.c |
| 204 | - board/pip405/sym53c8xx_defs.h |
| 205 | |
| 206 | ATAPI support (IDE changes): |
| 207 | ---------------------------- |
| 208 | Added ATAPI support (with CONFIG_ATAPI) in the file cmd_ide.c. |
| 209 | To support a hardreset, when the IDE reset pin is not connected to the |
| 210 | CFG_PC_IDE_RESET pin, the switch CONFIG_IDE_RESET_ROUTINE has been added. When |
| 211 | this switch is enabled the routine void ide_set_reset(int idereset) must be |
| 212 | within the board specific files. |
| 213 | Only read from ATAPI devices are supported. |
| 214 | Found out that the function trim_trail cuts off the last character if the whole |
| 215 | string is filled. Added function cpy_ident instead, which trims also leading |
| 216 | spaces and copies the string in the buffer. |
| 217 | Changed files: |
| 218 | - common/cmd_ide.c |
| 219 | - include/ata.h |
| 220 | |
| 221 | ISO partition support: |
| 222 | ---------------------- |
| 223 | Added CD boot support for El-Torito bootable ISO CDs. The bootfile image must contain |
| 224 | the U-Boot image header. Since CDs do not have "partitions", the boot partition is 0. |
| 225 | The bootcatalog feature has not been tested so far. CD Boot is supported for ATAPI |
| 226 | ("diskboot") and SCSI ("scsiboot") devices. |
| 227 | Added files: |
| 228 | - disk/iso_part.c |
| 229 | - disk/iso_part.h |
| 230 | |
| 231 | Block device changes: |
| 232 | --------------------- |
| 233 | To allow the use of dos_part.c, mac_part.c and iso_part.c, the parameter |
| 234 | block_dev_desc will be used when accessing the functions in these files. The block |
| 235 | device descriptor (block_dev_desc) contains a pointer to the read routine of the |
| 236 | device, which will be used to read blocks from the device. |
| 237 | Renamed function ide_print to dev_print and moved it to the file disk/part.c to use |
| 238 | it for IDE ATAPI and SCSI devices. |
| 239 | Please refer to the section "Todo" chapter "block device support enhancement". |
| 240 | Added files: |
| 241 | - include/part.h |
| 242 | changed files: |
| 243 | - disk/dos_part.c |
| 244 | - disk/dos_part.h |
| 245 | - disk/mac_part.c |
| 246 | - disk/mac_part.h |
| 247 | - disk/part.c |
| 248 | - common/cmd_ide.c |
| 249 | - include/u-boot.h |
| 250 | |
| 251 | |
| 252 | MC146818 RTC support: |
| 253 | --------------------- |
| 254 | Added support for MC146818 RTC with defining CONFIG_RTC_MC146818. The ISA bus IO |
| 255 | base address must be defined with CFG_ISA_IO_BASE_ADDRESS. |
| 256 | Added files: |
| 257 | - rtc/mc146818.c |
| 258 | |
| 259 | Standard ISA bus Keyboard support: |
| 260 | ---------------------------------- |
| 261 | Added support for the standard PC kyeboard controller. For the PIP405 the superIO |
| 262 | controller must be set up previously. The keyboard uses the standard ISA IRQ, so |
| 263 | the ISA PIC must also be set up. |
| 264 | Added files: |
| 265 | - board/pip405/kbd.c |
| 266 | - board/pip405/kbd.h |
| 267 | - board/pip405/pip405_isa.c |
| 268 | - board/pip405/pip405_isa.h |
| 269 | |
| 270 | Chips and Technologie 69000 VGA controller support: |
| 271 | --------------------------------------------------- |
| 272 | Added support for the CT69000 VGA controller. |
| 273 | Added files: |
| 274 | - board/pip405/video.c |
| 275 | - board/pip405/video.h |
| 276 | - board/pip405/vga_table.h |
| 277 | |
| 278 | |
| 279 | Changed Items: |
| 280 | ============== |
| 281 | |
| 282 | Identify: |
| 283 | --------- |
| 284 | Added the config variable CONFIG_IDENT_STRING which will be added to the |
| 285 | "U_BOOT_VERSION __TIME__ DATE___ " String, to allows to identify intermidiate |
| 286 | and custom versions. |
| 287 | Changed files: |
| 288 | - cpu/ppc4xx/start.s |
| 289 | |
| 290 | Firmware Image: |
| 291 | --------------- |
| 292 | Added IH_OS_U_BOOT and IH_TYPE_FIRMWARE to the image definitions to allows the |
| 293 | U-Boot update with prior CRC check. |
| 294 | Changed files: |
| 295 | - include/image.h |
| 296 | - tools/mkimage.c |
| 297 | - common/cmd_bootm.c |
| 298 | |
| 299 | Correct PCI Frequency for PPC405: |
| 300 | --------------------------------- |
| 301 | Added function (in cpu/ppc4xx/speed.c) to get the PCI frequency for PPC405 CPU. |
| 302 | The PCI Frequency will now be set correct in the board description in common/board.c. |
| 303 | (was set to the busfreq before). |
| 304 | Changed files: |
| 305 | - cpu/ppc4xx/speed.c |
| 306 | - common/board.c |
| 307 | |
| 308 | I2C Stuff: |
| 309 | ---------- |
| 310 | Added defined(CONFIG_PIP405) at several points in common/cmd_i2c.c. |
| 311 | Added 16bit read/write support for I2C (PPC405), and page write to |
| 312 | I2C EEPROM if defined CFG_EEPROM_PAGE_WRITE_ENABLE. |
| 313 | Changed files: |
| 314 | - cpu/ppc4xx/i2c.c |
| 315 | - common/cmd_i2c.c |
| 316 | |
| 317 | Environment / Console: |
| 318 | ---------------------- |
| 319 | Although in README.console described, the U-Boot has not assinged the values |
| 320 | found in the environment to the console. Corrected this behavior, but only if |
| 321 | CFG_CONSOLE_IS_IN_ENV is defined. |
| 322 | If CFG_CONSOLE_OVERWRITE_ROUTINE is defined, console_overwrite() decides if the |
| 323 | values stored in the environment or the standard serial in/output should be |
| 324 | assigned to the console. This is useful if the environment values are not correct. |
| 325 | If CFG_CONSOLE_ENV_OVERWRITE is defined the devices assigned to the console at |
| 326 | start-up time will be written to the environment. This means that if the |
| 327 | environment values are overwritten by the overwrite_console() routine, they will be |
| 328 | stored in the environment. |
| 329 | Changed files: |
| 330 | - common/console.c |
| 331 | |
| 332 | Correct bootdelay intepretation: |
| 333 | -------------------------------- |
| 334 | Changed bootdelay read from the environment from simple_strtoul (unsigned) to |
| 335 | simple_strtol (signed), to be able to get a bootdelay of -1. |
| 336 | Changed files: |
| 337 | - common/main.c |
| 338 | |
| 339 | Todo: |
| 340 | ===== |
| 341 | |
| 342 | Block device support enhancement: |
| 343 | --------------------------------- |
| 344 | Consider to unify the block device handling. Instead of using diskboot for IDE, |
| 345 | scsiboot for SCSI and fdcboot for floppy disks, it would make sense to use only |
| 346 | one command ("devboot" ???) with a parameter of the desired device ("hda1", "sda1", |
| 347 | "fd0" ???) to boot from. The other ide commands can be handled in the same way |
| 348 | ("dev hda read.." instead of "ide read.." or "dev sda read.." instead of |
| 349 | "scsi read..."). Todo this, a common way of assign a block device to its name |
| 350 | (first found ide device = hda, second found hdb etc., or hda is device 0 on bus 0, |
| 351 | hdb is device 1 on bus 0 etc.) as well as the names (hdx for ide, sdx for scsi, fx for |
| 352 | floppy ???) must be defined. |
| 353 | Maybe there are better ideas to do this. |
| 354 | |
| 355 | Console assingment: |
| 356 | ------------------- |
| 357 | Consider to initialize and assign the console stdin, stdout and stderr as soon as |
| 358 | possible to see the boot messages also on an other console than serial. |
| 359 | |
| 360 | |
| 361 | Todo for PIP405: |
| 362 | ================ |
| 363 | |
| 364 | LCD support for VGA: |
| 365 | -------------------- |
| 366 | Add LCD support for the CT69000 |
| 367 | |
| 368 | Default environment: |
| 369 | -------------------- |
| 370 | Consider to write a default environment to the OTP part of the EEPROM and use it |
| 371 | if the normal environment is not valid. Useful for serial# and ethaddr values. |
| 372 | |
| 373 | Watchdog: |
| 374 | --------- |
| 375 | Implement Watchdog. |
| 376 | |
| 377 | Files clean-up: |
| 378 | --------------- |
| 379 | Following files needs to be cleaned up: |
| 380 | - cmd_pip405.c |
| 381 | - flash.c |
| 382 | - pci_pip405.c |
| 383 | - pip405.c |
| 384 | - pip405_isa.c |
| 385 | Consider to split up the files in their functions. |