BCM Switching Product Family Programmer’s Reference Guide
Table of Contents
List of Tables
Section 1: Introduction
About This Document
Revision Levels
Notational Conventions
API Parameters
Pair Function References
Code Notations
Definitions and Abbreviations
Related Documentation
Additional Publications
Section 2: Broadcom SDK Components
Overview
Broadcom Libraries
BCM API
BCMX
SOC
PHY Drivers
Portability Layers
The System Abstraction Layer (SAL)
Configuration Manager (CM)
Broadcom Applications
BCM Shell
Event Logging
Event Logging Overview
Event Log Structure
Test Suite
Broadcom Protocol Stacks
Using Stacking Software
Broadcom Platform Support
Board Support Packages
Broadcom Device Enumerator (BDE)
Section 3: Source Directory Layout
Top-level Directory
Top-level Subdirectories
build/
rc/
doc/
RELDOCS/
include/
make/
src/
systems/
The src/ Subdirectories
src/appl
src/bcm
src/bcmx
src/customer
src/sal
src/shared
src/soc
Section 4: Makefile Infrastructure
Supported Platforms and Operating Systems
Using Makefiles
Makefile Hierarchy
Local Makefile
Special ${SDK}/systems/drv Makefile
Make.config
Make.tools
Make.local
Makefile.${TARGET}
Make.lib
Important Makefile Variables
Section 5: Building Software
Standard Builds
Building a VxWorks Executable
Building a VxWorks BootROM
Building Linux Kernel Modules and Executables (Kernel Mode)
Building a Solaris or Linux Executable
Section 6: Platform Support
Overview
SDK5 in Kernel Mode
Building the Kernel Modules
Adding Your Configuration
The Kernel Mode Broadcom Device Enumerator Module (linux-kernel-bde.o or linux-kernel-bde.ko)
Module Implementation Overview
PCI Configuration Access
Register Access
Interrupt Handling
DMA Memory Management in Kernel Mode
Address Translation for DMA in Kernel Mode
Using the Kernel BDE Module
The Linux BCM Core Module (linux-bcm-core.o or linux-bcm.core.ko)
The Linux User/Kernel Proxy Module (linux-uk-proxy.o or linux-uk-proxy.ko)
The Linux BCM Diag Module (linux-bcm-diag.o or linux-bcm-diag.ko)
The bcm.user.proxy Application
The Linux BCM Network Module (linux-bcm-net.o or linux-bcm-net.ko)
Kernel Mode SDK5 Summary
SDK5 in User Mode
Building the User Modules
The User Mode Broadcom Device Enumerator Module (linux-user-bde.o or linux- user-bde.ko)
PCI Configuration Access
Register Access
Interrupt Handling
DMA Memory Management in User Mode
Address Translation for DMA in User Mode
Using the User BDE Module
The bcm.user Application
User Mode SDK5 Summary
The Jaguar Platform
BCM94704CPCI Hardware Features
BCM94704CPCI Hardware Configuration
CFE on the JAG Platforms
Configuring Hardware
CFE Bootloader
Legacy Versions of CFE
Preserving Network Configuration
SDK/Linux on JAG Platforms
The CFE kernel_args Variable
Configuring JAG Platform to Boot from the Network
Precompiled Linux Kernel
Building a Custom Linux Kernel
Configuring and Compiling the Kernel
Booting the Linux Kernel
Mounting the NFS Root File System
Configuring StrataXGS SDK
Troubleshooting
SDK/VxWorks ON JAG PLATFORMS
Building a VxWorks Image
Booting a VxWorks Image
The NSX Platform
NSX (BCM91125CPCI) Hardware Features
BCM91125CPCI Hardware Configuration Overview
BCM91125CPCI Hardware Configuration
Configuring Hardware
Configuring CFE
Preserving Network Configuration
SDK/Linux on NSX Platforms
The CFE kernel_args Variable
Configuring NSX Platform to Boot from the Network
Building a Custom Linux Kernel
Configuring and Compiling the Kernel
Mounting the NFS Root File System
SDK/VxWorks on NSX Platforms
Building an NSX VxWorks Image
Booting a VxWorks Image
The BMW Platform
BCM98245 (BMW) Hardware Features
BCM98245 Hardware Configuration
BMW Bootloader
SDK/Linux on BMW Platform
Building a Custom Linux Kernel
Configuring and Compiling the Kernel
SDK/VxWorks on BMW
The Raptor Platform
Raptor Hardware Features
BCM956XXX Hardware Configuration
Jumper Settings for BCM956218K48
Jumper Settings for BCM956218P48REF
Jumper Settings for BCM956014P24
Jumper Settings for BCM956214R26T
Jumper Settings for BCM956018K48
CFE on the Raptor Platforms
Configuring Hardware
Configuring CFE
Preserving Network Configuration
SDK/Linux on Raptor Platforms
The CFE kernel_args Variable
Building a Custom Kernel
Configuring and Compiling the Kernel
Booting the Linux Kernel
StrataXGS SDK
SDK/VxWorks on Raptor Platforms
Building a VxWorks Image
Booting the VxWorks Image Through CFE
Booting VxWorks over Network
Booting VxWorks from Flash Using CFE
Building the VxWorks Bootrom for Raptor Platforms
Section 7: System Abstraction Layer API
Overview
Core SAL API
Application SAL API
Core SAL API Calls
Application SAL API Calls
Section 8: Configuration Manager API
Overview
Configuration Manager Device Vectors
The soc_cm_device_vectors_t Structure
The soc_cm_dev_t Structure
Accessing Device Registers Using CM API
Configuration Manager Initialization Vectors
Using the Configuration Manager API
APIs for Configuration Manager Device Vectors
APIs for Configuration Manager Initialization Vectors
APIs for Using Configuration Manager API
Section 9: APIs for Event Logging
Appendix A: Index of Calls