cfe-1.1.1

所属分类:嵌入式Linux
开发工具:Unix_Linux
文件大小:2125KB
下载次数:134
上传日期:2005-03-22 21:03:44
上 传 者singlebird
说明:  一个很好的嵌入式linux平台下的bootloader,适用于mips体系结构,是不可多得的学习linux引导的资料,也可以用于实际项目。
(a good embedded Linux platform under the Bootloader applies to MIPS architecture is a rare study guide linux information can also be used to the actual project.)

文件列表:
cfe-1.1.1 (0, 2004-12-22)
cfe-1.1.1\build (0, 2004-12-22)
cfe-1.1.1\build\broadcom (0, 2004-12-22)
cfe-1.1.1\build\broadcom\bcm1250cpci (0, 2004-12-22)
cfe-1.1.1\build\broadcom\bcm1250cpci\download.data (7736, 2002-02-08)
cfe-1.1.1\build\broadcom\bcm1250cpci\Makefile (1555, 2004-05-19)
cfe-1.1.1\build\broadcom\bcm91125cpci (0, 2004-12-22)
cfe-1.1.1\build\broadcom\bcm91125cpci\Makefile (1226, 2004-10-19)
cfe-1.1.1\build\broadcom\bcm91125e (0, 2004-12-22)
cfe-1.1.1\build\broadcom\bcm91125e\Makefile (1502, 2004-05-19)
cfe-1.1.1\build\broadcom\bcm91125f (0, 2004-12-22)
cfe-1.1.1\build\broadcom\bcm91125f\Makefile (1207, 2004-05-19)
cfe-1.1.1\build\broadcom\bcm91125pcix (0, 2004-12-22)
cfe-1.1.1\build\broadcom\bcm91125pcix\Makefile (1603, 2004-05-19)
cfe-1.1.1\build\broadcom\bcm91480a (0, 2004-12-22)
cfe-1.1.1\build\broadcom\bcm91480a\Makefile (1827, 2004-11-02)
cfe-1.1.1\build\broadcom\bcm95836cpci (0, 2004-12-22)
cfe-1.1.1\build\broadcom\bcm95836cpci\Makefile (578, 2004-06-02)
cfe-1.1.1\build\broadcom\lausanne (0, 2004-12-22)
cfe-1.1.1\build\broadcom\lausanne\Makefile (1253, 2004-09-09)
cfe-1.1.1\build\broadcom\sentosa (0, 2004-12-22)
cfe-1.1.1\build\broadcom\sentosa\Makefile (1184, 2004-05-26)
cfe-1.1.1\build\broadcom\sim (0, 2004-12-22)
cfe-1.1.1\build\broadcom\sim\debugcfe (1221, 2004-05-19)
cfe-1.1.1\build\broadcom\sim\flash2.m4 (277, 2001-12-05)
cfe-1.1.1\build\broadcom\sim\Makefile (1026, 2004-08-27)
cfe-1.1.1\build\broadcom\sim\runcfe (718, 2003-09-26)
cfe-1.1.1\build\broadcom\sim\runcfe_withnet (1312, 2002-05-09)
cfe-1.1.1\build\broadcom\swarm (0, 2004-12-22)
cfe-1.1.1\build\broadcom\swarm\download.data (7736, 2002-01-22)
cfe-1.1.1\build\broadcom\swarm\Makefile (1684, 2004-08-27)
cfe-1.1.1\build\broadcom\tiny (0, 2004-12-22)
cfe-1.1.1\build\broadcom\tiny\bsp_config.h (4264, 2004-03-09)
cfe-1.1.1\build\broadcom\tiny\debugcfe (895, 2002-10-26)
cfe-1.1.1\build\broadcom\tiny\Makefile (459, 2004-05-19)
cfe-1.1.1\build\broadcom\tiny\runcfe (1124, 2001-12-12)
cfe-1.1.1\build\broadcom\tiny\tiny.h (9381, 2003-05-28)
cfe-1.1.1\build\broadcom\tiny\tiny_devs.c (6165, 2004-05-19)
cfe-1.1.1\build\broadcom\tiny\tiny_init.S (6721, 2003-05-28)
cfe-1.1.1\build\broadcom\vcs (0, 2004-12-22)
... ...

