mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-22 19:23:07 +00:00
385 lines
13 KiB
Text
385 lines
13 KiB
Text
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 CFG_CMD_FDC and CFG_CMD_SCSI from
|
|
CONFIG_CMD_FULL
|
|
- include/config_hymod.h excluded CFG_CMD_FDC and CFG_CMD_SCSI from
|
|
CONFIG_CMD_FULL
|
|
- 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:
|
|
-------------
|
|
CFG_CMD_SCSI SCSI Support
|
|
CFG_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
|
|
CFG_SCSI_MAX_LUN 8 number of supported LUNs
|
|
CFG_SCSI_MAX_SCSI_ID 7 maximum SCSI ID (0..6)
|
|
CFG_SCSI_MAX_DEVICE CFG_SCSI_MAX_SCSI_ID * CFG_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:
|
|
---------------------------------
|
|
CFG_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
|
|
|
|
|
|
I2C stuff:
|
|
----------
|
|
CFG_EEPROM_PAGE_WRITE_ENABLE enables page write of the I2C EEPROM
|
|
CFG_EEPROM_PAGE_WRITE_BITS _must_ be
|
|
defined.
|
|
|
|
|
|
Environment / Console:
|
|
----------------------
|
|
|
|
CFG_CONSOLE_IS_IN_ENV if defined, stdin, stdout and stderr used from
|
|
the values stored in the evironment.
|
|
|
|
CFG_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.
|
|
|
|
CFG_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 CFG_ISA_IO_BASE_ADDRESS
|
|
+ 0x3F0. Enabled with define CFG_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 CFG_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
|
|
CFG_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 CFG_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 CFG_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
|
|
CFG_CONSOLE_IS_IN_ENV is defined.
|
|
If CFG_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 CFG_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.
|