1. 07 1月, 2009 1 次提交
    • B
      Blackfin arch: Faster C implementation of no-MPU CPLB handler · dbdf20db
      Bernd Schmidt 提交于
      This is a mixture ofcMichael McTernan's patch and the existing cplb-mpu code.
      
      We ditch the old cplb-nompu implementation, which is a good example of
      why a good algorithm in a HLL is preferrable to a bad algorithm written in
      assembly.  Rather than try to construct a table of all posible CPLBs and
      search it, we just create a (smaller) table of memory regions and
      their attributes.  Some of the data structures are now unified for both
      the mpu and nompu cases.  A lot of needless complexity in cplbinit.c is
      removed.
      
      Further optimizations:
        * compile cplbmgr.c with a lot of -ffixed-reg options, and omit saving
          these registers on the stack when entering a CPLB exception.
        * lose cli/nop/nop/sti sequences for some workarounds - these don't
        * make
          sense in an exception context
      
      Additional code unification should be possible after this.
      
      [Mike Frysinger <vapier.adi@gmail.com>:
       - convert CPP if statements to C if statements
       - remove redundant statements
       - use a do...while loop rather than a for loop to get slightly better
         optimization and to avoid gcc "may be used uninitialized" warnings ...
         we know that the [id]cplb_nr_bounds variables will never be 0, so this
         is OK
       - the no-mpu code was the last user of MAX_MEM_SIZE and with that rewritten,
         we can punt it
       - add some BUG_ON() checks to make sure we dont overflow the small
         cplb_bounds array
       - add i/d cplb entries for the bootrom because there is functions/data in
         there we want to access
       - we do not need a NULL trailing entry as any time we access the bounds
         arrays, we use the nr_bounds variable
      ]
      Signed-off-by: NMichael McTernan <mmcternan@airvana.com>
      Signed-off-by: NMike Frysinger <vapier.adi@gmail.com>
      Signed-off-by: NBernd Schmidt <bernds_cb1@t-online.de>
      Signed-off-by: NBryan Wu <cooloney@kernel.org>
      dbdf20db
  2. 18 11月, 2008 2 次提交
  3. 16 10月, 2008 1 次提交
  4. 13 10月, 2008 1 次提交
  5. 08 10月, 2008 1 次提交
  6. 27 8月, 2008 1 次提交
  7. 21 11月, 2007 1 次提交
  8. 27 1月, 2008 1 次提交
  9. 12 7月, 2007 1 次提交
  10. 21 6月, 2007 1 次提交
    • B
      Blackfin arch: defines and provides entry points for certain user space... · 7adfb58f
      Bernd Schmidt 提交于
      Blackfin arch: defines and provides entry points for certain user space functions at fixed addresses
      
      This patch defines (and provides) entry points for certain user space functions
      at fixed addresses.  The Blackfin has no usable atomic instructions, but we can
      ensure that these code sequences appear atomic from a user space point of view
      by detecting when we're in the process of executing them during the interrupt
      handler return path.  This allows much more efficient pthread lock
      implementations than the bfin_spinlock syscall we're currently using.
      
      Also provided is a small sys_rt_sigreturn stub which can be used by the signal
      handler setup code.  The signal.c part will be committed separately.
      Signed-off-by: NBernd Schmidt <bernd.schmidt@analog.com>
      Signed-off-by: NBryan Wu <bryan.wu@analog.com>
      
      7adfb58f
  11. 08 5月, 2007 1 次提交