|
From: NIIBE Y. <gn...@ch...> - 2000-06-07 08:25:28
|
kaz Kojima writes:
> MR-SHPC-01 chip has 1MB window which is constructed as the set of
> four 256KB spaces. First 256KB space is "real word" space and the
> second is "real byte" space. So the above change makes byte input
> from the "real word" space. It seems not good in the i/o window
> case since the access to this area has 16-bit sizing which will
> cause problems on some PCMCIA cards. Of course, it might not cause
> any problem on CF(ATA) cards, but I'd like to be defensive for such
> chip :-)
Let's clarify things.
#1:
Is this correct?
> /* SH pcmcia io window base, start and end. */
> -int sh_pcic_io_wbase = 0xb8400000;
> -int sh_pcic_io_start;
> -int sh_pcic_io_stop;
> +int sh_pcic_io_wbase = 0xb8600000;
> +int sh_pcic_io_start = 0x3000;
> +int sh_pcic_io_stop = 0x3fff;
Specifically, io_wbase has been changed. Does not cause any problem?
#2:
> unsigned long inb(unsigned int port)
> {
> if (sh_pcic_io_start <= port && port <= sh_pcic_io_stop)
>- return *(__u8 *) (sh_pcic_io_wbase + 0x40000 + port);
>+ return *(__u8 *) port2adr(port);
> else if (shifted_port(port))
It seems that your comments above means we need this "0x400000" for
byte access of "read" (in). Is there any reason why we don't need
this "0x40000" for "write" (out)?
--
|