1. 10 7月, 2007 1 次提交
  2. 28 6月, 2007 1 次提交
  3. 02 6月, 2007 1 次提交
  4. 17 5月, 2007 1 次提交
  5. 10 5月, 2007 1 次提交
  6. 24 4月, 2007 5 次提交
  7. 13 4月, 2007 5 次提交
  8. 08 3月, 2007 2 次提交
    • D
      [POWERPC] Automatically lmb_reserve() initrd · 30437b3e
      David Gibson 提交于
      At present, when an initrd is passed to the kernel used flat device
      tree properties, the memory the initrd occupies must also be reserved
      in the flat tree's reserve map, or the kernel may overwrite it.  That
      makes life more complicated than it could be for the bootwrapper.
      
      This patch makes the kernel automatically reserve the initrd's space.
      That in turn requires parsing the initrd parameters earlier than they
      are currently, in early_init_dt_scan_chosen() instead of
      check_for_initrd().
      Signed-off-by: NDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      30437b3e
    • D
      [POWERPC] Allow duplicate lmb_reserve() calls · eb6de286
      David Gibson 提交于
      At present calling lmb_reserve() (and hence lmb_add_region()) twice
      for exactly the same memory region will cause strange behaviour.
      
      This makes life difficult when booting from a flat device tree with
      memory reserve map.  Which regions are automatically reserved by the
      kernel has changed over time, so it's quite possible a newer kernel
      could attempt to auto-reserve a region which is also explicitly listed
      in the device tree's reserve map, leading to trouble.
      
      This patch avoids the problem by making lmb_reserve() ignore a call to
      reserve a previously reserved region.  It also removes a now redundant
      test designed to avoid one specific case of the problem noted above.
      
      At present, this patch deals only with duplicate reservations of an
      identical region.  Attempting to reserve two different, but
      overlapping regions will still cause problems.  I might post another
      patch later dealing with this case, but I'm avoiding it now since it
      is substantially more complicated to deal with, less likely to occur
      and more likely to indicate a genuine bug elsewhere if it does occur.
      Signed-off-by: NDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      eb6de286
  9. 16 2月, 2007 1 次提交
  10. 13 2月, 2007 1 次提交
  11. 24 1月, 2007 1 次提交
  12. 11 12月, 2006 1 次提交
    • P
      [POWERPC] Support ibm,dynamic-reconfiguration-memory nodes · 0204568a
      Paul Mackerras 提交于
      For PAPR partitions with large amounts of memory, the firmware has an
      alternative, more compact representation for the information about the
      memory in the partition and its NUMA associativity information.  This
      adds the code to the kernel to parse this alternative representation.
      
      The other part of this patch is telling the firmware that we can
      handle the alternative representation.  There is however a subtlety
      here, because the firmware will invoke a reboot if the memory
      representation we request is different from the representation that
      firmware is currently using.  This is because firmware can't change
      the representation on the fly.  Further, some firmware versions used
      on POWER5+ machines have a bug where this reboot leaves the machine
      with an altered value of load-base, which will prevent any kernel
      booting until it is reset to the normal value (0x4000).  Because of
      this bug, we do NOT set fake_elf.rpanote.new_mem_def = 1, and thus we
      do not request the new representation on POWER5+ and earlier machines.
      We do request the new representation on POWER6, which uses the
      ibm,client-architecture-support call.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0204568a
  13. 04 12月, 2006 1 次提交
    • P
      [POWERPC] Distinguish POWER6 partition modes and tell userspace · 974a76f5
      Paul Mackerras 提交于
      This adds code to look at the properties firmware puts in the device
      tree to determine what compatibility mode the partition is in on
      POWER6 machines, and set the ELF aux vector AT_HWCAP and AT_PLATFORM
      entries appropriately.
      
      Specifically, we look at the cpu-version property in the cpu node(s).
      If that contains a "logical" PVR value (of the form 0x0f00000x), we
      call identify_cpu again with this PVR value.  A value of 0x0f000001
      indicates the partition is in POWER5+ compatibility mode, and a value
      of 0x0f000002 indicates "POWER6 architected" mode, with various
      extensions disabled.  We also look for various other properties:
      ibm,dfp, ibm,purr and ibm,spurr.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      974a76f5
  14. 25 10月, 2006 2 次提交
  15. 06 10月, 2006 1 次提交
    • G
      [POWERPC] Minor fix for bootargs property · c1ce464d
      Geoff Levand 提交于
      Avoid the use of an uninitialized stack variable when the powerpc device tree
      bootargs property is either missing or incorrectly defined.  This also makes
      CONFIG_CMDLINE work properly under these conditions.  This change adds a test
      for the existence of the bootargs property.
      
      early_init_dt_scan_chosen() tests for a zero length bootargs property in its
      CONFIG_CMDLINE processing, but the current implementation of
      of_get_flat_dt_prop() doesn't assign a value to the length when no property is
      found.  Since an automatic variable is used, a stale value from the stack will
      be used in the test.
      Signed-off-by: NGeoff Levand <geoffrey.levand@am.sony.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      c1ce464d
  16. 20 9月, 2006 1 次提交
    • P
      [POWERPC] Define of_read_ulong helper · a4dc7ff0
      Paul Mackerras 提交于
      There are various places where we want to extract an unsigned long
      value from a device-tree property that can be 1 or 2 cells in length.
      This replaces some open-coded calculations, and one place where we
      assumed without checking that properties were the length we wanted,
      with a little of_read_ulong() helper.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      a4dc7ff0
  17. 31 7月, 2006 2 次提交
  18. 03 7月, 2006 2 次提交
    • B
      [POWERPC] Add new interrupt mapping core and change platforms to use it · 0ebfff14
      Benjamin Herrenschmidt 提交于
      This adds the new irq remapper core and removes the old one.  Because
      there are some fundamental conflicts with the old code, like the value
      of NO_IRQ which I'm now setting to 0 (as per discussions with Linus),
      etc..., this commit also changes the relevant platform and driver code
      over to use the new remapper (so as not to cause difficulties later
      in bisecting).
      
      This patch removes the old pre-parsing of the open firmware interrupt
      tree along with all the bogus assumptions it made to try to renumber
      interrupts according to the platform. This is all to be handled by the
      new code now.
      
      For the pSeries XICS interrupt controller, a single remapper host is
      created for the whole machine regardless of how many interrupt
      presentation and source controllers are found, and it's set to match
      any device node that isn't a 8259.  That works fine on pSeries and
      avoids having to deal with some of the complexities of split source
      controllers vs. presentation controllers in the pSeries device trees.
      
      The powerpc i8259 PIC driver now always requests the legacy interrupt
      range. It also has the feature of being able to match any device node
      (including NULL) if passed no device node as an input. That will help
      porting over platforms with broken device-trees like Pegasos who don't
      have a proper interrupt tree.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0ebfff14
    • J
      [POWERPC] change get_property to return void * · a1af5b2f
      Jeremy Kerr 提交于
      Change the get_property() function to return a void *. This allows us
      to later remove the cast done in the majority of callers.
      
      Built for pseries, iseries, pmac32, cell, cbesim, g5, systemsim, maple,
      and mpc* defconfigs
      Signed-off-by: NJeremy Kerr <jk@ozlabs.org>
      Acked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      a1af5b2f
  19. 01 7月, 2006 1 次提交
  20. 29 6月, 2006 1 次提交
  21. 28 6月, 2006 2 次提交
  22. 21 6月, 2006 2 次提交
  23. 15 6月, 2006 1 次提交
    • P
      powerpc: Use 64k pages without needing cache-inhibited large pages · bf72aeba
      Paul Mackerras 提交于
      Some POWER5+ machines can do 64k hardware pages for normal memory but
      not for cache-inhibited pages.  This patch lets us use 64k hardware
      pages for most user processes on such machines (assuming the kernel
      has been configured with CONFIG_PPC_64K_PAGES=y).  User processes
      start out using 64k pages and get switched to 4k pages if they use any
      non-cacheable mappings.
      
      With this, we use 64k pages for the vmalloc region and 4k pages for
      the imalloc region.  If anything creates a non-cacheable mapping in
      the vmalloc region, the vmalloc region will get switched to 4k pages.
      I don't know of any driver other than the DRM that would do this,
      though, and these machines don't have AGP.
      
      When a region gets switched from 64k pages to 4k pages, we do not have
      to clear out all the 64k HPTEs from the hash table immediately.  We
      use the _PAGE_COMBO bit in the Linux PTE to indicate whether the page
      was hashed in as a 64k page or a set of 4k pages.  If hash_page is
      trying to insert a 4k page for a Linux PTE and it sees that it has
      already been inserted as a 64k page, it first invalidates the 64k HPTE
      before inserting the 4k HPTE.  The hash invalidation routines also use
      the _PAGE_COMBO bit, to determine whether to look for a 64k HPTE or a
      set of 4k HPTEs to remove.  With those two changes, we can tolerate a
      mix of 4k and 64k HPTEs in the hash table, and they will all get
      removed when the address space is torn down.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      bf72aeba
  24. 19 5月, 2006 3 次提交