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
