1. 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
  2. 13 1月, 2010 2 次提交
    • P
      sh: default to extended TLB support. · 782bb5a5
      Paul Mundt 提交于
      All SH-X2 and SH-X3 parts support an extended TLB mode, which has been
      left as experimental since support was originally merged. Now that it's
      had some time to stabilize and get some exposure to various platforms,
      we can drop it as an option and default enable it across the board.
      
      This is also good future proofing for newer parts that will drop support
      for the legacy TLB mode completely.
      
      This will also force 3-level page tables for all newer parts, which is
      necessary both for the varying page sizes and larger memories.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      782bb5a5
    • 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
  3. 04 1月, 2010 2 次提交
  4. 02 1月, 2010 1 次提交
    • M
      sh: Correct the PTRS_PER_PMD and PMD_SHIFT values · 3f5ab768
      Matt Fleming 提交于
      The previous expressions were wrong which made free_pmd_range() explode
      when using anything other than 4KB pages (which is why 8KB and 64KB
      pages were disabled with the 3-level page table layout).
      
      The problem was that pmd_offset() was returning an index of non-zero
      when it should have been returning 0. This non-zero offset was used to
      calculate the address of the pmd table to free in free_pmd_range(),
      which ended up trying to free an object that was not aligned on a page
      boundary.
      
      Now 3-level page tables should work with 4KB, 8KB and 64KB pages.
      Signed-off-by: NMatt Fleming <matt@console-pimps.org>
      3f5ab768
  5. 17 12月, 2009 1 次提交
    • M
      sh: Definitions for 3-level page table layout · 5d9b4b19
      Matt Fleming 提交于
      If using 64-bit PTEs and 4K pages then each page table has 512 entries
      (as opposed to 1024 entries with 32-bit PTEs). Unlike MIPS, SH follows
      the convention that all structures in the page table (pgd_t, pmd_t,
      pgprot_t, etc) must be the same size. Therefore, 64-bit PTEs require
      64-bit PGD entries, etc. Using 2-levels of page tables and 64-bit PTEs
      it is only possible to map 1GB of virtual address space.
      
      In order to map all 4GB of virtual address space we need to adopt a
      3-level page table layout. This actually works out better for
      CONFIG_SUPERH32 because we only waste 2 PGD entries on the P1 and P2
      areas (which are untranslated) instead of 256.
      Signed-off-by: NMatt Fleming <matt@console-pimps.org>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      5d9b4b19
  6. 11 11月, 2009 1 次提交
  7. 27 10月, 2009 1 次提交
    • P
      sh: Fix hugetlbfs dependencies for SH-3 && MMU configurations. · ffb4a73d
      Paul Mundt 提交于
      The hugetlb dependencies presently depend on SUPERH && MMU while the
      hugetlb page size definitions depend on CPU_SH4 or CPU_SH5. This
      unfortunately allows SH-3 + MMU configurations to enable hugetlbfs
      without a corresponding HPAGE_SHIFT definition, resulting in the build
      blowing up.
      
      As SH-3 doesn't support variable page sizes, we tighten up the
      dependenies a bit to prevent hugetlbfs from being enabled. These days
      we also have a shiny new SYS_SUPPORTS_HUGETLBFS, so switch to using
      that rather than adding to the list of corner cases in fs/Kconfig.
      Reported-by: NKristoffer Ericson <kristoffer.ericson@gmail.com>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      ffb4a73d
  8. 16 10月, 2009 1 次提交
  9. 10 10月, 2009 1 次提交
  10. 21 8月, 2009 1 次提交
  11. 14 5月, 2009 1 次提交
  12. 10 5月, 2009 1 次提交
  13. 02 4月, 2009 1 次提交
    • P
      sh: Kill off broken direct-mapped cache mode. · e8208828
      Paul Mundt 提交于
      Forcing direct-mapped worked on certain older 2-way set associative
      parts, but was always error prone on 4-way parts. As these are the
      norm these days, there is not much point in continuing to support this
      mode. Most of the folks that used direct-mapped mode generally just
      wanted writethrough caching in the first place..
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      e8208828
  14. 10 3月, 2009 1 次提交
  15. 17 9月, 2008 1 次提交
  16. 08 9月, 2008 1 次提交
  17. 11 8月, 2008 1 次提交
  18. 04 8月, 2008 1 次提交
  19. 28 7月, 2008 3 次提交
  20. 06 3月, 2008 1 次提交
  21. 28 1月, 2008 6 次提交
  22. 07 11月, 2007 1 次提交
    • P
      sh: Kill off the remaining ST40 cruft. · f9669187
      Paul Mundt 提交于
      The ST40 stuff in-tree hasn't built for some time, and hasn't been
      updated for over 3 years. ST maintains their own out-of-tree changes
      and rebases occasionally, and that's ultimately where all of the ST40
      users go anyways.
      
      In order for the ST40 code to be brought up to date most of the stuff
      removed in this changeset would have to be rewritten anyways, so there's
      very little benefit in keeping the remnants around either.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      f9669187
  23. 27 9月, 2007 3 次提交
  24. 21 9月, 2007 6 次提交