Template Information

Trang

Board Support Package

Thứ Bảy, 11 tháng 6, 2011 / 07:56

A BSP or “Board Support Package” is the set of software used to initialize the
hardware devices on the board and implement the board-specific routines
that can be used by the kernel and device drivers alike. BSP is thus a hardware
abstraction layer gluing hardware to the OS by hiding the details of the
processor and the board. The BSP hides the board- and CPU-specific details
from the rest of the OS, so portability of drivers across multiple boards and
CPUs becomes extremely easy. Another term that is often used instead of BSP
is the Hardware Abstraction Layer or the HAL. HAL is more famous with UNIX
users whereas the RTOS developer community more often uses BSP, especially
those using VxWorks. The BSP has two components:
1. The microprocessor support: Linux has wide support for all the leading
processors in the embedded market such as MIPS, ARM, and soon the
PowerPC.
2. The board-specific routines: A typical HAL for the board hardware will
include:
a. Bootloader support
b. Memory map support
c. System timers
d. Interrupt controller support
e. Real-Time Clock (RTC)
f. Serial support (debug and console)
g. Bus support (PCI/ISA)
h. DMA support
i. Power management
This chapter does not deal with the porting of Linux on a microprocessor
or microcontroller because this is an ocean by itself; a separate book needs
to be devoted to Linux porting on various processors and microcontrollers.
60 Embedded Linux System Design and Development
Rather this book assumes that the reader has a board based on one of the
already supported processors. So it is devoted entirely to the board-specific
issues. For making the terminology clean, we refer to the HAL as the layer
that combines the board- and the processor-specific software and the BSP as
the layer that has only the board-specific code. So when we talk about the
MIPS HAL it means the support for the MIPS processors and the boards built
with MIPS processors. When we talk about a BSP we refer to the software
that does not have the processor support software but just the additional
software for supporting the board. The HAL can be understood as a superset
of all supported BSPs and it additionally includes the processor-specific
software.
As mentioned in Chapter 2, neither the Linux HAL nor the BSP has any
standard. Hence it is very difficult to explain the HAL for multiple architectures.
This chapter delves into the Linux BSP and porting issues for a MIPS-based
architecture; wherever necessary the discussion may spill over to other processors.
For making things easier, we use a fictitious board EUREKA that is
MIPS-based having the following set of hardware components.
A 32-bit MIPS processor
8 MB of SDRAM
4 MB of flash
A 8259-based programmable interrupt controller
A PCI bus with some devices such as Ethernet and a sound card connected
to it
A timer chip for generating the system heartbeat
A serial port that can be used for console and remote debugging

0 nhận xét:

Đăng nhận xét