Browse Prior Art Database

Method for creating virtual PCI nodes for memory mapped devices

IP.com Disclosure Number: IPCOM000132453D
Publication Date: 2005-Dec-16
Document File: 4 page(s) / 49K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for creating virtual PCI nodes for memory mapped devices. Benefits include improved functionality and improved cost effectiveness.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 51% of the total text.

Method for creating virtual PCI nodes for memory mapped devices

Disclosed is a method for creating virtual PCI nodes for memory mapped devices. Benefits include improved functionality and improved cost effectiveness.

Background

              PCI is a standard protocol for a 3.3V local interconnect bus. It was published as “PCI Local Bus Specification version 3.0 (PCI v3.0)” by PCI-SIG(Reg.TM) on April 19, 2004.

              “Universal Serial Bus Specification”, Revision 2.0, dated April 27, 2000, was published by USB Implementers Forum, Inc.

              Conventionally, the PCI bus has been used in personal computers (PCs) as an interface between the host processor and peripherals. Devices such as hard disk controllers and universal serial bus (USB) controllers are connected to the host as PCI devices and are accessed using the PCI bus (see Figure 1).

              Embedded systems are typically built around system-on-chip (SoC) microcontrollers. They offer a single chip solution that provides all the components required to build complete systems. Devices such as the memory controller, hard drive controller, and USB controller are all integrated on to the SoC. A number of factors, including cost (financial and/or number of gates), development time, and testing, determine the way devices interface to the system. For example, a hard-drive controller can be fixed at a predefined address in the system memory map rather than attached to the PCI bus. While this type of change may simplify the silicon design or provide compelling advantages to the end user, the change comes with a price. For example, existing software must be modified or new software must be developed.

              Operating systems (

OSs

) have been implemented with the original PC architecture in mind. These operating systems expect devices to be attached to certain interfaces. Continuing the example, the hard drive controller can be mapped using memory mapped I/O instead of being attaching to the PCI bus. However, the system software expects the controller to be accessed through the PCI bus. For the device to work properly, the system software must be changed. With proprietary operating systems where access to the source code may be limited, the only way to make the change may be to have the operating system provider commit to making the change.

General description

              The disclosed method is a technique for accessing memory mapped I/O devices through a virtual PCI device node. A software emulation layer reuses the external interface provided by the standard PCI bus driver provided by the OS or boot loader. An implementation of this emulation layer is required for each OS. However, the method applies to any PCI bus driver implementation.

Advantages

              The disclosed method provides advantages, including:
•             Improved functionality due to creating virtual PCI device nodes

•             Improved functionality due to providing support for legacy software to special...