VOGONS


Reply 700 of 759, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

I guess there's not much industrial adapters needing ISA DMA, if so, probably more effort would already put in and big manufacturers would already offer some more working solutions.
Also there maybe other obstacles by requirement of old control SW. I know that lot of such SW was designed for DOS but also for Win9x, Win3.x... And there are other compatibility issues running W95/98 on some modern (e.g. Haswell/Skylake) MB. So it's better for users of such old industrial machines to get some refurbished MB from Pentium1-PIII era with native ISA that can smoothly install W9x and run existing control SW...

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 701 of 759, by myne

User metadata
Rank Oldbie
Rank
Oldbie
7F20 wrote on 2025-04-22, 13:49:
myne wrote on 2025-04-22, 03:23:

Intel are in a tight spot right now.
I don't know any they refuse to make a legacy soc.
It's all ip they already own.

Their tight spot isn't really going to be solved by spinning up a fab to make niche SOCs

They've tried to make so many socs to compete with pi and the likes.
What they haven't made is one with isa - which the industrial and retro markets would buy.

I built:
Convert old ASUS ASC boardviews to KICAD PCB!
Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11+tcp+vbe_svga auto-install iso template
Script to backup Win9x\ME drivers from a working install
Re: The thing no one asked for: KICAD 440bx reference schematic

Reply 702 of 759, by digger

User metadata
Rank Oldbie
Rank
Oldbie
RayeR wrote on 2025-04-22, 19:10:

I guess there's not much industrial adapters needing ISA DMA, if so, probably more effort would already put in and big manufacturers would already offer some more working solutions.
Also there maybe other obstacles by requirement of old control SW. I know that lot of such SW was designed for DOS but also for Win9x, Win3.x... And there are other compatibility issues running W95/98 on some modern (e.g. Haswell/Skylake) MB. So it's better for users of such old industrial machines to get some refurbished MB from Pentium1-PIII era with native ISA that can smoothly install W9x and run existing control SW...

It's really unfortunate how pretty much all popular sound cards in the DOS gaming era depended on ISA DMA for playing back PCM samples. The Intel 8237 DMA controller was a crappy standard from the start, and had to be kept at 5 MHz even on faster systems for compatibility reasons, meaning that any performance benefits that it may have initially offered on the original IBM PC already vanished on 286 systems, and it started becoming even more of a bottleneck on faster systems.

This excellent article on the OS/2 Museum blog mentions how DMA never became popular in ISA network cards, for the exact same reason:

Both Novell and WD decided to drop DMA support, probably because it avoided yet another source of configuration conflicts and because especially on PC/AT class systems, DMA was slower than either PIO or memory anyway.

How different could things have been if Adlib would have released a successor to their initial FM-synth-only Adlib card that would complement the OPL2 synthesizer with a Disney Sound Source compatible DAC integrated on the same board (emulating a second LPT port), and possibly a game port? The Sound Blaster would never have taken off as "the" DOS sound standard, and downwards compatibility would have been much better on more modern PCs. The Disney Sound Source (1986) actually predated both the Adlib (1987) and Sound Blaster (1989) cards as a standard and already had some support to start with, at least in a number of Disney games.

A direct I/O DAC with a FIFO buffer. Much less of a hassle, much cheaper to implement and much easier to provide compatibility with on newer systems. If only...

Reply 703 of 759, by 7F20

User metadata
Rank Member
Rank
Member
myne wrote on 2025-04-23, 01:37:

What they haven't made is one with isa - which the industrial and retro markets would buy.

What I meant is that there isn't enough money in it for them to do that. Intel needs to make big money move to recover, and that a very small money move.

Reply 704 of 759, by dartfrog

User metadata
Rank Newbie
Rank
Newbie

I have been working on a first draft pass on the IT8888 PCI/ISA card rasteri was thinking about, should be noted I've been using IT8888F documents not the IT8888G variant.
The G variant is a BGA chip vs the F with a QFP chip.
IT8888F : https://www.ite.com.tw/upload/2024_01_12/6_20 … 3lubkbzmd90.pdf

