ruthan Posted Wednesday at 07:48 PM Posted Wednesday at 07:48 PM (edited) Introduction analysis: I wonder, is there some advanced tricks how to solve Windows 9x resource conflicts? Is there some explanation, why these conflicts are in Windows 9x, but not it more moderns OSes, Linux or NT? I rarely met such problem in Dos, and often solution was - change card slot (problem is that on board devices is such trick not possible.), device IRQ if it available by device driver, or changing slots, device IRQs directly in the bios - if it was available. Where is exactly the problem? I actually never was some details info about, i only knew that by some PC standard there is only few free IRQ to use.. and more modern MBs not added much more new IRQ to use, probably because of backwards compatibility. Address range conflicts seems strange, there should be enough memory ranges to use to avoid conflicts, but its happening. My guesses are: a) Bios setting up something worse and Win9x just reuse its values and more modern OSes are adjusting setting on its own and automatically are solving conflings.. b) More modern OSes are able to handle 2 or more devices which are using the same address range and are able to switch address ranges automatically c) More different OSes are reading Bios data differently - ACPI, but if im not wrong Windows 9x could use ACPI too.. but if my memory serves there are some ACPI versions, im not sure if they are backwards compatible or if minimal version supported by individual OS, is available, what if happen.. Im not sure if some chipset drivers could adjust device resources in Win9x, or not. What i found online is that modern OSes are simply did better job of handling resources (avaible through ACPI + PnP) and are able to Bios data and adjust it to prevent conflicts, are somehow able to call devices a better way, by using HAL - hardware abstraction layer and disabling to call devices addresses directly - but it found sort of imply that such solution has to be much slower. I wonder i maybe someone could improve Windows 98 kernel to handle these things better as more modern OSes? Problem solving: What i was able to do in Win9x, was simply change resource values for some conflicting devices from some predefined values.. or through selection from a few prebacked values by disabling automatic configuration and in some cases i had to boot in Safe mode to do it. Problem is that often simply are not any available value except already used one and i dunno how to solve it. For example a see that the small part of address range of some device is used by other device. Question is, are there some additional tricks and tools to fix such problem? Its possible to change address range by some regedit tweaking etc? On some machine, when is possible to set some IRQ related settings on the PCI bus component, but i dont really know that should be best for my case - what is exactly IRQ steering.. and what difference is between using Hardware and BIos mode - what is MS specification table.. what uis PCIBIOS 2.1.. Could i ose Protected mode pcibios call for WIndows 9x (i read that its running in Realmode and Protected mode is used by more modern OSes)? , there is some example: - 0 additional cards added, all date are based on on board devices. Other interesting thing is that device conflict is often visible only on 1 device in case that 2 devices are conflicting. As faik as i unterstand Windows 9x are trying to make at least one of two conflicting devices running and other is disabled.. but still some other problem icon for conflicting device is currently running would be nice. These are some unsolvable problems with my Power Edge 1950 machine, which I'm currently setup. Edited yesterday at 01:08 AM by ruthan
awkduck Posted yesterday at 12:41 AM Posted yesterday at 12:41 AM Hi @ruthan, The conflicts can be a real PITA, especially if it involves important "integrated" devices. Like you said, you can't simply just move it to a different slot. Shared IRQs, and other resources, can really be a problem. I've had issues with Video cards, using system memory, causing strange resource mishaps (no official or unofficial driver). But, sometimes it seem like Windows may be assigning the wrong driver, for a specific configuration. I have a laptop that will not detect most of the devices, until I replace the standard "PnP Bios" driver with the standard "PCI Bus" driver. I'm sure you can do registry alterations for different drivers. It seems many chipset installations are doing just that; especially on late 90's and early 2K machines. That might be the best bet. Even Linux drivers have configuration arguments, that can be set before or after boot (many Linux users never realized those exist). I'm into "Pro Audio" (not that I am "myself" a Pro). Shared IRQs can be a problem, depending on how demanding the situation is on performance. Even if I disable one of the two devices (bios) of a shared IRQ, it sometimes isn't enough. In that situation, if you are determined, there is usually still some potential hack. Keep in mind, this issue happens with both Linux (any *nix/bsd) and Windows. However, the difference there (Linux/BSD) is that you can sometimes recompile out the issue. Example: Linux (recompile) and Dos (esoteric arts) But, sometimes the conflict doesn't really cause any problems, at a practical level; it's just annoying to know that its there. And then, there is always the drivers themselves. Like audio drivers with no Dsound support (emulation only). Or drivers that were meant for a generic configuration, but your system is configured a little differently. So, its the right driver; but it isn't going to work right on your system. This particular issue can sometimes be fixed, by specifying hardware values in the registry. I suppose I'm being more conversational, then helpful. If anything, I guess I'm just saying "I'm there with ya, bud". If you are really interested, there are some resource on the 9x registry out there (archive.org). Watch out for the novice documents, advertising "advanced" internal wizardry (not that good). If you run into the need to hexedit,debug,etc, don't be too afraid to try it; unless the potential risk of hardware failure is absolutely out of the question. But the more you "poke/peek" at the esoteric arts, the more familiar it becomes. You may feel like it is useless, but it does slowly start to sink in. I've "cough" repaired a handful of abandoned applications, that I can no-longer get support for (personal use). Wish I had more useful data, to had off.
ruthan Posted yesterday at 01:25 AM Author Posted yesterday at 01:25 AM Well question is you somehow force configuration which i not available in Device manager or not. I can fiddle with IRQs in bios - but im not sure it will also change address ranges what is usually bigger problem, but could even break some modern OSes (Win2000 + XP) on the same HW. Yeah basic trick on lots of machine is replace whatever its actually named by PCI bus device to actually detect HW. I also have experience that clean install is not bad with resource management usually and if fiddle with them later, its often get worse and im unable to comeback. Im also to 100% sure if some resource overlay is actually problem, is its just some missing driver, which are supposed to use memory range of some master component. WFT something like Erunt for NT+ for saving registry backup would quite nice, i looked at Win9x registry regedit option there is registry backup option, but im not sure if could be started during machine boot and much time it would take. Or maybe i can do it right after boot by Start up item. Windows 98 has sometimes some registry autorecovery, but it often restore some ancient backup and im not even sure if i can cancel or turn it off. Another icing on the Win9x resource take is Windows protection error, after some resources fiddling.. if my memory serves its often impossible to recover from such state - or not without some not easy magic, like System.ini editing or start step by step loading confirmation. Im not really sure what is causing Windows protection errors.
SweetLow Posted yesterday at 06:27 AM Posted yesterday at 06:27 AM 10 hours ago, ruthan said: Is there some explanation, why these conflicts are in Windows 9x, but not it more moderns OSes, Linux or NT? Because modern OSes: 1. Use modern hardware parts of PC by default (IRQ related - APIC and MSI) that make probability of conflict far lower. 2. Can use modern ACPI - which reports used MB resources correctly. 3. Have some differences in behaviour of Resource Manager. 4. Do not have some bugs like this: https://msfn.org/board/topic/186768-bug-fix-vmmvxd-on-handling-4gib-addresses-and-description-of-problems-with-resource-manager-on-newer-bioses/
ruthan Posted 13 hours ago Author Posted 13 hours ago (edited) Thx for info. I have tried fix above good it that it booted after installation and its compatible with other Rloew patches which are already editing this file.. other good thing is that it be installed on the fly. My machine above seems to affected by other bugs, but this not helped to solve any conflict or enable some address ranges. The last thing which is still open is IRQ Steering settings on the PCI bus component.. So far i did not find some good info which settings are better for which scenario - its default setting. If IRQ for Realmode or Protected more better for Win9x.. i never even know that there to seperate data sources for it.. It make some Bios IRQ settings maybe even invalid.. because logic imply that at least one data source is different. I understand correctly - Windows 9x are running in protected mode.. i not so sure how its possible that i can use Network card driver which are reporting Real mode how to it works together but ok. And ok if Windows 9x are running in protected mode, why PCI BUS IRQ Streering default value is Get IRQ Table from Real mode ACPI. I there so SW which can print out.. All ACPI tables - for old and new OSes? Or how too new versions of them are crippled by OS Windows 9x? Edited 13 hours ago by ruthan
SweetLow Posted 8 hours ago Posted 8 hours ago 5 hours ago, ruthan said: i not so sure how its possible that i can use Network card driver which are reporting Real mode how to it works together Virtual V86 Mode. The same as you are running DOS applications under Windows. 5 hours ago, ruthan said: if Windows 9x are running in protected mode, why PCI BUS IRQ Streering default value is Get IRQ Table from Real mode ACPI. It's just the different sources of the same information (and some of them can have bugs too). And yes, search gives the old KB article from MS still: https://support.microsoft.com/en-us/topic/how-to-disable-pci-bus-irq-steering-in-windows-695c360f-1aae-471e-878e-07ff971b8e02
ruthan Posted 48 minutes ago Author Posted 48 minutes ago (edited) 8 hours ago, SweetLow said: IRQ Steering in Windows https://support.microsoft.com/en-us/topic/how-to-disable-pci-bus-irq-steering-in-windows-695c360f-1aae-471e-878e-07ff971b8e02 Thanks, summary of this article if i understand it correctly is this: - if you uncheck PCI steering checkboxes in device manager, Bios resource settings is used without any adjustment on the Windows side - Checkboxes simply means tries to adjust device settings on Windows side (so it seems that enabled all checkboxes in the case - if you have some resource problem could solve them), order / priority of different tables is "hardcoded" you can change it - you can only disable some tables tries, priority is: 1) ACPI BIOS > 2) MS specification table 3) Protected Mode PCIBIOS 4)) Real Mode PCIBIOS // 3 -Protected mode is disabled by default - PCI standard supports more devices to use the same IRQ and it is different from the ISA, which afaik new unique IRQ per device Other i tried to find / read ACPI data - but best what i have found is in SIV utility - System - ACPI + Pnp (ACI Dev button is showing the same data)- but there is only a few device and at least on my machine is IRQ collumn empty and only useful column is really DMA channel info. Still unclear: If im not wrong, it make sense to fiddle with this settings only in case of IRQ problems, but it will not fix memory range ares problem? Unless changing IRQ could influence address range which is device using? DeepSeek AI - tells that in general IRQ and memory ranges are independent, but in other hand it claim that IRQ change does not force memory address change, but it may to do it.. - So response is something like, it may sometimes change memory area and help especially for ISA bus devices. Windows 98 does not change / adjusting ISA values at least by default. Why memory areas options are not available - it seems that in depends on the device design, if its design define 1 or more possible memory areas which device could use. Originally i though that there is some machine memory address pool, like IRQ pool (limited number of "free" IRQS) and that pool is full - in case that is not possible select different address area for the device.. - but its simply "laziness" of device developers which often does not offer alternative address ranges which could be used by the device and we as users cant override / change it.. Edited 22 minutes ago by ruthan
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now