1. 02 2月, 2010 5 次提交
  2. 01 2月, 2010 5 次提交
  3. 30 1月, 2010 4 次提交
    • P
      sh: Fix up asm/hw_breakpoint.h header check. · 31a090ae
      Paul Mundt 提交于
      Presently headers_check complains about linux/kdebug.h being unexported,
      so just bump the __KERNEL__ ifdef up, as per the x86 change.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      31a090ae
    • P
      sh: mach-se: Fix up irq_desc reference. · 97b19778
      Paul Mundt 提交于
      The irq_desc needs to be accessed with irq_to_desc(), this fixes up a
      build error with irq_desc being undefined.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      97b19778
    • P
      sh: Kill off broken type 1 PCI config access checks. · 396c56a9
      Paul Mundt 提交于
      The host controllers only support type 1, so there's not much else to
      test for. Some of the older controllers also supported type 2 accesses,
      but we've never supported those, and likely never will. Beyond that, the
      P1SEG test is meaningless for 32-bit mode, so rather than refactoring it,
      just kill the type 1 test off completely.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      396c56a9
    • L
      Split 'flush_old_exec' into two functions · 221af7f8
      Linus Torvalds 提交于
      'flush_old_exec()' is the point of no return when doing an execve(), and
      it is pretty badly misnamed.  It doesn't just flush the old executable
      environment, it also starts up the new one.
      
      Which is very inconvenient for things like setting up the new
      personality, because we want the new personality to affect the starting
      of the new environment, but at the same time we do _not_ want the new
      personality to take effect if flushing the old one fails.
      
      As a result, the x86-64 '32-bit' personality is actually done using this
      insane "I'm going to change the ABI, but I haven't done it yet" bit
      (TIF_ABI_PENDING), with SET_PERSONALITY() not actually setting the
      personality, but just the "pending" bit, so that "flush_thread()" can do
      the actual personality magic.
      
      This patch in no way changes any of that insanity, but it does split the
      'flush_old_exec()' function up into a preparatory part that can fail
      (still called flush_old_exec()), and a new part that will actually set
      up the new exec environment (setup_new_exec()).  All callers are changed
      to trivially comply with the new world order.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Cc: stable@kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      221af7f8
  4. 29 1月, 2010 4 次提交
  5. 28 1月, 2010 5 次提交
  6. 27 1月, 2010 3 次提交
  7. 26 1月, 2010 2 次提交
  8. 21 1月, 2010 5 次提交
    • P
      sh: Conserve fixmap slots when IOREMAP_FIXED=n. · a077e916
      Paul Mundt 提交于
      Presently the IOREMAP_FIXED fixmaps are always defined, even if the
      platform isn't capable of supporting it. Since we already have an ifdef
      for it, ifdef the entries, too.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      a077e916
    • P
      sh: Kill off the special uncached section and fixmap. · 2dc2f8e0
      Paul Mundt 提交于
      Now that cached_to_uncached works as advertized in 32-bit mode and we're
      never going to be able to map < 16MB anyways, there's no need for the
      special uncached section. Kill it off.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      2dc2f8e0
    • P
      sh: Track the uncached mapping size. · 3125ee72
      Paul Mundt 提交于
      This provides a variable for tracking the uncached mapping size, and uses
      it for pretty printing the uncached lowmem range. Beyond this, we'll also
      be building on top of this for figuring out from where the remainder of
      P2 becomes usable when constructing unrelated mappings.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      3125ee72
    • P
      sh: Rework P2 to only include kernel text. · 2023b843
      Paul Mundt 提交于
      This effectively neutralizes P2 by getting rid of P1 identity mapping
      for all available memory and instead only establishes a single unbuffered
      PMB entry (16MB -- the smallest available) that covers the kernel.
      
      As using segmentation for abusing caching attributes in drivers is no
      longer supported (and there are no drivers that can be enabled in 32-bit
      mode that do this), this provides us with all of the uncached access
      needs by the kernel itself.
      
      Drivers and their ilk need to specify their caching attributes when
      remapping through page tables, as usual.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      2023b843
    • P
      sh: initial PMB mapping iteration by helper macro. · 77c2019f
      Paul Mundt 提交于
      All of the cached/uncached mapping setup is duplicated for each size, and
      also misses out on the 16MB case. Rather than duplicating the same iter
      code for that we just consolidate it in to a helper macro that builds an
      iter for each size. The 16MB case is then trivially bolted on at the end.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      77c2019f
  9. 20 1月, 2010 7 次提交
    • P
      sh: pretty print virtual memory map on boot. · 35f99c0d
      Paul Mundt 提交于
      This cribs the pretty printing from arch/x86/mm/init_32.c to dump the
      virtual memory layout on boot. This is primarily intended as a debugging
      aid, given that the newer CPUs have full control over their address space
      and as such have little to nothing in common with the legacy layout.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      35f99c0d
    • 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