I've included a markdown file (change extension for formatting) which includes information on:
[*]IT8888F ISA Bus Signal Pinout (for 8/16-bit ISA Compatibility)
[*]ISA IRQ Pin Mapping (IT8888F to ISA)
[*]AT24C02 EEPROM Wiring / .BIN
[*]IT8888 CONFIG EEPROM (AT24C02) BIN
[*]Binary Configuration Breakdown
[*]IT8888F PCI Bus Signal Pinout

This is a nearly complete PCI->IT8888F->ISA pin mapping, BIN configuration/explanation, and EEPROM pin mapping.

I would love some help verifying as I've been staring at these docs for too long and I'm pretty sure something has to be wrong, but it all looks good to me so far.

In the mean time I'm setting up a KiCAD project with a IT8888F symbol and getting footprints for PCI/ISA/160pin PQFP/EEPROM. I've also attached a png of the IT8888F Footprint, would also love a second set of eyes to check pins.

Potential PCIe-to-PCI-to-ISA pathway repository: https://github.com/DartFrogTek/PCIe-PCI-ISA

Reply 705 of 759, by myne

User metadata
Rank Oldbie
Rank
Oldbie

You might find the top item in my sig handy for some things. Eg the p2b's exact proven termination /pull up resistors
I also did an atx board layout script

https://forum.kicad.info/t/atx-micro-dtx-itx- … ut-script/57510

Have a quick play with it. It puts slots exactly where they should be relative to edges and screws

I built:
Convert old ASUS ASC boardviews to KICAD PCB!
Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11+tcp+vbe_svga auto-install iso template
Script to backup Win9x\ME drivers from a working install
Re: The thing no one asked for: KICAD 440bx reference schematic

Reply 706 of 759, by dartfrog

User metadata
Rank Newbie
Rank
Newbie

Big massive ISA DMA over PCIe find?

I figured I'd mention something explicitly with ISA DMA and the IT8888. I've previously theorized about DDMA and bus mastering could facilitate full ISA DMA capability with the IT8888 over PCI. While I suspected this, and implemented DDMA in the IT8888 EEPROM configuration BIN in my previous post; I guess I didn't fully realize until now this confirms a real PCIe/ISA DMA pathway. Essentially DDMA on IT8888 doesn't require any extra signals from the motherboard. So the proposed requirement based on that costronic site claiming the need to "connect motherboard PPDREQ#, PPDGNT#, SERIRQ signals to PCI-to-ISA bridge card for ISA bus DMA function" isn't actually required. These are only required if PC/PCI DMA is used. I don't think that card or motherboards that used the IT8888 ever implemented DDMA. I'm not sure why costronic or anyone else did not bother to use DDMA, I guess why bother if PC/PCI DMA works. However, if we don't use PC/PCI DMA but use DDMA on the IT8888 instead, I believe ISA DMA will work both on PCI and PCIe without those other signals.

If we check out "6.7 Distributed DMA (DDMA) Slave Controller" in the IT8888F docs, it says something along the lines of:

The IT8888F integrates two DMA controllers (8237) to build a 7-channel DDMA slave that supports all the standard ISA DMA channel […]
Show full quote

The IT8888F integrates two DMA controllers (8237) to build a 7-channel DDMA slave that supports all the standard ISA DMA channels (7-5, 3-0). Each channel can be treated as a separate DDMA slave with its own base address and can be enabled/disabled individually.
The DDMA channels maintain ISA compatibility with:
Channels 7-5 fixed at 16-bit transfer width
Channels 3-0 fixed at 8-bit transfer width

