Common Firmware Environment

From LinuxMIPS
Revision as of 08:33, 11 September 2012 by Zip martin (talk | contribs) (Updated Broadcom's download page addresses)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Common Firmware Environment (CFE) is a firmware developed by Broadcom for 64-bit SB1 (Swarm) and 32-bit BCM47xx SOCs.


  • Sourcecode under BSD-like license
  • Little/Big-Endian support
  • 32- and 64-bit support
  • Command line interface
  • FLASH read/write, flash partitioning in MTD style
  • Environment variables in NVRAM or FLASH
  • Built-in device drivers for Broadcom peripherials
  • Support for PCI controller and wide range of PCI devices
  • x86 emulator for VGA BIOS initialization
  • Support fot USB devices (i.e. keyboard)
  • Support for network bootstrap
  • ELF, SREC and/or compressed kernels
  • Provides an external API for "applications"
  • Binary image size ~384Kb

CFE version 1.0.37 for BCM947XX (32bit,SP,LE)
Build Date: Mon Aug 23 09:38:53 CST 2004 (denny@dny_fedora1)
Copyright (C) 2000,2001,2002,2003 Broadcom Corporation.

Initializing Arena.
Initializing Devices.
et0: Broadcom BCM47xx 10/100 Mbps Ethernet Controller
et1: Broadcom BCM47xx 10/100 Mbps Ethernet Controller
CPU type 0x29006: 264MHz
Total memory: 0x1000000 bytes (16MB)

Total memory used by CFE:  0x80300000 - 0x80435910 (1267984)
Initialized Data:          0x8032F9D0 - 0x80331D10 (9024)
BSS Area:                  0x80331D10 - 0x80333910 (7168)
Local Heap:                0x80333910 - 0x80433910 (1048576)
Stack Area:                0x80433910 - 0x80435910 (8192)
Text (code) segment:       0x80300000 - 0x8032F9D0 (195024)
Boot area (physical):      0x00436000 - 0x00476000
Relocation Factor:         I:00000000 - D:00000000

CFE> help
Available commands:

et                  Broadcom Ethernet utility.
led                 LED control.
tftpupg             Upgrade firmware through ethernet TFTP.
dnvram              Default NVRAM utility.
nvram               NVRAM utility.
reboot              Reboot.
flash               Update a flash memory device
autoboot            Automatic system bootstrap.
batch               Load a batch file into memory and execute it
go                  Verify and boot OS image.
boot                Load an executable file into memory and execute it
load                Load an executable file into memory without executing it
save                Save a region of memory to a remote file via TFTP
ping                Ping a remote IP host.
arp                 Display or modify the ARP Table
ifconfig            Configure the Ethernet interface
unsetenv            Delete an environment variable.
printenv            Display the environment variables
setenv              Set an environment variable.
help                Obtain help for CFE commands

For more information about a command, enter 'help command-name'

*** command status = 0
CFE> printenv
Variable Name        Value
-------------------- --------------------------------------------------
BOOT_CONSOLE         uart0
CFE_VERSION          1.0.37
NET_DEVICE           eth0
STARTUP              go;
*** command status = 0

This firmware is used in the following systems :

  • in Netapp filers (Please note that Netapp filers run Grub, CFE and their own BSD-based operating system which was ported to alpha, intel x86, AMD x64 and mips (R16k?) cpus).
  • in recent versions of Linksys WRT54G cheap all-in-one routers, DSL modems and Wifi access-points. See [1] for more information,
  • in Broadcom 96345-based cheap routers (that combine a DSL modem and a Wifi access-point). See [2] and [3] for more information
  • P.A.Semi PA6T-1682M, 64-bit dual-core 2GHz PowerPC Electra evaluation board


External links