Mark Chambers wrote: >>There is one pending problem: the M8xx does not accept >>access to non present ioports (an exception is triggered), >>which is quite common while inserting/removing cards. >> >>We've hacked around this in our tree, Panto once mentioned >>that another PPC's do handle those exceptions fine (?). >> > > > Ah yes, I remember this problem from the 68360 days. > > This is a matter of how you set up the option register ORx > for a particular chip select. You can choose external or > internal acknowledge. You can have both at the same time: > if you set up the ORx for the maximum number of wait states > and also select external acknowledge, the cycle will end > with the external acknowledge, or end with the maximum > wait states if no external ack is generated. Also note that > the internal/external ack bit can be changed on the fly - so, > for instance, you could turn external ack on once a card > was inserted. > > As I recall, some PCMCIA cards can have VERY long > cycles in the configuration space, so even the maximum > number of wait states in ORx may not be sufficient. > > Mark Chambers > _______________________________________________ > Linuxppc-embedded mailing list > Linuxppc-embedded at ozlabs.org > https://ozlabs.org/mailman/listinfo/linuxppc-embedded > >
Unfortunately this does not work on 8xx since the PCMCIA port is not on a chip select. It's a different peripheral and always expectes a DTACK to terminate the cycle. To get over this problem we need to do something more drastic. Take a look at the __do_in_asm macro in include/asm-ppc/io.h. Regards Pantelis