This means that legacy ISA cards that rely on DMA would work properly with the DDMA implementation. DDMA uses standard PCI signals (IREQ#/IGNT#) that are already available on the PCI bus, making it an actual solution that doesn't require any special motherboard support beyond a standard PCI slot. Since DDMA only depends on regular PCI bus mastering, and chips like the PEX8114 (used to bridge PCIe to PCI) preserve standard PCI bus semantics (including bus mastering), this DDMA method should work through PCIe-to-PCI bridges as well, assuming proper configuration and timing alignment.

Unless I'm wrong, this is an extremely massive find. This essentially confirms that ISA DMA over PCIe is a realistic pathway forward without anything other than the bridge chips and supporting circuitry. I still think it's beneficial to complete the PCI/ISA card I've been drafting. There might also be no reason to make a specific PCIe/PCI/ISA card, other than space constraints. The IT8888 PCI/ISA card will likely facilitate ISA DMA over a PCIe/PCI card like the StarTech PEX1PCI1 which uses the PEX811x chips, these support both PCI master and slave modes. This is critical because the IT8888 must act as a PCI bus master during DDMA transfers, which is issuing memory reads/writes on behalf of ISA cards. PEX811x supports bus mastering, Delayed transactions, DMA (via the PCI master interface), and Plug-and-play resource routing.

I hope this find excites you all as much as it does me. Have a great day!

myne wrote on 2025-04-24, 05:03:
You might find the top item in my sig handy for some things. Eg the p2b's exact proven termination /pull up resistors I also di […]
Show full quote

You might find the top item in my sig handy for some things. Eg the p2b's exact proven termination /pull up resistors
I also did an atx board layout script

https://forum.kicad.info/t/atx-micro-dtx-itx- … ut-script/57510

Have a quick play with it. It puts slots exactly where they should be relative to edges and screws

Hey that's awesome. Thanks for sharing!

Potential PCIe-to-PCI-to-ISA pathway repository: https://github.com/DartFrogTek/PCIe-PCI-ISA

Reply 707 of 759, by myne

User metadata
Rank Oldbie
Rank
Oldbie

Only one thing to do now...
Test it!

I built:
Convert old ASUS ASC boardviews to KICAD PCB!
Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11+tcp+vbe_svga auto-install iso template
Script to backup Win9x\ME drivers from a working install
Re: The thing no one asked for: KICAD 440bx reference schematic

Reply 708 of 759, by myne

User metadata
Rank Oldbie
Rank
Oldbie

Wait, found this in my collection of converted ASUS boards

It has an ITE8888

Couple of minor manual fixes (apparently my script still has bugs), but it opens.

I built:
Convert old ASUS ASC boardviews to KICAD PCB!
Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11+tcp+vbe_svga auto-install iso template
Script to backup Win9x\ME drivers from a working install
Re: The thing no one asked for: KICAD 440bx reference schematic

Reply 709 of 759, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

I guess it was not implemented this way in the past because of conflict of 2 DMA devices - one in PCH and second in ITE bridge. I don't know if DMA in PCH can be disabled by some PCI config regs. But on recents MBs where legacy DMA was removed from chipset completly it could work. You posted before your port testing on Z390 and there are still some DMA leftover. How about newer PCH and AMD platform? Need to be checked. Then you'll need set properly IO ports decoding on upper bridges to route IO acces to your new DMA in ITE bridge instead default routing to LPC bridge. Question is where is such IOs directed on newer MBs which already lacks LPC controller in PCH? Are the still implemented some legacy IO ports like KBC, IQR ctrl on such new PCHs?

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 710 of 759, by nakos1212

User metadata
Rank Newbie
Rank
Newbie

@dartfrog
Doesnt it need DDMA supporr from the chipset?

Reply 711 of 759, by dartfrog

User metadata
Rank Newbie
Rank
Newbie
RayeR wrote on 2025-04-24, 13:26:

I guess it was not implemented this way in the past because of conflict of 2 DMA devices - one in PCH and second in ITE bridge. I don't know if DMA in PCH can be disabled by some PCI config regs. But on recents MBs where legacy DMA was removed from chipset completly it could work. You posted before your port testing on Z390 and there are still some DMA leftover. How about newer PCH and AMD platform? Need to be checked. Then you'll need set properly IO ports decoding on upper bridges to route IO acces to your new DMA in ITE bridge instead default routing to LPC bridge. Question is where is such IOs directed on newer MBs which already lacks LPC controller in PCH? Are the still implemented some legacy IO ports like KBC, IQR ctrl on such new PCHs?

That's what I find so interesting about this DDMA mode. The DDMA device inside the IT8888 is essentially cut off completely from the rest of the machine. IT8888 uses DMA internally and converts all this into PCI transactions and the IT8888 then claims the PCI bus and acts as the PCI master. This should mean any system that has a PCI slot can use this DDMA, it doesn't matter if it has a chipset with a DMA controller. There is only IO port contention left, which since the IT8888 can be configured via EEPROM this takes care of that too.

Essentially what I understand happens is as follows:

  • The ISA device would request DMA service using standard ISA DMA request lines.
  • The IT8888F would handle these requests using its internal DMA controllers, completely separate from any DMA controller in the motherboard's chipset.
  • When data needs to be transferred to/from system memory, the IT8888F would convert these operations into standard PCI bus master transactions.
  • From the system's perspective, these would just appear as normal PCI bus master operations; the system would never "know" that ISA DMA was involved.
  • All the ISA specific DMA operations (timing, addressing modes, etc.) would be handled internally by the IT8888F.

This effectively encapsulates the entire ISA DMA subsystem behind a standard PCI interface, making it compatible with any system that has PCI slots regardless of whether the chipset has DMA capabilities or not. The EEPROM configuration ensures this all happens automatically without requiring any drivers or BIOS support.

I would be willing to wager that this is similar if not exactly how those FPGA IPs/devices that claim to allow ISA DMA over PCIe work.

nakos1212 wrote on 2025-04-24, 19:59:

@dartfrog
Doesnt it need DDMA supporr from the chipset?

Nope! From the systems perspective, the IT8888F is just a regular PCI device performing standard bus mastering operations. The chipset never "sees" the ISA DMA operations happening inside the IT8888F. PCI Bus mastering is what enables a device connected to the bus to initiate DMA transactions. The IT8888's DDMA is basically just a conversion layer of third-party DMA (where a system DMA controller does the transfer) into first-party DMA (Bus mastering).

~

FWIW a few days ago, I've ordered a IT8888F chip, a 160 pin PQFP to 160 pin PGA adapter from proto-advantage, and a PCI prototype card from futurlec. This should enable me to build a prototype as I work on the PCI/ISA schematic/pcb. I still have some minor things to source like an ISA socket and an AT24C02 EEPROM but these are minor, I should have everything else. (if you're crazy as I am and want to build your own prototype alongside me, I've linked the sources I used, it should be noted my futurlec order of the PCI prototype card has not shipped yet, everything else has. Even if it doesn't, we can just use a 90 degree PCI riser card with the PCI socket de-soldered and regular off the shelf prototype boards attached, yes janky but will work)
https://www.ebay.com/itm/315027761894
https://www.proto-advantage.com/store/product … ucts_id=2600020
https://www.futurlec.com/protoboards/pcibusbrd.shtml

