blob: 1b73dbe5edd1303e074e54b581c38a3a11a253ad [file] [log] [blame]
wdenkfe8c2802002-11-03 00:38:21 +00001U-Boot Changes due to PIP405 Port:
2===================================
3
4Changed 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
Stefan Roesea47a12b2010-04-15 16:07:28 +020020- arch/powerpc/cpu/ppc4xx/405gp_pci.c excluded file from PIP405
21- arch/powerpc/cpu/ppc4xx/i2c.c added 16bit read write I2C support
wdenkfe8c2802002-11-03 00:38:21 +000022 added page write
Stefan Roesea47a12b2010-04-15 16:07:28 +020023- arch/powerpc/cpu/ppc4xx/speed.c added get_PCI_freq
24- arch/powerpc/cpu/ppc4xx/start.S added CONFIG_IDENT_STRING
wdenkfe8c2802002-11-03 00:38:21 +000025- 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
Jon Loeligerb3aff0c2007-07-10 11:19:50 -050035- 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
wdenkfe8c2802002-11-03 00:38:21 +000037- 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
46Added 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
82New Config Switches:
83====================
84For detailed description, refer to the corresponding paragraph in the
85section "Changes".
86
87New Commands:
88-------------
Jon Loeligerb3aff0c2007-07-10 11:19:50 -050089CONFIG_CMD_SCSI SCSI Support
90CONFIG_CMF_FDC Floppy disk support
wdenkfe8c2802002-11-03 00:38:21 +000091
92IDE additions:
93--------------
94CONFIG_IDE_RESET_ROUTINE defines that instead of a reset Pin,
95 the routine ide_set_reset(int idereset) is used.
96ATAPI support (experimental)
97----------------------------
98CONFIG_ATAPI enables ATAPI Support
99
100SCSI support (experimental) only SYM53C8xx supported
101----------------------------------------------------
102CONFIG_SCSI_SYM53C8XX type of SCSI controller
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200103CONFIG_SYS_SCSI_MAX_LUN 8 number of supported LUNs
104CONFIG_SYS_SCSI_MAX_SCSI_ID 7 maximum SCSI ID (0..6)
105CONFIG_SYS_SCSI_MAX_DEVICE CONFIG_SYS_SCSI_MAX_SCSI_ID * CONFIG_SYS_SCSI_MAX_LUN
wdenkfe8c2802002-11-03 00:38:21 +0000106 maximum of Target devices (multiple LUN support
107 for boot)
108
109ISO (CD-Boot) partition support (Experimental)
110----------------------------------------------
111CONFIG_ISO_PARTITION CD-boot support
112
113RTC
114----
115CONFIG_RTC_MC146818 MC146818 RTC support
116
wdenkfe8c2802002-11-03 00:38:21 +0000117Video:
118------
119CONFIG_VIDEO_CT69000 Enable Chips & Technologies 69000 Video chip
120 CONFIG_VIDEO must be defined also
121
122External peripheral base address:
123---------------------------------
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200124CONFIG_SYS_ISA_IO_BASE_ADDRESS address of all ISA-bus related parts
wdenkfe8c2802002-11-03 00:38:21 +0000125 _must_ be defined for ISA-bus parts
126
127Identify:
128---------
129CONFIG_IDENT_STRING added to the U_BOOT_VERSION String
130
wdenkfe8c2802002-11-03 00:38:21 +0000131Environment / Console:
132----------------------
133
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200134CONFIG_SYS_CONSOLE_IS_IN_ENV if defined, stdin, stdout and stderr used from
wdenkfe8c2802002-11-03 00:38:21 +0000135 the values stored in the evironment.
136
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200137CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE if defined, console_overwrite() decides if the
wdenkfe8c2802002-11-03 00:38:21 +0000138 values stored in the environment or the standard
139 serial in/out put should be assigned to the console.
140
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200141CONFIG_SYS_CONSOLE_ENV_OVERWRITE if defined, the start-up console switching
wdenkfe8c2802002-11-03 00:38:21 +0000142 are stored in the environment.
143
144PIP405 specific:
145----------------
146CONFIG_PORT_ADDR address used to read boot configuration
147MULTI_PURPOSE_SOCKET_ADDR address of the multi purpose socked
148SDRAM_EEPROM_WRITE_ADDRESS addresses of the serial presence detect
149SDRAM_EEPROM_READ_ADDRESS EEPROM on the SDRAM module.
150
151
152Changes:
153========
154
155Added Devices:
156==============
157
158Floppy support:
159---------------
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200160Support of a standard floppy disk controller at address CONFIG_SYS_ISA_IO_BASE_ADDRESS
Jon Loeligerb3aff0c2007-07-10 11:19:50 -0500161+ 0x3F0. Enabled with define CONFIG_CMD_FDC. Reads a unformated floppy disk
162with a image header (see: mkimage). No interrupts and no DMA are used for this.
wdenkfe8c2802002-11-03 00:38:21 +0000163Added files:
164- common/cmd_fdc.c
165- include/cmd_fdc.h
166
167SCSI support:
168-------------
169Support for Symbios SYM53C810A chip. Implemented as follows:
170- without disconnect
171- only asynchrounous
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200172- multiple LUN support (caution, needs a lot of RAM. define CONFIG_SYS_SCSI_MAX_LUN 1 to
wdenkfe8c2802002-11-03 00:38:21 +0000173 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.
178The device numbers are not assigned like they are within the IDE support. The first
179device found will get the number 0, the next 1 etc. If all SCSI IDs (0..6) and all
180LUNs (8) are enabled, 56 boot devices are possible. This uses a lot of RAM since the
181device descriptors are not yet dynamically allocated. 56 boot devices are overkill
182anyway. Please refer to the section "Todo" chapter "block device support enhancement".
183The SYM53C810A uses 1 Interrupt and must be able of mastering the PCI bus.
184Added 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
192ATAPI support (IDE changes):
193----------------------------
194Added ATAPI support (with CONFIG_ATAPI) in the file cmd_ide.c.
195To support a hardreset, when the IDE reset pin is not connected to the
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200196CONFIG_SYS_PC_IDE_RESET pin, the switch CONFIG_IDE_RESET_ROUTINE has been added. When
wdenkfe8c2802002-11-03 00:38:21 +0000197this switch is enabled the routine void ide_set_reset(int idereset) must be
198within the board specific files.
199Only read from ATAPI devices are supported.
200Found out that the function trim_trail cuts off the last character if the whole
201string is filled. Added function cpy_ident instead, which trims also leading
202spaces and copies the string in the buffer.
203Changed files:
204- common/cmd_ide.c
205- include/ata.h
206
207ISO partition support:
208----------------------
209Added CD boot support for El-Torito bootable ISO CDs. The bootfile image must contain
210the U-Boot image header. Since CDs do not have "partitions", the boot partition is 0.
211The bootcatalog feature has not been tested so far. CD Boot is supported for ATAPI
212("diskboot") and SCSI ("scsiboot") devices.
213Added files:
214- disk/iso_part.c
215- disk/iso_part.h
216
217Block device changes:
218---------------------
219To allow the use of dos_part.c, mac_part.c and iso_part.c, the parameter
220block_dev_desc will be used when accessing the functions in these files. The block
221device descriptor (block_dev_desc) contains a pointer to the read routine of the
222device, which will be used to read blocks from the device.
223Renamed function ide_print to dev_print and moved it to the file disk/part.c to use
224it for IDE ATAPI and SCSI devices.
225Please refer to the section "Todo" chapter "block device support enhancement".
226Added files:
227- include/part.h
228changed 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
238MC146818 RTC support:
239---------------------
240Added support for MC146818 RTC with defining CONFIG_RTC_MC146818. The ISA bus IO
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200241base address must be defined with CONFIG_SYS_ISA_IO_BASE_ADDRESS.
wdenkfe8c2802002-11-03 00:38:21 +0000242Added files:
243- rtc/mc146818.c
244
245Standard ISA bus Keyboard support:
246----------------------------------
247Added support for the standard PC kyeboard controller. For the PIP405 the superIO
248controller must be set up previously. The keyboard uses the standard ISA IRQ, so
249the ISA PIC must also be set up.
250Added files:
251- board/pip405/kbd.c
252- board/pip405/kbd.h
253- board/pip405/pip405_isa.c
254- board/pip405/pip405_isa.h
255
256Chips and Technologie 69000 VGA controller support:
257---------------------------------------------------
258Added support for the CT69000 VGA controller.
259Added files:
260- board/pip405/video.c
261- board/pip405/video.h
262- board/pip405/vga_table.h
263
264
265Changed Items:
266==============
267
268Identify:
269---------
270Added the config variable CONFIG_IDENT_STRING which will be added to the
271"U_BOOT_VERSION __TIME__ DATE___ " String, to allows to identify intermidiate
272and custom versions.
273Changed files:
Stefan Roesea47a12b2010-04-15 16:07:28 +0200274- arch/powerpc/cpu/ppc4xx/start.s
wdenkfe8c2802002-11-03 00:38:21 +0000275
276Firmware Image:
277---------------
278Added IH_OS_U_BOOT and IH_TYPE_FIRMWARE to the image definitions to allows the
279U-Boot update with prior CRC check.
280Changed files:
281- include/image.h
282- tools/mkimage.c
283- common/cmd_bootm.c
284
285Correct PCI Frequency for PPC405:
286---------------------------------
Stefan Roesea47a12b2010-04-15 16:07:28 +0200287Added function (in arch/powerpc/cpu/ppc4xx/speed.c) to get the PCI frequency for PPC405 CPU.
wdenkfe8c2802002-11-03 00:38:21 +0000288The PCI Frequency will now be set correct in the board description in common/board.c.
289(was set to the busfreq before).
290Changed files:
Stefan Roesea47a12b2010-04-15 16:07:28 +0200291- arch/powerpc/cpu/ppc4xx/speed.c
wdenkfe8c2802002-11-03 00:38:21 +0000292- common/board.c
293
294I2C Stuff:
295----------
296Added defined(CONFIG_PIP405) at several points in common/cmd_i2c.c.
297Added 16bit read/write support for I2C (PPC405), and page write to
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200298I2C EEPROM if defined CONFIG_SYS_EEPROM_PAGE_WRITE_ENABLE.
wdenkfe8c2802002-11-03 00:38:21 +0000299Changed files:
Stefan Roesea47a12b2010-04-15 16:07:28 +0200300- arch/powerpc/cpu/ppc4xx/i2c.c
wdenkfe8c2802002-11-03 00:38:21 +0000301- common/cmd_i2c.c
302
303Environment / Console:
304----------------------
305Although in README.console described, the U-Boot has not assinged the values
306found in the environment to the console. Corrected this behavior, but only if
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200307CONFIG_SYS_CONSOLE_IS_IN_ENV is defined.
308If CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is defined, console_overwrite() decides if the
wdenkfe8c2802002-11-03 00:38:21 +0000309values stored in the environment or the standard serial in/output should be
310assigned to the console. This is useful if the environment values are not correct.
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200311If CONFIG_SYS_CONSOLE_ENV_OVERWRITE is defined the devices assigned to the console at
wdenkfe8c2802002-11-03 00:38:21 +0000312start-up time will be written to the environment. This means that if the
313environment values are overwritten by the overwrite_console() routine, they will be
314stored in the environment.
315Changed files:
316- common/console.c
317
318Correct bootdelay intepretation:
319--------------------------------
320Changed bootdelay read from the environment from simple_strtoul (unsigned) to
321simple_strtol (signed), to be able to get a bootdelay of -1.
322Changed files:
323- common/main.c
324
325Todo:
326=====
327
328Block device support enhancement:
329---------------------------------
330Consider to unify the block device handling. Instead of using diskboot for IDE,
331scsiboot for SCSI and fdcboot for floppy disks, it would make sense to use only
332one 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,
337hdb is device 1 on bus 0 etc.) as well as the names (hdx for ide, sdx for scsi, fx for
338floppy ???) must be defined.
339Maybe there are better ideas to do this.
340
341Console assingment:
342-------------------
343Consider to initialize and assign the console stdin, stdout and stderr as soon as
344possible to see the boot messages also on an other console than serial.
345
346
347Todo for PIP405:
348================
349
350LCD support for VGA:
351--------------------
352Add LCD support for the CT69000
353
354Default environment:
355--------------------
356Consider to write a default environment to the OTP part of the EEPROM and use it
357if the normal environment is not valid. Useful for serial# and ethaddr values.
358
359Watchdog:
360---------
361Implement Watchdog.
362
363Files clean-up:
364---------------
365Following files needs to be cleaned up:
366- cmd_pip405.c
367- flash.c
368- pci_pip405.c
369- pip405.c
370- pip405_isa.c
371Consider to split up the files in their functions.