DMA access authorization for 64-bit I/O adapters on PCI bus
First Claim
1. A data processing system, comprising:
- a processor;
a system memory accessible to the processor;
a host bridge connected between the processor and an I/O bus;
a first I/O adapter coupled to the host bridge, wherein the first I/O adapter is enabled to generate a 32-bit address;
a second I/O adapter coupled to the host bridge, wherein the second I/O adapter is enabled to generate a 64-bit address;
a Translation Control Entry (TCE) table suitable for translating an address generated by the first adapter to a 64-bit address and for determining whether DMA access to the translated address is authorized; and
an Access Control Table (ACT), distinct from the TCE and suitable for determining whether DMA access to the address generated by the second I/O adapter is authorized; and
means for processing memory accesses generated by the first adapter through the TCE table and for processing memory accesses generated by the second adapter through the ACT wherein memory accesses generated by the second adapter avoid the TCE.
3 Assignments
0 Petitions
Accused Products
Abstract
A method, data processing system, and I/O subsystem suitable for authorizing DMA accesses requested by a 64-bit I/O adapter are disclosed. The system includes one or more processors that have access to a system memory. A host bridge is connected between the processor(s) and an I/O bus. A first I/O adapter, which generates 32-bit addresses, is coupled to the host bridge. A second I/O adapter coupled to the host bridge is enabled to generate an address with a width greater than 32-bits (such as a 64-bit address). The system may include a Translation Control Entry (TCE) table, that is configured with information needed to translate an address generated by the 32-bit adapter to a wider address (such as a 64-bit address). In addition, the TCE may determine whether DMA access to the translated address by the requesting adapter is authorized. The system further includes an Access Control Table (ACT). The ACT determines whether DMA access to the address generated by the 64-bit I/O adapter is authorized. The ACT may be formatted as a set of ACT entries where each ACT entry corresponds to a unique portion of the system'"'"'s memory address space. In one embodiment, each ACT entry consists of a single bit that indicates access to a 256 MB or larger portion of the system memory address space. In one embodiment, the I/O bus is a PCI bus. The first and second I/O adapters may be connected to a secondary PCI bus that communicates with the primary PCI bus via a PCI-to-PCI bridge. In one embodiment, each 64-bit I/O adapter has its own ACT table and portions of the ACT table may reside in the PCI-to-PCI bridge.
91 Citations
20 Claims
-
1. A data processing system, comprising:
-
a processor;
a system memory accessible to the processor;
a host bridge connected between the processor and an I/O bus;
a first I/O adapter coupled to the host bridge, wherein the first I/O adapter is enabled to generate a 32-bit address;
a second I/O adapter coupled to the host bridge, wherein the second I/O adapter is enabled to generate a 64-bit address;
a Translation Control Entry (TCE) table suitable for translating an address generated by the first adapter to a 64-bit address and for determining whether DMA access to the translated address is authorized; and
an Access Control Table (ACT), distinct from the TCE and suitable for determining whether DMA access to the address generated by the second I/O adapter is authorized; and
means for processing memory accesses generated by the first adapter through the TCE table and for processing memory accesses generated by the second adapter through the ACT wherein memory accesses generated by the second adapter avoid the TCE. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a data processing system, a memory access authorization method, comprising:
-
responsive to detecting a memory access generated by a 32-bit I/O adapter, translating the 32-bit address to a 64-bit address and authorizing the 32-bit I/O adapter access based upon an entry in a translation control entry (TCE) table;
responsive to detecting a memory access generated by a first 64-bit I/O adapter;
determining the value of an entry in a first Access Control Table (ACT), wherein the entry corresponds to a portion of the system address space that includes the address of the memory access; and
authorizing the 64-bit I/O adapter to access system memory at the memory access address if the determined value of the ACT entry is equal to a predetermined value, wherein memory accesses from the 64-bit adapter are authorized while avoiding the address translation mechanism of the TCE. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. An I/O subsystem of a data processing system that includes processor and system memory, the subsystem comprising:
-
a host bridge connected between a system bus and a primary PCI bus, wherein the host bridge is enabled to retrieve portions of a Translation Control Entry (TCE) table from system memory responsive to receiving a memory access address from a 32-bit I/O adapter; and
a PCI-to-PCI bridge connected to the host PCI bridge, wherein the PCI-to-PCI bridge is enabled to retrieve portions of a first Access Control Table (ACT) from system memory responsive to receiving a memory access address from a first 64-bit I/O adapter and further enabled to determine whether the first 64-bit I/O adapter is authorized to access the received address wherein memory accesses from the 64-bit adapter are authorized while avoiding the translation mechanism of the TCE. - View Dependent Claims (16, 17, 18, 19, 20)
a second host bridge, additional PCI-to-PCI bridges connected to the second host bridge, and additional I/O adapters connected to the additional PCI-to-PCI bridges, the additional I/O adapters including additional 32-bit and additional 64-bit I/O adapters;
wherein the second host bridge is enabled to retrieve portions of a second TCE table from system memory responsive to receiving a DMA address from one of the additional 32-bit I/O adapters and further enabled to generate a translated address from the received DMA address using the retrieved portion of the second TCE, wherein the width of the translated address exceeds 32 bits.
-
Specification