Many IO cards will do, especially if you have an accelerator. Trouble is that the "usual" scenario is that there's memory or a GFX card's memory block located in the 8M Z2 space. This implies that it's OK to have caches switched on for this area - and that's what most, if not all accelerators do. On the other hand, the $e8-$ef space is usually exempt from being cached, so IO cards will work reliably. I can only think of a fix with the MMU, as dividing up 8M of space in 64k segments for possible cache-disable means 128 cache enable/disable bits. That's nothing you'd implement in a CPLD.
I'm familiar with the data cache issue and I/O behavior. The problem is, these boards are hanging config (or their driver) before the data cache comes into play (i.e. - prior to SetPatch/library load).
The MuLibs config file has a 'fix' for MMU-capable CPUs with it's configuration file, if it were in play. If it were the cache, you are correct, it's messy in terms of the MMU table to cover 8M space, but still possible. The problem is, some boards don't seem to like to go down that far, address-wise.
Actually, this is getting out there in the weeds in an edge case, but because you have to land larger boards on certain address boundaries, mapping nocache on 256K would probably work, as you could stack multiple small 64K/128K I/O cards before a hypothetical 512K 'RAM' card comes along.
I'd still like to test the graveyard theory while we have awhile to assess the situation. A manual config tool that would make it easier to 'place' a set of boards after boot, and to test different config algorithms. No, I'd not suggest using expansion.library to hold a list of offender ID's to handle differently. That's wasted ROM space. The thing is, we are blind to what exists in the field. Nobody had sharp enough tools back then to fully test what was designed. Things are a little different today.
One thing that would help in this is an AutoConfig test board with some logic on it that just has 3-4 I/O boards in it to arbitrarily fill the possible expansion spaces up. A jumper block to pick the various sizes and places. Maybe later this winter or spring I'll crank up KiCAD and try one, run a batch of 10 prototypes with a few buffers and a CPLD on it. Can't hurt to learn by making some mistakes.
In the end, there has to be a 'solution' decided upon, be it 'stop dead' (ending AutoConfig), try to land one in a graveyard and stop, or maybe we can get away with something in a reasonable number of cases. The AutoConfig standard never technically defied an 'end' to the logic, but it may be time to decide and document it. We can also take the argument (you offered it earlier) that some boards may be orphaned by the solution chosen, and they should be avoided in the worst-case config scenarios. That can take up space in a ReadME that few will read until someone utters 'RTFM'. The old ROM with the old solution can still be used, too, if they need it.
I'm still planning to work on AutoConfig behavior if the devs are willing to build some software test variants. The Inst cache-disable is one of them I will try to bring up again. I think the manual-config tool would also be a useful piece to include in the HW development kit. Halt the config process electrically, and then let the tool control things in single-step after the CLI has started. It might even be possible to start ROMs (and watch them with development tools) to catch missed nasty behavior.
Now that I have shared this idea, I expect it to pup up in open-source "developments" without giving credit, as usual...
From the first days of working Tech Support at GVP, I learned many rules of the world. Among them: 1) The beatings will continue until morale improves, and 2) No good deed goes unpunished. 30 years removed from the support trenches, after watching many devs of the 1980's and 90's (OEM/3rd parties) learn the hard way, I passed some good advice along to the 'new' crew of devs a few years back. I got completely flamed for suggesting they avoid stepping in the mistakes of those before them. After a few rounds of cutting their teeth from customer angst on early designs, low and behold, their close cadre eventually convinced them to do it that better way.
Rob