1. 02 6月, 2010 1 次提交
    • P
      sh: support for platforms without PIO. · 86e4dd5a
      Paul Mundt 提交于
      This extends some of the existing special casing for HAS_IOPORT
      platforms and gets it to the point where platforms can begin to
      conditionally select it.
      
      The major changes here are that the PIO routines themselves go away
      completely, including all of the machvec port mapping wrappers. With this
      in place it's possible for any non-machvec abusing platform to disable
      PIO completely. At present this is left as an opt-in until the abusers
      are the odd ones out instead of the majority.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      86e4dd5a
  2. 02 3月, 2010 1 次提交
    • P
      sh: reworked dynamic PMB mapping. · 90e7d649
      Paul Mundt 提交于
      This implements a fairly significant overhaul of the dynamic PMB mapping
      code. The primary change here is that the PMB gets its own VMA that
      follows the uncached mapping and we attempt to be a bit more intelligent
      with dynamic sizing, multi-entry mapping, and so forth.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      90e7d649
  3. 18 2月, 2010 1 次提交
  4. 28 1月, 2010 1 次提交
  5. 26 1月, 2010 1 次提交
  6. 20 1月, 2010 1 次提交
  7. 19 1月, 2010 4 次提交
  8. 18 1月, 2010 2 次提交
  9. 16 1月, 2010 1 次提交
    • M
      sh: Add fixed ioremap support · 4d35b93a
      Matt Fleming 提交于
      Some devices need to be ioremap'd and accessed very early in the boot
      process. It is not possible to use the standard ioremap() function in
      this case because that requires kmalloc()'ing some virtual address space
      and kmalloc() may not be available so early in boot.
      
      This patch provides fixmap mappings that allow physical address ranges
      to be remapped into the kernel address space during the early boot
      stages.
      Signed-off-by: NMatt Fleming <matt@console-pimps.org>
      4d35b93a
  10. 13 1月, 2010 1 次提交
    • P
      sh: fixed PMB mode refactoring. · a0ab3668
      Paul Mundt 提交于
      This introduces some much overdue chainsawing of the fixed PMB support.
      fixed PMB was introduced initially to work around the fact that dynamic
      PMB mode was relatively broken, though they were never intended to
      converge. The main areas where there are differences are whether the
      system is booted in 29-bit mode or 32-bit mode, and whether legacy
      mappings are to be preserved. Any system booting in true 32-bit mode will
      not care about legacy mappings, so these are roughly decoupled.
      
      Regardless of the entry point, PMB and 32BIT are directly related as far
      as the kernel is concerned, so we also switch back to having one select
      the other.
      
      With legacy mappings iterated through and applied in the initialization
      path it's now possible to finally merge the two implementations and
      permit dynamic remapping overtop of remaining entries regardless of
      whether boot mappings are crafted by hand or inherited from the boot
      loader.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      a0ab3668
  11. 14 12月, 2009 2 次提交
  12. 12 11月, 2009 1 次提交
  13. 10 10月, 2009 1 次提交
  14. 24 8月, 2009 2 次提交
  15. 09 5月, 2009 1 次提交
  16. 07 5月, 2009 1 次提交
    • P
      sh: Integrate the SH-5 onchip_remap() more coherently. · 0fb849b9
      Paul Mundt 提交于
      Presently this is special-cased for early initialization. While there are
      situations where these static early initializations are still necessary,
      with minor changes it is possible to use this for the regular ioremap
      implementation as well. This allows us to kill off the special-casing for
      the remap completely and to start tidying up all of the SH-5
      special-casing in drivers.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      0fb849b9
  17. 30 4月, 2009 1 次提交
    • M
      sh: pass through ioremap() for non-mmu processors. · e6be3a25
      Magnus Damm 提交于
      All 32-bit SuperH processors currently go through __ioremap_mode()
      and check for IO_TRAPPED and directly mapped segments. With this
      patch we simplify the MMU less case with a pass through version of
       __ioremap_mode() which just returns the physical address.
      
      The effects of this is change are:
       - fix non-MMU ioremap() of high address hardware blocks (sh7203 CMT)
       - make sure IO_TRAPPED is not selected
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      e6be3a25
  18. 10 3月, 2009 1 次提交
  19. 22 12月, 2008 1 次提交
    • M
      sh: P4 ioremap pass-through · 716777db
      Magnus Damm 提交于
      This patch adds a pass-through case when ioremapping P4 addresses.
      
      Addresses passed to ioremap() should be physical addresses, so the
      best option is usually to convert the virtual address to a physical
      address before calling ioremap. This will give you a virtual address
      in P2 which matches the physical address and this works well for
      most internal hardware blocks on the SuperH architecture.
      
      However, some hardware blocks must be accessed through P4. Converting
      the P4 address to a physical and then back to a P2 does not work. One
      example of this is the sh7722 TMU block, it must be accessed through P4.
      
      Without this patch P4 addresses will be mapped using PTEs which
      requires the page allocator to be up and running.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      716777db
  20. 12 11月, 2008 1 次提交
  21. 04 10月, 2008 1 次提交
    • P
      sh: More I/O routine overhauling. · 14866543
      Paul Mundt 提交于
      This tidies up a lot of the PIO/MMIO split. No in-tree platforms were
      making use of the MMIO overloading through the machvec (nor have any of
      them been in some time), so we just kill all of that off. The ISA I/O
      routine wrapping remains unaffected, which remains the only special
      casing outside of the iomap API that boards need to think about.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      14866543
  22. 01 10月, 2008 1 次提交
  23. 12 9月, 2008 1 次提交
  24. 08 9月, 2008 1 次提交
  25. 29 7月, 2008 1 次提交
  26. 08 5月, 2008 1 次提交
  27. 14 2月, 2008 2 次提交
    • M
      sh: fix ioreadN_rep and iowriteN_rep · c0ca41a2
      Magnus Damm 提交于
      This patch is a fix to make sure readsN/writesN are used over insN/outsN for
      ioreadN_rep/iowriteN_rep.
      
      The current state of the sh io code is that mmio operations like readN/writeN
      and ioreadN/iowriteN are unaffected by the value of generic_io_base. This is
      different fom port based io like inN/outN which gets adjusted using the value
      in generic_io_base.
      
      Without this patch ioreadN_rep/iowriteN_rep get their addresses adjusted.
      The address for mmio access is adjusted using generic_io_base. This is wrong.
      The ata core code currently crashes if generic_io_base is set.
      
      This patch changes ioreadN_rep/iowriteN_rep to follow the same rules as the
      rest of the mmio operations, ie don't adjust using generic_io_base.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Acked-by: NKatsuya MATSUBARA <matsu@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      c0ca41a2
    • M
      sh: trapped io support V2 · e7cc9a73
      Magnus Damm 提交于
      The idea is that we want to get rid of the in/out/readb/writeb callbacks from
      the machvec and replace that with simple inline read and write operations to
      memory. Fast and simple for most hardware devices (think pci).
      
      Some devices require special treatment though - like 16-bit only CF devices -
      so we need to have some method to hook in callbacks.
      
      This patch makes it possible to add a per-device trap generating filter. This
      way we can get maximum performance of sane hardware - which doesn't need this
      filter - and crappy hardware works but gets punished by a performance hit.
      
      V2 changes things around a bit and replaces io access callbacks with a
      simple minimum_bus_width value. In the future we can add stride as well.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      e7cc9a73
  28. 28 1月, 2008 4 次提交
  29. 17 10月, 2007 1 次提交
  30. 21 9月, 2007 1 次提交