Off-the-Shelf Drivers

FirmWorks is committed a variety of product markets including CHRP and Network Computers (NCs). CHRP and NC platforms consist of a variety of microprocessor varients, bus types and device controllers. For instance, a typical CHRP system consists of the following devices:

  1. CPU (603, 603e, 604, 604e, Arthur, Mach5. etc..)
  2. PPC to PCI Bridge (Grackle, Golden Gate, etc..)
  3. Memory (DRAM, SDRAM, row column formats, capacities, speed..)
  4. L2 Cache (0, 256K, 512K, 1 MB, COASt, etc..)
  5. Mac IO (Hydra including MESH SCSI, ADB, SCC, VIA, etc..)
  6. PCI-ISA Bridge (Winbond, Tollgate, etc..)
  7. Super I/O (National varieties, etc..)
  8. Keyboard, Mouse Controllers
  9. Serial Ports Controllers
  10. IDE Controllers, Hard drive controllers, CD-ROM controllers
  11. Mac ROM
  12. Video Controller
  13. Ethernet Controller
  14. SCSI Controller
  15. IrDA Controller
  16. Flash ROM
  17. Audio
  18. Others, as designed in by individual platform developer.

It is FCode drivers that provide the software control of these devices during the period a computer system is booting.

Where is the FCode Stored?

Physically, the FirmWorks FCode drivers which control the devices in the previous list, and the numerous other devices FirmWorks supports, reside in two primary locations on any given system:

  1. Integrated into the System Boot ROM that is located on the system motherboard, or
  2. Located in a peripheral card's ROM.

In the case where there is FCode on a peripheral ROM, there is a known mechanism which is built into each System Boot ROM to probe each slot of each expansion bus, locate any peripheral ROMs and their FCode (if any), and load the FCode into system memory for use. It is really transparent as to where the FCode is stored in the system, but we thought you should know.

So, if you are a system builder, what you want to know is whether we support the variety of on-board and plug in device controllers you have selected to build your system.

If you are a peripheral card manufacturer, your primary concern is whether we have previously developed an FCode driver for the particular controller chip you are considering using.

Let's see what's available.

Back to the Devices

A wide variety of devices (for which Open Firmware device drivers must exist) are required to build a System ROM. It is our intention to create a driver for any device that assists the development of the CHRP and NC marketplaces.

FirmWorks's general policy is to require platform and card manufacturers to provide us with working hardware upon which to develop and test all delivered FCode drivers. This is due to the fact that while our FCode drivers are targeted to a particular controller chip, it is very often the case that supporting glue logic impacts the programming model of the FCode driver. Therefore, we prefer to test and tweak drivers to ensure our delivered products work, as expected, on the target hardware (e.g. to modify the PCI header to include the proper vendor and product IDs which should be unique for each product).

Exceptions are made in situations where FirmWorks believes the FCode driver is extremely generic across adapter implementations or where the customer has firmware expertise required to support minor field mods.

For these reasons, our preference is for our customers to send us a working copy of their hardware (including the device to be driven and any required cables) such that we can test the driver on the specific hardware and make any required modifications necessary, if any.

However, with the proliferation of OEMs entering the CHRP and NC marketplaces, FirmWorks can make available source code for a wide variety of devices, under proper licensing agreements, for individual OEMs to support in house product differentiation.

Samples of the Available FCode Drivers

We are in the process of developing FCode drivers for the most popular PCI graphics adapters, SCSI controllers and Ethernet interfaces to help the PCI peripheral card market make the transition to FCode. Consequently, the list of supported PCI peripheral cards is continuously expanding. (Please see our white paper describing FirmWorks's SuperDriver(tm) FCode driver technology.) Additionally, we continue to work with system manufacturers to provide drivers for motherboard level components that are in common (and not so common) use.

The following list provides an overview of the FCode device drivers available to FirmWorks. Additionally, source licensees of FirmWorks will have these drivers available for use in the creation of their Open Firmware system ROMs. If there is something that you need which is not on the list, please ask for it. It is our intention to create a driver for any device that assists the development of the CHRP or NC marketplaces.

In fact, since we are continuously expanding our list of supported devices, when you ask about a device that is not on the list, you may be pleasantly surprised to find out that the driver for it is already in development or available!

In order that you understand the power of our existing firmware code base to support your unique needs, the following list shows the broad variety of peripheral cards that can be supported by a small set of these device drivers. The list also shows the list of plug in video cards that are known to be supported by our SuperDriver. (Sometimes, when we plug in a video card that we've never tried before, the SuperDriver just drives it without any modification.)

Currently Supported Devices

  • Apple I/O
  • Audio
  • Ethernet
  • FDDI
  • Flash Memory
  • Floppy Controllers
  • Graphics Adapters (a sampling)
  • Graphics Chipsets
  • IDE
  • Interrupt Controllers
  • Keyboard/Mouse
  • NVRAM/RTC
  • PCI-to-ISA Bridges
  • PCI-to-PCI Bridges
  • PPC-to-PCI Bridges
  • RAID
  • SCSI Controllers
  • Super I/O
  • UARTs
  • VLBus-to-ISA Bridges

    If you don't see what you want, ask. We'll either have it or we can do it.

    Back to Products
    Back to FirmWorks Home Page


    Last Modified: February 16, 1999