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)? -- |