11-Nov-2009 Release notes for MV88F6281A/MV88F6192A/MV88F6180A/MV88F6280A/MV88F6282A U-Boot, release: 3.4.25 ================================================================================================= Table of Contents ----------------- 1. Contents of Release 2. Supported boards/CPU's/ 3. How to build and burn U-Boot. 4. Changes from Previous Releases 5. Known Issues 6. Disclaimer 1. Contents of Release (n) ========================== Included in current release: -) U-Boot source code patch (for u-boot-1.1.4) version 3.4.25 -) Support - Little/Big endian - Uart 0 - Auto detect of PEX 0 - Reset. - RTC. - Gigabit Ethernet ports. Port 0 and 1 in RGMII mode - XOR. - SPI Flash - NAND Flash - JFFS over SPI or NAND - SATA IDE and SATA port multiplier - EXT2, FAT and FAT32 file systems - Exceptions - USB flash drive support - MMC/SDIO support 2. Supported boards/CPU's ============================ This U-Boot version supports the following boards: Boards ====== DB-88F6281A-BP DB-88F6192A-BP RD-88F6281A RD-88F6192A DB-88F6180A-BP DB-88F6281A-SHEEVA_PLUG DB-88F6280A-BP DB-88F6282A-BP 3. How to build and Burn U-Boot =============================== Building U-Boot =============== -) Download U-Boot release 1.1.4 from ftp://ftp.denx.de/pub/u-boot/. -) Update the U-Boot 1.1.4 release by copying the patch of this release. -) Update the U-Boot Makefile to point to the cross compiler in your host machine, arm-none-linux-gnueabi cross compiler. -) Build the U-Boot binaries as follows: -) For DB-88F6281-BP LE > make mrproper -) NAND > make db88f6281abp_config NBOOT=1 LE=1 -) SPI > make db88f6281abp_config SPIBOOT=1 LE=1 -) SPI with NAND support > make db88f6281abp_config SPIBOOT=1 LE=1 NAND=1 > make -s -) For DB-88F6192A-BP LE > make mrproper -) NAND > make db88f6192abp_config NBOOT=1 LE=1 -) SPI > make db88f6192abp_config SPIBOOT=1 LE=1 -) SPI with NAND support > make db88f6192abp_config SPIBOOT=1 LE=1 NAND=1 > make -s -) For RD-88F6281A LE > make mrproper -) NAND > make rd88f6281a_config NBOOT=1 LE=1 -) SPI > make rd88f6281a_config SPIBOOT=1 LE=1 -) SPI with NAND support > make rd88f6281a_config SPIBOOT=1 LE=1 NAND=1 > make -s -) For RD-88F6192A LE > make mrproper -) SPI > make rd88f6192a_config SPIBOOT=1 LE=1 > make -s -) For DB-88F6180-BP LE > make mrproper -) NAND > make db88f6180abp_config NBOOT=1 LE=1 -) SPI > make db88f6180abp_config SPIBOOT=1 LE=1 -) SPI with NAND support > make db88f6180abp_config SPIBOOT=1 LE=1 NAND=1 > make -s -) For SHEEVA PLUG LE > make mrproper -) NAND > make rd88f6281Sheevaplug_config NBOOT=1 LE=1 > make -s -) For DB-88F6280-BP LE > make mrproper -) NAND > make db88f6280abp_config NBOOT=1 LE=1 -) SPI > make db88f6280abp_config SPIBOOT=1 LE=1 -) SPI with NAND support > make db88f6280abp_config SPIBOOT=1 LE=1 NAND=1 > make -s -) For DB-88F6282-BP LE > make mrproper -) NAND > make db88f6282abp_config NBOOT=1 LE=1 -) SPI > make db88f6282abp_config SPIBOOT=1 LE=1 -) SPI with NAND support > make db88f6282abp_config SPIBOOT=1 LE=1 NAND=1 > make -s * For BE use BE=1 -) The BootRom header files are located in the source root directory: -> dramregs_400rd_A.txt -> dramregs_400db_A.txt -> dramregs_200rd_A.txt -> dramregs_200db_A.txt -> dramregs_200db619x_A.txt -> dramregs_200db6280_A.txt The files have predefined register settings for the different SDRAM configurations and required errata. The matching header file is appended to the U-boot image during the make process according to the device and board type, using the doimage utility which is located in the /tools directory. The output file to be burnt on boot ROM depends on the make parameters: -> NBOOT=1 : u-boot-__nand.bin -> SPIBOOT=1 : u-boot-__flash.bin The file u-boot-__uart.bin is used for debug purposes for booting the U-boot image through the UART port. Burning U-Boot ============== If burning the new U-Boot image to an board the already runs a previous U-Boot image the following sequence can be used to load the image using tftp to the board and burn it: 1. Start a tftp server on the host PC, whose directory is set to point to the directory contaning the new U-Boot bin image. 2. Connect an Ethernet cable to the RJ-45 connector of the board. 3. Configure the U-Boot environment parameters using the following commands: > setenv serverip xx.xx.xx.xx (xx.xx.xx.xx should be the IP address of the PC runing the tftp server) > setenv ipaddr yy.yy.yy.yy (yy.yy.yy.yy should be some IP address with the same subnet as the server) 4. run the bubt command to load and burn the U-Boot image: > bubt u-boot-__.bin 5. Once the image is loaded the user is asked whether the environment parameters should be overwritten or not , and answering y or n to thios question will start the burn process. 6. Once the burn is complete the board can be restarted, and the new U-Boot image will be run. *** When upgrading U-boot from an older revision than 3.4.10, then after step 6 is done and U-boot 3.4.10 is up and running need to repeat steps 3-6 again on the same image of U-boot 3.4.10 (and up) and re-burn it. The reason is that from U-boot 3.4.10 and on NAND ECC uses 4-bit for the U-boot image and environment in the NAND, and when using an older U-boot to burn it, it is written using 1-bit ECC, which is not correct. Using the newly burnt U-boot 3.4.10 (and on) to burn the image again will use 4-bit ECC. In case the original U-Boot image was damaged, or when whishing to burn a different boot device than the current one, the U-Boot command cannot be used, and a debugger is required to load the U-Boot ELF image into the SDRAM, using the following procedure: 1. Connect a debugger (Marvell uses a Lauterbach debugger, so the supplied scripts are written for this type of debugger) to the debugger port of the board. 2. From the file menue of the debugger SW choose the "run batch file" option and load the cmm file suiting the system: - kw_dimm400.cmm for 88F6281 running at frequencies above 200MHz. - kw_dimm200.cmm for all other options. 3. From the file menue of the debugger SW choose the "load" option and load the U-Boot ELF file (The one without any extension). 4. Once the loading is done change the following using the debugger SW: - CPU PC to 0x670000. - Configure the required MPPs to either NAND or SPI according to the required boot method using the debugger SW command line: + For NAND boot: - D.S SD:0xD0010000 %LE %LONG 0x01111111 - D.S SD:0xD0010008 %LE %LONG 0x551111 + For SPI boot: - For DB-6180, DB-6280 and RD-6192: + D.S SD:0xD0010000 %LE %LONG 0x01112222 For all other boards: + D.S SD:0xD0010000 %LE %LONG 0x21112220 - D.S SD:0xD0010008 %LE %LONG 0x551111 5. Start the CPU by pressing "Go" in the debugger SW, and the loaded U-Boot image will boot the board, and now the new image can be burnt to the required boot device using the bubt command. 4. Recovery and Upgrade of Linux Image using USB Flash Drive ============================================================ 4.1 Requirements: ----------------- - UBOOT - Flash drive - Kernel compiled with ram_disk support. - Static mapping (Kernel) or dynamic mapping (Uboot) of your MTD flash partitions. 4.2 Introduction: ----------------- Today, in order to “burn” a new file system we need to have NFS server with TFTP server, this way is too complex and takes long time for setting up and configuring, and usually requires additional hardware. In order to simplify the process UBOOT contains USB recovery feature (the older tftp method is also supported in case recovery is executed and no flash drive is inserted), it enables you to put “flashware” image on USB, Load the image from the UBOOT level and boot Linux. 4.3 Recovery Process: --------------------- 1. Power on 2. If flash drive is inserted into the USB connector the UBOOT searches for flashware.img file (On either FAT or ext2 FS). 3. If flashware.img exists the UBOOT will load the file to RAM starting from $loadaddr ( 0x2000000 ) 4. When finished loading the image to RAM the UBOOT will invoke new bootcmd (Based on the image parameters, the below line is an example): setenv bootargs $(console) root=/dev/ram0 rootfstype=squashfs initrd=0x2200000,0x626d64c ramdisk_size=100789 recovery=usb ser verip=10.4.50.5; bootm 0x2000000; * The USB flash drive should contain recovery image – squashfs and the file system image. For example: - flashware.img (30M) – basic squashfs rootfs - ubuntu_9.0.4_jffs2 – (140M) – your SW image. You can add more files as needed 4.4 How to create the recovery image? ------------------------------------- create basic squashfs from your minimal root file system (Ubuntu, RedHat, etc) with mkfs.squashfs Change the init scripts of the filesystem to mount the flash drive and flash_erase, nand_write your SW image. Reboot – the UBOOT will load the default bootcmd. 5. Changes from Previous Releases ================================= U-boot 3.4.25 ============= -) Fixed in mv_main.c the initialization of nandEnvBase in order to solve a probel caused to the console variable. U-boot 3.4.24 ============= -) Fixed in mv_main.c the initialization of nandEnvBase from "" assignment of the env variable which caused wrong display of "" in the mmcinit command to strcpy. -) Fixed nand mark bad function in nand_base.c to support non sector aligned addresses. -) Changed device number 1155 to 6282 -) Fixed in nand_base.c the string assignments to nandEcc parameter which caused it to overflow into other strings. U-boot 3.4.23 ============= -) excluded RD-6281 from audio shut down in mv_main.c. -) rolled back the fix in armlinux.c which was made in 3.4.22 (returned to previous state). U-boot 3.4.22 ============= -) Fixed network name assignment for recovery on the RD-6281 in mv_main.c and armlinux.c in order to fix problem in port assignment in Linux when performing recovery. -) Added support for 88F6280 device. -) Added support for 88F1155 device. U-boot 3.4.21 ============= -) Added a HUB port reset in usb.c prior to first descriptor fetch in order to solve problem for certain flash drives. U-boot 3.4.20 ============= -) Override USB low speed devices connected to a USB hub since we do not know how to handle them. -) Aligned stack pointer to 8 bytes. -) Added the switchRegRead/switchRegWrite commands to support also indirect phy access to switches. U-boot 3.4.19 ============= -) Added SDIO MMC support. -) Added FAT32 support. -) Updated NAND stack: -) Added support for NAND bad block skipping for bubt and environment commands. -) Fixed NAND ECC RS calculation algorithm. -) Added NAND write verification. -) Added "nandEnvBase" variable that holds the offset of the environment start in the nand flash to be used by the bootcmd for Linux in case the NAND contains bad blocks and the environment is relocated to a different block. -) Added support for NAND devices with pages larger than 2048 bytes, and updated nand stack in nand_base to support automatic identification and usage of parameters for large page NAND devices. -) Fixed endianess issue in nand_base.c nand read and nand verify for BE operation. -) Added NAND I/F register values to the board structures in mvBoardEnvSpec.c in order to configure the NAND interface parameters (in mvBoardEnvInit()) correctly for each board. -) Fixed dos_part code to support unpartitioned USB drives. U-boot 3.4.18 ============= -) Fixed RD-6281 Fan and HDD power enable functions to access correct entry in the TWSI expander struct. U-boot 3.4.17 ============= -) Enabled P2DWr bit in register 0x1404 in bootrom header files for 400Mhz configurations. -) Changed switch driver to get the single chip or multi chip device from switch structure in boardEnvSpec.c -) Added diagnostic tests under /diag directory. Compiled when adding DIAG=1 during make configuration. -) Updated SSCG configuration register setting according to FE-MISC-90. -) Improved HDD detection. Fixed mv_ide.c. -) Unified sources with other Feroceon core device streams. -) Fixed NAND flash ECC algorithm for 1bit ECC. -) Added pcieTune environment variable, which when set to "yes" performs tuning of the pci-e buffers. -) Added ethact, ethaddr and eth1addr parameters in the bootargs variable when doing recovery in order to pass Linux the I/F from which recovery takes place, and the MAC of the ports. -) Improved nand read performance when accessing aligned offset and size by using 4 byte bursts instead of 1 byte accesses. -) When initializing the 6161 GbE switch changed the write to the RGMII register to a RMW operation as required. -) Removed WA for erratum GL-CPU-70. -) Fixed the commands sp, me, se -) Improved NAND ECC correction routine for faster operation when using 4-bit ECC. -) Changed SPI access code for environment operations to use indirect SPI access, in order to have enough CS de-select timing. -) Updating L2 configuration registers (0x20134 and 0x20138) in the bootrom header files. -) Updated mv_ide.c file to support UDMA mode for drives that do not support UDMA mode 5. U-boot 3.4.16 ============= -) Updated timing parameter in SATA initialization. -) Fixed MPP definition for Sheeva plug board. -) Added MII module support. -) Fixed nand_base.c to support OOB for smaller sized nand devices. -) Added SheevaPlug recovery boot command setting U-boot 3.4.15 ============= -) Improved the RS nand ECC calculation to speed things up. -) Updated SDRAM parameters in bootrom header files. (reg 0x1404 [27:24] ; reg 0x140c [10:9]) -) Added WA for the RD-6281 board erratum for the swapped MDI polarity of the switch connector. U-boot 3.4.14 ============= -) Updated USB PHY Rx Control Register 0x50430 initialization according to lates guidelines For EL15, EL16, and EL 17. -) Added FTDLL update to bootrom header file for 619x devices, which adds a new header file for the DB-88f619x-A-BP called dramregs_200db619x_A.txt U-boot 3.4.13 ============= -) Added support for USB host to be able to load files from a DOK (FS support for FAT and EXT2). The new commands are "usb" , "fatls", "fatload", "ext2ls", "ext2load". -) Recovery process now tries by default to recover from FAT DOK -> EXT2 DOK -> network. -) Removed from bootrom header files initialization for CPU registers 0x20134 and 0x20138 due to an Erratum that was fixed. -) Patched the ext2fs.c driver to support large nodes and improved reading speed. -) Added auto detection of TCLK for 88F6281 device which supports 166/200MHz, and updated the SatR command to support TCLK configuration. U-boot 3.4.12 ============= -) Fixed udelay() function which previously didn't operate correctly and didn't do any delays for vlaues <1000us, and didn't do correct delays for values >1000us. This may have influenced any function that used the udelay() function. U-boot 3.4.11 ============= -) Fixed a bug in the NAND ECC calculation when using 1bit ECC which caused a page to be marked bad. -) Changed the "nandEcc" environment variable to accept "1bit" or "4bit" (previously "RS"). -) Set the default value for the NAND ECC environment to be 1bit (when it is not set) regardless of the NAND size. -) When GMII module is used ports 0 & 1 are configured to GMII mode. -) Fixed a bug in the imm/imd I2C access commands which occured when accessing EPROM of more than 256 bytes. U-boot 3.4.10 ============= -) increased the recovery file maximum load size from 32MB to infinite. -) NAND ECC UBoot and environment use Reed-Solomon whenever the page size is 2048 bytes or more, and the rest of NAND is defined by the environment variable "nandEcc" which can either be "RS" or "1bit". If the variable is not defined then the default for a page size below 2048 is 1bit and for 2048 or more RS. -) Stack is cacheable for monitor extension mode -) Added environment variable "nandEccAcc", which when set to "yes" together with "enaMonExt" accelerates the NAND access and ECC calculation by using cacheable execution. -) Fixed mvBoardMppMuxSet() setting values accodring to modules, and MPP settings for the audio and TDM modules. -) Work around in jump.s for the bug of the PEX wrong device ID for 619x. U-boot 3.4.9 ============ -) Fixed MPP definitions and board structs in mvBoardEnvSpec. -) Fixed bug in the parsing of the MTU parameter passed to Linux, and added a default value of 1500. -) Fixed doimage.c to support 64 bit Linux host (previouse version caused segmentation fault). U-boot 3.4.8 ============ -) Added support for PEX/PCI SATA controller on DB-6180-A-BP. -) Added Lauterbach cmm files for loading ELF image. U-boot 3.4.7 ============ -) Updated SDRAM ODT configuration in the BootRom header files to latest design guide recommendations. -) Added support DB-88F6180A-BP. -) Added support for customer board addition to the U-Boot tree (DB_CUSTOMER define) -) Fixed MPP definitions for SPI + NAND support. U-boot 3.4.6 ============ -) Changed the default boot environment for phonetools parameters to fxs:fxs. -) Added support for NAND flash when booting from SPI. U-boot 3.4.5 ============ -) Created separate header files for the bootrom for 400MHz RD and DB and updated SDRAM register values. -) Initialized the SSCG configuration register. -) moved Switch drivers to the USP directory. -) Added WA for Erratum FE-MISC-70 U-boot 3.4.4 ============ -) updated SATA PHY values to the latest recommendations. -) In the RD-6281A enabled the HDD power and fan power on start. -) Added support for RD-88F6192A board. U-boot 3.4.3 ============ -) Added support for RD-88F6281A. -) Fixed mv_egiga.c mvEgigaHalt() function which caused memory leakage due to unreleased buffers. -) Removed doimage.c error message during the make process. -) REmoved 4bit Reed-Solomon ECC from NAND driver due to significant slow down it caused. U-boot 3.4.2 ============ -) Fixed bug in Reed-Solomon algorithm when doing "nand erase clean" command. U-boot 3.4.1 ============ -) Added support for 88F6192-A0 & 88F6281-A0 -) Removed support for 88F6192-Z0 & 88F6281-Z0 -) Changed Linux bootcmd to boot from 0x2000000 -) Added support for NAND flash when booting from SPI. -) Added the doimage and bootrom header addition into the make process. -) Added Reed-Solomon ECC support for large page NAND. U-boot 3.1.9 ============ -) Remove mvPci.c from Makfile -) Add setting for both RGMII delay option in Marvell PHY 1116. -) Fix MPP output voltage setting when working in RGMII mode. -) Fix Marvell switch 6165 SMI address to 0x0. -) Fix CFG_HZ to 1000, cause for overflow in calculation of timeout. -) Change the definition of Marvell READ_TIMER in interrupts.c to return the value in 1mSec granularity. -) Remove gateway IP and net mask from CFG_BOOTARGS_END. -) Fix PCI-Express configuration of root complex or end point. -) Enable silent mode in compilation only. -) Code cleanup. U-boot 3.1.6 ============ -) Fix calculation of week day in integrated RTC driver. -) Fix MPP output drive for 1.8V interfaces. -) Add support for RGMII module detection in DB-88F6192-BP. -) Add synchronise function for bridge reorder. -) Add HDD power control for RD-6192. -) Add mainlineLinux environment variable. -) Add vxworks_en environment variable for vxWorks boot over U-boot. -) Change mvPhoneConfig second interface default to "FXO". -) Add 88E6165/61 SMI timeout and busy polling. -) Add big endian support. -) Fix ide read/write in case of size parameter equal 0. -) Code cleanup. 6. Known issues =============== -) DRAM is fixed size and timing parameters in the image header. -) SATA controller 6042 not supported (Hangs board). -) When performing "nand erase clean" the OOB clean marker isn't compliant with JFFS2 definitions. 7. 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.