1. 20 1月, 2010 9 次提交
    • P
      sh: mach-sdk7786: Probe system FPGA area mapping. · d9116d07
      Paul Mundt 提交于
      This implements dynamic probing for the system FPGA. The system reset
      controller contains a fixed magic read word in order to identify the
      FPGA. This just utilizes a simple loop that scans across all of the fixed
      physical areas (area 0 through area 6) to locate the FPGA.
      
      The FPGA also contains register information detailing the area mappings
      and chip select settings for all of the other blocks, so this needs to be
      done before we can set up anything else.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      d9116d07
    • P
      sh: Correct iounmap fixmap teardown. · 920efaab
      Paul Mundt 提交于
      iounmap_fixed() had a couple of bugs in it that caused it to effectively
      fail at life. The total number of pages to unmap factored in the mapping
      offset and aligned up to the next page boundary, which doesn't match the
      ioremap_fixed() behaviour.
      
      When ioremap_fixed() pegs a slot, the address in the mapping data already
      contains the offset displacement, and the size is recorded verbatim given
      that we're only interested in total number of pages required. As such, we
      need to calculate the total number from the original size in the unmap
      path as well.
      
      At the same time, there was also an off-by-1 problem in the fixmap index
      calculation which has also been corrected.
      
      Previously subsequent remaps of an identical fixmap index would trigger
      the pte_ERROR() in set_pte_phys():
      
      	arch/sh/mm/init.c:77: bad pte 8053ffb0(0000781003fff506).
      	arch/sh/mm/init.c:77: bad pte 8053ffb0(0000781003fff506).
      	arch/sh/mm/init.c:77: bad pte 8053ffb0(0000781003fff506).
      	arch/sh/mm/init.c:77: bad pte 8053ffb0(0000781003fff506).
      	arch/sh/mm/init.c:77: bad pte 8053ffb0(0000781003fff506).
      	arch/sh/mm/init.c:77: bad pte 8053ffb0(0000781003fff506).
      
      With this patch in place, the iounmap-driven fixmap teardown actually
      does what it's supposed to do.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      920efaab
    • P
      sh: mach-sdk7786: reset controller reboot support. · b51989b8
      Paul Mundt 提交于
      This wires up the machine_ops reboot call to use the system reset
      controller.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      b51989b8
    • P
      sh: machine_ops based reboot support. · fbb82b03
      Paul Mundt 提交于
      This provides a machine_ops-based reboot interface loosely cloned from
      x86, and converts the native sh32 and sh64 cases over to it.
      
      Necessary both for tying in SMP support and also enabling platforms like
      SDK7786 to add support for their microcontroller-based power managers.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      fbb82b03
    • P
      sh: Make 29/32-bit mode check helper generally available. · 2efa53b2
      Paul Mundt 提交于
      Presently __in_29bit_mode() is only defined for the PMB case, but
      it's also easily derived from the CONFIG_29BIT and CONFIG_32BIT &&
      CONFIG_PMB=n cases.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      2efa53b2
    • P
      sh: mach-sdk7786: Split out FPGA IRQ controller setup. · 5f240718
      Paul Mundt 提交于
      This moves out the FPGA IRQ controller setup code to its own file, in
      preparation for switching off of IRL mode and having it provide its own
      irq_chip.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      5f240718
    • P
      sh: mach-sdk7786: FPGA updates. · efd590d5
      Paul Mundt 提交于
      This does a bit of refactoring of the FPGA management code. The primary
      FPGA initialization is moved out to its own file in preparation for
      implementing some of the more complex capabilities, a complete set of
      register definitions is provided, and all of the existing users in the
      board code are moved over to use the new interface instead of setting up
      overlapping mappings. This also corrects the FPGA size, which previously
      was chomped off at the SDIF control register.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      efd590d5
    • P
      sh: Handle SH-4 FPU variants with broken CVR values. · bdc27300
      Paul Mundt 提交于
      Usually we can look to the CVR to work out whether we have an FPU or not.
      Unfortunately not all parts comply with this, so just set the flag
      manually for all SH-4 parts and clear it on the only SH-4 that doesn't
      have one (SH4-501).
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      bdc27300
    • P
      sh: Shut up noisy IOREMAP_FIXED=n build. · 70911b86
      Paul Mundt 提交于
      The ioremap_fixed() stub neglected to provide a return value, resulting
      in a fairly noisy build.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      70911b86
  2. 19 1月, 2010 16 次提交
  3. 18 1月, 2010 8 次提交
  4. 17 1月, 2010 2 次提交
  5. 16 1月, 2010 5 次提交