I have an ADEX PCIX32 card as well, which is a PCI Bus Isolation Extender that allows the user to test 32bit PCI addon boards quickly, without having to power the system down each time. (extremely rare but insanely useful)
https://adexelec.com/pcix32

I will likely use a PICOGUS for the ISA DMA testing.

Potential PCIe-to-PCI-to-ISA pathway repository: https://github.com/DartFrogTek/PCIe-PCI-ISA

Reply 712 of 759, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie
dartfrog wrote on 2025-04-24, 20:23:

There is only IO port contention left, which since the IT8888 can be configured via EEPROM this takes care of that too.

That's what I'm talking about. You will have 2 separate DMA controllers (one in PCH, second in ITE) and they needs to expose IO config ports that gets in conflict. You still need that your DMA in ITE use legacy IO ports addresses for compatability with existing SW. What exactly can be configured in the serial EEPROM?
I think that for success mission you need to
1) disable DMA (or its leftover) in PCH to free the legacy IO ports addresses or use PCH completly without legacy DMA controller (do they exist? how about e.g. current Z690? anybody scanned that ports are really free?, how about AMD?)
2) you need to be able to route IO transactions to legacy IO ports addresses to be directed to the ITE chip - it needs to pass through PCIe to PCI bridge between on the path. In older chipsets that has LPC controller this IO transactions are usually routed there instead to external PCI device. It's similar like you need to configure saphisa tool to pass soundcard IO...

