Understanding and Resolving Hardware Conflicts


Windows, together with its Plug-and-Play technology, has grown far better at detecting and preventing hardware conflicts over the past few years. Still, system conflicts do arise, especially when you're using old ISA cards and other legacy hardware. (We suspect that there is little of this equipment still in use, and look forward to the day that we can delete this section from some future edition of this book. Until that day comes, we're stuck with it.)

More often than not, configuration and installation problems are due to incorrect settings on an ISA network, I/O, sound, modem, and SCSI cards. The result is cards that conflict with one another for the same IRQ (interrupt request line), base I/O port address, DMA, or base memory address. Usually, these settings are made by changing jumpers or DIP switches on the board.

NOTE

Some legacy cards can be configured via software settings rather than DIP switches and jumpers. For example, 3Com's popular 3C509B Ethernet adapter card uses its own utility program to set the IRQ and port address. You might have to run such a configuration program (typically using a DOS command prompt) to set up the card before it will run correctly under Windows XP.

Some ISA cards can also be switched into a true Plug-and-Play mode by flipping a switch or moving a jumper block on the actual card or running a software configuration program.


As I mentioned earlier, you can force Windows XP to use manually selected system resources, such as IRQ, for a given piece of gear. In the Device Manager, choose the item, open its Properties dialog box, click the Resources tab, turn off Use Automatic Settings, and enter the resource or resources you want to assign. If the card uses manual configuration, you will need to set the board to the settings you select in the Device Manager.

CAUTION

Don't manually assign resources unless you know what you're doing. The result can be an operating system that won't boot or a bunch of other components in your system that no longer work.


Hardware uses four major resources:

  • IRQ

  • DMA

  • I/O Port Addresses

  • DMA channel

If you install Plug-and-Play cards (which configure themselves automatically), you seldom need to be concerned about these settings, especially if the cards use the PCI expansion slot (virtually any current card does). If your system originally ran Windows 98 or newer versions, it probably supports a feature called IRQ steering or IRQ sharing, which eliminates the major cause for hardware conflicts when you use PCI cards.

However, if your system uses ISA cards, or you still use legacy ports such as serial (COM), parallel (LPT), and PS/2 mouse ports, IRQ and other resource conflicts can still be a problem.

IRQs

PC architecture includes a means for a piece of hardware to quickly gain the attention of the CPU through a message called an interrupt request, or IRQ. Interrupts are sent over one of the 15 IRQ wires on the computer's bus. Such a request is a direct line to the CPU, which then services the request accordingly. A common example occurs when data comes in to your system's modem or LAN card. The modem or LAN card triggers the predetermined interrupt line (IRQ), and the CPU then begins to execute the program code that is appropriate for handling that interrupt. In fact, a part of the operating system called the interrupt handler is responsible for making it so.

Table 30.3 lists the common IRQs in an Intel-based computer. This information, in conjunction with the IRQ and the Conflicts/Sharing nodes of the Computer Management application, might help you to assign boards effectively. But remember, it's always best to let Windows make hardware assignments unless you are really stuck and something important just won't work. Also, remember that if hardware isn't on the Hardware Compatibility List (HCL), you're better off just going shopping than wasting a day tinkering with settings.

Table 30.3. Typical IRQ Assignments in 80286-Based or Later x86 Systems

IRQ

Typical Assignment

0

System Timer (used by system; not available)

1

Keyboard (used by system; not available)

2

Redirected to IRQ 9; not available

3

COM2:, COM4: (can be shared only if COM 2/COM 4 are not used at the same time)

4

COM1:, COM3: (can be shared only if COM 1/COM 3 are not used at the same time)

5

LPT2: or Sound Blaster/compatible sound card

6

Floppy disk controller (used by system; never available)

7

LPT1: (printer port) can be shared only if used on a PCI card; the built-in parallel port's IRQ can't be shared

8

System clock (used by system; never available)

9

Old EGA/VGA cards or available

10

Often available

11

Often available

12

