U-Boot Release
notes , release: 1.7.3
Table of Contents
1.
Contents of Release (n)
Included in current release (n):
- U-Boot source code patch version 1.7.3
- U-Boot binaries for
Board
Name
|
Image
name
|
DB-88F5181-DDR1
DB-88F5181-DDR2
DB-88F5X81-DDR2-A
DB-88F5X81-DDR1-A
|
Big Endian Binary -
u-boot_DB_5x81_BE.bin
Big Endian S-Record - u-boot_DB_5x81_BE.srec
Big Endian ELF - u-boot_DB_5x81_BE.elf
Little Endian Binary - u-boot_DB_5x81_LE.bin
Little Endian S-Record -u-boot_DB_5x81_LE.srec
Little Endian ELF -u-boot_DB_5x81_LE.elf
|
RD-88F5181-88SX7042-2XSATA |
Little Endian binary -
u-boot_RD-5181_88SX7042_2xSATA.bin
Little Endian S-Record - u-boot_RD-5181_88SX7042_2xSATA.srec
Little Endian ELF - u-boot_RD-5181_88SX7042_2xSATA.elf
|
RD-88F5181-VOIP-RD1 |
Little Endian binary -
u-boot_RD_5181_VOIP.bin
Little Endian S-Record - u-boot_RD_5181_VOIP.srec
Little Endian ELF - u-boot_RD_5181_VOIP.elf
|
DB-88F5182-DDR2 |
Big Endian Binary -
u-boot_DB_5182_BE.bin
Big Endian S-Record - u-boot_DB_5182_BE.srec
Big Endian ELF - u-boot_DB_5182_BE.elf
Little Endian Binary - u-boot_DB_5182_LE.bin
Little Endian S-Record -u-boot_DB_5182_LE.srec
Little Endian ELF -u-boot_DB_5182_LE.elf
|
RD-88F5182-NAS-2 |
Little Endian Binary -
u-boot_RD_5182_LE.bin
Little Endian S-Record -u-boot_RD_5182_LE.srec
Little Endian ELF -u-boot_RD_5182_LE.elf
|
DB-88F5181-DDR1-PRPMC |
Little Endian Binary -
u-boot_DB_5181_PRPMC.bin
Little Endian S-Record -u-boot_DB_5181_PRPMC.srec
Little Endian ELF -u-boot_DB_5181_PRPMC.elf
|
DB-88F5181-DDR1-PEXPCI |
Little Endian Binary -
u-boot_DB_5181_PEX_PCI.bin
Little Endian S-Record -u-boot_DB_5181_PEX_PCI.srec
Little Endian ELF -u-boot_DB_5181_PEX_PCI.elf
|
RD-88F5181L-VOIP-FE.
|
Little Endian Binary
-u-boot_RD_5181L_FE.bin
Little Endian S-Record-u-boot_RD_5181L_FE.srec
Little Endian ELF-u-boot_RD_5181L_FE.elf
|
RD-88F5181L-VOIP-FE (with
88F5181 SOC)
|
Little Endian Binary
-u-boot_RD_5181_FE.bin
Little Endian S-Record-u-boot_RD_5181_FE.srec
Little Endian ELF-u-boot_RD_5181_FE.elf |
RD-88F5181L-VOIP-GE |
Little Endian Binary
-u-boot_RD_5181L_GE.bin
Little Endian S-Record-u-boot_RD_5181L_GE.srec
Little Endian ELF-u-boot_RD_5181L_GE.elf |
DB-88F5181L-DDR2-2xTDM
|
Big Endian Binary -
u-boot_DB_5181L_2xTDM_BE.bin
Big Endian S-Record - u-boot_DB_5181L_2xTDM_BE.srec
Big Endian ELF - u-boot_DB_5181L_2xTDM_BE.elf
Little Endian Binary - u-boot_DB_5181L_2xTDM_LE.bin
Little Endian S-Record -u-boot_DB_5181L_2xTDM_LE.srec
Little Endian ELF -u-boot_DB_5181L_2xTDM_LE.elf |
2.
Supported boards
This U-Boot version supports
the following boards:
DB-88F5181-DDR1
DB-88F5181-DDR2
DB-88F5X81-DDR2-A
DB-88F5X81-DDR1-A
RD-88F5181-88SX7042-2XSATA
RD-88F5181-VOIP-RD1
DB-88F5182-DDR2
RD-88F5182-NAS-2
DB-88F5181-DDR1-PRPMC
DB-88F5181-DDR1-PEXPCI
RD-88F5181L-VOIP-FE
RD-88F5181L-VOIP-FE (with 88F5181 SOC)
RD-88F5181L-VOIP-GE
DB-88F5181L-DDR2-2xTDM
3. U-Boot Board
detection process in U-Boot
The following is the U-Boot
board detection procedure performed by U-Boot:
1. Board detection is done in both mvBoardIdGet() C function, and
'platformsetup' assembler routine.
2. Compilation flag in mvBoardIdGet() function and 'platformsetup'
assembler routine
define the detection of the following boards :
"RD-88F5181-VOIP-DDR1"
(u-boot_RD_5181_VOIP.* binaries)
"RD-88F5181-POS-NAS-DDR1"
(u-boot_RD-5181_88SX7042_2xSATA.* binaries)
"RD-88F5182-NAS-2"
(u-boot_RD_5182.* binaries)
"DB-88F5181-DDR1-PRPMC"
(u-boot_DB_5181_PRPMC.* binaries)
"DB-88F5181-DDR1-PEX-PCI"
(u-boot_DB_5181_PEX_PCI.* binaries)
"RD-88F5181L-VOIP-FE"
(u-boot_RD_5181L_FE.* binaries)
"RD-88F5181L-VOIP-FE (with 88F5181 SOC)"
(u-boot_RD_5181_FE.* binaries)
"RD-88F5181L-VOIP-GE" (u-boot_RD_5181L_GE.* binaries)
Note:
-----
In case of customer board, a customer compilation flag in
mvBoardIdGet() function
and 'platformsetup' assembler routine should define the
detection of the customer
board.
3. If other boards then:
3.1. If a TWSI EEPROM exist at address 0x50 and a valid Board ID was
read from it then board
detection is done according to Board ID value
as follows:
Note
----
See section '4. U-Boot supported Board ID format' for
board ID format explanation.
3.1.1 If 88F5181 or 88F5281 chip exist on the board then when using
u-boot_DB_5x81_LE.* and
u-boot_DB_5x81_BE.* binaries the
following boards can be detected:
Board name
Board ID
--------------
--------
DB-88F5181-DDR1
0x2 (Old Boad)
DB-88F5181-DDR2
0x3 (Old Boad)
DB-88F5X81-DDR2-A
0x7 (New Board)
DB-88F5X81-DDR1-A
0x8 (New Board)
DB-88F5182-DDR2
0xA
3.1.2 If 88F5182 chip exist on the board then when using
u-boot_DB_5182_LE.* and
u-boot_DB_5182_BE.* binaries the
following boards are detected:
Board name
Board ID
--------------
--------
DB-88F5182-DDR2
0xA
3.1.3 If 88F5181L chip exist on the board then when using
u-boot_DB_5181L_2xTDM_LE.* and
u-boot_DB_5181L_2xTDM_BE.* binaries the
following boards are detected:
Board name
Board ID
--------------
--------
DB-88F5181L-DDR2-2xTDM 0xC
3.2. If no TWSI EEPROM exist or no valid Board ID then using
u-boot_DB_5x81_LE.* and
u-boot_DB_5x81_BE.* binaries the
following boards are detected:
3.2.1. If Orion2 B0 chip exist on the board then:
3.2.1.1. If DRAM is DDR1 then U-Boot assume board is:
DB-88F5X81-DDR1-A
3.2.1.2. If DRAM is DDR2 then U-Boot assume board is:
DB-88F5X81-DDR2-A
3.2.2. If other Orion chips than Orion2 B0 ( for example : Orion1 and
Orion 2 A0) then:
3.2.2.1. If DRAM is DDR1 then U-Boot assume board is: DB-88F5X81-DDR1
3.2.2.2. If DRAM is DDR2 then U-Boot assume board is: DB-88F5X81-DDR2
4. U-Boot
supported Board ID format
Starting from U-Boot version (1.5.0), a board identification data
must present
on the board TWSI EEPROM (address 0x50) to properly run-time
detect the Board Id.
Please see section '3. U-Boot Board detection process in U-Boot'
for Board detection
process description.
Supported Board ID numbers are as follows:
Name
|
Board ID |
DB-88F5181-DDR1 |
0x2 |
DB-88F5181-DDR2 |
0x3 |
DB-88F5181-DDR1-PRPMC |
0x4 |
DB-88F5181-DDR1-PEXPCI |
0x5 |
RD-88F5181-88SX7042-2XSATA |
0x6 |
DB-88F5X81-DDR2-A |
0x7 |
DB-88F5X81-DDR1-A |
0x8 |
RD-88F5181-VOIP-RD1 |
0x9 |
DB-88F5182-DDR2 |
0xA |
RD-88F5182-NAS-2 |
0xB |
DB-88F5181L-DDR2-2xTDM |
0xC
|
RD_88F5181L_VOIP_FE
|
0xD
|
RD_88F5181L_VOIP_GE
|
0xE
|
Board Identification data should start at the last 16 byte of the
TWSI EEPROM,
and its format is as follows:
offset 0: 4 bytes 0xFEEDFEED magic word.
offset 4: 2 bytes board id.
offset 6: 1 byte board version as appeared in the
board ECO.
offset 7: 1 byte board reversion as appeared in the
board ECO.
offset 8: 8 reserved bytes for future use.
If using old U-Boot that don't support board ID detection, and
board that don't include Board
Identification data then before upgrading U-Boot, the board
identification data should be
programmed on the board TWSI EEPROM using 'imm' command, the
following example illustrates
how to program the board identification data for a board with
board id equal to 8 and has
a 8KByte TWSI EEPROM:
Marvell>> imm.l 50 1ff0.2
00001ff0: ffffffff ? feedfeed
00001ff4: ffffffff ? .
Marvell>> imm.w 50 1ff4.2
00001ff4: ffff ? 8
00001ff6: ffff ? .
Marvell>> imm.b 50 1ff6.2
00001ff6: ff ? 0
00001ff7: ff ? 0
00001ff8: ff ? .
Marvell>>
Marvell>> imd 50 1ff0.2
1ff0: fe ed fe ed 00 08 00 00 ff ff ff ff ff ff ff
ff ................
Marvell>>
5. How to build U-Boot
1. Download CSLQ32005
cross compiler from http://www.codesourcery.com/ or contact Marvell
FAE for latest SDK with Big Endian and
Little Endian cross compilers.
2. Download U-Boot release 1.1.1 from
http://sourceforge.net/projects/u-boot.
3. Update the U-Boot 1.1.1 release by copying the patch of
this release.
4. Update the U-Boot Makefile to point to the cross
compiler in your host
machine, CLS variable should point to
the Little Endian cross compiler
and CSLBE variable should point to the
Big Endian cross compiler.
5. Build the U-Boot binaries as follows:
5.1. to create u-boot_DB_5x81_LE.*
> make mrproper
> make db88f5181_config
> make
5.2. to create u-boot_DB_5x81_BE.* images:
> make mrproper
> make db88f5181_BE_config
> make
5.3. to create u-boot_RD-5181_88SX7042_2xSATA.*
> make mrproper
> make db88f5181_PS_NAS_config
> make
5.4. to create u-boot_RD_5181_VOIP.*
> make mrproper
> make db88f5181_VOIP1_config
> make
5.5. to create u-boot_DB_5182_LE.*
> make mrproper
> make db88f5182_config
> make
5.6. to create u-boot_DB_5182_BE.*
> make mrproper
> make db88f5182_BE_config
> make
5.7. to create u-boot_RD_5182.*
> make mrproper
> make rd88f5182_TINY_config
> make
5.7. to create u-boot_DB_5181_PRPMC.*
> make mrproper
> make db88f5181_PRPMC_config
> make
5.8. to create u-boot_RD_5181L_FE.*
> make mrproper
> make rd88f5181L_VOIP2_FE_config
> make
5.9. to create u-boot_RD_5181_FE.*
> make mrproper
> make rd88f5181_VOIP2_FE_config
> make
5.10. to create u-boot_RD_5181L_GE.*
> make mrproper
> make rd88f5181L_VOIP2_GE_config
> make
5.11. to create u-boot_DB_5181L_2xTDM_LE.*
> make mrproper
> make db88f5181L_VOIP2_config
> make
5.12. to create u-boot_DB_5181L_2xTDM_BE.*
> make mrproper
> make db88f5181L_VOIP2_BE_config
> make
Note:
------
To compile with the arm-linux compiler
(and not CodeSourcery toolchain) use:
> make mrproper
> make xxx_config CROSS=armlinux
> make
See '1. Contents of Release (n)' for U-Boot binaries description.
6. U-Boot compilation flags used in
this release
Used with all U-Boot supported binaries:
Used for creating a smaller U-Boot image with minimum features.
Used to detect RD-88F5182-NAS-2 board in compilation time.
Used with U-Boot binaries that support 88F5182 Marvell Soc,
currently
the U-Boot binaries that support the following boards:
DB-88F5182-DDR2
RD-88F5182-SATAX2
Used to detect DB-88F5181-DDR1-PEXPCI board in compilation time.
Used to detect DB-88F5181-DDR1-PRPMC board in compilation time.
Used to detect RD-88F5181-88SX7042-2XSATA board in compilation
time.
Used to detect RD-88F5181-VOIP-RD1 board in compilation time.
Used to with U-Boot binaries that support the following boards:
RD-88F5181L-VOIP-FE
RD-88F5181L-VOIP-FE (with
88F5181 SOC)
RD-88F5181L-VOIP-GE
DB-88F5181L-DDR2-2xTDM
Used with U-Boot binaries that support the following boards:
RD-88F5181L-VOIP-FE.
RD-88F5181L-VOIP-FE (with
88F5181 SOC)
Used with U-Boot binaries that support the following board:
RD-88F5181L-VOIP-GE
7. Changes from Previous Releases
Changes from release 1.6.5
Release contents:
- Changed DO_U-BOOT_IMAGES script name to do_uboot_images.sh.
- Added an ELF U-Boot binary to every group of U-Boot images.
- Changed RD-88F5181-88SX7042-2XSATA board U-Boot binaries name
from u-boot_RD_5181_POS_NAS.* to
u-boot_RD-5181_88SX7042_2xSATA.*
- Added the following binaries to this U-Boot release:
u-boot_RD_5181L_FE.*
u-boot_RD_5181_FE .*
u-boot_RD_5181L_GE.*
u-boot_DB_5181L_2xTDM_BE.*
u-boot_DB_5181L_2xTDM_LE.*
Makefile:
- The following rules were added to the U-Boot Makefile and are
supported in this release:
db88f5181L_VOIP2_config |
used to
make little endian binaries for the DB-88F5181L-DDR2-2xTDM board. |
db88f5181L_VOIP2_BE_config |
used to
make bigendian binaries for the DB-88F5181L-DDR2-2xTDM board. |
rd88f5181L_VOIP2_FE_config |
used to
make bigendian binaries for the RD-88F5181L-VOIP-FE board. |
rd88f5181_VOIP2_FE_config |
used to
make bigendian binaries for the RD-88F5181L-VOIP-FE board with 88F5181
SOC. |
rd88f5181L_VOIP2_GE_config |
used to
make bigendian binaries for the RD-88F5181L-VOIP-GE board. |
- The rule used to make binaries of RD-88F5181-VOIP-RD1 board was
changed from db88f5181_VOIP_config to
db88f5181_VOIP1_config.
- modified the db88f5181_PRPMC_config rule to replace the default
linker script with the new u-boot-prpmc.lds linker script and the
config_def.mk with the new config_prpmc.mk, the new files change the
TEXT address of the U-Boot from 0xf10000 to 0x02f10000.
Boards related
- The support of the following boards was added to this U-Boot
release:
DB-88F5181L-DDR2-2xTDM
RD-88F5181L-VOIP-FE
RD-88F5181L-VOIP-FE board with 88F5181 SOC
RD-88F5181L-VOIP-GE
- Added the following functions to the Board Environment Library:
MV_U32
mvBoardSlicGpioPinGet(MV_U32 slicNum)
MV_U32
mvBoardFirstPciSlotDevNumGet(MV_U32 pciIf)
MV_U32
mvBoardPciSlotsNumGet(MV_U32 pciIf)
- To comply with names printed on the boards, corrected the the
names printed on the U-Boot prompt of the following boards :
"DB-88F5181-DDR1", "DB-88F5181-DDR2"
,"RD-88F5181-88SX7042-2xSATA"
and "RD-88F5181-VOIP-RD1"
- Corrected device width of flash from 16 bit to 8 bit in the
following boards:
"RD-88F5181-VOIP-RD1"
"RD-88F5182-NAS-2"
Soc related
- Support of 88F5181L SOC was added to this U-Boot release.
Drivers related
Ethernet Phy driver:
- Added the following function that initialize Marvell 6131
switch.
MV_VOID
mvEthE6131PhyBasicInit(MV_U32 ethPortNum);
Address decoding:
- Fixed a bug in ctrlWinOverlapTest function that caused
ctrlWinOverlapTest to return MV_FALSE when comparing two windows with
the same base address and the same size.
Flash Driver:
- Corrected the implementation of reading device Identifier
and Lock informartion commands for Micron flashes that don't use
address A0 in those commands.
- Added support for Hardware Flash write buffer:
- Added HwBuffLen member to the FLASH_STRUCT structure.
- Added a new static flashHwBufferProg function that calls the
appropriate flash xxxHwBufferProg function if xxx flash have the
support.
- Changed the name of the old mvFlashBlockWr function with
mvFlashBlockUnbufWr.
- Added a new implmentation of mvFlashBlockWr function that make
calls to flashHwBufferProg and mvFlashBlockUnbufWr according to
allignment restirctions, and harware flash write buffer support.
- Added the following functions for the Intel compatabile flashes:
MV_U32 intelFlashGetHwBuffSize(MV_FLASH_INFO *pFlash);
MV_STATUS intelFlashHwBufferProg(MV_FLASH_INFO *pFlash,MV_U32 offset,
MV_U32 byteCount,MV_U8* pData);
- Changed the API for the intelFlashStsGet to:
static MV_STATUS intelFlashStsGet(MV_FLASH_INFO *pFlash, MV_U32
sec,MV_BOOL enableReadCommand, MV_U32* flashStatus);
PciUtils Driver:
- Modified pciDetectDevice function implemetation to support cases
where a CardBus interface is connected to the PCI interface which cause
the PCI interface to answer any PCI device number in PCI configuration
read and write accesses.
Ethernet driver:
- Added support for Boards that include Giga Bit switches that need
the Ethernet driver to be configured in Force link mode.
PCI driver:
- Added a new MV_PCI_BAR_IS_DRAM_BAR macro to fix a compilation
warning.
- Fixed a bug that caused an overlapp test between
MEM_INTER_REGS_BAR and IO_INTER_REGS_BAR pci BARS, the fix was skipping
the overlapp test of those two bars.
PCI Express driver:
- Modified the implementation of "GL# PCI-Express-1 - Erroneous
Read Data on Configuration
Reads" Guidelines to skip 88F5181L SOC.
USB driver:
- Configured the USB PHY in force calibration instad of Auto
calibration mode.
XOR driver
- Changed headers of mvXor.h and mvXorRegs.h files.
U-Boot features
General
- Removed the support of non-used NICs from the
DB-88F5181-DDR1-PRPMC U-Boot.
- Added support for board_late_init function for
RD-88F5181L-VOIP-GE and RD-88F5181L-VOIP-FE U-Boot, the board_late_init
functio in this case will turn off the debug leds.
- Added support for a U-Boot image that resides at the last 512KB
of a 16MB flash for the RD-88F5181L-VOIP-GE and RD-88F5181L-VOIP-FE
U-Boot.
- Changed CFG_JFFS2_FIRST_BANK to 0 for the RD-88F5181L-VOIP-GE and
RD-88F5181L-VOIP-FE U-Boot.
U-Boot malloc
- Moved malloc area of DB-88F5181-DDR1-PRPMC U-Boot to 48MB.
U-Boot commands:
- Enabled U-Boot DHCP commands support.
- Added a new U-Boot command: "bootext2"
- Command format:
bootext2 dev:boot_part1,boot_part2 addr boot_image
linux_dev_name
dev - IDE device number
boot_part1 - first partition to search for an active partition
boot_part2 - second partition to search for an active partition
addr - address in dram to where to load the image
boot_image - Linux image name and path (e.g. /boot/uImage)
linux_dev_name - Linux prefix of device name partions (e.g. /dev/sda )
- Command functionality: The command will do the following:
1) calls "ide reset" command
2)It will search for an active partition (bootable partition) in
boot_part1 and boot_part2 , if no active partition the command will
exit.
3) If found an active partion then the coomand perform the following:
3.1) Copy the 'boot_image' from IDE device 'dev' to address
'addr' in the DRAM.
3.2) Change the Linux device name in the 'bootargs' variable to reflect
the discovered active partition.
3.3) Call "bootm addr" command to load the linux kernel.
Environment variables:
- Changed the 'bootargs' environment variable in
RD-88F5181L-VOIP-GE and RD-88F5181L-VOIP-FE U-Boot to:
"console=ttyS0,115200
mtdparts=phys_mapped_flash:15m(root),1m@15m(uboot)ro"
- Changed the CFG_BOOTARGS_END define for RD-88F5181L-VOIP-GE
,RD-88F5181L-VOIP-FE and DB-88F5181-DDR1-PRPMC U-Boot to:
":::DB88FXX81:eth0:none"
- Added a new "enaFlashBuf" variable, if "enaFlashBuf" equal to
'yes' then the U-Boot call mvFlashBlockWr function that supports
Hardware Flash write buffer, otherwise the U-Boot will call
mvFlashBlockUnbufWr function that don't support Hardware Flash write
buffer.
- Added the following environment variabled for the
DB-88F5181-DDR1-PRPMC U-Boot:
"vx_boot"
"dhcp_boot"
U-Boot PCI driver:
- Modified mv_read_config_dword function implemetation to support
cases where
a CardBus interface is connected to the PCI interface which cause the
PCI interface to answer any PCI device number in PCI configuration read
and write accesses.
U-Boot ELF support:
- Modified and added U-Boot cmd_elf.c file to this release patch in
order to change bootaddr from 0x4200 to 0x700 for ARM architicture.
U-Boot partition support:
- Modified and added U-Boot part_dos.c and part_dos.h files
to this release patch in order to add support for big endian mode.
- Modified and added U-Boot part.h file to this release patch, a
new "boot_ind" member was added to "struct disk_partition" structure to
give indication of bootable partition.
U-Boot EXT2 driver:
- Fixed a bug in ext2fs_iterate_dir function, the bug was calling a
malloc without calling free.
Monitor Extension mode:
- Bug fix in loadExe function, the bug caused sometimes in reading
a non-valid entry address of an executable file.
Changes from release 1.5.3
General:
- This U-Boot release binaries were cross compiled with
CSLQ32005 compiler.
- Please refer to "U-Boot User Manual" and to "How to build
U-Boot" section in this
release notes for more information.
Makefile:
- Makefile was modified to support CSLQ32005 cross compiler
instead of arm-linux
compiler.
- The following rules were added to the U-Boot Makefile and are
supported in this
release :
db88f5182_config - used to
make little endian binaries for the
DB-88F5182-DDR2 board.
db88f5182_BE_config - used to make big endian
binaries for the
DB-88F5182-DDR2 board.
rd88f5182_TINY_config - used to make little endian
binaries for the
RD-88F5182-NAS-2 board.
- The following variables were added to the Makefile:
CSL - path and name of the little endian CSLQ32005
compiler.
CSLBE - path and name of the big endian CSLQ32005 compiler.
- Modified u-boot-tiny.lds linker script and config-tiny.mk to
link text and data sections to address
0xF10000 instead of 0xF40000 due to memory override
of page table (when enabled) over the
BSS section.
- Added sanity check to the u-boot-tiny.lds linker script to
check of U-Boot image footprint overflow
of the flash size (for example, for the RD-88F5182-NAS-2 the
flash size is 256KByte).
Boards related
- Support of the following boards were added to this U-Boot
release:
DB-88F5182-DDR2
RD-88F5182-NAS-2
- Fixed a bug that caused U-Boot to write 0xffffffff to device
parameters
of a non-used device CS, now U-Boot leave the parameters
of non-used
device CS unchanged.
- Fixed a bug that caused the U-Boot to overwrite the Boot CS
device width,
now U-Boot leave Boot CS device width as in sample at
reset value.
- Added implementation of "RGMII Output Delay Tuning Guideline".
Refer to GL# ETH-3 guide line for more details.
- Fixed a bug that caused the U-Boot to treat GPP1 in
DB-88F5X81-DDRX-A as
usb VBUS pin, it is now modified to GPP5 instead.
Soc related
- Support of 88F5182 SOC was added to this U-Boot release.
Drivers related
Address decoding:
- Fixed several bugs in the Hal drivers windows decoding.
- Fixed a duplicated bug in configuring address decoding of
internal units. The bug is that if the mvXXXTargetWinGet() target window
get function for a specific unit return MV_NO_SUCH
during mvXXXWinInit() unit specific function then skip to the next
window
instead of returning an error.
Flash Driver:
- Added support for SST flash devices (SST39VF020) in the flash
driver.
- Fixed a bug in the flash driver that caused AMD compatible
flash devices
fail in programming because of wrong status checking.
SATA driver:
- Modified the SATA driver to add the support of the Integrated
SATA unit
in the 88F5182 SOC.
- Added XOR driver to the U-Boot source.
DDR driver
- Fixed implementation of "GL# MEM-2 - P_CAL Automatic
Calibration" according to DDR Controller Guidelines
- Fixed implementation of "GL# MEM-3 - Drive Strength Value"
according to DDR Controller Guidelines
- Fixed implementation of "GL# MEM-4 - DQS Reference Delay
Tuning" according to DDR Controller Guidelines
- Fixed a bug that caused overwriting the FTDLL value for DDR1
DDR with wrong value
in 'platformsetup' routine by deleting the relevant code.
Ethernet driver:
- Two bugs were fixed in the Giga Ethernet driver, that caused in
some conditions
problems in sending Jumbo fragmented packets, or fragments
that are less than 8
byte long.
PCI driver:
- Disabled PCI address remap write feature that cause changing of
the BAR remap register
whenever the BAR base address is changed, disabling this
feature can prevent some prefetch
problems that can occur if the remap register is different
from the CPU addressing.
- Modified mvPciWaFix function in the PCI driver according to the
latest documentation, this
function implement the following PCI restrictions:
* RES# PCI-4, PCI/PCI-X Slave Incorrectly Sets Internal
Data
Parity Interrupt
* RES# PCI-5, Master May Erroneously Set/Miss an Internal
Data Parity
Interrupt in Conventional PCI
- Added other errata implementation in mvPciCommandSet() function.
PCI Express driver:
- Added implementation of "Wrong Default Value to Transmitter
Output Current (TXAMP)" as described in
GL# PCI-Express-2 in the PCI/PCI-X and PCI-Express
Guidelines and Restrictions document
- Updated implementation of "Erroneous Read Data on Configuration
Reads" as described in
GL# PCI-Express-1 in the PCI/PCI-X and PCI-Express
Guidelines and Restrictions document.
USB driver:
- Added support for two USB controllers for the 88F5182 SOC.
- Updated implementation of USB related Guidelines.
U-Boot features
General:
- Changed the print format of the Soc name and revision to print
the revision name (e.g. A0,B1)
instead of number (e.g. 0,1) .
- Fixed udelay() function implementation to support parameters
that are in seconds resolution.
U-Boot commands:
- Updated 'bubt' and 'resetenv' commands to be more generic
throughout different boards.
- Changed 'dma' command to display the Windows target names.
- Corrected implementation of mvEthPhyPrintStatus() function that
caused 'sg' command to print
non-valid PHY link information.
- Added support of U-Boot ELF commands (for example "bootelf",
"bootvxw").
Environment variables:
- Environment variable 'usbMode' was changed to 'usbMode0', and
an extra environment variable
'usbMode1' is added is the chip support two USB
controllers.
- Changed the default value of 'enaWrAllo' environment variable
to 'no' in 88F5281-A0 Soc.
U-Boot flash driver:
- Fixed a bug that caused calling of flash initialization
function when no flash exist
on the device CS.
- Fixed a bug for locking flash sectors that belong to U-Boot
image, and environment variables on the flash.
U-Boot IDE driver:
- Modified enumeration process to include Integrated SATA unit if
exist on the current Soc.
- Fixed ident_cpy function to support Big Endian.
U-Boot EXT2 driver:
- Fixed a bug in EXT2 driver that defined array size in
runtime!!, by changing the relevant
code to use malloc instead.
U-Boot image:
- Added support for smaller U-Boot image for the RD-88F5182-NAS-2
board.
Monitor Extension mode:
- Fixed a bug in flash initializing of CV File System.
- Added a cache flush and invalidate to the 'g' command
implementation to fix a bug that
caused a crash when running cached application on 88F5281
Soc when 'cache write allocate'
is enabled.
- Changed Stack pointer address in MPU mode from 0xF00000 to
0xE00000 and changed its size
from 1 MB to 64KB.
Changes from release 1.4.4
- Starting from this U-Boot
version (1.5.0), a board identification data must present
on the board TWSI EEPROM (address 0x50) to properly
run-time detect the board id, as a
result:
* U-Boot will not run on boards that don't have the
board identification data on
the TWSI EEPROM, the board identification data
should start at the last 16 byte of
the TWSI EEPROM, and its format is as follows:
offset 0: 4 bytes 0xFEEDFEED magic word.
offset 4: 2 bytes board id.
offset 6: 1 byte board version as appeared in the
board ECO.
offset 7: 1 byte board reversion as appeared in the
board ECO.
offset 8: 8 reserved bytes for future use.
* Before updating U-Boot release with bubt command,
the board identification should
be programmed on the board TWSI EEPROM using 'imm'
command, the following example
illustrates how to program the board identification
data for a board with board id
equal to 8 and has a 8KByte TWSI EEPROM:
Marvell>> imm.l 50 1ff0.2
00001ff0: ffffffff ? feedfeed
00001ff4: ffffffff ? .
Marvell>> imm.w 50 1ff4.2
00001ff4: ffff ? 8
00001ff6: ffff ? .
Marvell>> imm.b 50 1ff6.2
00001ff6: ff ? 0
00001ff7: ff ? 0
00001ff8: ff ? .
Marvell>>
Marvell>> imd 50 1ff0.2
1ff0: fe ed fe ed 00 08 00 00 ff ff ff ff ff ff ff
ff ................
Marvell>>
* A one U-Boot image per endianess mode will be
released for all boards except
of (VOIP an POS-NAS boards).
* Supported board ID for this U-Boot release are:
DB-88F5X81-DDR1
0x2 (Old Boad)
DB-88F5X81-DDR2
0x3 (Old Boad)
DB-88F5181-DDR1-PRPMC 0x4
DB-88F5181-DDR1-PEXPCI 0x5
RD-88F5181-POS_NAS 0x6
DB-88F5X81-DDR2-A
0x7 (New Board)
DB-88F5X81-DDR1-A
0x8 (New Board)
RD-88F5181-VOIP
0x9
- Added new Marvell headers that support GPL license to all
source and header files.
- Changed MPP and GPP Initialization for the DB-88F5181-DDRX-A
boards to match
the DB-88F5181-DDRX-A configuration file.
- Fixed several bugs in mvBoardIdGet and platformsetup functions
to fully support run-time
board detection.
- Removed the twsiInit.S file.
- Added _mvDramIfStatic2Init function for DB_88F5181_DDR1_PRPMC
and DB_88F5181_DDR1_PEXPCI
DRAM initialization.
- Enabled DRAM Unit bit 26 in register 0x1400 in Orion2 B0 to
improve DRAM write performance.
- Fixed a bug in _mvDramIfBasicInit and _mvDramIfConfig functions
that prevented the setting
of Pad Calipration and FTDL values for DDR1 boards.
- Skipped Pad Calipration setting for Orion2 B0 because it is
done automaticly.
- Changed the default value of enaDCPref,enaICPref and enaWrAllo
environment variables to "yes"
instead of "no".
- Increased the size of the environment variable buffer to
prevent crashe because of the new
added environment variables.
- Added support for additional two remap windows in the CPU
Interface supported by
Orion 2.
- Fixed a bug that caused the U-Boot to stuck if there is no TWSI
EEPROM on the TWSI EEPROM
socket.
- Fixed a bug in U-Boot 'dma' command, 'dma' command always has
set the source burst size as
8 bytes.
- Changed U-Boot to detect boards that has no TWSI EEPROM or no
valid Board ID and have
Orion 2 B0 as new board.
Changes from release 1.4.3
- Added Cache DFTDL
Initialization for Orion 2 B0
- Added enaDCPref environment variable to enable D-Cache Prefetch
- Added enaICPref environment variable to enable I-Cache Prefetch
- Added new Sample at Reset clock values
Changes from release 1.4.2
- Added support for
RD-885181-VOIP-DDR1 board
- Added support for DB-885X81-DDR2 board
- Rewrote the Board HAL environment module with new HAL Board
module, the new
module uses a global table for describing the supported
boards , and every
entry in the table describe one different board.
- Updated the mvBoardIdGet function to search the TWSI EEPROM for
two possible
offsets.
- Updated RTC driver to use the new Board HAL module.
- Updated U-boot flash initialization to use the new Board HAL
module.
- Added support for initialization of the 88E6063 Marvell switch
in
the RD-885181-VOIP-DDR1 board.
- Fixed a bug in the mvDevIfPramSet and mvDevIfPramGet functions
when passing
BootCS as parametr.
- Updated Platform.S to support RD-885181-VOIP-DDR1 and
DB-885X81-DDR2 boards.
Changes from release 1.4.1
- Fix DRAM to auto detect the
bank size according to the device and dimm width.
- Change SpdDisplay tp use mvOsOutput instead of mvOsPrintf.
- Fix bug of memory coruption in the SpdDisplay.
- Fix a bug in CpuNameGet API.
- Add setting of the egiga MAC address to the egigaLoad.
- Add option to signal the Linux wether to override the egiga MAC
or to respect the U-Boot settings.
- Add new command "resetenv" which reset the environment
variables back to defaults.
- Add a Fix for using W.D genII HD.
- Enable using the LBA48 support for HDD.
Changes from release 1.4.0
- Update Dram parameters.
- Fix bug in the flash, when writing 32bit to a 16bit flash.
Changes from Release 1.3.4
- Add support for
Orion-Poseidon-NAS board.
- Add support for static DRAM initialization in Assembler.
- Add support for configuring the U-Boot into a tiny image
(memory layout of less then 256KB)
- Add support for detetcting the boards according to an EEPROM
identification (in C and Assembler)
Changes from Release 1.3.3
- Add support for Poseidon
(under mv88fxx81/Board)
- Add support for IDE over Poseidon.
- Add support for ext2 FS, taken from u-boot 1.1.2.
- Remove TWSI initialization uart prints.
- Change DRAM asm boot APIs, to enable using static DRAM
detection in asembler.
Changes from Release 1.3.1
- Made changes to Dram
Initialization:
* Added code that disables P_CAL Automatic Calibration for
Address/Control and
Data Pads (BTS #475 in Orion1 B0, BTS #17 in Orion2 A0)
* Changed Drive Strength Value (used to be called Slew
Rate).
* Changed FTDLL DQS reference delay.
- Fixed two bugs in TWSI driver.
Changes from Release 1.2.4
- Add support for Orion2:
- detect and print name of orion2 0x5281 (all other
defines stay as in 0x5181)
- Update CPU streaming, and add env variable
enaCpuStream (default no)
- Add env enaWrAlloc (default no)
- Add code for initialization of VFP.
- Add latest TWSI driver.
Changes from Release 1.2.3
- Added code to do Twsi Init
EEPROM intialization if
I2C init is not enabled.
* Note * The Twsi init code doesn't support
DB-88F5181-DDRI-PRPMC
and
DB-88F5181-DDRI-PEX-PCI boards.
- Ethernet Phy reset is now in more earlier phase of the code.
Changes from Release 1.2.1
- Fixed a bug in the "PCI
Parity Error" workarround.
- Yukon driver works in Big endian as well.
Changes from Release 1.1.13
- Add support for working in BE.
Changes from Release 1.1.12
- Fix a bug in the USB disk on
key example.
- Fix a bug in the dma command.
Changes from Release 1.1.11
- Disabled CPU streaming.
- Added USB driver as object binaries without source code.
Changes from Release 1.1.10
- Added support for
DB-88F5181-DDR1-PEX-PCI board
- Fixed a bug that allowed setting CPU windows that are not
aligned to
their size.
- Added a workaround in the twsi driver for stop bit that does
not go
down by HW
- Added support for Realtek 8029 NIC ( NE2000)
- Added a support in the U-boot PCI stack so the Host device
number can
be any number , and not only 0.
- Added a region in thr protection unit for the stack to be
cached.
- Added support for changing UART Baudrate in runtime.
Changes from Release 1.1.9
- Added support for Protection
Unit when CPU is configured as ARM946.
Changes from Release 1.1.8
- Fixed a bug that caused the
tftp not to work through Yukon EC in
DB-88F5181-DDR1-PRPMC .
Changes from Release 1.1.7
- update version to 1.1.8
- Added dram auto detection to DB-88F5181-DDR1-A1
- Added support for DB-88F5181-PRPMC in the same image,
no longer seperate images for DB-88F5181-PRPMC and
DB-88F5181.
* Note* this u-boot doesn't support MV88F5181-A0
Changes from Release 1.1.6
- update version to 1.1.7
- Added dram auto detection to DB-88F5181-DDR2-A1
* Note* this u-boot doesn't support MV88F5181-A0
Changes from Release 1.1.5
- update version to 1.1.6
- Bug fixes for DB-88F85181-PRPMC :
- main flash size changed from 16MB to 32MB
- PCI device number changed from 0 to 32
- Egiga works in force link and 100Mbit
- DRAM bug fixes
- Yukon EC MAC address is now writeen to the register
Changes from Release 1.1.1
- update version to 1.1.5
- Added support for DB-88F5181-PRPMC
- Added support for DB-88F5181-A1
Changes from Release 1.1.0
- update version to 1.1.1
- Added support for DB-88F5181-DDRI
- Fixed a bug in mvPexConfigRead, the bug caused mvPexConfigRead
not
to work if remap window of PEX MEM is diffrent than base .
Changes from Release 1.0.13
- update version to 1.1.0
- Insert Usb device support based on the env variable usbMode.
- Insert PCI remapping to 0x40000000 to help CIV handle the
Atlantis PCI
card easily.
- FIx the eepro100 and the pex for to support the remap.
- Minimize the Yukon driver in order to get a small u-boot image.
- Integration with all latest HALs.
Changes from Release 1.0.11
Updated files:
Added files:
None.
Deleted files:
None.
8. Known Issues
- Accessing main flash in
RD-88F5181-VOIP-RD1 board when monitor extension mode
enabled has problems.
- while using 'bubt' command to update little endian U-Boot with
big endian U-Boot and
vice vera, then the user must choose to override
environment variables; otherwise U-Boot
might not boot.
- Pressing Ctrl-C (break) while TFTP tranfer using SK98 NIC will
success; but if trying
addition TFTP transfer using the same SK98 will fail.
- TFPT transfer randomly fails by not finishing using SK98 NIC.
- "dma" command in U-Boot does not set bit 31 in register
0x60840 to 1; in the case of
of byte count > 64KB. Due to that, the DMA engine
is mis-configured to transfer a wrong
byte count of data.
9. Disclaimer
This document provides preliminary information about the products
described, and such information should not be used for purpose of final
design. Visit the Marvell® web site at www.marvell.com for the
latest information on Marvell products.
No part of this document may be reproduced or transmitted in any form
or by any means, electronic or mechanical, including photocopying and
recording, for any purpose, without the express written permission of
Marvell. Marvell retains the right to make changes to this document at
any time, without notice. Marvell makes no warranty of any kind,
expressed or implied, with regard to any information contained in this
document, including, but not limited to, the implied warranties of
merchantability or fitness for any particular purpose. Further, Marvell
does not warrant the accuracy or completeness of the information, text,
graphics, or other items contained within this document. Marvell makes
no commitment either to update or to keep current the information
contained in this document. Marvell products are not designed for use
in life-support equipment or applications that would cause a
life-threatening situation if any such products failed. Do not use
Marvell products in these types of equipment or applications. The user
should contact Marvell to obtain the latest specifications before
finalizing a product design. Marvell assumes no responsibility, either
for use of these products or for any infringements of patents and
trademarks, or other rights of third parties resulting from its use. No
license is granted under any patents, patent rights, or trademarks of
Marvell.These products may include one or more optional functions. The
user has the choice of implementing any particular optional function.
Should the user choose to implement any of these optional functions, it
is possible that the use could be subject to third party intellectual
property rights. Marvell recommends that the user investigate whether
third party intellectual property rights are relevant to the intended
use of these products and obtain licenses as appropriate under relevant
intellectual property rights.
Marvell comprises Marvell Technology Group Ltd. (MTGL) and its
subsidiaries, Marvell International Ltd. (MIL), Marvell Semiconductor,
Inc. (MSI), Marvell Asia Pte Ltd. (MAPL), Marvell Japan K.K. (MJKK),
Marvell Semiconductor Israel Ltd. (MSIL), SysKonnect GmbH, and Radlan
Computer Communications, Ltd.
Export Controls. With respect to any of Marvell’s Information,
the user or recipient, in the absence of appropriate U.S. government
authorization, agrees: 1) not to re-export or release any such
information consisting of technology, software or source code
controlled for national security reasons by the U.S. Export Control
Regulations ("EAR"), to a national of EAR Country Groups D:1 or E:2; 2)
not to export the direct product of such technology or such software,
to EAR Country Groups D:1 or E:2, if such technology or software and
direct products thereof are controlled for national security reasons by
the EAR; and, 3) in the case of technology controlled for national
security reasons under the EAR where the direct product of the
technology is a complete plant or component of a plant, not to export
to EAR Country Groups D:1 or E:2 the direct product of the plant or
major component thereof, if such direct product is controlled for
national security reasons by the EAR, or is subject to controls under
the U.S. Munitions List ("USML"). At all times hereunder,
the recipient of any such information agrees that they shall be deemed
to have manually signed this document in connection with their receipt
of any such information.
Copyright © 2004. Marvell. All rights reserved.
Marvell, the Marvell logo, Moving Forward Faster, Alaska, and GalNet
are registered trademarks of Marvell. Discovery, Fastwriter,
GalTis, Horizon, Libertas, Link Street, NetGX, PHY Advantage, Prestera,
Raising The Technology Bar, UniMAC, Virtual Cable Tester, and Yukon are
trademarks of Marvell. All other trademarks are the property of
their respective owners.