BTW I wouldn't mess with QFN/PGA adapter and protoboard, I think that making a PCB in JLCPCB would cost you less... Just put enough testpoints and selection jumpers for signals you're not sure about...
The price for IT8888F is quite acceptable so it would worth to try...

Also there's one question about latency and timing. Let's assume your idea with DDMA would work in basic functionality as expected. Then there may be some extra delays between soundcard IRQ is triggered, processed and new busmaster transaction will start. PCIe is known to use something like packeted transfer, optimized for larger layloads, bridges can add also some delays so it may happed DMA will not start fast enoug and sound buffer underrund - cause stuttering. I don't know, just thinking...

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 713 of 759, by dartfrog

User metadata
Rank Newbie
Rank
Newbie

Below is how I understand it as of now, I could be wrong on any number of things.

RayeR wrote on 2025-04-24, 20:51:

That's what I'm talking about. You will have 2 separate DMA controllers (one in PCH, second in ITE) and they needs to expose IO config ports that gets in conflict. You still need that your DMA in ITE use legacy IO ports addresses for compatability with existing SW.

When you have both a motherboard DMA controller and the IT8888 trying to use the same I/O addresses (like 0x00-0x0F, 0xC0-0xDF for DMA controllers), the IT8888 uses Positive I/O Space Decoding feature to claim these addresses first:

From section 6.4 of the datasheet: "The six positively decode I/O spaces can be programmed to claim PCI I/O cycle with Fast / Medium / Slow / Subtractive DEVSEL# timing speed."
By configuring the IT8888 via EEPROM to use "Fast" decoding timing for these legacy I/O ports, it will respond to I/O accesses before the motherboard chipset can claim them. In PCI architecture, if more than one device could respond to an I/O address, the device that asserts DEVSEL# first wins the cycle and becomes the responder.

When software tries to access a DMA register:

  • The IT8888 responds quickly with the DEVSEL# signal (Device Select)
  • This tells the system "I own this address"
  • The motherboard's chipset backs off and lets the IT8888 handle the request
  • Any DMA controller in the chipset becomes effectively invisible

As the manual states on page 13: "The PCI Slave interface provides some decode spaces for internal registers and ISA accesses. The IT8888 will claim the cycle by asserting DEVSEL#." This is why the EEPROM configuration is important; it sets up the IT8888 to claim these I/O ports at boot time before any software tries to access them. Essentially, the IT8888 becomes a complete replacement for the motherboard's legacy DMA controller, making the motherboard's DMA hardware irrelevant even if it physically exists.

RayeR wrote on 2025-04-24, 20:51:

What exactly can be configured in the serial EEPROM?

The EEPROM can preprogram almost the entire PCI configuration space of the IT8888, including: I/O and memory space decoding, DMA channel enable/disable and base address remapping, DEVSEL# timing (fast/medium/slow), ROM decoding control, Interrupt configuration and routing, Arbitration preferences and timing optimizations. This allows the bridge to fully boot into a legacy compatible mode without requiring outside intervention.

RayeR wrote on 2025-04-24, 20:51:

I think that for success mission you need to
1) disable DMA (or its leftover) in PCH to free the legacy IO ports addresses or use PCH completly without legacy DMA controller (do they exist? how about e.g. current Z690? anybody scanned that ports are really free?, how about AMD?)
2) you need to be able to route IO transactions to legacy IO ports addresses to be directed to the ITE chip - it needs to pass through PCIe to PCI bridge between on the path. In older chipsets that has LPC controller this IO transactions are usually routed there instead to external PCI device. It's similar like you need to configure saphisa tool to pass soundcard IO...

