@alexh
I was wondering if you could add a register that when you write a particular value to it, it stops decoding addresses in the upper 4 Mbyte range.
You could then switch on/off the upper 4Mbytes in software.
card.resource checks for existance of the memory at address 0x600000. If any is present, it will not initialize the resource. Thus, even if you could turn off the memory later on, it would not bring PCMCIA back.
If the state would survive a reboot then it would work, naturally.