Blame view

doc/README.PIP405 13.1 KB
fe8c2806c   wdenk   Initial revision
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  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
a47a12bec   Stefan Roese   Move arch/ppc to ...
20
21
  - arch/powerpc/cpu/ppc4xx/405gp_pci.c	excluded file from PIP405
  - arch/powerpc/cpu/ppc4xx/i2c.c		added 16bit read write I2C support
fe8c2806c   wdenk   Initial revision
22
  				added page write
a47a12bec   Stefan Roese   Move arch/ppc to ...
23
24
  - arch/powerpc/cpu/ppc4xx/speed.c		added get_PCI_freq
  - arch/powerpc/cpu/ppc4xx/start.S		added CONFIG_IDENT_STRING
fe8c2806c   wdenk   Initial revision
25
26
27
28
29
30
31
32
33
34
  - 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
b3aff0cb9   Jon Loeliger   disk/ doc/ lib_*/...
35
36
  - include/config_LANTEC.h	excluded CONFIG_CMD_FDC and CONFIG_CMD_SCSI
  - include/config_hymod.h	excluded CONFIG_CMD_FDC and CONFIG_CMD_SCSI
fe8c2806c   wdenk   Initial revision
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
  - 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:
  -------------
b3aff0cb9   Jon Loeliger   disk/ doc/ lib_*/...
89
90
  CONFIG_CMD_SCSI	SCSI Support
  CONFIG_CMF_FDC	Floppy disk support
fe8c2806c   wdenk   Initial revision
91
92
93
94
95
96
97
98
99
100
101
102
  
  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
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
103
104
105
  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
fe8c2806c   wdenk   Initial revision
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
  				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:
  ---------------------------------
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
128
  CONFIG_SYS_ISA_IO_BASE_ADDRESS		address of all ISA-bus related parts
fe8c2806c   wdenk   Initial revision
129
130
131
132
133
  				_must_ be defined for ISA-bus parts
  
  Identify:
  ---------
  CONFIG_IDENT_STRING		added to the U_BOOT_VERSION String
fe8c2806c   wdenk   Initial revision
134
135
  Environment / Console:
  ----------------------
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
136
  CONFIG_SYS_CONSOLE_IS_IN_ENV		if defined, stdin, stdout and stderr used from
fe8c2806c   wdenk   Initial revision
137
  				the values stored in the evironment.
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
138
  CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE	if defined, console_overwrite() decides if the
fe8c2806c   wdenk   Initial revision
139
140
  				values stored in the environment or the standard
  				serial in/out put should be assigned to the console.
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
141
  CONFIG_SYS_CONSOLE_ENV_OVERWRITE	if defined, the start-up console switching
fe8c2806c   wdenk   Initial revision
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
  				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:
  ---------------
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
160
  Support of a standard floppy disk controller at address CONFIG_SYS_ISA_IO_BASE_ADDRESS
b3aff0cb9   Jon Loeliger   disk/ doc/ lib_*/...
161
162
  + 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.
fe8c2806c   wdenk   Initial revision
163
164
165
166
167
168
169
170
171
  Added files:
  - common/cmd_fdc.c
  - include/cmd_fdc.h
  
  SCSI support:
  -------------
  Support for Symbios SYM53C810A chip. Implemented as follows:
  - without disconnect
  - only asynchrounous
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
172
  - multiple LUN support (caution, needs a lot of RAM. define CONFIG_SYS_SCSI_MAX_LUN 1 to
fe8c2806c   wdenk   Initial revision
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
    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
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
196
  CONFIG_SYS_PC_IDE_RESET pin, the switch CONFIG_IDE_RESET_ROUTINE has been added. When
fe8c2806c   wdenk   Initial revision
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
  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
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
241
  base address must be defined with CONFIG_SYS_ISA_IO_BASE_ADDRESS.
fe8c2806c   wdenk   Initial revision
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
  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:
a47a12bec   Stefan Roese   Move arch/ppc to ...
274
  - arch/powerpc/cpu/ppc4xx/start.s
fe8c2806c   wdenk   Initial revision
275
276
277
278
279
280
281
282
283
284
285
286
  
  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:
  ---------------------------------
a47a12bec   Stefan Roese   Move arch/ppc to ...
287
  Added function (in arch/powerpc/cpu/ppc4xx/speed.c) to get the PCI frequency for PPC405 CPU.
fe8c2806c   wdenk   Initial revision
288
289
290
  The PCI Frequency will now be set correct in the board description in common/board.c.
  (was set to the busfreq before).
  Changed files:
a47a12bec   Stefan Roese   Move arch/ppc to ...
291
  - arch/powerpc/cpu/ppc4xx/speed.c
fe8c2806c   wdenk   Initial revision
292
293
294
295
296
297
  - 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
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
298
  I2C EEPROM if defined CONFIG_SYS_EEPROM_PAGE_WRITE_ENABLE.
fe8c2806c   wdenk   Initial revision
299
  Changed files:
a47a12bec   Stefan Roese   Move arch/ppc to ...
300
  - arch/powerpc/cpu/ppc4xx/i2c.c
fe8c2806c   wdenk   Initial revision
301
302
303
304
305
306
  - 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
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
307
308
  CONFIG_SYS_CONSOLE_IS_IN_ENV is defined.
  If CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is defined, console_overwrite() decides if the
fe8c2806c   wdenk   Initial revision
309
310
  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.
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
311
  If CONFIG_SYS_CONSOLE_ENV_OVERWRITE is defined the devices assigned to the console at
fe8c2806c   wdenk   Initial revision
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
  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.