x86 BIOS BSP Readme

© 2005-2007, QNX Software Systems GmbH & Co. KG. All rights reserved.


Contents

Running QNX Neutrino on an x86 board with BIOS

Before you begin


Caution:
  • The purpose of this BSP is to provide source code for the most common x86 drivers necessary to boot QNX Neutrino on an x86 board with BIOS. Due to the variety of x86 boards available, this generic BSP might require modifications to run on a particular x86 board. However it should allow you to boot QNX Neutrino on most x86 boards.
  • Since this is a generic BSP, this documentation has been kept very generic too. We assume that you're familiar with your board settings, connection/communication methods and booting mechanisms. Therefore these items will not be explained in detail in this documentation.

For information about the hardware or BIOS setting, refer to the documentation for your board.

We assume that you're already familiar with the following docs:

Title Chapter
Building Embedded Systems Making an OS image; for customizing the BSP from the command line
Building Embedded Systems Working with a BSP; for building the BSP
IDE User's Guide Building OS and Flash Images; for customizing the BSP within the IDE

What's in this BSP?

See the latest release notes for what is included in this BSP.

Devices supported

In addition to the drivers included in this BSP, QNX Neutrino provides driver binaries for devices found on various x86 systems with BIOS. Refer to the documentation for your mother board and check the Utilities Reference manual for a corresponding driver. You should find multiple drivers for Ethernet, graphics, serial, USB, Audio and flash devices. You could also visit http://www.qnx.com for a list of supported hardware.


Note: If you need support for a particular device that isn't listed here, please contact us. The solution may be as simple as modifying an existing driver, which you might be able to do yourself, or it may involve more extensive support (e.g. a Custom Engineering arrangement). Contact a QNX technical support representative or Field Application Engineer to help you decide how to proceed.

System requirements

Target system

Host development system

Step 1: Connect the hardware


Note: The purpose of this documentation is not to describe the all possible communication methods in detail, due to the variety of x86 boards with BIOS that are supported by this BSP. We're assuming that you're familiar with your x86 board and that you already know the best possible way of communication with the board (i.e. through a serial line, Ethernet, CDROM or hard drive).

Step 2: Generate the OS image

You can build OS images from the buildfiles provided in this BSP archive or from the buildfiles available, by default on your host, in $QNX_TARGET/boot/build/*.build. These buildfiles provide complete examples for booting QNX Neutrino on an x86 BIOS system:

bios.build
A basic OS image.
bios.ide.build
An OS image with a hard disk drive and a QNX Neutrino filesystem.
bios.nfs-ne2000.build
An OS image with a NE2000 Ethernet card connecting to a NFS server.

Other buildfiles may be provided as examples. For instructions about building an OS image, please refer to the chapter Working with a BSP in the Building Embedded Systems manual.

Step 3: Transfer the OS image to the target

Once you've built the appropriate OS image for your x86 target system, you can transfer it to the target using the method of your choice. Please refer to the QNX Momentics documentation for further details.


Note: The purpose of this documentation is not to describe all possible ways of transferring an image to the target board in detail, due to the variety of x86 boards with BIOS that are supported by this BSP and the various booting mechanisms available. We're assuming that you're familiar with your x86 board and that you already know how to transfer the OS image to the board and boot from it.

Once you've transferred the OS image to the target board and reset it, you should see QNX Neutrino boot on it. You should also see the Neutrino welcome message on your terminal screen:

Welcome to QNX Neutrino on a PC compatible BIOS system

You can now test the OS simply by executing any shell builtin command or any command residing within the OS image (e.g. ls).

System layout

With the buildfile examples provided with this BSP, the memory layout is as follows:

Item Address
OS image loaded at: 0x400000
OS image begins execution at: 0x400000

Summary of driver commands

The driver command lines below are specific to an x86 board with BIOS. See the online docs for each driver for additional command-line options and other details.

Serial

Command:
devc-ser8250 -b115200

PCI

Commands:
pci-bios

Flash

Commands:
devf-generic -sFlashAddr,FlashSize

Note: The devf-generic driver is provided as an example since not all x86 boards have a flash device. If your x86 target board has a flash device, you'll need to specify the flash address and the flash size on the command line when starting the flash driver. Although this flash driver is generic, it might not recognize the flash device on your target. If that's the case, you might need to customize the flash driver for your target. Refer to the Customizing the Flash Filesystem chapter in the Building Embedded Systems guide for more details.


Note: For more information about these commands, see the Neutrino Utilities Reference .

Where do I go from here?

For information on: Go to:
Generating IPL, startup, and other modules from BSP source code Building Embedded Systems, Working with a BSP
Using mkifs to generate an OS image from a buildfile Building Embedded Systems, Making an OS image
Writing, compiling, and debugging your applications using command-line tools Programmer's Guide
Building your applications using the Integrated Development Environment (IDE) IDE User's Guide, Building OS and Flash Images
Writing a device driver DDK Guides
The complete QNX docset Documentation Roadmap (e.g. under Windows XP via the start menu: All Programs-->QNX Momentics-->Documentation)
Release notes www.qnx.com (look for the appropriate release notes after logging into your myQNX account)
Technical support forums See the release notes for details. Look for the appropriate newsgroup.

BSP filename conventions

In QNX BSPs, we use the following conventions for naming files:

Part of filename Description Example
.bin Suffix for binary format file. ifs-artesyn.bin
.build Suffix for buildfile. sandpoint.build
efs- Prefix for QNX Embedded Filesystem file; generated by mkefs. efs-sengine.srec
.elf Suffix for ELF (Executable and Linking Format) file. ipl-ifs-mbx800.elf
ifs- Prefix for QNX Image Filesystem file; generated by mkifs. ifs-800fads.elf
ipl- Prefix for IPL (Initial Program Loader) file. ipl-eagle.srec
.openbios Suffix for OpenBIOS format file. ifs-walnut.openbios
.prepboot Suffix for Motorola PRePboot format file. ifs-prpmc800.prepboot
.srec Suffix for S-record format file. ifs-malta.srec