1. 06 Dec, 2011 1 commit
  2. 07 Jul, 2011 1 commit
  3. 31 Mar, 2011 1 commit
  4. 22 Feb, 2011 1 commit
  5. 28 Oct, 2010 1 commit
    • Mika Westerberg's avatar
      ARM: 6466/1: implement flush_icache_all for the rest of the CPUs · c8c90860
      Mika Westerberg authored
      Commit 81d11955
       ("ARM: 6405/1: Handle __flush_icache_all for
      CONFIG_SMP_ON_UP") added a new function to struct cpu_cache_fns:
      flush_icache_all(). It also implemented this for v6 and v7 but not
      for v5 and backwards. Without the function pointer in place, we
      will be calling wrong cache functions.
      For example with ep93xx we get following:
          Unable to handle kernel paging request at virtual address ee070f38
          pgd = c0004000
          [ee070f38] *pgd=00000000
          Internal error: Oops: 80000005 [#1] PREEMPT
          last sysfs file:
          Modules linked in:
          CPU: 0    Not tainted  (2.6.36+ #1)
          PC is at 0xee070f38
          LR is at __dma_alloc+0x11c/0x2d0
          pc : [<ee070f38>]    lr : [<c0032c8c>]    psr: 60000013
          sp : c581bde0  ip : 00000000  fp : c0472000
          r10: c0472000  r9 : 000000d0  r8 : 00020000
          r7 : 0001ffff  r6 : 00000000  r5 : c0472400  r4 : c5980000
          r3 : c03ab7e0  r2 : 00000000  r1 : c59a0000  r0 : c5980000
          Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
          Control: c000717f  Table: c0004000  DAC: 00000017
          Process swapper (pid: 1, stack limit = 0xc581a270)
          [<c0032c8c>] (__dma_alloc+0x11c/0x2d0)
          [<c0032e5c>] (dma_alloc_writecombine+0x1c/0x24)
          [<c0204148>] (ep93xx_pcm_preallocate_dma_buffer+0x44/0x60)
          [<c02041c0>] (ep93xx_pcm_new+0x5c/0x88)
          [<c01ff188>] (snd_soc_instantiate_cards+0x8a8/0xbc0)
          [<c01ff59c>] (soc_probe+0xfc/0x134)
          [<c01adafc>] (platform_drv_probe+0x18/0x1c)
          [<c01acca4>] (driver_probe_device+0xb0/0x16c)
          [<c01ac284>] (bus_for_each_drv+0x48/0x84)
          [<c01ace90>] (device_attach+0x50/0x68)
          [<c01ac0f8>] (bus_probe_device+0x24/0x44)
          [<c01aad7c>] (device_add+0x2fc/0x44c)
          [<c01adfa8>] (platform_device_add+0x104/0x15c)
          [<c0015eb8>] (simone_init+0x60/0x94)
          [<c0021410>] (do_one_initcall+0xd0/0x1a4)
      __dma_alloc() calls (inlined) __dma_alloc_buffer() which ends up
      calling dmac_flush_range(). Now since the entries in the
      arm920_cache_fns are shifted by one, we jump into address 0xee070f38
      which is actually next instruction after the arm920_cache_fns
      So implement flush_icache_all() for the rest of the supported CPUs
      using a generic 'invalidate I cache' instruction.
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@iki.fi>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
  6. 08 Oct, 2010 1 commit
  7. 27 Jul, 2010 1 commit
    • Russell King's avatar
      ARM: Factor out common code from cpu_proc_fin() · 9ca03a21
      Russell King authored
      All implementations of cpu_proc_fin() start by disabling interrupts
      and then flush caches.  Rather than have every processors proc_fin()
      implementation do this, move it out into generic code - and move the
      cache flush past setup_mm_for_reboot() (so it can benefit from having
      caches still enabled.)
      This allows cpu_proc_fin() to become independent of the L1/L2 cache
      types, and eventually move the L2 cache flushing into the L2 support
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
  8. 15 Feb, 2010 2 commits
  9. 14 Dec, 2009 1 commit
  10. 02 Oct, 2009 1 commit
  11. 01 Oct, 2008 2 commits
  12. 24 Apr, 2008 1 commit
  13. 18 Apr, 2008 1 commit
  14. 13 Dec, 2006 1 commit
    • Russell King's avatar
      [ARM] Unuse another Linux PTE bit · ad1ae2fe
      Russell King authored
      L_PTE_ASID is not really required to be stored in every PTE, since we
      can identify it via the address passed to set_pte_at().  So, create
      set_pte_ext() which takes the address of the PTE to set, the Linux
      PTE value, and the additional CPU PTE bits which aren't encoded in
      the Linux PTE value.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
  15. 30 Nov, 2006 1 commit
  16. 03 Jul, 2006 1 commit
  17. 30 Jun, 2006 1 commit
  18. 29 Jun, 2006 2 commits
    • Russell King's avatar
      [ARM] Set bit 4 on section mappings correctly depending on CPU · 8799ee9f
      Russell King authored
      On some CPUs, bit 4 of section mappings means "update the
      cache when written to".  On others, this bit is required to
      be one, and others it's required to be zero.  Finally, on
      ARMv6 and above, setting it turns on "no execute" and prevents
      speculative prefetches.
      With all these combinations, no one value fits all CPUs, so we
      have to pick a value depending on the CPU type, and the area
      we're mapping.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    • Russell King's avatar
      [ARM] nommu: provide a way for correct control register value selection · 22b19086
      Russell King authored
      Most MMU-based CPUs have a restriction on the setting of the data cache
      enable and mmu enable bits in the control register, whereby if the data
      cache is enabled, the MMU must also be enabled.  Enabling the data
      cache without the MMU is an invalid combination.
      However, there are CPUs where the data cache can be enabled without the
      In order to allow these CPUs to take advantage of that, provide a
      method whereby each proc-*.S file defines the control regsiter value
      for use with nommu (with the MMU disabled.)  Later on, when we add
      support for enabling the MMU on these devices, we can adjust the
      "crval" macro to also enable the data cache for nommu.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
  19. 28 Jun, 2006 1 commit
  20. 21 Mar, 2006 2 commits
  21. 20 Sep, 2005 1 commit
  22. 09 Sep, 2005 1 commit
  23. 30 Jun, 2005 2 commits
  24. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      Let it rip!