Re: ISA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 19 Dec 2001, Maciej W. Rozycki wrote:
> On Tue, 18 Dec 2001, Jun Sun wrote:
> > Overall, I still feel using isa_xxx() macros in the driver seems like a
> > cleaner solution.  That essentially treats ISA memory space as a separate
> 
>  It depends on what you want to do.  For one isa_xxx() functions/macros
> do not permit to control caching.
> 
> > space.  The ioremap/readb/writeb approach tries to lump ISA memory and PCI
> > memory space together but in fact we still have treat them differently (based
> > on whether the address is greater than 16MB, which is a little hackish.)

You must _not_ use readb()/writeb() and friends with ISA memory space!
You must use isa_readb()/isa_writeb() and friends!

>  The problem is a lone address doesn't really tell us what bus is it
> expected to come from.  And practically there are few systems having
> unrelated I/O buses implemented.  I don't know if any of them is supported
> by Linux.  PCI and ISA are historically related, i.e. ISA is usually
> accessed via a PCI-ISA bridge with a hardwired address mapping.  I don't
> know any system doing it differently -- even Alphas do it this way.
> 
>  The *_resource() functions might help as you may refer to particular
> resources with them, but I don't think a generic way for a multi-bus
> system was defined.  Maybe the problem needs to be discussed at
> linux-kernel.  It's generic after all. 

The problem is that ISA memory space is only half-assed considered separate:
you have seperate isa_readb()/isa_writeb() and friends, but not the
corresponding isa_io{re,un}map() and isa_{request,release}_mem_region().

So while isa_readb()/isa_writeb() and friends can add isa_slot_offset (or
how-is-it-called on your random architecture), io{re,un}map() and
{request,release}_mem_region() can't.

For I/O accesses (inb() and friends), there's no problem, since ISA I/O is a
real subset of PCI I/O.

But for memory accesses, ISA memory space is not necessarily at `address 0'.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux