mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-11-04 02:11:25 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			376 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			376 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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
 | 
						|
- cpu/ppc4xx/405gp_pci.c	excluded file from PIP405
 | 
						|
- cpu/ppc4xx/i2c.c		added 16bit read write I2C support
 | 
						|
				added page write
 | 
						|
- cpu/ppc4xx/speed.c		added get_PCI_freq
 | 
						|
- cpu/ppc4xx/start.S		added CONFIG_IDENT_STRING
 | 
						|
- 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
 | 
						|
- include/config_LANTEC.h	excluded CONFIG_CMD_FDC and CONFIG_CMD_SCSI
 | 
						|
- include/config_hymod.h	excluded CONFIG_CMD_FDC and CONFIG_CMD_SCSI
 | 
						|
- 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:
 | 
						|
-------------
 | 
						|
CONFIG_CMD_SCSI	SCSI Support
 | 
						|
CONFIG_CMF_FDC	Floppy disk support
 | 
						|
 | 
						|
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
 | 
						|
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
 | 
						|
				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:
 | 
						|
---------------------------------
 | 
						|
CONFIG_SYS_ISA_IO_BASE_ADDRESS		address of all ISA-bus related parts
 | 
						|
				_must_ be defined for ISA-bus parts
 | 
						|
 | 
						|
Identify:
 | 
						|
---------
 | 
						|
CONFIG_IDENT_STRING		added to the U_BOOT_VERSION String
 | 
						|
 | 
						|
Environment / Console:
 | 
						|
----------------------
 | 
						|
 | 
						|
CONFIG_SYS_CONSOLE_IS_IN_ENV		if defined, stdin, stdout and stderr used from
 | 
						|
				the values stored in the evironment.
 | 
						|
 | 
						|
CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE	if defined, console_overwrite() decides if the
 | 
						|
				values stored in the environment or the standard
 | 
						|
				serial in/out put should be assigned to the console.
 | 
						|
 | 
						|
CONFIG_SYS_CONSOLE_ENV_OVERWRITE	if defined, the start-up console switching
 | 
						|
				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:
 | 
						|
---------------
 | 
						|
Support of a standard floppy disk controller at address CONFIG_SYS_ISA_IO_BASE_ADDRESS
 | 
						|
+ 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.
 | 
						|
Added files:
 | 
						|
- common/cmd_fdc.c
 | 
						|
- include/cmd_fdc.h
 | 
						|
 | 
						|
SCSI support:
 | 
						|
-------------
 | 
						|
Support for Symbios SYM53C810A chip. Implemented as follows:
 | 
						|
- without disconnect
 | 
						|
- only asynchrounous
 | 
						|
- multiple LUN support (caution, needs a lot of RAM. define CONFIG_SYS_SCSI_MAX_LUN 1 to
 | 
						|
  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
 | 
						|
CONFIG_SYS_PC_IDE_RESET pin, the switch CONFIG_IDE_RESET_ROUTINE has been added. When
 | 
						|
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
 | 
						|
base address must be defined with CONFIG_SYS_ISA_IO_BASE_ADDRESS.
 | 
						|
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:
 | 
						|
- cpu/ppc4xx/start.s
 | 
						|
 | 
						|
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:
 | 
						|
---------------------------------
 | 
						|
Added function (in cpu/ppc4xx/speed.c) to get the PCI frequency for PPC405 CPU.
 | 
						|
The PCI Frequency will now be set correct in the board description in common/board.c.
 | 
						|
(was set to the busfreq before).
 | 
						|
Changed files:
 | 
						|
- cpu/ppc4xx/speed.c
 | 
						|
- 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
 | 
						|
I2C EEPROM if defined CONFIG_SYS_EEPROM_PAGE_WRITE_ENABLE.
 | 
						|
Changed files:
 | 
						|
- cpu/ppc4xx/i2c.c
 | 
						|
- 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
 | 
						|
CONFIG_SYS_CONSOLE_IS_IN_ENV is defined.
 | 
						|
If CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is defined, console_overwrite() decides if the
 | 
						|
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.
 | 
						|
If CONFIG_SYS_CONSOLE_ENV_OVERWRITE is defined the devices assigned to the console at
 | 
						|
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.
 |