On Fri, Sep 3, 2010 at 06:05,  <[email protected]> wrote:
> Revision 9122 Author steven.miao Date 2010-09-03 06:04:58 -0400 (Fri, 03 Sep
> 2010)
>
> Log Message
>
> [#6190] bf561 smp: fix sleep mode can not wake up by uart
>
> Add offset to avoid .l1.text section relocation overwrite coreb start
> entry. After coreb wakeup by IPI, it will execute coreb_trampoline_start
> entry at coreb l1 code area, but l1 iflush patch for ANOMALY_05000491
> overwrite the coreb_trampoline_start code area, so wakeup fail.
>
> Diff
>
> Modified: trunk/arch/blackfin/kernel/setup.c (9121 => 9122)
>
>       /* if necessary, copy L1 text to L1 instruction SRAM */
>       if (L1_CODE_LENGTH && text_l1_len)
> -             early_dma_memcpy((void *)COREB_L1_CODE_START, _text_l1_lma,
> +             early_dma_memcpy((void *)COREB_L1_CODE_START + 0x200, 
> _text_l1_lma,
>                               text_l1_len);
>
>       /* if necessary, copy L1 data to L1 data bank A SRAM */
> @@ -247,7 +247,7 @@
>
>  #if ANOMALY_05000491
>       blackfin_iflush_l1_entry[1] = (unsigned
> long)blackfin_icache_flush_range_l1 -
> -                     (unsigned long)_stext_l1 + COREB_L1_CODE_START;
> +                     (unsigned long)_stext_l1 + COREB_L1_CODE_START + 0x200;
>  #endif

adding magic constants like 0x200 isnt going to fly.  if the space is
reserved for the trampoline stuff, then place it into L1 sanely by
using .l1.text section markings.
-mike
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to