2012-12-17 Stuart Henderson <shenders@gcc.gnu.org>
* bfin/Makefile.in: Add BF60x support. * bfin/basiccrt.S: Add core1 support. * bfin/bf606.ld: New file. * bfin/bf606c0.ld: New file. * bfin/bf606c1.ld: New file. * bfin/bf606m.ld: New file. * bfin/bf607.ld: New file. * bfin/bf607c0.ld: New file. * bfin/bf607c1.ld: New file. * bfin/bf607m.ld: New file. * bfin/bf608.ld: New file. * bfin/bf608c0.ld: New file. * bfin/bf608c1.ld: New file. * bfin/bf608m.ld: New file. * bfin/bf609.ld: New file. * bfin/bf609c0.ld: New file. * bfin/bf609c1.ld: New file. * bfin/bf609m.ld: New file. * bfin/bfin-common-mc0.ld: New file. * bfin/include/cdefBF606.h : New file. * bfin/include/cdefBF607.h : New file. * bfin/include/cdefBF608.h : New file. * bfin/include/cdefBF609.h : New file. * bfin/include/defBF606.h : New file. * bfin/include/defBF607.h : New file. * bfin/include/defBF608.h : New file. * bfin/include/defBF609.h : New file. * bfin/include/sys/_adi_platform.h: Add BF60x support. * bfin/include/sys/anomaly_macros_rtl.h : Clean up.
This commit is contained in:
parent
301264066b
commit
24fb7750f3
@ -1,3 +1,35 @@
|
|||||||
|
2012-12-17 Stuart Henderson <shenders@gcc.gnu.org>
|
||||||
|
|
||||||
|
* bfin/Makefile.in: Add BF60x support.
|
||||||
|
* bfin/basiccrt.S: Add core1 support.
|
||||||
|
* bfin/bf606.ld: New file.
|
||||||
|
* bfin/bf606c0.ld: New file.
|
||||||
|
* bfin/bf606c1.ld: New file.
|
||||||
|
* bfin/bf606m.ld: New file.
|
||||||
|
* bfin/bf607.ld: New file.
|
||||||
|
* bfin/bf607c0.ld: New file.
|
||||||
|
* bfin/bf607c1.ld: New file.
|
||||||
|
* bfin/bf607m.ld: New file.
|
||||||
|
* bfin/bf608.ld: New file.
|
||||||
|
* bfin/bf608c0.ld: New file.
|
||||||
|
* bfin/bf608c1.ld: New file.
|
||||||
|
* bfin/bf608m.ld: New file.
|
||||||
|
* bfin/bf609.ld: New file.
|
||||||
|
* bfin/bf609c0.ld: New file.
|
||||||
|
* bfin/bf609c1.ld: New file.
|
||||||
|
* bfin/bf609m.ld: New file.
|
||||||
|
* bfin/bfin-common-mc0.ld: New file.
|
||||||
|
* bfin/include/cdefBF606.h : New file.
|
||||||
|
* bfin/include/cdefBF607.h : New file.
|
||||||
|
* bfin/include/cdefBF608.h : New file.
|
||||||
|
* bfin/include/cdefBF609.h : New file.
|
||||||
|
* bfin/include/defBF606.h : New file.
|
||||||
|
* bfin/include/defBF607.h : New file.
|
||||||
|
* bfin/include/defBF608.h : New file.
|
||||||
|
* bfin/include/defBF609.h : New file.
|
||||||
|
* bfin/include/sys/_adi_platform.h: Add BF60x support.
|
||||||
|
* bfin/include/sys/anomaly_macros_rtl.h : Clean up.
|
||||||
|
|
||||||
2012-11-23 Yufeng Zhang <yufeng.zhang@arm.com>
|
2012-11-23 Yufeng Zhang <yufeng.zhang@arm.com>
|
||||||
|
|
||||||
* aarch64/configure.in: Replace the direct generation of
|
* aarch64/configure.in: Replace the direct generation of
|
||||||
|
@ -60,7 +60,7 @@ SIM_TEST = sim-test
|
|||||||
SIM_INSTALL = install-sim
|
SIM_INSTALL = install-sim
|
||||||
|
|
||||||
# Here is all of the development board stuff
|
# Here is all of the development board stuff
|
||||||
BOARD_SCRIPTS = bfin-common-sc.ld bfin-common-mc.ld \
|
BOARD_SCRIPTS = bfin-common-sc.ld bfin-common-mc.ld bfin-common-mc0.ld \
|
||||||
bf504.ld bf506.ld \
|
bf504.ld bf506.ld \
|
||||||
bf512.ld bf514.ld bf516.ld bf518.ld \
|
bf512.ld bf514.ld bf516.ld bf518.ld \
|
||||||
bf522.ld bf523.ld bf524.ld bf525.ld bf526.ld bf527.ld \
|
bf522.ld bf523.ld bf524.ld bf525.ld bf526.ld bf527.ld \
|
||||||
@ -69,11 +69,16 @@ BOARD_SCRIPTS = bfin-common-sc.ld bfin-common-mc.ld \
|
|||||||
bf538.ld bf539.ld \
|
bf538.ld bf539.ld \
|
||||||
bf542.ld bf544.ld bf547.ld bf548.ld bf549.ld \
|
bf542.ld bf544.ld bf547.ld bf548.ld bf549.ld \
|
||||||
bf561.ld bf561a.ld bf561b.ld bf561m.ld \
|
bf561.ld bf561a.ld bf561b.ld bf561m.ld \
|
||||||
|
bf606.ld bf606c0.ld bf606c1.ld bf606m.ld \
|
||||||
|
bf607.ld bf607c0.ld bf607c1.ld bf607m.ld \
|
||||||
|
bf608.ld bf608c0.ld bf608c1.ld bf608m.ld \
|
||||||
|
bf609.ld bf609c0.ld bf609c1.ld bf609m.ld \
|
||||||
bf592.ld
|
bf592.ld
|
||||||
BOARD_LDFLAGS =
|
BOARD_LDFLAGS =
|
||||||
BOARD_BSP = libbfinbsp.a
|
BOARD_BSP = libbfinbsp.a
|
||||||
BOARD_CRT0S = basiccrt.o basiccrts.o
|
BOARD_CRT0S = basiccrt.o basiccrts.o
|
||||||
BOARD_CRT0S += basiccrt561.o basiccrt561s.o basiccrt561b.o
|
BOARD_CRT0S += basiccrt561.o basiccrt561s.o basiccrt561b.o
|
||||||
|
BOARD_CRT0S += basiccrt60x.o basiccrt60xs.o basiccrt60xc1.o
|
||||||
BOARD_OBJS = clear_cache_range.o _exit.o
|
BOARD_OBJS = clear_cache_range.o _exit.o
|
||||||
BOARD_TEST =
|
BOARD_TEST =
|
||||||
BOARD_INSTALL = install-board
|
BOARD_INSTALL = install-board
|
||||||
@ -139,6 +144,27 @@ else
|
|||||||
$(CC) -D__ADSPBF561_COREB__ $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-any -o $@ -c $<
|
$(CC) -D__ADSPBF561_COREB__ $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-any -o $@ -c $<
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
basiccrt60x.o: basiccrt.S
|
||||||
|
ifneq (,$(findstring mcpu=bf532-none,$(CFLAGS)))
|
||||||
|
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf608-none -o $@ -c $<
|
||||||
|
else
|
||||||
|
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf608-any -o $@ -c $<
|
||||||
|
endif
|
||||||
|
|
||||||
|
basiccrt60xs.o: basiccrt.S
|
||||||
|
ifneq (,$(findstring mcpu=bf532-none,$(CFLAGS)))
|
||||||
|
$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf608-none -o $@ -c $<
|
||||||
|
else
|
||||||
|
$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf608-any -o $@ -c $<
|
||||||
|
endif
|
||||||
|
|
||||||
|
basiccrt60xc1.o: basiccrt.S
|
||||||
|
ifneq (,$(findstring mcpu=bf532-none,$(CFLAGS)))
|
||||||
|
$(CC) -D__ADSPBF60x_CORE1__ $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf608-none -o $@ -c $<
|
||||||
|
else
|
||||||
|
$(CC) -D__ADSPBF60x_CORE1__ $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf608-any -o $@ -c $<
|
||||||
|
endif
|
||||||
|
|
||||||
clean mostlyclean:
|
clean mostlyclean:
|
||||||
rm -f a.out core *.i *.o ${SIM_BSP} ${BOARD_BSP}
|
rm -f a.out core *.i *.o ${SIM_BSP} ${BOARD_BSP}
|
||||||
|
|
||||||
|
@ -66,6 +66,12 @@
|
|||||||
.global __coreb_start;
|
.global __coreb_start;
|
||||||
.type __coreb_start, STT_FUNC;
|
.type __coreb_start, STT_FUNC;
|
||||||
__coreb_start:
|
__coreb_start:
|
||||||
|
#elif defined(__ADSPBF60x_CORE1__)
|
||||||
|
.section .1.text,"ax",@progbits
|
||||||
|
.align 2;
|
||||||
|
.global __core1_start;
|
||||||
|
.type __core1_start, STT_FUNC;
|
||||||
|
__core1_start:
|
||||||
#else
|
#else
|
||||||
.text;
|
.text;
|
||||||
.align 2;
|
.align 2;
|
||||||
@ -160,6 +166,9 @@ L$ivt: [P0++] = R1;
|
|||||||
#ifdef __ADSPBF561_COREB__
|
#ifdef __ADSPBF561_COREB__
|
||||||
SP.L=__coreb_stack_end - 12;
|
SP.L=__coreb_stack_end - 12;
|
||||||
SP.H=__coreb_stack_end - 12;
|
SP.H=__coreb_stack_end - 12;
|
||||||
|
#elif defined(__ADSPBF60x_CORE1__)
|
||||||
|
SP.L=__core1_stack_end - 12;
|
||||||
|
SP.H=__core1_stack_end - 12;
|
||||||
#else
|
#else
|
||||||
SP.L=__stack_end - 12;
|
SP.L=__stack_end - 12;
|
||||||
SP.H=__stack_end - 12;
|
SP.H=__stack_end - 12;
|
||||||
@ -187,6 +196,11 @@ L$ivt: [P0++] = R1;
|
|||||||
R0.H = __coreb_bss_start;
|
R0.H = __coreb_bss_start;
|
||||||
R1.L = __coreb_bss_end;
|
R1.L = __coreb_bss_end;
|
||||||
R1.H = __coreb_bss_end;
|
R1.H = __coreb_bss_end;
|
||||||
|
#elif defined(__ADSPBF60x_CORE1__)
|
||||||
|
R0.L = __core1_bss_start;
|
||||||
|
R0.H = __core1_bss_start;
|
||||||
|
R1.L = __core1_bss_end;
|
||||||
|
R1.H = __core1_bss_end;
|
||||||
#else
|
#else
|
||||||
R0.L = __bss_start;
|
R0.L = __bss_start;
|
||||||
R0.H = __bss_start;
|
R0.H = __bss_start;
|
||||||
@ -198,6 +212,8 @@ L$ivt: [P0++] = R1;
|
|||||||
R1 = 0;
|
R1 = 0;
|
||||||
#ifdef __ADSPBF561_COREB__
|
#ifdef __ADSPBF561_COREB__
|
||||||
CALL.X __coreb_memset;
|
CALL.X __coreb_memset;
|
||||||
|
#elif defined(__ADSPBF60x_CORE1__)
|
||||||
|
CALL.X __core1_memset;
|
||||||
#else
|
#else
|
||||||
CALL.X _memset;
|
CALL.X _memset;
|
||||||
#endif
|
#endif
|
||||||
@ -269,7 +285,8 @@ L$clock_is_set:
|
|||||||
#endif
|
#endif
|
||||||
#endif /* ADSPLPBLACKFIN */
|
#endif /* ADSPLPBLACKFIN */
|
||||||
|
|
||||||
#if defined(__ADSPBF561__) || defined(__ADSPBF566__)
|
#if defined(__ADSPBF561__) || defined(__ADSPBF566__) || defined(__ADSPBF606__) || defined(__ADSPBF607__) || defined(__ADSPBF608__) || defined(__ADSPBF609__)
|
||||||
|
|
||||||
// Initialise the multi-core data tables.
|
// Initialise the multi-core data tables.
|
||||||
// A dummy function will be called if we are not linking with
|
// A dummy function will be called if we are not linking with
|
||||||
// -multicore
|
// -multicore
|
||||||
@ -354,7 +371,7 @@ L$supervisor_mode:
|
|||||||
CALL.X monstartup; // initialise profiling routines
|
CALL.X monstartup; // initialise profiling routines
|
||||||
#endif /* PROFCRT */
|
#endif /* PROFCRT */
|
||||||
|
|
||||||
#ifndef __ADSPBF561_COREB__
|
#if !defined(__ADSPBF561_COREB__) && !defined(__ADSPBF60x_CORE1__)
|
||||||
CALL.X __init;
|
CALL.X __init;
|
||||||
|
|
||||||
R0.L = __fini;
|
R0.L = __fini;
|
||||||
@ -374,6 +391,9 @@ L$supervisor_mode:
|
|||||||
#ifdef __ADSPBF561_COREB__
|
#ifdef __ADSPBF561_COREB__
|
||||||
R1.L=L$argv_coreb;
|
R1.L=L$argv_coreb;
|
||||||
R1.H=L$argv_coreb;
|
R1.H=L$argv_coreb;
|
||||||
|
#elif defined(__ADSPBF60x_CORE1__)
|
||||||
|
R1.L=L$argv_core1;
|
||||||
|
R1.H=L$argv_core1;
|
||||||
#else
|
#else
|
||||||
R1.L=L$argv;
|
R1.L=L$argv;
|
||||||
R1.H=L$argv;
|
R1.H=L$argv;
|
||||||
@ -384,18 +404,22 @@ L$supervisor_mode:
|
|||||||
// At long last, call the application program.
|
// At long last, call the application program.
|
||||||
#ifdef __ADSPBF561_COREB__
|
#ifdef __ADSPBF561_COREB__
|
||||||
CALL.X _coreb_main;
|
CALL.X _coreb_main;
|
||||||
|
#elif defined(__ADSPBF60x_CORE1__)
|
||||||
|
CALL.X _core1_main;
|
||||||
#else
|
#else
|
||||||
CALL.X _main;
|
CALL.X _main;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(_ADI_THREADS)
|
#if !defined(_ADI_THREADS)
|
||||||
#ifndef __ADSPBF561_COREB__
|
#if !defined(__ADSPBF561_COREB__) && !defined(__ADSPBF60x_CORE1__)
|
||||||
CALL.X _exit; // passing in main's return value
|
CALL.X _exit; // passing in main's return value
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __ADSPBF561_COREB__
|
#ifdef __ADSPBF561_COREB__
|
||||||
.size __coreb_start, .-__coreb_start
|
.size __coreb_start, .-__coreb_start
|
||||||
|
#elif defined(__ADSPBF60x_CORE1__)
|
||||||
|
.size __core1_start, .-__core1_start
|
||||||
#else
|
#else
|
||||||
.size __start, .-__start
|
.size __start, .-__start
|
||||||
#endif
|
#endif
|
||||||
@ -506,10 +530,16 @@ L$done:
|
|||||||
#endif
|
#endif
|
||||||
#endif /* ADSPLPBLACKFIN */
|
#endif /* ADSPLPBLACKFIN */
|
||||||
|
|
||||||
|
#if defined(__ADSPBF561_COREB__) || defined(__ADSPBF60x_CORE1__)
|
||||||
#ifdef __ADSPBF561_COREB__
|
#ifdef __ADSPBF561_COREB__
|
||||||
.section .b.text,"ax",@progbits
|
.section .b.text,"ax",@progbits
|
||||||
.type __coreb_memset, STT_FUNC
|
.type __coreb_memset, STT_FUNC
|
||||||
__coreb_memset:
|
__coreb_memset:
|
||||||
|
#else
|
||||||
|
.section .1.text,"ax",@progbits
|
||||||
|
.type __core1_memset, STT_FUNC
|
||||||
|
__core1_memset:
|
||||||
|
#endif
|
||||||
P0 = R0 ; /* P0 = address */
|
P0 = R0 ; /* P0 = address */
|
||||||
P2 = R2 ; /* P2 = count */
|
P2 = R2 ; /* P2 = count */
|
||||||
R3 = R0 + R2; /* end */
|
R3 = R0 + R2; /* end */
|
||||||
@ -569,7 +599,11 @@ __coreb_memset:
|
|||||||
B[P0++] = R1;
|
B[P0++] = R1;
|
||||||
B[P0++] = R1;
|
B[P0++] = R1;
|
||||||
JUMP .Laligned;
|
JUMP .Laligned;
|
||||||
|
#ifdef __ADSPBF561_COREB__
|
||||||
.size __coreb_memset,.-__coreb_memset
|
.size __coreb_memset,.-__coreb_memset
|
||||||
|
#else
|
||||||
|
.size __core1_memset,.-__core1_memset
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __ADSPBF561_COREB__
|
#ifdef __ADSPBF561_COREB__
|
||||||
@ -579,6 +613,13 @@ __coreb_memset:
|
|||||||
.size L$argv_coreb, 4
|
.size L$argv_coreb, 4
|
||||||
L$argv_coreb:
|
L$argv_coreb:
|
||||||
.zero 4
|
.zero 4
|
||||||
|
#elif defined(__ADSPBF60x_CORE1__)
|
||||||
|
.section .1.bss,"aw",@progbits
|
||||||
|
.align 4
|
||||||
|
.type L$argv_core1, @object
|
||||||
|
.size L$argv_core1, 4
|
||||||
|
L$argv_core1:
|
||||||
|
.zero 4
|
||||||
#else
|
#else
|
||||||
.local L$argv
|
.local L$argv
|
||||||
.comm L$argv,4,4
|
.comm L$argv,4,4
|
||||||
|
27
libgloss/bfin/bf606.ld
Normal file
27
libgloss/bfin/bf606.ld
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* ADSP-BF606 processor (single core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||||
|
}
|
34
libgloss/bfin/bf606c0.ld
Normal file
34
libgloss/bfin/bf606c0.ld
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* Core 0 of ADSP-BF606 processor (dual core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x0
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8090000, LENGTH = 0x10000
|
||||||
|
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||||
|
}
|
36
libgloss/bfin/bf606c1.ld
Normal file
36
libgloss/bfin/bf606c1.ld
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* Core 1 of ADSP-BF606 processor (dual core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
/* These MEM_C1_* are Core A memory region with zero length.
|
||||||
|
They just provide dummy memory region to satisfy bfin-common-mc.ld. */
|
||||||
|
MEM_C1_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x0
|
||||||
|
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x10000
|
||||||
|
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||||
|
}
|
34
libgloss/bfin/bf606m.ld
Normal file
34
libgloss/bfin/bf606m.ld
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* ADSP-BF606 processor (dual core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x10000
|
||||||
|
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||||
|
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||||
|
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||||
|
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||||
|
MEM_L2_SHARED : ORIGIN = 0xC80C0000, LENGTH = 0x0
|
||||||
|
}
|
27
libgloss/bfin/bf607.ld
Normal file
27
libgloss/bfin/bf607.ld
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* ADSP-BF607 processor (single core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||||
|
}
|
34
libgloss/bfin/bf607c0.ld
Normal file
34
libgloss/bfin/bf607c0.ld
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* Core 0 of ADSP-BF607 processor (dual core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x0
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8090000, LENGTH = 0x10000
|
||||||
|
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||||
|
}
|
36
libgloss/bfin/bf607c1.ld
Normal file
36
libgloss/bfin/bf607c1.ld
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* Core 1 of ADSP-BF607 processor (dual core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
/* These MEM_C1_* are Core A memory region with zero length.
|
||||||
|
They just provide dummy memory region to satisfy bfin-common-mc.ld. */
|
||||||
|
MEM_C1_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x0
|
||||||
|
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x10000
|
||||||
|
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||||
|
}
|
34
libgloss/bfin/bf607m.ld
Normal file
34
libgloss/bfin/bf607m.ld
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* ADSP-BF607 processor (dual core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x10000
|
||||||
|
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||||
|
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||||
|
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||||
|
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||||
|
MEM_L2_SHARED : ORIGIN = 0xC80C0000, LENGTH = 0x0
|
||||||
|
}
|
27
libgloss/bfin/bf608.ld
Normal file
27
libgloss/bfin/bf608.ld
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* ADSP-BF608 processor (single core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||||
|
}
|
34
libgloss/bfin/bf608c0.ld
Normal file
34
libgloss/bfin/bf608c0.ld
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* Core 0 of ADSP-BF608 processor (dual core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x0
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8090000, LENGTH = 0x10000
|
||||||
|
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||||
|
}
|
36
libgloss/bfin/bf608c1.ld
Normal file
36
libgloss/bfin/bf608c1.ld
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* Core 1 of ADSP-BF608 processor (dual core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
/* These MEM_C1_* are Core A memory region with zero length.
|
||||||
|
They just provide dummy memory region to satisfy bfin-common-mc.ld. */
|
||||||
|
MEM_C1_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x0
|
||||||
|
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x10000
|
||||||
|
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||||
|
}
|
34
libgloss/bfin/bf608m.ld
Normal file
34
libgloss/bfin/bf608m.ld
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* ADSP-BF608 processor (dual core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x10000
|
||||||
|
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||||
|
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||||
|
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||||
|
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||||
|
MEM_L2_SHARED : ORIGIN = 0xC80C0000, LENGTH = 0x0
|
||||||
|
}
|
27
libgloss/bfin/bf609.ld
Normal file
27
libgloss/bfin/bf609.ld
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* ADSP-BF609 processor (single core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||||
|
}
|
34
libgloss/bfin/bf609c0.ld
Normal file
34
libgloss/bfin/bf609c0.ld
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* Core 0 of ADSP-BF609 processor (dual core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x0
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8090000, LENGTH = 0x10000
|
||||||
|
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||||
|
}
|
36
libgloss/bfin/bf609c1.ld
Normal file
36
libgloss/bfin/bf609c1.ld
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* Core 1 of ADSP-BF609 processor (dual core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
/* These MEM_C1_* are Core A memory region with zero length.
|
||||||
|
They just provide dummy memory region to satisfy bfin-common-mc.ld. */
|
||||||
|
MEM_C1_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x0
|
||||||
|
MEM_C1_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x0
|
||||||
|
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x10000
|
||||||
|
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||||
|
}
|
34
libgloss/bfin/bf609m.ld
Normal file
34
libgloss/bfin/bf609m.ld
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* The default linker script for standalone executables running on
|
||||||
|
* ADSP-BF609 processor (dual core).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||||
|
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||||
|
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||||
|
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||||
|
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x10000
|
||||||
|
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||||
|
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||||
|
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||||
|
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||||
|
|
||||||
|
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||||
|
MEM_L2_SHARED : ORIGIN = 0xC80C0000, LENGTH = 0x0
|
||||||
|
}
|
260
libgloss/bfin/bfin-common-mc0.ld
Normal file
260
libgloss/bfin/bfin-common-mc0.ld
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
/*
|
||||||
|
* The common part of the default linker scripts for standalone executables
|
||||||
|
* running on single core Blackfin processors.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2008 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* The default linker script, for single core blackfin standalone executables */
|
||||||
|
OUTPUT_FORMAT("elf32-bfin", "elf32-bfin",
|
||||||
|
"elf32-bfin")
|
||||||
|
OUTPUT_ARCH(bfin)
|
||||||
|
ENTRY(__start)
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
/* Read-only sections, merged into text segment: */
|
||||||
|
PROVIDE (__executable_start = 0x0); . = 0x0;
|
||||||
|
.interp : { *(.interp) }
|
||||||
|
.hash : { *(.hash) }
|
||||||
|
.dynsym : { *(.dynsym) }
|
||||||
|
.dynstr : { *(.dynstr) }
|
||||||
|
.gnu.version : { *(.gnu.version) }
|
||||||
|
.gnu.version_d : { *(.gnu.version_d) }
|
||||||
|
.gnu.version_r : { *(.gnu.version_r) }
|
||||||
|
.rel.init : { *(.rel.init) }
|
||||||
|
.rela.init : { *(.rela.init) }
|
||||||
|
.rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
|
||||||
|
.rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
|
||||||
|
.rel.fini : { *(.rel.fini) }
|
||||||
|
.rela.fini : { *(.rela.fini) }
|
||||||
|
.rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) }
|
||||||
|
.rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }
|
||||||
|
.rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
|
||||||
|
.rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
|
||||||
|
.rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
|
||||||
|
.rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
|
||||||
|
.rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
|
||||||
|
.rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
|
||||||
|
.rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
|
||||||
|
.rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
|
||||||
|
.rel.ctors : { *(.rel.ctors) }
|
||||||
|
.rela.ctors : { *(.rela.ctors) }
|
||||||
|
.rel.dtors : { *(.rel.dtors) }
|
||||||
|
.rela.dtors : { *(.rela.dtors) }
|
||||||
|
.rel.got : { *(.rel.got) }
|
||||||
|
.rela.got : { *(.rela.got) }
|
||||||
|
.rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) }
|
||||||
|
.rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) }
|
||||||
|
.rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) }
|
||||||
|
.rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) }
|
||||||
|
.rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) }
|
||||||
|
.rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) }
|
||||||
|
.rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) }
|
||||||
|
.rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) }
|
||||||
|
.rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) }
|
||||||
|
.rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
|
||||||
|
.rel.plt : { *(.rel.plt) }
|
||||||
|
.rela.plt : { *(.rela.plt) }
|
||||||
|
.l2 :
|
||||||
|
{
|
||||||
|
*(.l2 .l2.*)
|
||||||
|
} >MEM_L2 =0
|
||||||
|
.l2_shared :
|
||||||
|
{
|
||||||
|
*(.l2_shared .l2_shared.*)
|
||||||
|
} >MEM_L2_SHARED =0
|
||||||
|
.1.text :
|
||||||
|
{
|
||||||
|
*(.1.text .1.text.* .1.l1.text .1.l1.text.*)
|
||||||
|
} >MEM_C1_L1_CODE =0
|
||||||
|
.text :
|
||||||
|
{
|
||||||
|
*(.text .stub .text.* .gnu.linkonce.t.* .l1.text .l1.text.*)
|
||||||
|
KEEP (*(.text.*personality*))
|
||||||
|
/* .gnu.warning sections are handled specially by elf32.em. */
|
||||||
|
*(.gnu.warning)
|
||||||
|
} >MEM_L1_CODE =0
|
||||||
|
.init :
|
||||||
|
{
|
||||||
|
KEEP (*(.init))
|
||||||
|
} >MEM_L1_CODE =0
|
||||||
|
.plt : { *(.plt) } >MEM_L1_CODE
|
||||||
|
.fini :
|
||||||
|
{
|
||||||
|
KEEP (*(.fini))
|
||||||
|
} >MEM_L1_CODE =0
|
||||||
|
PROVIDE (__etext = .);
|
||||||
|
PROVIDE (_etext = .);
|
||||||
|
PROVIDE (etext = .);
|
||||||
|
.1.rodata : { *(.1.rodata .1.rodata.*) } >MEM_C1_L1_DATA_A
|
||||||
|
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } >MEM_L1_DATA_A
|
||||||
|
.rodata1 : { *(.rodata1) } >MEM_L1_DATA_A
|
||||||
|
.sdata2 :
|
||||||
|
{
|
||||||
|
*(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
|
||||||
|
} >MEM_L1_DATA_A
|
||||||
|
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } >MEM_L1_DATA_A
|
||||||
|
.eh_frame_hdr : { *(.eh_frame_hdr) } >MEM_L1_DATA_A
|
||||||
|
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } >MEM_L1_DATA_A
|
||||||
|
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } >MEM_L1_DATA_A
|
||||||
|
/* Adjust the address for the data segment. We want to adjust up to
|
||||||
|
the same address within the page on the next page up. */
|
||||||
|
. = ALIGN(0x1000) + (. & (0x1000 - 1));
|
||||||
|
/* Exception handling */
|
||||||
|
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } >MEM_L1_DATA_A
|
||||||
|
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } >MEM_L1_DATA_A
|
||||||
|
/* Thread Local Storage sections */
|
||||||
|
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } >MEM_L1_DATA_A
|
||||||
|
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >MEM_L1_DATA_A
|
||||||
|
.preinit_array :
|
||||||
|
{
|
||||||
|
PROVIDE_HIDDEN (___preinit_array_start = .);
|
||||||
|
KEEP (*(.preinit_array))
|
||||||
|
PROVIDE_HIDDEN (___preinit_array_end = .);
|
||||||
|
} >MEM_L1_DATA_A
|
||||||
|
.init_array :
|
||||||
|
{
|
||||||
|
PROVIDE_HIDDEN (___init_array_start = .);
|
||||||
|
KEEP (*(SORT(.init_array.*)))
|
||||||
|
KEEP (*(.init_array))
|
||||||
|
PROVIDE_HIDDEN (___init_array_end = .);
|
||||||
|
} >MEM_L1_DATA_A
|
||||||
|
.fini_array :
|
||||||
|
{
|
||||||
|
PROVIDE_HIDDEN (___fini_array_start = .);
|
||||||
|
KEEP (*(.fini_array))
|
||||||
|
KEEP (*(SORT(.fini_array.*)))
|
||||||
|
PROVIDE_HIDDEN (___fini_array_end = .);
|
||||||
|
} >MEM_L1_DATA_A
|
||||||
|
.ctors :
|
||||||
|
{
|
||||||
|
/* gcc uses crtbegin.o to find the start of
|
||||||
|
the constructors, so we make sure it is
|
||||||
|
first. Because this is a wildcard, it
|
||||||
|
doesn't matter if the user does not
|
||||||
|
actually link against crtbegin.o; the
|
||||||
|
linker won't look for a file to match a
|
||||||
|
wildcard. The wildcard also means that it
|
||||||
|
doesn't matter which directory crtbegin.o
|
||||||
|
is in. */
|
||||||
|
KEEP (*crtbegin*.o(.ctors))
|
||||||
|
/* We don't want to include the .ctor section from
|
||||||
|
the crtend.o file until after the sorted ctors.
|
||||||
|
The .ctor section from the crtend file contains the
|
||||||
|
end of ctors marker and it must be last */
|
||||||
|
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
|
||||||
|
KEEP (*(SORT(.ctors.*)))
|
||||||
|
KEEP (*(.ctors))
|
||||||
|
} >MEM_L1_DATA_A
|
||||||
|
.dtors :
|
||||||
|
{
|
||||||
|
KEEP (*crtbegin*.o(.dtors))
|
||||||
|
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
|
||||||
|
KEEP (*(SORT(.dtors.*)))
|
||||||
|
KEEP (*(.dtors))
|
||||||
|
} >MEM_L1_DATA_A
|
||||||
|
.jcr : { KEEP (*(.jcr)) } >MEM_L1_DATA_A
|
||||||
|
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } >MEM_L1_DATA_A
|
||||||
|
.dynamic : { *(.dynamic) } >MEM_L1_DATA_A
|
||||||
|
.1.data :
|
||||||
|
{
|
||||||
|
*(.1.data .1.data.* .1.l1.data .1.l1.data.*)
|
||||||
|
} >MEM_C1_L1_DATA_A
|
||||||
|
.data :
|
||||||
|
{
|
||||||
|
*(.data .data.* .gnu.linkonce.d.* .l1.data .l1.data.*)
|
||||||
|
KEEP (*(.gnu.linkonce.d.*personality*))
|
||||||
|
SORT(CONSTRUCTORS)
|
||||||
|
} >MEM_L1_DATA_A
|
||||||
|
.data1 : { *(.data1) } >MEM_L1_DATA_A
|
||||||
|
.got : { *(.got.plt) *(.got) } >MEM_L1_DATA_A
|
||||||
|
/* We want the small data sections together, so single-instruction offsets
|
||||||
|
can access them all, and initialized data all before uninitialized, so
|
||||||
|
we can shorten the on-disk segment size. */
|
||||||
|
.sdata :
|
||||||
|
{
|
||||||
|
*(.sdata .sdata.* .gnu.linkonce.s.*)
|
||||||
|
} >MEM_L1_DATA_A
|
||||||
|
__edata = .; PROVIDE (_edata = .);
|
||||||
|
.1.sbss :
|
||||||
|
{
|
||||||
|
__core1_bss_start = .;
|
||||||
|
} >MEM_C1_L1_DATA_A
|
||||||
|
.1.bss :
|
||||||
|
{
|
||||||
|
*(.1.bss .1.bss.*)
|
||||||
|
__core1_bss_end = .;
|
||||||
|
} >MEM_C1_L1_DATA_A
|
||||||
|
.sbss :
|
||||||
|
{
|
||||||
|
__bss_start = .;
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
} >MEM_L1_DATA_A
|
||||||
|
.bss :
|
||||||
|
{
|
||||||
|
*(.dynbss)
|
||||||
|
*(.bss .bss.* .gnu.linkonce.1.*)
|
||||||
|
*(COMMON)
|
||||||
|
/* Align here to ensure that the .bss section occupies space up to
|
||||||
|
_end. Align after .bss to ensure correct alignment even if the
|
||||||
|
.bss section disappears because there are no input sections.
|
||||||
|
FIXME: Why do we need it? When there is no .bss section, we don't
|
||||||
|
pad the .data section. */
|
||||||
|
. = ALIGN(. != 0 ? 32 / 8 : 1);
|
||||||
|
__bss_end = .;
|
||||||
|
} >MEM_L1_DATA_A
|
||||||
|
. = ALIGN(32 / 8);
|
||||||
|
. = ALIGN(32 / 8);
|
||||||
|
__end = .; PROVIDE (_end = .);
|
||||||
|
/* Stabs debugging sections. */
|
||||||
|
.stab 0 : { *(.stab) }
|
||||||
|
.stabstr 0 : { *(.stabstr) }
|
||||||
|
.stab.excl 0 : { *(.stab.excl) }
|
||||||
|
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||||
|
.stab.index 0 : { *(.stab.index) }
|
||||||
|
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
/* DWARF debug sections.
|
||||||
|
Symbols in the DWARF debugging sections are relative to the beginning
|
||||||
|
of the section so we begin them at 0. */
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
|
||||||
|
__stack_end = ORIGIN(MEM_L1_SCRATCH) + LENGTH(MEM_L1_SCRATCH);
|
||||||
|
__core1_stack_end = ORIGIN(MEM_C1_L1_SCRATCH) + LENGTH(MEM_C1_L1_SCRATCH);
|
||||||
|
|
||||||
|
/DISCARD/ : { *(.note.GNU-stack) }
|
||||||
|
}
|
4153
libgloss/bfin/include/cdefBF606.h
Normal file
4153
libgloss/bfin/include/cdefBF606.h
Normal file
File diff suppressed because it is too large
Load Diff
4153
libgloss/bfin/include/cdefBF607.h
Normal file
4153
libgloss/bfin/include/cdefBF607.h
Normal file
File diff suppressed because it is too large
Load Diff
4419
libgloss/bfin/include/cdefBF608.h
Normal file
4419
libgloss/bfin/include/cdefBF608.h
Normal file
File diff suppressed because it is too large
Load Diff
4419
libgloss/bfin/include/cdefBF609.h
Normal file
4419
libgloss/bfin/include/cdefBF609.h
Normal file
File diff suppressed because it is too large
Load Diff
17724
libgloss/bfin/include/defBF606.h
Normal file
17724
libgloss/bfin/include/defBF606.h
Normal file
File diff suppressed because it is too large
Load Diff
17724
libgloss/bfin/include/defBF607.h
Normal file
17724
libgloss/bfin/include/defBF607.h
Normal file
File diff suppressed because it is too large
Load Diff
19426
libgloss/bfin/include/defBF608.h
Normal file
19426
libgloss/bfin/include/defBF608.h
Normal file
File diff suppressed because it is too large
Load Diff
19426
libgloss/bfin/include/defBF609.h
Normal file
19426
libgloss/bfin/include/defBF609.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -108,6 +108,14 @@
|
|||||||
#include <cdefBF549M.h>
|
#include <cdefBF549M.h>
|
||||||
#elif defined (__ADSPBF592A__)
|
#elif defined (__ADSPBF592A__)
|
||||||
#include <cdefBF592-A.h>
|
#include <cdefBF592-A.h>
|
||||||
|
#elif defined (__ADSPBF606__)
|
||||||
|
#include <cdefBF606.h>
|
||||||
|
#elif defined (__ADSPBF607__)
|
||||||
|
#include <cdefBF607.h>
|
||||||
|
#elif defined (__ADSPBF608__)
|
||||||
|
#include <cdefBF608.h>
|
||||||
|
#elif defined (__ADSPBF609__)
|
||||||
|
#include <cdefBF609.h>
|
||||||
#else
|
#else
|
||||||
#error Processor Type Not Supported
|
#error Processor Type Not Supported
|
||||||
#endif
|
#endif
|
||||||
@ -203,6 +211,14 @@
|
|||||||
#include <defBF549M.h>
|
#include <defBF549M.h>
|
||||||
#elif defined (__ADSPBF592A__)
|
#elif defined (__ADSPBF592A__)
|
||||||
#include <defBF592-A.h>
|
#include <defBF592-A.h>
|
||||||
|
#elif defined (__ADSPBF606__)
|
||||||
|
#include <defBF606.h>
|
||||||
|
#elif defined (__ADSPBF607__)
|
||||||
|
#include <defBF607.h>
|
||||||
|
#elif defined (__ADSPBF608__)
|
||||||
|
#include <defBF608.h>
|
||||||
|
#elif defined (__ADSPBF609__)
|
||||||
|
#include <defBF609.h>
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#error Processor Type Not Supported
|
#error Processor Type Not Supported
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
*
|
*
|
||||||
* anomaly_macros_rtl.h : $Revision$
|
* anomaly_macros_rtl.h : $Revision$
|
||||||
*
|
*
|
||||||
* (c) Copyright 2005-2009 Analog Devices, Inc. All rights reserved.
|
* (c) Copyright 2005-2011 Analog Devices, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* This file defines macros used within the run-time libraries to enable
|
* This file defines macros used within the run-time libraries to enable
|
||||||
* certain anomaly workarounds for the appropriate chips and silicon
|
* certain anomaly workarounds for the appropriate chips and silicon
|
||||||
@ -33,7 +33,6 @@
|
|||||||
#ifdef _MISRA_RULES
|
#ifdef _MISRA_RULES
|
||||||
#pragma diag(push)
|
#pragma diag(push)
|
||||||
#pragma diag(suppress:misra_rule_2_4:"Assembly code in comment used to illustrate anomalous behaviour")
|
#pragma diag(suppress:misra_rule_2_4:"Assembly code in comment used to illustrate anomalous behaviour")
|
||||||
#pragma diag(suppress:misra_rule_19_4:"The definition of WA_05000204_CHECK_AVOID_FOR_REV cannot be parenthasised as it would fail when used in assembly library code.")
|
|
||||||
#endif /* _MISRA_RULES */
|
#endif /* _MISRA_RULES */
|
||||||
|
|
||||||
#if !defined(__SILICON_REVISION__)
|
#if !defined(__SILICON_REVISION__)
|
||||||
@ -41,308 +40,6 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0096 - PREFETCH, FLUSH, and FLUSHINV must be followed by a CSYNC
|
|
||||||
**
|
|
||||||
** ADSP-BF531/2/3 - revs 0.0-0.1,
|
|
||||||
** ADSP-BF561 - revs 0.0-0.1 (not supported in VDSP++ 4.0)
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
#define WA_05000096 \
|
|
||||||
((defined(__ADSPBF531__) || \
|
|
||||||
defined(__ADSPBF532__) || \
|
|
||||||
defined(__ADSPBF533__) || \
|
|
||||||
defined(__ADSPBF561__)) && \
|
|
||||||
((defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0xffff || __SILICON_REVISION__ <= 0x1)) || \
|
|
||||||
defined(__FORCE_LEGACY_WORKAROUNDS__)))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0109 - Reserved bits in SYSCFG register not set at power on
|
|
||||||
**
|
|
||||||
** ADSP-BF531/2/3 - revs 0.0-0.2 (fixed 0.3)
|
|
||||||
** ADSP-BF561 - revs 0.0-0.2 (fixed 0.3. 0.0, 0.1 not supported in VDSP++ 4.0)
|
|
||||||
**
|
|
||||||
** Changes to start code.
|
|
||||||
*/
|
|
||||||
#define WA_05000109 \
|
|
||||||
((defined(__ADSPBF531__) || \
|
|
||||||
defined(__ADSPBF532__) || \
|
|
||||||
defined(__ADSPBF533__) || \
|
|
||||||
defined(__ADSPBF561__)) && \
|
|
||||||
((defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0xffff || __SILICON_REVISION__ <= 0x2)) || \
|
|
||||||
defined(__FORCE_LEGACY_WORKAROUNDS__)))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0123 - DTEST_COMMAND initiated memory access may be incorrect if
|
|
||||||
** data cache or DMA is active.
|
|
||||||
**
|
|
||||||
** ADSP-BF531/2/3 - revs 0.1-0.2 (fixed 0.3)
|
|
||||||
** ADSP-BF561 - revs 0.0-0.2 (0.0 and 0.1 not supported in VDSP++ 4.0)
|
|
||||||
*/
|
|
||||||
#define WA_05000123 \
|
|
||||||
((defined(__ADSPBF531__) || \
|
|
||||||
defined(__ADSPBF532__) || \
|
|
||||||
defined(__ADSPBF533__) || \
|
|
||||||
defined(__ADSPBF561__)) && \
|
|
||||||
((defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0xffff || __SILICON_REVISION__ <= 0x2)) || \
|
|
||||||
defined(__FORCE_LEGACY_WORKAROUNDS__)))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0125 - Erroneous exception when enabling cache
|
|
||||||
**
|
|
||||||
** ADSP-BF531/2/3 - revs 0.1-0.2 (fixed 0.3)
|
|
||||||
** ADSP-BF561 - revs 0.0-0.2 (0.0 and 0.1 not supported in VDSP++ 4.0)
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
#define WA_05000125 \
|
|
||||||
((defined(__ADSPBF531__) || \
|
|
||||||
defined(__ADSPBF532__) || \
|
|
||||||
defined(__ADSPBF533__) || \
|
|
||||||
defined(__ADSPBF561__)) && \
|
|
||||||
((defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0xffff || __SILICON_REVISION__ <= 0x2)) || \
|
|
||||||
defined(__FORCE_LEGACY_WORKAROUNDS__)))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0127 - Signbits instruction not functional under certain conditions
|
|
||||||
**
|
|
||||||
** ADSP-BF561 - from rev 0.0 (not yet fixed)
|
|
||||||
**
|
|
||||||
** The SIGNBITS instruction requires a NOP before it if one of its operands
|
|
||||||
** is defined in the preceding instruction.
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
#define WA_05000127 \
|
|
||||||
(defined(__SILICON_REVISION__) && defined(__ADSPBF561__))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0137 - DMEM_CONTROL<12> is not set on Reset
|
|
||||||
**
|
|
||||||
** ADSP-BF531/2/3 - revs 0.0-0.2 (fixed 0.3)
|
|
||||||
**
|
|
||||||
** Changes to start code.
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
#define WA_05000137 \
|
|
||||||
((defined(__ADSPBF531__) || \
|
|
||||||
defined(__ADSPBF532__) || \
|
|
||||||
defined(__ADSPBF533__)) && \
|
|
||||||
((defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0xffff || __SILICON_REVISION__ <= 0x2)) || \
|
|
||||||
defined(__FORCE_LEGACY_WORKAROUNDS__)))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0158 - "Boot fails when data cache enabled: Data from a Data Cache
|
|
||||||
** fill can be corrupted after or during instruction DMA if certain core
|
|
||||||
** stalls exist"
|
|
||||||
**
|
|
||||||
** Impacted:
|
|
||||||
** BF533/3/1 : 0.0-0.4 (fixed 0.5)
|
|
||||||
**
|
|
||||||
** The workaround we have only works for si-revisions >= 0.3. No workaround for
|
|
||||||
** ealier revisions.
|
|
||||||
*/
|
|
||||||
#define WA_05000158 \
|
|
||||||
((defined(__ADSPBF531__) || \
|
|
||||||
defined(__ADSPBF532__) || \
|
|
||||||
defined(__ADSPBF533__)) && \
|
|
||||||
((defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0xffff || \
|
|
||||||
(__SILICON_REVISION__ >= 0x3 && \
|
|
||||||
__SILICON_REVISION__ < 0x5))) || \
|
|
||||||
defined(__FORCE_LEGACY_WORKAROUNDS__)))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0162 - DMEM_CONTROL<12> is not set on Reset
|
|
||||||
**
|
|
||||||
** ADSP-BF561 - revs 0.0-0.2 (fixed 0.3)
|
|
||||||
**
|
|
||||||
** Changes to start code.
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
#define WA_05000162 \
|
|
||||||
(defined(__ADSPBF561__) && \
|
|
||||||
((defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0xffff || __SILICON_REVISION__ <= 0x2)) || \
|
|
||||||
defined(__FORCE_LEGACY_WORKAROUNDS__)))
|
|
||||||
|
|
||||||
/* 05-00-0198 - System MMR accesses may fail when stalled by preceding memory
|
|
||||||
** read.
|
|
||||||
**
|
|
||||||
** Impacted:
|
|
||||||
** ADSP-BF531 - rev 0.1-0.4 (fixed 0.5)
|
|
||||||
** ADSP-BF532 - rev 0.1-0.4 (fixed 0.5)
|
|
||||||
** ADSP-BF533 - rev 0.1-0.4 (fixed 0.5)
|
|
||||||
** ADSP-BF534 - rev 0.0 (fixed 0.1)
|
|
||||||
** ADSP-BF536 - rev 0.0 (fixed 0.1)
|
|
||||||
** ADSP-BF537 - rev 0.0 (fixed 0.1)
|
|
||||||
** ADSP-BF561 - rev 0.2-0.3 (fixed 0.4)
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
#define WA_05000198 \
|
|
||||||
(((defined(__ADSPBF531__) || \
|
|
||||||
defined(__ADSPBF532__) || \
|
|
||||||
defined(__ADSPBF533__)) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x4 || __SILICON_REVISION__ == 0xffff))) || \
|
|
||||||
((defined(__ADSPBF534__) || \
|
|
||||||
defined(__ADSPBF536__) || \
|
|
||||||
defined(__ADSPBF537__) || \
|
|
||||||
defined(__ADSPBF539__)) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0x0 || __SILICON_REVISION__ == 0xffff))) || \
|
|
||||||
(defined(__ADSPBF561__) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x3 || __SILICON_REVISION__ == 0xffff))))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0199 - Current DMA Address Shows Wrong Value During Carry Fix
|
|
||||||
**
|
|
||||||
** Impacted:
|
|
||||||
** ADSP-BF53[123] - rev 0.0-0.3 (fixed 0.4)
|
|
||||||
** ADSP-BF53[89] - rev 0.0-0.3 (fixed 0.4)
|
|
||||||
** ADSP-BF561 - rev 0.0-0.3 (fixed 0.4)
|
|
||||||
**
|
|
||||||
** Use by System Services/Device Drivers.
|
|
||||||
*/
|
|
||||||
#define WA_05000199 \
|
|
||||||
((defined(__ADSPBF533_FAMILY__) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x3 || __SILICON_REVISION__ == 0xffff))) || \
|
|
||||||
(defined(__ADSPBF538_FAMILY__) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x3 || __SILICON_REVISION__ == 0xffff))) || \
|
|
||||||
(defined(__ADSPBF561__) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x3 || __SILICON_REVISION__ == 0xffff))))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0204 - "Incorrect data read with write-through cache and
|
|
||||||
** allocate cache lines on reads only mode.
|
|
||||||
**
|
|
||||||
** This problem is cache related with high speed clocks. It apparently does
|
|
||||||
** not impact BF531 and BF532 because they cannot run at high enough clock
|
|
||||||
** to cause the anomaly. We build libs for BF532 though so that means we will
|
|
||||||
** need to do the workaround for BF532 and BF531 also.
|
|
||||||
**
|
|
||||||
** Also the 0.3 to 0.4 revision is not an inflexion for libs BF532 and BF561.
|
|
||||||
** This means a RT check may be required to avoid doing the WA for 0.4.
|
|
||||||
**
|
|
||||||
** Impacted:
|
|
||||||
** BF533 - 0.0-0.3 (fixed 0.4)
|
|
||||||
** BF534 - 0.0 (fixed 0.1)
|
|
||||||
** BF536 - 0.0 (fixed 0.1)
|
|
||||||
** BF537 - 0.0 (fixed 0.1)
|
|
||||||
** BF538 - 0.0 (fixed 0.1)
|
|
||||||
** BF539 - 0.0 (fixed 0.1)
|
|
||||||
** BF561 - 0.0-0.3 (fixed 0.4)
|
|
||||||
*/
|
|
||||||
#if defined(__ADI_LIB_BUILD__)
|
|
||||||
# define __BUILDBF53123 1 /* building one single library for BF531/2/3 */
|
|
||||||
#else
|
|
||||||
# define __BUILDBF53123 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define WA_05000204 \
|
|
||||||
((((__BUILDBF53123==1 && \
|
|
||||||
(defined(__ADSPBF531__) || defined(__ADSPBF532__))) || \
|
|
||||||
(defined(__ADSPBF533__) || defined(__ADSPBF561__))) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0xffff || __SILICON_REVISION__ <= 0x3))) || \
|
|
||||||
((defined(__ADSPBF534__) || defined(__ADSPBF536__) || \
|
|
||||||
defined(__ADSPBF537__) || defined(__ADSPBF538__) || \
|
|
||||||
defined(__ADSPBF539__)) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0xffff || __SILICON_REVISION__ == 0x0))))
|
|
||||||
|
|
||||||
#if ((defined(__ADSPBF531__) || defined(__ADSPBF532__) || \
|
|
||||||
defined(__ADSPBF533__) || defined(__ADSPBF561__)) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0xffff || __SILICON_REVISION__ == 0x3)))
|
|
||||||
/* check at RT for 0.4 revs when doing 204 workaround */
|
|
||||||
# define WA_05000204_CHECK_AVOID_FOR_REV <=3
|
|
||||||
#elif ((defined(__ADSPBF534__) || defined(__ADSPBF536__) || \
|
|
||||||
defined(__ADSPBF537__) || defined(__ADSPBF538__) || \
|
|
||||||
defined(__ADSPBF539__)) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0xffff || __SILICON_REVISION__ == 0x0)))
|
|
||||||
/* check at RT for 0.4 revs when doing 204 workaround */
|
|
||||||
# define WA_05000204_CHECK_AVOID_FOR_REV <1
|
|
||||||
#else
|
|
||||||
/* do not check at RT for 0.4 revs when doing 204 workaround */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0209 - Speed Path in Computational Unit Affects Certain Instructions
|
|
||||||
**
|
|
||||||
** ADSP-BF531/2/3 - revs 0.0 - 0.3 (fixed in 0.4)
|
|
||||||
** ADSP-BF534/6/7 - rev 0.0 (fixed in 0.1)
|
|
||||||
** ADSP-BF538/9 - rev 0.0 (fixed in 0.1)
|
|
||||||
** ADSP-BF561 - revs 0.0 - 0.3 (fixed in 0.4)
|
|
||||||
**
|
|
||||||
** SIGNBITS, EXTRACT, DEPOSIT, EXPADJ require a NOP before them if
|
|
||||||
** one of their operands is defined in the preceding instruction.
|
|
||||||
*/
|
|
||||||
#define WA_05000209 \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(((defined(__ADSPBF531__) || \
|
|
||||||
defined(__ADSPBF532__) || \
|
|
||||||
defined(__ADSPBF533__)) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x3 || __SILICON_REVISION__ == 0xffff)) || \
|
|
||||||
((defined(__ADSPBF534__) || \
|
|
||||||
defined(__ADSPBF536__) || \
|
|
||||||
defined(__ADSPBF537__) || \
|
|
||||||
defined(__ADSPBF538__) || \
|
|
||||||
defined(__ADSPBF539__)) && \
|
|
||||||
(__SILICON_REVISION__ == 0x0 || __SILICON_REVISION__ == 0xffff)) || \
|
|
||||||
((defined(__ADSPBF561__)) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x3 || __SILICON_REVISION__ == 0xffff))))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0212 - PORTx_FER, PORT_MUX Registers Do Not accept "writes" correctly
|
|
||||||
**
|
|
||||||
** Impacted:
|
|
||||||
** ADSP-BF53[467] - rev 0.0 (fixed 0.1)
|
|
||||||
**
|
|
||||||
** Use by System Services/Device Drivers.
|
|
||||||
*/
|
|
||||||
#define WA_05000212 \
|
|
||||||
(defined(__ADSPBF537_FAMILY__) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ == 0x0 || __SILICON_REVISION__ == 0xffff)))
|
|
||||||
|
|
||||||
|
|
||||||
/* 050000244 - "If I-Cache Is On, CSYNC/SSYNC/IDLE Around Change of Control
|
|
||||||
** Causes Failures"
|
|
||||||
**
|
|
||||||
** When instruction cache is enabled, a CSYNC/SSYNC/IDLE around a
|
|
||||||
** change of control (including asynchronous exceptions/interrupts)
|
|
||||||
** can cause unpredictable results.
|
|
||||||
**
|
|
||||||
** This macro is used by System Services/Device Drivers.
|
|
||||||
**
|
|
||||||
** Impacted:
|
|
||||||
**
|
|
||||||
** BF531/2/3 - 0.0-0.4 (fixed 0.5)
|
|
||||||
** BF534/6/7 - 0.0-0.2 (fixed 0.3)
|
|
||||||
** BF534/8/9 - 0.0-0.1 (fixed 0.2)
|
|
||||||
** BF561 - 0.0-0.3 (fixed 0.5)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define WA_05000244 \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
((defined(__ADSPBF533_FAMILY__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x4 || __SILICON_REVISION__ == 0xffff)) || \
|
|
||||||
(defined(__ADSPBF537_FAMILY__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x2 || __SILICON_REVISION__ == 0xffff)) || \
|
|
||||||
(defined(__ADSPBF538_FAMILY__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x1 || __SILICON_REVISION__ == 0xffff)) || \
|
|
||||||
(defined(__ADSPBF561_FAMILY__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x3 || __SILICON_REVISION__ == 0xffff))))
|
|
||||||
|
|
||||||
|
|
||||||
/* 050000245 - "False Hardware Error from an Access in the Shadow of a
|
/* 050000245 - "False Hardware Error from an Access in the Shadow of a
|
||||||
** Conditional Branch"
|
** Conditional Branch"
|
||||||
**
|
**
|
||||||
@ -354,118 +51,10 @@
|
|||||||
**
|
**
|
||||||
** This is for all Blackfin LP parts.
|
** This is for all Blackfin LP parts.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define WA_05000245 \
|
#define WA_05000245 \
|
||||||
(defined(__ADSPLPBLACKFIN__) && defined(__SILICON_REVISION__))
|
(defined(__ADSPLPBLACKFIN__) && defined(__SILICON_REVISION__))
|
||||||
|
|
||||||
|
|
||||||
/* 050000248 - "TESTSET Operation Forces Stall on the Other Core "
|
|
||||||
**
|
|
||||||
** Use by System Services/Device Drivers.
|
|
||||||
**
|
|
||||||
** Succeed any testset to L2 with a write to L2 to avoid the other core
|
|
||||||
** stalling. This must be atomic, as an interrupt between the two would
|
|
||||||
** cause the lockout to occur until the interrupt is fully serviced.
|
|
||||||
**
|
|
||||||
** This macro is used by System Services/Device Drivers.
|
|
||||||
**
|
|
||||||
** Impacted:
|
|
||||||
**
|
|
||||||
** BF561 - 0.0-0.3 (fixed 0.5)
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define WA_05000248 \
|
|
||||||
(defined (__SILICON_REVISION__) && defined(__ADSPBF561_FAMILY__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x3 || __SILICON_REVISION__ == 0xffff))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0258 - "Instruction Cache is corrupted when bit 9 and 12 of
|
|
||||||
* the ICPLB Data registers differ"
|
|
||||||
*
|
|
||||||
* When bit 9 and bit 12 of the ICPLB Data MMR differ, the cache may
|
|
||||||
* not update properly. For example, for a particular cache line,
|
|
||||||
* the cache tag may be valid while the contents of that cache line
|
|
||||||
* are not present in the cache.
|
|
||||||
*
|
|
||||||
* Impacted:
|
|
||||||
*
|
|
||||||
* BF531/2/3 - 0.0-0.4 (fixed 0.5)
|
|
||||||
* BF534/6/7/8/9 - 0.0-0.2 (fixed 0.3)
|
|
||||||
* BF561 - 0.0-0.4 (fixed 0.5)
|
|
||||||
* BF566 - 0.0-0.1 (fixed 0.2)
|
|
||||||
* BF535/AD6532/AD6900 - all revs
|
|
||||||
*/
|
|
||||||
#define WA_05000258 \
|
|
||||||
(((defined(__ADSPBF531__) || \
|
|
||||||
defined(__ADSPBF532__) || \
|
|
||||||
defined(__ADSPBF533__)) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x4 || \
|
|
||||||
__SILICON_REVISION__ == 0xffff))) || \
|
|
||||||
((defined(__ADSPBF534__) || \
|
|
||||||
defined(__ADSPBF536__) || \
|
|
||||||
defined(__ADSPBF537__) || \
|
|
||||||
defined(__ADSPBF538__) || \
|
|
||||||
defined(__ADSPBF539__)) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x2 || \
|
|
||||||
__SILICON_REVISION__ == 0xffff))) || \
|
|
||||||
(defined(__ADSPBF561__) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x4 || \
|
|
||||||
__SILICON_REVISION__ == 0xffff))) || \
|
|
||||||
(defined(__ADSPBF566__) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x1 || \
|
|
||||||
__SILICON_REVISION__ == 0xffff))) || \
|
|
||||||
(!defined(__ADSPLPBLACKFIN__) && defined(__SILICON_REVISION__)))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0261 - "DCPLB_FAULT_ADDR MMR may be corrupted".
|
|
||||||
* The DCPLB_FAULT_ADDR MMR may contain the fault address of a
|
|
||||||
* aborted memory access which generated both a protection exception
|
|
||||||
* and a stall.
|
|
||||||
*
|
|
||||||
* We work around this by initially ignoring a DCPLB miss exception
|
|
||||||
* on the assumption that the faulting address might be invalid.
|
|
||||||
* We return without servicing. The exception will be raised
|
|
||||||
* again when the faulting instruction is re-executed. The fault
|
|
||||||
* address is correct this time round so the miss exception can
|
|
||||||
* be serviced as normal. The only complication is we have to
|
|
||||||
* ensure that we are about to service the same miss rather than
|
|
||||||
* a miss raised within a higher-priority interrupt handler, where
|
|
||||||
* the fault address could again be invalid. We therefore record
|
|
||||||
* the last seen RETX and only service an exception when RETX and
|
|
||||||
* the last seen RETX are equal.
|
|
||||||
*
|
|
||||||
* This problem impacts:
|
|
||||||
* BF531/2/3 - rev 0.0-0.4 (fixed 0.5)
|
|
||||||
* BF534/6/7/8/9 - rev 0.0-0.2 (fixed 0.3)
|
|
||||||
* BF561 - rev 0.0-0.4 (fixed 0.5)
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define WA_05000261 \
|
|
||||||
(((defined(__ADSPBF531__) || \
|
|
||||||
defined(__ADSPBF532__) || \
|
|
||||||
defined(__ADSPBF533__)) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x4 || \
|
|
||||||
__SILICON_REVISION__ == 0xffff))) || \
|
|
||||||
((defined(__ADSPBF534__) || \
|
|
||||||
defined(__ADSPBF536__) || \
|
|
||||||
defined(__ADSPBF537__) || \
|
|
||||||
defined(__ADSPBF538__) || \
|
|
||||||
defined(__ADSPBF539__)) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x2 || \
|
|
||||||
__SILICON_REVISION__ == 0xffff))) || \
|
|
||||||
(defined(__ADSPBF561__) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x4 || \
|
|
||||||
__SILICON_REVISION__ == 0xffff))))
|
|
||||||
|
|
||||||
/* 05-00-0229 - "SPI Slave Boot Mode Modifies Registers".
|
/* 05-00-0229 - "SPI Slave Boot Mode Modifies Registers".
|
||||||
* When the SPI slave boot completes, the final DMA IRQ is cleared
|
* When the SPI slave boot completes, the final DMA IRQ is cleared
|
||||||
* but the DMA5_CONFIG and SPI_CTL registers are not reset to their
|
* but the DMA5_CONFIG and SPI_CTL registers are not reset to their
|
||||||
@ -478,13 +67,13 @@
|
|||||||
*
|
*
|
||||||
* This problem impacts all revisions of ADSP-BF531/2/3/8/9
|
* This problem impacts all revisions of ADSP-BF531/2/3/8/9
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define WA_05000229 \
|
#define WA_05000229 \
|
||||||
(defined(__ADSPBLACKFIN__) && defined (__SILICON_REVISION__) && \
|
(defined(__ADSPBLACKFIN__) && defined (__SILICON_REVISION__) && \
|
||||||
(defined(__ADSPBF531__) || defined(__ADSPBF532__) || \
|
(defined(__ADSPBF531__) || defined(__ADSPBF532__) || \
|
||||||
defined(__ADSPBF533__) || defined(__ADSPBF538__) || \
|
defined(__ADSPBF533__) || defined(__ADSPBF538__) || \
|
||||||
defined(__ADSPBF539__)))
|
defined(__ADSPBF539__)))
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0283 - "A system MMR write is stalled indefinitely when killed in a
|
/* 05-00-0283 - "A system MMR write is stalled indefinitely when killed in a
|
||||||
* particular stage".
|
* particular stage".
|
||||||
*
|
*
|
||||||
@ -505,7 +94,6 @@
|
|||||||
* we have to enable this workaround for the 534 0.3 libraries (see bottom
|
* we have to enable this workaround for the 534 0.3 libraries (see bottom
|
||||||
* two lines).
|
* two lines).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define WA_05000283 \
|
#define WA_05000283 \
|
||||||
(defined (__SILICON_REVISION__) && \
|
(defined (__SILICON_REVISION__) && \
|
||||||
(((defined(__ADSPBF531__) || \
|
(((defined(__ADSPBF531__) || \
|
||||||
@ -541,7 +129,6 @@
|
|||||||
|
|
||||||
|
|
||||||
/* 05-00-0312 - Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers
|
/* 05-00-0312 - Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers
|
||||||
|
|
||||||
** Are Interrupted
|
** Are Interrupted
|
||||||
**
|
**
|
||||||
** Impacted:
|
** Impacted:
|
||||||
@ -555,14 +142,14 @@
|
|||||||
*/
|
*/
|
||||||
#define WA_05000312 \
|
#define WA_05000312 \
|
||||||
(defined(__SILICON_REVISION__) && \
|
(defined(__SILICON_REVISION__) && \
|
||||||
(defined(__ADSPBF533_FAMILY__) && \
|
((defined(__ADSPBF533_FAMILY__) && \
|
||||||
(__SILICON_REVISION__ <= 0x5 || __SILICON_REVISION__ == 0xffff)) || \
|
(__SILICON_REVISION__ <= 0x5 || __SILICON_REVISION__ == 0xffff)) || \
|
||||||
(defined(__ADSPBF537_FAMILY__)) || \
|
(defined(__ADSPBF537_FAMILY__)) || \
|
||||||
(defined(__ADSPBF538_FAMILY__) && \
|
(defined(__ADSPBF538_FAMILY__) && \
|
||||||
(__SILICON_REVISION__ <= 0x4 || __SILICON_REVISION__ == 0xffff)) || \
|
(__SILICON_REVISION__ <= 0x4 || __SILICON_REVISION__ == 0xffff)) || \
|
||||||
(defined(__ADSPBF548_FAMILY__) && \
|
(defined(__ADSPBF548_FAMILY__) && \
|
||||||
(__SILICON_REVISION__ == 0x0 || __SILICON_REVISION__ == 0xffff)) || \
|
(__SILICON_REVISION__ == 0x0 || __SILICON_REVISION__ == 0xffff)) || \
|
||||||
(defined(__ADSPBF561_FAMILY__)))
|
(defined(__ADSPBF561_FAMILY__))))
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0323 - Erroneous Flag (GPIO) Pin Operations under Specific Sequences
|
/* 05-00-0323 - Erroneous Flag (GPIO) Pin Operations under Specific Sequences
|
||||||
@ -602,33 +189,19 @@
|
|||||||
** BF523/5/7 - 0.0-0.1 (fixed in 0.2)
|
** BF523/5/7 - 0.0-0.1 (fixed in 0.2)
|
||||||
**
|
**
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define WA_05000371 \
|
#define WA_05000371 \
|
||||||
(defined(__SILICON_REVISION__) && \
|
(defined(__SILICON_REVISION__) && \
|
||||||
(defined(__ADSPBF533_FAMILY__) && \
|
((defined(__ADSPBF533_FAMILY__) && \
|
||||||
(__SILICON_REVISION__ <= 0x5 || __SILICON_REVISION__ == 0xffff)) || \
|
(__SILICON_REVISION__ <= 0x5 || __SILICON_REVISION__ == 0xffff)) || \
|
||||||
(defined(__ADSPBF537_FAMILY__) && \
|
(defined(__ADSPBF537_FAMILY__) && \
|
||||||
(__SILICON_REVISION__ <= 0x3 || __SILICON_REVISION__ == 0xffff)) || \
|
(__SILICON_REVISION__ <= 0x3 || __SILICON_REVISION__ == 0xffff)) || \
|
||||||
(defined(__ADSPBF538_FAMILY__) && \
|
(defined(__ADSPBF538_FAMILY__) && \
|
||||||
(__SILICON_REVISION__ <= 0x4 || __SILICON_REVISION__ == 0xffff)) || \
|
(__SILICON_REVISION__ <= 0x4 || __SILICON_REVISION__ == 0xffff)) || \
|
||||||
(defined(__ADSPBF548_FAMILY__) && \
|
(defined(__ADSPBF548_FAMILY__) && \
|
||||||
(__SILICON_REVISION__ <= 0x1 || __SILICON_REVISION__ == 0xffff)) || \
|
(__SILICON_REVISION__ <= 0x1 || __SILICON_REVISION__ == 0xffff)) || \
|
||||||
(defined(__ADSPBF527_FAMILY__) && \
|
(defined(__ADSPBF527_FAMILY__) && \
|
||||||
(__SILICON_REVISION__ <= 0x1 || __SILICON_REVISION__ == 0xffff)) || \
|
(__SILICON_REVISION__ <= 0x1 || __SILICON_REVISION__ == 0xffff)) || \
|
||||||
(defined(__ADSPBF561__) || defined(__ADSPBF566__)))
|
(defined(__ADSPBF561__) || defined(__ADSPBF566__))))
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0380 - Data Read From L3 Memory by USB DMA May be Corrupted
|
|
||||||
**
|
|
||||||
** Impacted:
|
|
||||||
** ADSP-BF52[357] - rev 0.0-0.1 (fixed 0.2)
|
|
||||||
**
|
|
||||||
** Use by System Services/Device Drivers.
|
|
||||||
*/
|
|
||||||
#define WA_05000380 \
|
|
||||||
(defined(__ADSPBF527_FAMILY__) && \
|
|
||||||
(defined(__SILICON_REVISION__) && \
|
|
||||||
(__SILICON_REVISION__ <= 0x1 || __SILICON_REVISION__ == 0xffff)))
|
|
||||||
|
|
||||||
|
|
||||||
/* 05-00-0412 - "TESTSET Instruction Causes Data Corruption with Writeback Data
|
/* 05-00-0412 - "TESTSET Instruction Causes Data Corruption with Writeback Data
|
||||||
@ -654,7 +227,6 @@
|
|||||||
* BF561/6 - rev 0.0-0.5
|
* BF561/6 - rev 0.0-0.5
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define WA_05000412 \
|
#define WA_05000412 \
|
||||||
(defined (__SILICON_REVISION__) && defined(__ADSPBF561__))
|
(defined (__SILICON_REVISION__) && defined(__ADSPBF561__))
|
||||||
|
|
||||||
@ -731,7 +303,6 @@
|
|||||||
* BF561 - rev 0.4,0.5
|
* BF561 - rev 0.4,0.5
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define WA_05000428 \
|
#define WA_05000428 \
|
||||||
(defined(__SILICON_REVISION__) && \
|
(defined(__SILICON_REVISION__) && \
|
||||||
defined(__ADSPBF561__) && \
|
defined(__ADSPBF561__) && \
|
||||||
@ -750,6 +321,18 @@
|
|||||||
#define WA_05000443 \
|
#define WA_05000443 \
|
||||||
(defined(__ADSPLPBLACKFIN__) && defined(__SILICON_REVISION__))
|
(defined(__ADSPLPBLACKFIN__) && defined(__SILICON_REVISION__))
|
||||||
|
|
||||||
|
|
||||||
|
/* 16-00-0005 - "Using L1 Instruction Cache with Parity Enabled is Unreliable."
|
||||||
|
**
|
||||||
|
** Using L1 instruction cache with parity enabled is unreliable and may cause
|
||||||
|
** unpredictable results.
|
||||||
|
**
|
||||||
|
** Impacted:
|
||||||
|
** BF6xx.
|
||||||
|
*/
|
||||||
|
#define WA_16000005 \
|
||||||
|
(defined(__ADSPBF60x__) && defined(__SILICON_REVISION__))
|
||||||
|
|
||||||
#ifdef _MISRA_RULES
|
#ifdef _MISRA_RULES
|
||||||
#pragma diag(pop)
|
#pragma diag(pop)
|
||||||
#endif /* _MISRA_RULES */
|
#endif /* _MISRA_RULES */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user