There's probably no need to disable motherboard DMA controller since the IT8888 takes care of this automatically through its positive decoding feature as described above. This means you shouldn't need to worry about whether or not any platform still has DMA controllers or DMA leftovers; the IT8888 should theoretically claim the I/O addresses first. I believe this is similar to how PCI expansion cards can override built-in devices by claiming the same resources, which is a standard capability of the PCI bus architecture.

RayeR wrote on 2025-04-24, 20:51:

Also there's one question about latency and timing. Let's assume your idea with DDMA would work in basic functionality as expected. Then there may be some extra delays between soundcard IRQ is triggered, processed and new busmaster transaction will start. PCIe is known to use something like packeted transfer, optimized for larger layloads, bridges can add also some delays so it may happed DMA will not start fast enoug and sound buffer underrund - cause stuttering. I don't know, just thinking...

This is probably the most worrying aspect. However the IT8888 has specific features designed to handle the timing requirements of ISA DMA:

  • Type-F DMA Timing: Section 6.8 states: "The IT8888F also supports Type F DMA timing. Each DMA channel can be programmed to operate in normal DMA timing or Type-F timing... Since the system memory is located on Host bridge chip (or PCI North Bridge), thus DMA cycles can be operated faster to achieve better ISA DMA performance." This shows the IT8888 was specifically designed to optimize DMA timing for modern systems where memory is accessed through the PCI bus rather than directly on the ISA bus.
  • Delayed Transaction Support: From Section 6.1: "The IT8888F supports PCI 2.1 Delayed Transaction feature which can be enabled/disabled by programming Cfg_50h<1>. The benefit of Delayed Transaction is that the PCI bus is still available and can be used by other PCI master, even when there is an ISA PIO cycle in progress behind IT8888F." This ensures efficient bus utilization even during DMA operations.
  • DDMA-Concurrent Mode: Section 6.10 explains: "To achieve PCI/ISA concurrency, there are some technologies to improve system performance: Delayed Transaction, Passive Release and the 'DDMA-Concurrent' in the IT8888F design... When enabled, the IT8888F will request PCI bus only when DDMA controller or ISA master issued a transaction to be forwarded to PCI bus, and the IT8888F will release PCI bus after it finished PCI bus cycle, even when the DDMA / ISA master still occupies ISA bus." This prevents the PCI bus from being held unnecessarily during DMA operations.
  • ISA Bus Arbiter: Section 6.10 states: "The IT8888F internal ISA arbiter will handle and exclude DDMA cycle, Refresh cycle and PIO cycle from PCI bus to optimize the ISA bus utilization." This ensures efficient coordination between DMA requests, ISA bus usage, and PCI operations.

As for PCIe latency concerns, PCIe adds some packetization latency, but modern PCIe-to-PCI bridges (like PEX811x) are designed with timing-sensitive legacy compatibility in mind. The IT8888's Type-F DMA mode, delayed transactions, and DDMA-concurrent cycle handling help ensure timing remains acceptable even across a bridged PCIe connection. The IT8888 itself has safeguards to prevent issues too:

  • Retry/Discard Timers: The documentation describes timeout mechanisms to prevent hanging when DMA operations can't complete in time.
  • Built-in recovery mechanisms: The IT8888 can detect and handle situations where transactions are taking too long.

You've raised a bunch of good points and I'm glad someone is double checking!

RayeR wrote on 2025-04-24, 20:51:

BTW I wouldn't mess with QFN/PGA adapter and protoboard, I think that making a PCB in JLCPCB would cost you less... Just put enough testpoints and selection jumpers for signals you're not sure about...
The price for IT8888F is quite acceptable so it would worth to try...

I'll be honest, I'm a sucker for prototype cards. There's just something about prototype cards that is lost if it's just a PCB revision. This is the most complex electronics project I've ever considered and having a janky looking prototype card next to a pristine PCB in a frame would be a very nice physical representation of all the time and effort in. Something I can put on the wall and say, dang we actually did it or in the worst case, dang at least we tried.

