Difference between revisions of "Common Firmware Environment"

From LinuxMIPS
Jump to: navigation, search
m
(Updated Broadcom's download page addresses)
 
(13 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
Common Firmware Environment (CFE) is a firmware developed by Broadcom for 64-bit [[SB1]] ([[Swarm]]) and 32-bit [[Broadcom_SOCs | BCM47xx]] SOCs.
 
Common Firmware Environment (CFE) is a firmware developed by Broadcom for 64-bit [[SB1]] ([[Swarm]]) and 32-bit [[Broadcom_SOCs | BCM47xx]] SOCs.
  
Features:
+
==Features==
  
* Soursecode under BSD-like license
+
* Sourcecode under BSD-like license
 
* Little/Big-Endian support
 
* Little/Big-Endian support
 
* 32- and 64-bit support
 
* 32- and 64-bit support
Line 10: Line 10:
 
* Environment variables in NVRAM or FLASH
 
* Environment variables in NVRAM or FLASH
 
* Built-in device drivers for Broadcom peripherials
 
* Built-in device drivers for Broadcom peripherials
* Support fot PCI controller and wide range of PCI devices
+
* Support for PCI controller and wide range of PCI devices
 
* x86 emulator for VGA BIOS initialization
 
* x86 emulator for VGA BIOS initialization
 
* Support fot USB devices (i.e. keyboard)
 
* Support fot USB devices (i.e. keyboard)
Line 32: Line 32:
 
  Total memory used by CFE:  0x80300000 - 0x80435910 (1267984)
 
  Total memory used by CFE:  0x80300000 - 0x80435910 (1267984)
 
  Initialized Data:          0x8032F9D0 - 0x80331D10 (9024)
 
  Initialized Data:          0x8032F9D0 - 0x80331D10 (9024)
  BSS Area:                   0x80331D10 - 0x80333910 (7168)
+
  BSS Area:                 0x80331D10 - 0x80333910 (7168)
 
  Local Heap:                0x80333910 - 0x80433910 (1048576)
 
  Local Heap:                0x80333910 - 0x80433910 (1048576)
 
  Stack Area:                0x80433910 - 0x80435910 (8192)
 
  Stack Area:                0x80433910 - 0x80435910 (8192)
Line 83: Line 83:
 
This firmware is used in the following systems :
 
This firmware is used in the following systems :
  
- in recent versions of Linksys WRT54G cheap all-in-one routers, DSL modem and Wifi access-point. See [http://www.openwrt.org] for more informations,
+
* in [http://www.netapp.com 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 [http://www.openwrt.org] for more information,
 +
* in Broadcom 96345-based cheap routers (that combine a DSL modem and a Wifi access-point). See [http://skaya.enix.org/wiki/BroadCom96345] and [http://sourceforge.net/projects/brcm6345-linux/] for more information
 +
* P.A.Semi [http://pasemi.com/processors/pwr_evaluation_kit.html PA6T-1682M], 64-bit dual-core 2GHz PowerPC Electra evaluation board
  
- in Broadcom 96345-based cheap routers (that include a DSL modem and a Wifi access-point). See [http://skaya.enix.org/wiki/BroadCom96345] and [http://sourceforge.net/projects/brcm6345-linux/] for more informations
+
==Sourcecode==
 +
* Broadcom CFE [http://www.broadcom.com/support/communications_processors/downloads.php Latest Version (CFE v. 1.4.2 as of 11-Sep-2012)]
 +
* Broadcom CFE [http://www.broadcom.com/support/communications_processors/downloads_archive.php Archive (CFE v. 1.4.0 as of 11-Sep-2012)]
 +
* Belkin [http://www.belkin.com/support/gpl.asp GPL-4.05.03.tgz] (1.0.36)
 +
* Linksys [http://www1.linksys.com/support/gpl.asp WAP54G] (1.0.36)
  
Sourcecode:
+
== External links ==
  
http://sibyte.broadcom.com/public/resources/#cfe
+
* http://wiki.openwrt.org/doc/techref/bootloader/cfe

Latest revision as of 08:33, 11 September 2012

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 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 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 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

Sourcecode

External links