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