Potential PCIe-to-PCI-to-ISA pathway repository: https://github.com/DartFrogTek/PCIe-PCI-ISA

Reply 714 of 759, by myne

User metadata
Rank Oldbie
Rank
Oldbie

So if my understanding is correct, it is basically the same as any pci era southbridge Eg pii4x - without the extras.

I looked at the board I extracted, and the chip itself doesn't really seem to need many supporting components.

BTW, I forgot to update the nets on the schematic.
I'll upload the one I have that is slightly updated and key components moved.

I built:
Convert old ASUS ASC boardviews to KICAD PCB!
Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11+tcp+vbe_svga auto-install iso template
Script to backup Win9x\ME drivers from a working install
Re: The thing no one asked for: KICAD 440bx reference schematic

Reply 715 of 759, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie
dartfrog wrote on 2025-04-25, 00:15:

When you have both a motherboard DMA controller and the IT8888 trying to use the same I/O addresses (like 0x00-0x0F, 0xC0-0xDF for DMA controllers), the IT8888 uses Positive I/O Space Decoding feature to claim these addresses first:

Yes, this would solve the problem if both DMA devices are on the same PCI(e) bus. But the IT8888 will be connected to different PCI bus than PCH's LPC-DMA. It depends on where the ITE will be connected, according to Z390 block diag:
https://www.guru3d.com/data/publish/200/f1ec0 … ock-diagram.png it may be attached to CPU PCIe or PCH PCIe so it depends on configuration of root PCIe bridge in CPU and PCH too. It may just happen that desired DMA IO transaction don't reach the slave PCI bus where IT8888 is waiting for bot will go to other bus with LPC block (and I guess this is the default settings as PCH still/may implements other legacy stuff like KBC, timers...), need to be checked. Maybe for some quick testing one could use some PCIe POST card: https://en.wikipedia.org/wiki/File:BIOS_POST_ … and_LPC_bus.jpg
and check if he can pass some OUT writes to port 80h at the PCIe bus supposed to connect IT8888...

BTW form previous discussion I recall that intel PCH 5xx series and newer dicarded the LPC block but it still doesn't answer where legacy IO port access is routed. I don't have such new HW so can't test...

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 716 of 759, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

UPDATE, something from PCH 6xx datasheet:

Peripheral Channel (Channel 0) Overview
The Peripheral channel performs the following functions:
• Target for PCI Device D31:F0: The eSPI controller duplicates the legacy LPC PCI Configuration space registers. These registers are mostly accessed via the BIOS, though some are accessed via the OS as well.
• Tunnel all Host to eSPI Subordinate (EC/SIO) Debug Device Accesses:
these are the accesses that used to go over the LPC bus. These include various programmable and fixed I/O ranges as well as programmable Memory ranges. The programmable ranges and their enables reside in the PCI Configuration space.
• Tunnel all Accesses from the eSPI Subordinate to the Host: These include Memory Reads and Writes.

3.1.2 Fixed I/O Address Ranges
The following table shows the Fixed I/O decode ranges from the processor perspective.
NOTE
For each I/O range, there may be separate behavior for reads and writes. DMI cycles that go to target ranges that are marked as Reserved will be handled by the PCH; writes are ignored and reads will return all 1 s. The P2SB will claim many of the fixed I/O accesses and forward those transactions over IOSF-SB to their functional target.
Address ranges that are not listed or marked Reserved are NOT positively decoded by the PCH (unless assigned to one of the variable ranges) and will be internally terminated by the PCH.

