Re: pci config cycles on VRC-5477
From: Jun Sun <hidden>
Date: 2002-03-11 23:29:22
Gerald Champagne wrote:
I'm studying the VRC-5477 code and I'm trying to understand how pci config cycles can work reliably with the current code. It looks like the pci config code must execute with interrupts disabled, but I can't find code that disables interrupts. Can someone offer a few pointers? Here's why I ask... All pci io, memory, and config accesses on the 5477 are performed through two windows in the cpu address space. Normally these two windows are configured to perform pci memory and io accesses, and any driver can access pci io and memory at any time. In order to perform a pci config access, one of the two windows must be remapped to perform pci config cycles. The code in read_config_dword() looks something like this: - Call ddb_access_config_base() to reconfigure the window into pci memory space to access pci config space instead. - Read from pci config space by reading from an offset into the window. - Call ddb_close_config_base to restore the registers to the original values. It looks like anything can interrupt this an try to perform a pci memory access while the window is programmed to perfom config cycles. Did I miss something, or is this a bug?
Your understanding is correct. I think this is a bug. Do you actually see the bug happening? So far it has never hit me, but maybe due to the drivers that are loaded on my configuration. Jun