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