Documentation Home
> ChorusOS 5.0 Board Support Package Developer's Guide
ChorusOS 5.0 Board Support Package Developer's Guide
Book Information
Preface
Part I Overview
Chapter 1 Overview of ChorusOS Operating System and its Initialization
Introduction to Porting ChorusOS Operating System
Driver Framework Architecture Overview
Overview of ChorusOS Boot Process
Power-up Initialization
Loading the System Image
The Initialization of the ChorusOS Microkernel and OS
Overview of ChorusOS Reboot Process
Chapter 2 Overview of Porting and Creating new Drivers
ChorusOS BSP Source Tree
Overview of Creating a Board Support Package
Overview of Creating a New Device/Bus Driver
Part II Porting the ChorusOS Operating System to a New Target Board
Chapter 3 Writing a New Board Support Package
Creating a New BSP Source Tree
Building a ChorusOS System Image with a New BSP/DRV Component
An Example of Some Typical BSP Source Files
The Top Level BSP Directory
The src Directory
The boot Directory
The dbg Directory
The reboot Directory
Chapter 4 The ChorusOS Boot Program
Overview
Power-up Program Implementation
bootconf Implementation
bconf_crt0.s Source File
bconf_main.c Source File
Bootstrap Program Implementation
Common Bootstrap Implementation Framework
binInstallByMask() and binInstallByType()
dbg_start()
reboot_start()
prstInstall()
kernel_start()
RAM Allocator interface
PowerPC 60x Bootstrap Implementation Framework
ppc60x_init()
MPC8xx PowerPC Bootstrap Implementation Framework
The Boot-Kernel Interface
Common BKI
Initial Device Tree
PowerPC BKI
x86 BKI
UltraSPARC IIi BKI
Chapter 5 The ChorusOS Reboot Program
Writing a Reboot Program for the ChorusOS Operating System
Reboot Program Initialization
HotRebootDesc Structure
Rebooting the Board
Cold Reboot
Hot Reboot
Rebooting the New System Image
Reboot Program Implementation Framework
prstExtend() Routine
call_and_switch_stack() routine
launch() Routine
Chapter 6 Porting the Debug Agent and Hot Swap Support
The Debug Agent
dbgAgent
dbgBsp
Example
BSP Hot Swap Support
Reference Implementation
Porting Hot Swap
Hot Swap Controller
PCI Bridge PciSwapEvents Handlers
The Device Tree
Chapter 7 Configuring the ChorusOS System Image
Overview of Creating a System Image
Imported Objects
Summary of Required Definitions
The target.xml File Structure
Global Variables
Banks
Areas
System Control Blocks
Microkernel Address Space
Link-Edit Models
Files
System Image
Files
Files Generated Automatically
Miscellaneous Information
The mkimage System Image
Relocating ELF Files
Execution in Place (XIP)
bootconf Binary
BootConf Structure
The Initial Address Space
Banks
Binaries
RAM Occupation
Environment Variables
Heap and Stack
Example BootConf Structure
Part III The ChorusOS Device Driver Framework
Chapter 8 Introduction to the ChorusOS Driver Framework
Driver Framework APIs
Driver/Kernel Interface (DKI)
Device Driver Interface (DDI)
Bus Driver Interface APIs
Device Driver Interface APIs
Driver Framework Mechanisms and Principles
Driver Registration
Driver Initialization
Driver Framework Components
Source Files
Organization (trees)
Driver Documentation
Device Driver Conventions
Driver Names
Driver Information
Message Logging
Use of ASSERT Macro
Chapter 9 Driver Kernel Interface Overview
Common Driver Services
Synchronization
Device and Driver Registration
Device Tree
Driver Registry
Device Registry
General Purpose Memory Allocation
Special Purpose Physical Memory Allocation
Timeouts
Precise Busy Wait
System Event Management
Global Interrupts Masking
Thread Preemption Disabling
Specific Input/Output Services
Processor Family Specific DKI Services
Chapter 10 Writing a New Device Driver
Driver Source File Structure
Creating a New Device Driver Component
The Top Level Driver Directory
The src Driver Directory
The Driver Directory
The Chip Directory
Adding the New Driver
Including the Appropriate APIs (DKI/DDI)
The Driver main() Routine
The Device Driver Class Specific Functions
The Driver Registry
Write the Probe Routine
Write the Bind Routine
Write the Init Routine
Write the Unload Routine
Bus Event Handler Function
Chapter 11 Writing a New Bus Driver
Including the Appropriate APIs (DKI/DDI)
The Bus Driver main() Routine
The Bus Driver Class Specific Functions
Bus Driver General Functions
The Driver Registry
Write the Probe Function
Write the Bind Function
Write the Init Function
Write the Unload Function
The Event Handler Function
Hot-Plug Removal
Surprise Removal
Non-Surprise Removal
Write Load Handler Function
Part IV Driver Hardening
Chapter 12 Overview of Driver Hardening
Hardened Drivers
Overview of the Process
Developer Resonsibilities
Chapter 13 Hardened Driver Requirements
No Panic
Containment
Logging
Notification
Bus Exceptions
Corrupt Data Detection
Device Management and Control Data
Received Data
DMA
Stuck Interrupts
Periodic Health Checks
Chapter 14 Testing Hardened Drivers
Fault Injection
Initializing a Fault Injection Bus Driver
Probing
Binding
Initializing
Index
A
B
C
D
E
F
H
I
K
L
M
N
O
P
R
S
T
U
W
X
© 2010, Oracle Corporation and/or its affiliates