/* ********************************************************************* * Broadcom Common Firmware Environment (CFE) * * README * * Author: Mitch Lichtenberg * ********************************************************************* * * Copyright 2000,2001,2002,2003 * Broadcom Corporation. All rights reserved. * * This software is furnished under license and may be used and * copied only in accordance with the following terms and * conditions. Subject to these conditions, you may download, * copy, install, use, modify and distribute modified or unmodified * copies of this software in source and/or binary form. No title * or ownership is transferred hereby. * * 1) Any source code used, modified or distributed must reproduce * and retain this copyright notice and list of conditions * as they appear in the source file. * * 2) No right is granted to use any trade name, trademark, or * logo of Broadcom Corporation. The "Broadcom Corporation" * name may not be used to endorse or promote products derived * from this software without the prior written permission of * Broadcom Corporation. * * 3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR * PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT * SHALL BROADCOM BE LIABLE FOR ANY DAMAGES WHATSOEVER, AND IN * PARTICULAR, BROADCOM SHALL NOT BE LIABLE FOR DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR * TORT (INCLUDING NEGLIGENCE OR OTHERWISE), EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. ********************************************************************* */ RELEASE NOTES FOR: CFE version 1.1.1 ------------------------------------------------------------------------------ INTRODUCTION ------------------------------------------------------------------------------ This directory contains Broadcom's Broadband processor division "Common Firmware Environment," or CFE. (pronounce it 'cafe' if you like) It is intended to be a flexible toolkit of CPU initialization and bootstrap code for use on processors like the SB1250 and its derivatives. CFE contains the following important features: * Easy to port to new SB1250 designs * Initializes CPUs, caches, memory controllers, and peripherals * Built-in device drivers for SB1250 SOC peripherals * Several console choices, including serial ports, ROM emulators, JTAG, etc. * Environment storage in NV EEPROM, flash, etc. * Supports big or little endian operation * Supports 32-bit and ***-bit processors * Support for network bootstrap. Network protocols supported include IP,ARP,ICMP,UDP,DHCP,TFTP. * Support for disk bootstrap. * Provides an external API for boot loaders and startup programs * Simple user interface. UI is easy to remove for embedded apps. See the file 'TODO' for a list of things that are being considered as CFE matures. There is some documentation in PDF format in the docs/ directory. ------------------------------------------------------------------------ Directory organization ---------------------- CFE is laid out to make it easy to build and maintain versions for different boards at the same time. The directories at this level are the build areas for ports of CFE: cfe/ Main CFE source tree build/ The "new" build tree location The 'build' directory contains build areas for various targets, and the skeletal Makefiles that build them. This directory has subdirectories by vendor, so you can create your own directory here and avoid hassles with merging changes. build/broadcom/swarm/ BCM1250 evaluation board - "SWARM" build/broadcom/sentosa/ BCM1250 evaluation board - "SENTOSA" build/broadcom/rhone/ BCM1125 evaluation board - "RHONE" build/broadcom/bcm1250cpci BCM1250 evaluation board - "BCM1250CPCI" build/broadcom/vcs/ Verilog simulator version build/broadcom/sim/ Functional Simulator build/broadcom/tiny/ Minimal version of CFE The 'arch' directory contains architecture-specific stuff: cfe/arch Top of architecture tree cfe/arch/mips All MIPS-related subdirectories cfe/arch/mips/cpu CPU-specfic subdirectories cfe/arch/mips/board Board-specific subdirectories cfe/arch/mips/common Common MIPS-related sources For the SWARM platform, the following directories are of interest: cfe/arch/mips/cpu/sb1250 cfe/arch/mips/board/swarm cfe/arch/mips/common For the SENTOSA platform, the following directories are of interest: cfe/arch/mips/cpu/sb1250 cfe/arch/mips/board/sentosa cfe/arch/mips/common For the RHONE platform, the following directories are of interest: cfe/arch/mips/cpu/sb1250 cfe/arch/mips/board/rhone cfe/arch/mips/common Platform-independent sources continue to live in the cfe/ directory and its subdirectories: cfe/docs/ Documentation in PDF format cfe/arch/ Platform-specific directories cfe/dev/ Device drivers for consoles and boot storage cfe/include/ Common include files cfe/lib/ Common library routines cfe/main/ Main program cfe/net/ Network subsystem (IP, DHCP, TFTP, etc.) cfe/pci/ PCI and LDT configuration cfe/ui/ User interface cfe/applets/ Test "applets" for firmware API cfe/verif/ Stuff for running chip verification tests cfe/hosttools/ Tools built on the host cfe/vendor/ Vendor extensions to CFE cfe/x86emu/ X86 emulator for VGA initialization cfe/pccons/ PC console routines Building CFE ------------ To build the firmware for the swarm (BCM1250 evaluation board) for example: cd swarm ; gmake all ; cd .. This will produce: swarm/cfe Executable file swarm/cfe.flash Network flash update file swarm/cfe.srec Motorola S-records swarm/cfe.map Linker map file ------------------------------------------------------------------------------ CHANGES SINCE PREVIOUS VERSION (1.0.40) ------------------------------------------------------------------------------ [Note: This is a MAJOR new CFE release. There have been source file changes to nearly all of CFE's files to accomodate new tools and a new relocation method. On the whole, the source changes are minor but there are a lot of them!] * MAJOR NEW FEATURE: New relocation method CFE's relocation method has been changed to use System-V PIC format instead of the old "embedded-pic". The old method is deprecated in current GCC versions and will be deleted entirely in the future, so CFE had to be modified to relocate without using embedded-pic. To make this work, the low-level startup code, many of the macros in the code, and several other places have been touched or rewritten. The include file "cfe.h" must now be _before_ other include files to set up certain macros properly. * No more ***-bit versions Since the SVR4 PIC toolchain does not support relocatable ***-bit libraries, there are now no more ***-bit native versions of CFE. (pointers and longs are 32 bits, and long longs are *** bits). CFE now runs with KX set in the status register all the time. You can still access ***-bit data with the "d", "e", "u", and other commands. To make this work, the old "lib_hssubr.S" (hyperspace subroutines) has been ressurected. NOTE: This has temporarily broken loading ***-bit ELF files, we will revisit this in a future release. * Processor and chipset support for the BCM1480/BCM1455/BCM1280/BCM1255 chips. Look in the arch/mips/chipset/sibyte and arch/mips/cpu/bcm1480 directories for the new files. The include files are believed to be accurate as of the current user's manual revision and errata. Notes specific to the 1480 release: - In general, the 1480 package is very new and subject to rapid change as we continue to check out the chip. - The DRAM initialization code is still new and has some missing features, including SPD support for DDR-II. - 4-channel 32-bit mode has not been tested. * Preliminary board support package for the BCM91480A, the eval platform for the BCM1480 and BCM1280 chips. This package is for evaluation use only, there will be another CFE release for this board once the eval platforms are generally available. * Processor and chipset support for the BCM5836 low-end MIPS32 processor. Look in the arch/mips/chipset/bcmsb and arch/mips/cpu/bcmcore directories for the new files. * Board support package for the BCM91125CPCI module has been added. This is an 1125-based CPCI card. * Board support package for the BCM95836CPCI module has been added. This is an 5836-based CPCI card. * Board support packe for the BCM91125PCIX has been added. This is an ATX board with a BCM1125 and an HT-to-PCIX bridge. * The include files for the BCM1255, BCM1280, BCM1455, BCM1480 are now in the arch/mips/chipset/sibyte/include area. Preliminary support for these new chips have been added to appropriate areas in the source tree (dram init, etc.). More updates in this area for the next version. * Some preliminary support for compressing CFE has been added. It is not fully baked yet, but customers can examine it to see if it will be useful. With this feature, most of CFE is compressed via gzip and a boot-loader-loader decompresses the firmware and transfers it to memory. Look for "ZipStart" * The flashop engine (assembly stub used to batch flash commands) has been updated to support Intel flash buffered write commands. This should dramatically improve write speed when using Intel flash parts. * The kit generation procedures we use to make the CFE kit files have been included in the release/ directory of CFE. You can use these procedures to package your own CFE releases. * The Algorithmics P50*** and P60*** boards have been removed. ------------------------------------------------------------------------------ CHANGES SINCE PREVIOUS VERSION (1.0.38) ------------------------------------------------------------------------------ [Note: It's been a while since a new CFE release was made, so customers should also read the 1.0.38 differences in the section after this one.] * Support for the new BCM91125F evaluation board has been introduced * In anticipation of the BCM1x80/BCM1x55 chips, the SiByte-specific files have been moved into their own "chipset" directory. The Ethernet controller driver, UARTs, and other common modules that used to live in arch/mips/cpu/sb1250 are now in arch/mips/chipset/sibyte * The 'tiny' board target (minimalistic BCM1250 board) has been fixed so that it builds again. * The SMBus interface has a new level of abstraction. If your code uses the BCM1250 SMBus device drivers in CFE, you may need to make some changes to your board_device_init() routine (see the code in the SWARM or Sentosa port for an example). Basically, before devices are instantiated you should be sure you create SMBus buses as follows: cfe_add_smbus(&sb1250_smbus,A_SMB_BASE(0),0); cfe_add_smbus(&sb1250_smbus,A_SMB_BASE(1),0); Then instantiate your devices "normally." SMBuses get numbered from zero in the order they are instantiated via cfe_add_smbus. The new SMBus code moves all the SMBus-device-specific routines into processor/architecture independent places and leaves the actual SMBus protocol code in the host chip-specific area. You can now write bit-bang SMBus host routines or use other SMBus host controllers and re-use CFE's pre-existing device drivers for nvram/tod/temperature chips. * The Sentosa board's memory timing has been increased to run the memory at 133MHz (max speed depending on core clock) * M-Systems(tm) DiskOnChip(tm) support. If you have signed the NDA with M-Systems and have access to their DiskOnChip boot driver kit (BDK), CFE can access configured M-Systems flash devices. You need to provide certain files from the M-Systems BDK and place them in the cfe/msys directory, then set CFG_MSYS=1 in your Makefile. * The code in the BCM1250 cache init routines for supporting the ancient A0..A7 parts with "binned" caches (preproduction parts with partial caches) has been removed, since the BCM1250 is in full production now. * BCM1250 Pass1 support has been disabled. * The 'mkflashimage' program should now work properly when compiled under Cygwin. * New device drivers for the DS1743 RTC/NVRAM, Intel i82559 Ethernet, RealTek rtl8139 Ethernet, and a "C" version of the flash update engine. * The PromICE console driver lets you specify whether your PromICE is connected in direct mode (write line attached) or not, instead of using a compile-time constant. * The Ethernet routines have been rearranged to move common packet manipulation, address parsing, and other non-device routines into a common place. * The PCI/HyperTransport init routines for the BCM1250 have been improved to handle additional topologies and configurations. ------------------------------------------------------------------------------ CHANGES SINCE PREVIOUS VERSION (1.0.37) ------------------------------------------------------------------------------ * The BCM1250 memory initialization routine has been updated to calculate tRCD and tRCR/tRCW more accurately when the parameter is not supplied by the SPD. Even if you do not update all of CFE, you should retrofit this change into your CFE if you notice any memory timing problems. * The console F12 key macro should work properly now to either repeat the previous command or execute the command in the F12 environment variable. * TFTP's retries and timeouts are now measured in ticks. The TFTP timeouts are also stored in globals that you can modify in your board_devs routine. * A new user command, "reserve", has been added to reserve memory and not communicate it to the operating system. So, you could take a chunk of memory, reserve it, and then boot Linux and Linux would not add that chunk to the boot map. * The PCI initialization code has been reworked to break out machine-dependent and machine-independent stuff more clearly. * New drivers have been included for the BCM4401 PCI fast ethernet and BCM570x PCI gigabit ethernet controllers. * The NS16550 serial driver has been enhanced to take the crystal frequency (NS16550_HZ) as a parameter. Good for boards that use nonstandard clocks or have multiple different 16550's. * The various "cpu_config.h" files have CPUCFG_ARCHNAME and CPUCFG_ELFTYPE defined to break out the processor architecture and ELF header type into cpu-specific include files. * The Algorithmics P50*** and P60*** ports now compile again, but are probably broken. Assume you'll have to make changes if you want to get these working on your hardware! ------------------------------------------------------------------------------ CHANGES SINCE PREVIOUS VERSION (1.0.36) ------------------------------------------------------------------------------ * The Makefile for the BCM1250CPCI version has been modified to support building dual-endian versions of CFE. * Some cleanup has been done in the source files in preparation for the release to the public (non-NDA) web site. * The PCI enumeration code has been modified to deal with more than one host "port". To do this, the tag format has been changed slightly - routines that include pcivar.h would probably need some changes. * A typo in lib_physio.h has been fixed - writing ***-bit values to ***-bit uncached addresses was being done with a 32-bit store. * The most recent BCM1250 system include files have been incorporated into the source tree. * sbmips.h (MIPS processor stuff) has been enhanced to include a bunch of macros and inlines for accessing CP0 registers. * FCRAM support in the DRAM init routines has been improved. * The startup messages now recognize Rev.C silicon. * A new include file, endian.h, contains the "truth" about the endianness (for use by #ifdefs in the code). * Device drivers for PCI Ethernet controllers and other devices have been modified to use common macros for address manipulation. * The makefile now recognizes a new "CHIPSET" directory, to go along with "CPU" and "BOARD" - future versions of CFE will show some device driver files moving into this area of the tree (under arch/mips/chipset) so that, for example, the BCM14xx and BCM12xx console drivers can live in one place. * The command processor has been hacked yet again to make it behave more like a shell. In particular, quoting behaviour should once again be working. ------------------------------------------------------------------------------ CHANGES SINCE PREVIOUS VERSION (1.0.35) ------------------------------------------------------------------------------ * The license has been modified to be "GPL compatible." This means that you should be able to incorporate parts of CFE into a GPL'd program without license hassles. * The Hypertransport initialization code in CFE now supports both the LDT 0.17 and the HyperTransport 1.03 styles of fabric initialization. There is a new flag, ldt_rev_017, that can be included in the value of the PCI_OPTIONS environment variable. If that flag is set, the 0.17 initialization procedure will be used. Otherwise, the 1.03 procedure is followed. There is also a new configuration option, CFG_LDT_REV_017, that sets the default value of the ldt_rev_017 attribute. This option is specified in the Makefile. You must choose the initialization procedure properly, either by default or by making a permanent assignment to PCI_OPTIONS, to match the type of devices present on your HyperTransport chain. If the choice is incorrect, the system can fail to initialize the Hypertransport links and may hang at startup while attempting to do so. If set to '1', fabric initialization will be appropriate for the HyperTransport 0.17 specification. The SP1011 HT->PCI bridge can only operate in 0.17 mode, and standard Makefiles for boards with SP1011s make this the default. If set to '0', fabric initalization will be approprate for the 1.01 (and later) specification. The PLX 7520 HT->PCI-X bridge can only operate in this mode. Standard Makefiles for boards with only HT expansion connectors make this the default. Either setting is acceptable when communicating with another BCM1250 in a double-hosted chain, but both ends must agree. * CFE now supports initialization of HyperTransport fabrics that include the PLX 7520 HT->PCI-X chip. For link ... ...

近期下载者

相关文件


收藏者