PS/2 mouse (available only on systems that don't have a PS/2-style mouse or have the port disabled)

13

Math coprocessor (not available; all modern CPUs have a built-in math co-processor)

14

IDE hard disk controller (never available)

15

Secondary IDE hard disk controller (never available on 1995 or later systems)


(Modern PCI cards may use interrupt numbers higher than 15.)

Common add-on devices which use an IRQ include

  • Modern PCI and AGP video cards

  • SCSI host adapter cards

  • IDE host adapter cards

  • Fax/modem cards

  • Network interface cards

With only IRQ 9, 10, and 11 to choose from on many systems, it would be impossible to install all of these cards unless

  • An existing device is disabled

  • IRQ sharing is possible

If two ISA devices (or an ISA and a PCI device) try to share an IRQ, a system lockup will usually take place, or at best, neither device will work. A common cause of this a few years ago was when a serial mouse was attached to COM 1 and a fax/modem was assigned to COM 3. As you can see from the IRQ table, both of these ports use IRQ 4. The system worked until the user tried to operate the modem; then, the system locked up.

MS-DOS and old versions of Windows didn't always use the printer (LPT) ports' IRQs, enabling IRQ 7 (LPT1) and IRQ 5 (LPT2) to be used by other devices. However, Windows XP uses the IRQs assigned to a device, so that sharing can only take place under these circumstances:

  • Both devices using the IRQ are PCI devices; on most recent systems, this enables the PCI cards and any built-in PCI devices to share IRQs, as in Figure 30.11.

    Figure 30.11. IRQ sharing enables this PC to use IRQ 10 for both a USB card and the onboard Fast Ethernet network adapter.


  • When two ISA cards or an ISA and a PCI card are set to the same IRQ, Windows XP shifts to a "polling" mode, wherein the CPU regularly checks for and services I/O requests rather than waits for IRQ lines to be activated. Obviously, this process can slow down overall system performance because it creates another software loop that the operating system has to service.

As shown Figure 30.11, IRQ steering is enabled automatically by Windows XP when the system supports it. In some cases, however, some motherboards might not permit IRQs to be shared, even by PCI devices.

If you find yourself short on IRQs or if you have two devices attempting to use the same IRQ and creating a conflict, you can try these possible solutions:

  • One solution with PCI cards causing conflicts is to try moving the PCI card to another slot. On some machines, each PCI slot's PCI Interrupt (A through D) is mapped to an ISA-type IRQ. By simply moving a card to a neighboring slot, you may be able to get your hardware working.

  • Another solution for IRQ cram is to set up multiple hardware profiles. You might not get all items to work under one profile, but you can have a couple of profiles and at least not have to throw anything away. You just reboot in another profile when you need access to a specific piece of gear.

  • Another workaround is to use USB, IEEE-1394, and SCSI devices. As you probably know, all of these port types support multiple devices on the same wire. No IRQs are required other than for the controller, which typically takes only one, and most recent systems already have USB ports onboard and enabled. Yet USB supports up to 127 devices, IEEE-1394 up to 63 devices, and SCSI typically 7 (or 15 if your card supports Wide SCSI). If you're struggling with where to put a scanner, printer, digital camera, or additional external hard drive, consider these buses. While you can daisy-chain devices from the parallel port, it's difficult to get more than two devices (printer and another one) working correctly. And, even the "high-speed" EPP and ECP parallel port modes are scarcely faster than USB, and are considerably slower than any form of SCSI or IEEE-1394.

DMA Channels

A typical PC has eight DMA channels, labeled 0 to 7. DMA channels are used for rapidly transferring data between memory and peripherals without the help of the CPU. Some cards even use several of these channels at once. (For example, the SoundBlaster 16 WaveEffects sound card uses two DMA channels.) Typical users of DMA channels are

  • Memory access controllers

  • ECP printer ports

  • Floppy disk controllers

  • ISA Network cards

  • ISA Scanner cards

  • ISA SCSI host adapters

  • ISA sound cards

While recent EIDE hard drives use a variation of DMA called Ultra DMA (UDMA) for fast data transfer, DMA transfers performed by PCI-based devices don't use specific DMA channels. The only time a PCI device ever needs to use a DMA channel is if it's emulating an ISA device that uses one, such as a PCI-based sound card emulating an ISA-based sound card.

Sharing DMA channels is even worse than sharing IRQs. Because DMA channels are used to transfer data, not simply activate devices, you should never share DMA channels used by network cards, scanners, or SCSI host adapters, as a DMA conflict could result in data loss. Fortunately, with relatively few devices requiring DMA channels today, it's normally quite easy to avoid sharing a DMA channel.

Table 30.4 shows the typical assignments.

Table 30.4. Typical DMA Controller Assignments

Channel

Typical Assignment

0

Generally used for DMA refresh

1

Available; may be used by ISA sound cards or by PCI sound cards emulating ISA sound cards

2

Floppy disk controller

3

ECP printer ports; some may use DMA 1 instead

4

DMA controller; used by system and not available

5

Available; may be used by ISA sound cards or by PCI sound cards emulating ISA sound cards

6

Available

7

Available


TIP

Some devices are hidden from view in the Device Manager. Hidden devices include nonPlug and Play devices (devices with earlier Windows 2000 device drivers) and devices that have been physically removed from the computer but have not had their drivers uninstalled. To see hidden devices in the Device Manager list, choose View, Show Hidden Devices. A check mark should appear on the menu, indicating that hidden devices are showing. Click it again to hide them.


I/O Port Assignments

Using DMA is the fastest way to transfer data between components in the PC. However, an older technology called memory-mapped I/O is still in use today. (I/O means input/output.) In PC architecture, I/O ports are mapped into system memory and therefore are accessed by the CPU using memory addresses. As you might expect, each device that uses an I/O port must have a different port address, or data intended for one device will end up at another.

Check out the I/O folder off the Hardware Resources node in Computer Management, as shown in Figure 30.12, to see a sample list of I/O addresses and assignments. As you can see, this folder contains quite a few assignments. Note that the addresses are in standard memory-mapping parlancehexadecimal.

Figure 30.12. Typical I/O assignments in a Windows XP machine are numerous. Notice the scrollbar. Only about half the assignments are visible in this figure.


NOTE

A common source of I/O contention occurs among video cards, SCSI devices, and network cards. However, most devices can use a choice of several I/O port address ranges to avoid conflicts.


Memory Addresses

Similar to the I/O port address, the base memory address is the beginning memory address that some cards or motherboard hardware use to communicate with the CPU. Sometimes this setting is called the RAM starting address (or start address).

Some older cards (you'll notice this often with network adapters or SCSI cards which have an onboard BIOS) must have their base memory address set by a jumper or software. Then the device driver for that component needs its software setting to match the jumper. A typical base memory address reads like this: 0xA0000 or just A0000. Sometimes the last digit is dropped, like this: A000.

If you open Computer Management and go to System Information, Hardware Resources, Memory, you'll see memory addresses such as the following:

 0xA0000-0xBFFFF   PCI bus 

This address means the memory area between A0000 and BFFFF is assigned to the PCI bus. (The 0x indicates that it is a hexadecimal address.) So, when setting memory addressing, you need to consider not only the base addresses, but also the amount of RAM space the addresses will occupy. Some cards use 16KB of space, and others use 32KB or more. Check the card's manual for options. Using more memory can, in some cases, improve the operation of the card, but it decreases your system's memory availability because that space will be occupied. The end result depends on the type of card.

When you specify a memory address for a card, the operating system reserves that memory area for it. Regular RAM in that area is not used by the CPU, to prevent conflicts that could result from trying to write data or program code into system RAM at that address. Instead, the reserved area is used only by the device driver for your piece of hardware.

Most older ISA cards use an upper memory address that falls somewhere between A000 and FFFF. However, many VL-Bus, PCI, and some ISA cards can use address space above 1MB, or even above 16MB in the case of 32-bit cards. If your card can utilize a high address, it's better to do so because it minimizes the chances of conflicting with the operating system.



Special Edition Using Microsoft Windows XP Professional
Special Edition Using Microsoft Windows XP Professional (3rd Edition)
ISBN: 0789732807
EAN: 2147483647
Year: 2003
Pages: 450

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net