1. 28 1月, 2011 2 次提交
    • M
      microblaze: Fix unaligned issue on MMU system with BS=0 DIV=1 · 9c749e17
      Michal Simek 提交于
      Unaligned code use shift for finding register operand.
      There is used BSRLI(r8,r8,2) macro which is expand for BS=0, DIV=1
      by
      	ori rD, r0, (1 << imm);	\
      	idivu rD, rD, rA
      
      but if rD is equal rA then ori instruction rewrite value which
      should be devide.
      
      The patch remove this macro which use idivu instruction because
      idivu takes 32/34 cycles. The highest shifting is 20 which takes
      20 cycles.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      9c749e17
    • M
      microblaze: Fix DTB passing from bootloader · 026a2078
      Michal Simek 提交于
      Little endian system needs to check OF_DT_HEADER
      but it is swapped because it is in big-endian.
      Microblaze LE provides lwr instruction which loads
      magic number in BIG endian format which can be compared.
      
      There is used the fact that if you write 0x1 as word
      and load it as byte then you get for big-endian zero
      and 1 for little-endian.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      026a2078
  2. 16 1月, 2011 1 次提交
  3. 03 1月, 2011 4 次提交
  4. 18 11月, 2010 2 次提交
  5. 01 11月, 2010 1 次提交
  6. 28 10月, 2010 2 次提交
  7. 22 10月, 2010 1 次提交
  8. 21 10月, 2010 23 次提交
  9. 18 8月, 2010 1 次提交
    • D
      Make do_execve() take a const filename pointer · d7627467
      David Howells 提交于
      Make do_execve() take a const filename pointer so that kernel_execve() compiles
      correctly on ARM:
      
      arch/arm/kernel/sys_arm.c:88: warning: passing argument 1 of 'do_execve' discards qualifiers from pointer target type
      
      This also requires the argv and envp arguments to be consted twice, once for
      the pointer array and once for the strings the array points to.  This is
      because do_execve() passes a pointer to the filename (now const) to
      copy_strings_kernel().  A simpler alternative would be to cast the filename
      pointer in do_execve() when it's passed to copy_strings_kernel().
      
      do_execve() may not change any of the strings it is passed as part of the argv
      or envp lists as they are some of them in .rodata, so marking these strings as
      const should be fine.
      
      Further kernel_execve() and sys_execve() need to be changed to match.
      
      This has been test built on x86_64, frv, arm and mips.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Tested-by: NRalf Baechle <ralf@linux-mips.org>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d7627467
  10. 17 8月, 2010 1 次提交
  11. 14 8月, 2010 1 次提交
  12. 04 8月, 2010 1 次提交
    • M
      microblaze: Add KGDB support · 2d5973cb
      Michal Simek 提交于
      Kgdb uses brki r16, 0x18 instruction to call
      low level _debug_exception function which save
      current state to pt_regs and call microblaze_kgdb_break
      function. _debug_exception should be called only from
      the kernel space. User space calling is not supported
      because user application debugging uses different handling.
      
      pt_regs_to_gdb_regs loads additional special registers
      which can't be changed
      
       * Enable KGDB in Kconfig
       * Remove ancient not-tested KGDB support
       * Remove ancient _debug_exception code from entry.S
      
      Only MMU KGDB support is supported.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      CC: Jason Wessel <jason.wessel@windriver.com>
      CC: John Williams <john.williams@petalogix.com>
      CC: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
      CC: linux-kernel@vger.kernel.org
      Acked-by: NJason Wessel <jason.wessel@windriver.com>
      2d5973cb