Common Firmware Environment

From LinuxMIPS
Revision as of 01:38, 9 January 2008 by Rogerz (Talk | contribs)

Jump to: navigation, search

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

Features

  • 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 fot 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 3.60.9.0
et1: Broadcom BCM47xx 10/100 Mbps Ethernet Controller 3.60.9.0
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
CFE_BOARDNAME        BCM947XX
CFE_MEMORYSIZE       16
NET_DEVICE           eth0
NET_IPADDR           192.168.2.1
NET_NETMASK          255.255.255.0
NET_GATEWAY          0.0.0.0
NET_NAMESERVER       0.0.0.0
STARTUP              go;
*** command status = 0

This firmware is used in the following systems :

  • in Netapp filers (Please note that Netapp filers runs 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 modem and Wifi access-point. See [1] for more informations,
  • in Broadcom 96345-based cheap routers (that include a DSL modem and a Wifi access-point). See [2] and [3] for more informations
  • P.A.Semi PA6T-1682M, 64-bit dual-core 2GHz PowerPC Electra evaluation board

Sourcecode

External links