Blackfin arch: don't copy bss when copying L1
when copying L1 regions, go to the start of bss rather than end since we have code to zero it out already Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
This commit is contained in:
parent
6776cf4476
commit
3b1f26a50a
|
@ -101,7 +101,7 @@ extern u16 _bfin_swrst; /* shadow for Software Reset Register (SWRST) */
|
||||||
extern unsigned long _ramstart, _ramend, _rambase;
|
extern unsigned long _ramstart, _ramend, _rambase;
|
||||||
extern unsigned long memory_start, memory_end, physical_mem_end;
|
extern unsigned long memory_start, memory_end, physical_mem_end;
|
||||||
extern char _stext_l1[], _etext_l1[], _sdata_l1[], _edata_l1[], _sbss_l1[],
|
extern char _stext_l1[], _etext_l1[], _sdata_l1[], _edata_l1[], _sbss_l1[],
|
||||||
_ebss_l1[], _l1_lma_start[], _sdata_b_l1[], _ebss_b_l1[],
|
_ebss_l1[], _l1_lma_start[], _sdata_b_l1[], _sbss_b_l1[], _ebss_b_l1[],
|
||||||
_stext_l2[], _etext_l2[], _sdata_l2[], _edata_l2[], _sbss_l2[],
|
_stext_l2[], _etext_l2[], _sdata_l2[], _edata_l2[], _sbss_l2[],
|
||||||
_ebss_l2[], _l2_lma_start[];
|
_ebss_l2[], _l2_lma_start[];
|
||||||
|
|
||||||
|
|
|
@ -119,23 +119,23 @@ void __init bfin_relocate_l1_mem(void)
|
||||||
/* Copy _stext_l1 to _etext_l1 to L1 instruction SRAM */
|
/* Copy _stext_l1 to _etext_l1 to L1 instruction SRAM */
|
||||||
dma_memcpy(_stext_l1, _l1_lma_start, l1_code_length);
|
dma_memcpy(_stext_l1, _l1_lma_start, l1_code_length);
|
||||||
|
|
||||||
l1_data_a_length = _ebss_l1 - _sdata_l1;
|
l1_data_a_length = _sbss_l1 - _sdata_l1;
|
||||||
if (l1_data_a_length > L1_DATA_A_LENGTH)
|
if (l1_data_a_length > L1_DATA_A_LENGTH)
|
||||||
panic("L1 Data SRAM Bank A Overflow\n");
|
panic("L1 Data SRAM Bank A Overflow\n");
|
||||||
|
|
||||||
/* Copy _sdata_l1 to _ebss_l1 to L1 data bank A SRAM */
|
/* Copy _sdata_l1 to _sbss_l1 to L1 data bank A SRAM */
|
||||||
dma_memcpy(_sdata_l1, _l1_lma_start + l1_code_length, l1_data_a_length);
|
dma_memcpy(_sdata_l1, _l1_lma_start + l1_code_length, l1_data_a_length);
|
||||||
|
|
||||||
l1_data_b_length = _ebss_b_l1 - _sdata_b_l1;
|
l1_data_b_length = _sbss_b_l1 - _sdata_b_l1;
|
||||||
if (l1_data_b_length > L1_DATA_B_LENGTH)
|
if (l1_data_b_length > L1_DATA_B_LENGTH)
|
||||||
panic("L1 Data SRAM Bank B Overflow\n");
|
panic("L1 Data SRAM Bank B Overflow\n");
|
||||||
|
|
||||||
/* Copy _sdata_b_l1 to _ebss_b_l1 to L1 data bank B SRAM */
|
/* Copy _sdata_b_l1 to _sbss_b_l1 to L1 data bank B SRAM */
|
||||||
dma_memcpy(_sdata_b_l1, _l1_lma_start + l1_code_length +
|
dma_memcpy(_sdata_b_l1, _l1_lma_start + l1_code_length +
|
||||||
l1_data_a_length, l1_data_b_length);
|
l1_data_a_length, l1_data_b_length);
|
||||||
|
|
||||||
if (L2_LENGTH != 0) {
|
if (L2_LENGTH != 0) {
|
||||||
l2_length = _ebss_l2 - _stext_l2;
|
l2_length = _sbss_l2 - _stext_l2;
|
||||||
if (l2_length > L2_LENGTH)
|
if (l2_length > L2_LENGTH)
|
||||||
panic("L2 SRAM Overflow\n");
|
panic("L2 SRAM Overflow\n");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue