Re: RFC: [MIPS] BCM1480/BCM1480HT remove io_offset

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

 



On Wed, 2010-02-24 at 16:30 -0700, Bjorn Helgaas wrote:
> Are there registers to control the CPU-to-PCI address translation, or
> is it just fixed at:
> 
>   PCI ioport = CPU addr - 0x2C000000 (for BCM1480) and
>   PCI ioport = CPU addr - 0xDC000000 (for BCM1480HT)?
> 
> If you can control the translation, you could define nice CPU-side
> I/O port ranges like we do on ia64, e.g.,
> 
>   [0x0000000-0x0ffffff] for BCM1480
>   [0x1000000-0x1ffffff] for BCM1480HT
> 
> That would also allow you to make inb() and friends work on both
> hoses by replacing "mips_io_port_base + port" with something like
> __ia64_mk_io_addr().
> 
> I guess you could do the same thing even if you can't control the
> translation, but the ranges would be a little uglier because they
> both have to be relative to the same base, e.g.,
> 
>   [0x0000000-0x0ffffff] for BCM1480
>   [0xb000000-0xbffffff] for BCM1480HT

Actually, you should be able to make this work with CPU I/O resources of
your choice even if you can't control the translation.  It just requires
a little more indirection, like most computer science problems :-)  On
ia64, we map multiple I/O port spaces with arbitrary translations into a
0xSPPPPPP scheme (S = space number, PPPPPP = port number).

But my main concern is just making sure that my IORESOURCE_PCI_FIXED
change didn't break BCM1480, and I don't think it will.

Bjorn




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

  Powered by Linux