Table 7. Fixed I/O Ranges Decoded by PCH
I/O Address Read Target Write Target Internal Unit (unless[E]: External)2 Separate Enable/Disable
20h – 21h Interrupt Controller Interrupt Controller Interrupt None
24h – 25h Interrupt Controller Interrupt Controller Interrupt None
28h – 29h Interrupt Controller Interrupt Controller Interrupt None
2Ch – 2Dh Interrupt Controller Interrupt Controller Interrupt None
2E-2F Super I/O Super I/O [E] Forwarded to eSPI Yes. ESPI_IOD_IOE.SE
30h – 31h Interrupt Controller Interrupt Controller Interrupt None
34h – 35h Interrupt Controller Interrupt Controller Interrupt None
38h – 39h Interrupt Controller Interrupt Controller Interrupt None
3Ch – 3Dh Interrupt Controller Interrupt Controller Interrupt None
40h Timer/Counter Timer/Counter 8254 Timer None
42h-43h Timer/Counter Timer/Counter 8254 Timer None
4E-4F Microcontroller Microcontroller [E] Forwarded to eSPI Yes. ESPI_IOD_IOE.ME2
50h Timer/Counter Timer/Counter 8254 Timer None
52h-53h Timer/Counter Timer/Counter 8254 Timer None
60h Keyboard Controller Keyboard Controller [E] Forwarded to eSPI Yes, with 64h. ESPI_IOD_IOE.KE
61h NMI Controller NMI Controller CPU I/F None
62h Microcontroller Microcontroller [E] Forwarded to eSPI Yes, with 66h. ESPI_IOD_IOE.ME1
63h NMI Controller 1 NMI Controller 1 CPU I/F Yes, alias to 61h. GIC.P61AE
64h Keyboard Controller Keyboard Controller [E] Forwarded to eSPI Yes, with 60h. ESPI_IOD_IOE.KE
65h NMI Controller 1 NMI Controller 1 CPU I/F Yes, alias to 61h. GIC.P61AE
66h Microcontroller Microcontroller [E] Forwarded to eSPI Yes, with 62h. ESPI_IOD_IOE.ME1
67h NMI Controller 1 NMI Controller 1 CPU I/F Yes, alias to 61h. GIC.P61AE
70h RTC Controller NMI and RTC Controller RTC None
71h RTC Controller RTC Controller RTC None
72h RTC Controller RTC Controller RTC None. Alias to 70h if RC.UE=0, else 72h
73h RTC Controller RTC Controller RTC None. Alias to 71h if continued
...
so legacy DMA ports are not there but as the real IO port scan could show something different...

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 717 of 759, by myne

User metadata
Rank Oldbie
Rank
Oldbie

There are espi superios and lpc bridges

Ite even do some.
https://www.ite.com.tw/en/product/cate2/IT8883
https://www.ite.com.tw/en/product/cate2/IT8625

Iirc bioses are on espi now. I guess if nothing else, that makes it easy to find working pins.

I built:
Convert old ASUS ASC boardviews to KICAD PCB!
Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11+tcp+vbe_svga auto-install iso template
Script to backup Win9x\ME drivers from a working install
Re: The thing no one asked for: KICAD 440bx reference schematic

Reply 718 of 759, by myne

User metadata
Rank Oldbie
Rank
Oldbie

Well, scratch that thought before you have it
https://www.prodigytechno.com/espi-protocol

LPC Replacement: Supports all the capabilities needed to replace the parallel LPC interface. However, 8237 DMA and Firmware Hub (FWH) are not supported over this interface.

So unless an espi to lpc bridge had other tricks, it can't work.

I built:
Convert old ASUS ASC boardviews to KICAD PCB!
Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11+tcp+vbe_svga auto-install iso template
Script to backup Win9x\ME drivers from a working install
Re: The thing no one asked for: KICAD 440bx reference schematic

Reply 719 of 759, by kagura1050

User metadata
Rank Newbie
Rank
Newbie

I found a (possibly complete) schematic for a simple PCI-ISA adapter using the IT8888F on an old website of a Taiwanese prototyping board company.
Creating a clone of this circuit might be a good starting point.

https://www.costronic.com/Ev71pkit.htm
https://www.costronic.com/SH8888.pdf

古いマシンで新しいOS(Linux/NetBSD)を動かすのが好き。
Timezone : UTC+9