commit
10918c03a9
@ -1,7 +0,0 @@ |
||||
#
|
||||
# Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
PLATFORM_CPPFLAGS += -mA7
|
@ -0,0 +1,226 @@ |
||||
/* |
||||
* Copyright (C) 1995, 1997, 2007-2013 Free Software Foundation, Inc. |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
/* ANSI concatenation macros. */ |
||||
|
||||
#define CONCAT1(a, b) CONCAT2(a, b) |
||||
#define CONCAT2(a, b) a ## b |
||||
|
||||
/* Use the right prefix for global labels. */ |
||||
|
||||
#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) |
||||
|
||||
#ifndef WORKING_ASSEMBLER |
||||
#define abs_l abs |
||||
#define asl_l asl |
||||
#define mov_l mov |
||||
#endif |
||||
|
||||
#define FUNC(X) .type SYM(X),@function
|
||||
#define HIDDEN_FUNC(X) FUNC(X)` .hidden X |
||||
#define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X |
||||
#define ENDFUNC(X) ENDFUNC0(X) |
||||
|
||||
.section .text |
||||
.align 4
|
||||
.global SYM(__st_r13_to_r15) |
||||
.global SYM(__st_r13_to_r16) |
||||
.global SYM(__st_r13_to_r17) |
||||
.global SYM(__st_r13_to_r18) |
||||
.global SYM(__st_r13_to_r19) |
||||
.global SYM(__st_r13_to_r20) |
||||
.global SYM(__st_r13_to_r21) |
||||
.global SYM(__st_r13_to_r22) |
||||
.global SYM(__st_r13_to_r23) |
||||
.global SYM(__st_r13_to_r24) |
||||
.global SYM(__st_r13_to_r25) |
||||
HIDDEN_FUNC(__st_r13_to_r15) |
||||
HIDDEN_FUNC(__st_r13_to_r16) |
||||
HIDDEN_FUNC(__st_r13_to_r17) |
||||
HIDDEN_FUNC(__st_r13_to_r18) |
||||
HIDDEN_FUNC(__st_r13_to_r19) |
||||
HIDDEN_FUNC(__st_r13_to_r20) |
||||
HIDDEN_FUNC(__st_r13_to_r21) |
||||
HIDDEN_FUNC(__st_r13_to_r22) |
||||
HIDDEN_FUNC(__st_r13_to_r23) |
||||
HIDDEN_FUNC(__st_r13_to_r24) |
||||
HIDDEN_FUNC(__st_r13_to_r25) |
||||
.align 4
|
||||
SYM(__st_r13_to_r25): |
||||
st r25, [sp,48] |
||||
SYM(__st_r13_to_r24): |
||||
st r24, [sp,44] |
||||
SYM(__st_r13_to_r23): |
||||
st r23, [sp,40] |
||||
SYM(__st_r13_to_r22): |
||||
st r22, [sp,36] |
||||
SYM(__st_r13_to_r21): |
||||
st r21, [sp,32] |
||||
SYM(__st_r13_to_r20): |
||||
st r20, [sp,28] |
||||
SYM(__st_r13_to_r19): |
||||
st r19, [sp,24] |
||||
SYM(__st_r13_to_r18): |
||||
st r18, [sp,20] |
||||
SYM(__st_r13_to_r17): |
||||
st r17, [sp,16] |
||||
SYM(__st_r13_to_r16): |
||||
st r16, [sp,12] |
||||
SYM(__st_r13_to_r15): |
||||
#ifdef __ARC700__ |
||||
st r15, [sp,8] ; minimum function size to avoid stall: 6 bytes.
|
||||
#else |
||||
st_s r15, [sp,8] |
||||
#endif |
||||
st_s r14, [sp,4] |
||||
j_s.d [%blink] |
||||
st_s r13, [sp,0] |
||||
ENDFUNC(__st_r13_to_r15) |
||||
ENDFUNC(__st_r13_to_r16) |
||||
ENDFUNC(__st_r13_to_r17) |
||||
ENDFUNC(__st_r13_to_r18) |
||||
ENDFUNC(__st_r13_to_r19) |
||||
ENDFUNC(__st_r13_to_r20) |
||||
ENDFUNC(__st_r13_to_r21) |
||||
ENDFUNC(__st_r13_to_r22) |
||||
ENDFUNC(__st_r13_to_r23) |
||||
ENDFUNC(__st_r13_to_r24) |
||||
ENDFUNC(__st_r13_to_r25) |
||||
|
||||
.section .text |
||||
.align 4
|
||||
; ==================================
|
||||
; the loads
|
||||
|
||||
.global SYM(__ld_r13_to_r15) |
||||
.global SYM(__ld_r13_to_r16) |
||||
.global SYM(__ld_r13_to_r17) |
||||
.global SYM(__ld_r13_to_r18) |
||||
.global SYM(__ld_r13_to_r19) |
||||
.global SYM(__ld_r13_to_r20) |
||||
.global SYM(__ld_r13_to_r21) |
||||
.global SYM(__ld_r13_to_r22) |
||||
.global SYM(__ld_r13_to_r23) |
||||
.global SYM(__ld_r13_to_r24) |
||||
.global SYM(__ld_r13_to_r25) |
||||
HIDDEN_FUNC(__ld_r13_to_r15) |
||||
HIDDEN_FUNC(__ld_r13_to_r16) |
||||
HIDDEN_FUNC(__ld_r13_to_r17) |
||||
HIDDEN_FUNC(__ld_r13_to_r18) |
||||
HIDDEN_FUNC(__ld_r13_to_r19) |
||||
HIDDEN_FUNC(__ld_r13_to_r20) |
||||
HIDDEN_FUNC(__ld_r13_to_r21) |
||||
HIDDEN_FUNC(__ld_r13_to_r22) |
||||
HIDDEN_FUNC(__ld_r13_to_r23) |
||||
HIDDEN_FUNC(__ld_r13_to_r24) |
||||
HIDDEN_FUNC(__ld_r13_to_r25) |
||||
SYM(__ld_r13_to_r25): |
||||
ld r25, [sp,48] |
||||
SYM(__ld_r13_to_r24): |
||||
ld r24, [sp,44] |
||||
SYM(__ld_r13_to_r23): |
||||
ld r23, [sp,40] |
||||
SYM(__ld_r13_to_r22): |
||||
ld r22, [sp,36] |
||||
SYM(__ld_r13_to_r21): |
||||
ld r21, [sp,32] |
||||
SYM(__ld_r13_to_r20): |
||||
ld r20, [sp,28] |
||||
SYM(__ld_r13_to_r19): |
||||
ld r19, [sp,24] |
||||
SYM(__ld_r13_to_r18): |
||||
ld r18, [sp,20] |
||||
SYM(__ld_r13_to_r17): |
||||
ld r17, [sp,16] |
||||
SYM(__ld_r13_to_r16): |
||||
ld r16, [sp,12] |
||||
SYM(__ld_r13_to_r15): |
||||
#ifdef __ARC700__ |
||||
ld r15, [sp,8] ; minimum function size to avoid stall: 6 bytes.
|
||||
#else |
||||
ld_s r15, [sp,8] |
||||
#endif |
||||
ld_s r14, [sp,4] |
||||
j_s.d [%blink] |
||||
ld_s r13, [sp,0] |
||||
ENDFUNC(__ld_r13_to_r15) |
||||
ENDFUNC(__ld_r13_to_r16) |
||||
ENDFUNC(__ld_r13_to_r17) |
||||
ENDFUNC(__ld_r13_to_r18) |
||||
ENDFUNC(__ld_r13_to_r19) |
||||
ENDFUNC(__ld_r13_to_r20) |
||||
ENDFUNC(__ld_r13_to_r21) |
||||
ENDFUNC(__ld_r13_to_r22) |
||||
ENDFUNC(__ld_r13_to_r23) |
||||
ENDFUNC(__ld_r13_to_r24) |
||||
ENDFUNC(__ld_r13_to_r25) |
||||
|
||||
.global SYM(__ld_r13_to_r14_ret) |
||||
.global SYM(__ld_r13_to_r15_ret) |
||||
.global SYM(__ld_r13_to_r16_ret) |
||||
.global SYM(__ld_r13_to_r17_ret) |
||||
.global SYM(__ld_r13_to_r18_ret) |
||||
.global SYM(__ld_r13_to_r19_ret) |
||||
.global SYM(__ld_r13_to_r20_ret) |
||||
.global SYM(__ld_r13_to_r21_ret) |
||||
.global SYM(__ld_r13_to_r22_ret) |
||||
.global SYM(__ld_r13_to_r23_ret) |
||||
.global SYM(__ld_r13_to_r24_ret) |
||||
.global SYM(__ld_r13_to_r25_ret) |
||||
HIDDEN_FUNC(__ld_r13_to_r14_ret) |
||||
HIDDEN_FUNC(__ld_r13_to_r15_ret) |
||||
HIDDEN_FUNC(__ld_r13_to_r16_ret) |
||||
HIDDEN_FUNC(__ld_r13_to_r17_ret) |
||||
HIDDEN_FUNC(__ld_r13_to_r18_ret) |
||||
HIDDEN_FUNC(__ld_r13_to_r19_ret) |
||||
HIDDEN_FUNC(__ld_r13_to_r20_ret) |
||||
HIDDEN_FUNC(__ld_r13_to_r21_ret) |
||||
HIDDEN_FUNC(__ld_r13_to_r22_ret) |
||||
HIDDEN_FUNC(__ld_r13_to_r23_ret) |
||||
HIDDEN_FUNC(__ld_r13_to_r24_ret) |
||||
HIDDEN_FUNC(__ld_r13_to_r25_ret) |
||||
.section .text |
||||
.align 4
|
||||
SYM(__ld_r13_to_r25_ret): |
||||
ld r25, [sp,48] |
||||
SYM(__ld_r13_to_r24_ret): |
||||
ld r24, [sp,44] |
||||
SYM(__ld_r13_to_r23_ret): |
||||
ld r23, [sp,40] |
||||
SYM(__ld_r13_to_r22_ret): |
||||
ld r22, [sp,36] |
||||
SYM(__ld_r13_to_r21_ret): |
||||
ld r21, [sp,32] |
||||
SYM(__ld_r13_to_r20_ret): |
||||
ld r20, [sp,28] |
||||
SYM(__ld_r13_to_r19_ret): |
||||
ld r19, [sp,24] |
||||
SYM(__ld_r13_to_r18_ret): |
||||
ld r18, [sp,20] |
||||
SYM(__ld_r13_to_r17_ret): |
||||
ld r17, [sp,16] |
||||
SYM(__ld_r13_to_r16_ret): |
||||
ld r16, [sp,12] |
||||
SYM(__ld_r13_to_r15_ret): |
||||
ld r15, [sp,8] |
||||
SYM(__ld_r13_to_r14_ret): |
||||
ld blink,[sp,r12] |
||||
ld_s r14, [sp,4] |
||||
ld.ab r13, [sp,r12] |
||||
j_s.d [%blink] |
||||
add_s sp,sp,4 |
||||
ENDFUNC(__ld_r13_to_r14_ret) |
||||
ENDFUNC(__ld_r13_to_r15_ret) |
||||
ENDFUNC(__ld_r13_to_r16_ret) |
||||
ENDFUNC(__ld_r13_to_r17_ret) |
||||
ENDFUNC(__ld_r13_to_r18_ret) |
||||
ENDFUNC(__ld_r13_to_r19_ret) |
||||
ENDFUNC(__ld_r13_to_r20_ret) |
||||
ENDFUNC(__ld_r13_to_r21_ret) |
||||
ENDFUNC(__ld_r13_to_r22_ret) |
||||
ENDFUNC(__ld_r13_to_r23_ret) |
||||
ENDFUNC(__ld_r13_to_r24_ret) |
||||
ENDFUNC(__ld_r13_to_r25_ret) |
@ -0,0 +1,161 @@ |
||||
/*
|
||||
* Copyright (C) 1989-2013 Free Software Foundation, Inc. |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#include "libgcc2.h" |
||||
|
||||
DWtype |
||||
__ashldi3(DWtype u, shift_count_type b) |
||||
{ |
||||
if (b == 0) |
||||
return u; |
||||
|
||||
const DWunion uu = {.ll = u}; |
||||
const shift_count_type bm = W_TYPE_SIZE - b; |
||||
DWunion w; |
||||
|
||||
if (bm <= 0) { |
||||
w.s.low = 0; |
||||
w.s.high = (UWtype)uu.s.low << -bm; |
||||
} else { |
||||
const UWtype carries = (UWtype) uu.s.low >> bm; |
||||
|
||||
w.s.low = (UWtype)uu.s.low << b; |
||||
w.s.high = ((UWtype)uu.s.high << b) | carries; |
||||
} |
||||
|
||||
return w.ll; |
||||
} |
||||
|
||||
DWtype |
||||
__ashrdi3(DWtype u, shift_count_type b) |
||||
{ |
||||
if (b == 0) |
||||
return u; |
||||
|
||||
const DWunion uu = {.ll = u}; |
||||
const shift_count_type bm = W_TYPE_SIZE - b; |
||||
DWunion w; |
||||
|
||||
if (bm <= 0) { |
||||
/* w.s.high = 1..1 or 0..0 */ |
||||
w.s.high = uu.s.high >> (W_TYPE_SIZE - 1); |
||||
w.s.low = uu.s.high >> -bm; |
||||
} else { |
||||
const UWtype carries = (UWtype) uu.s.high << bm; |
||||
|
||||
w.s.high = uu.s.high >> b; |
||||
w.s.low = ((UWtype)uu.s.low >> b) | carries; |
||||
} |
||||
|
||||
return w.ll; |
||||
} |
||||
|
||||
DWtype |
||||
__lshrdi3(DWtype u, shift_count_type b) |
||||
{ |
||||
if (b == 0) |
||||
return u; |
||||
|
||||
const DWunion uu = {.ll = u}; |
||||
const shift_count_type bm = W_TYPE_SIZE - b; |
||||
DWunion w; |
||||
|
||||
if (bm <= 0) { |
||||
w.s.high = 0; |
||||
w.s.low = (UWtype)uu.s.high >> -bm; |
||||
} else { |
||||
const UWtype carries = (UWtype)uu.s.high << bm; |
||||
|
||||
w.s.high = (UWtype)uu.s.high >> b; |
||||
w.s.low = ((UWtype)uu.s.low >> b) | carries; |
||||
} |
||||
|
||||
return w.ll; |
||||
} |
||||
|
||||
unsigned long |
||||
udivmodsi4(unsigned long num, unsigned long den, int modwanted) |
||||
{ |
||||
unsigned long bit = 1; |
||||
unsigned long res = 0; |
||||
|
||||
while (den < num && bit && !(den & (1L<<31))) { |
||||
den <<= 1; |
||||
bit <<= 1; |
||||
} |
||||
|
||||
while (bit) { |
||||
if (num >= den) { |
||||
num -= den; |
||||
res |= bit; |
||||
} |
||||
bit >>= 1; |
||||
den >>= 1; |
||||
} |
||||
|
||||
if (modwanted) |
||||
return num; |
||||
|
||||
return res; |
||||
} |
||||
|
||||
long |
||||
__divsi3(long a, long b) |
||||
{ |
||||
int neg = 0; |
||||
long res; |
||||
|
||||
if (a < 0) { |
||||
a = -a; |
||||
neg = !neg; |
||||
} |
||||
|
||||
if (b < 0) { |
||||
b = -b; |
||||
neg = !neg; |
||||
} |
||||
|
||||
res = udivmodsi4(a, b, 0); |
||||
|
||||
if (neg) |
||||
res = -res; |
||||
|
||||
return res; |
||||
} |
||||
|
||||
long |
||||
__modsi3(long a, long b) |
||||
{ |
||||
int neg = 0; |
||||
long res; |
||||
|
||||
if (a < 0) { |
||||
a = -a; |
||||
neg = 1; |
||||
} |
||||
|
||||
if (b < 0) |
||||
b = -b; |
||||
|
||||
res = udivmodsi4(a, b, 1); |
||||
|
||||
if (neg) |
||||
res = -res; |
||||
|
||||
return res; |
||||
} |
||||
|
||||
long |
||||
__udivsi3(long a, long b) |
||||
{ |
||||
return udivmodsi4(a, b, 0); |
||||
} |
||||
|
||||
long |
||||
__umodsi3(long a, long b) |
||||
{ |
||||
return udivmodsi4(a, b, 1); |
||||
} |
@ -0,0 +1,132 @@ |
||||
/*
|
||||
* Copyright (C) 1989-2013 Free Software Foundation, Inc. |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#ifndef __ASM_LIBGCC_H |
||||
#define __ASM_LIBGCC_H |
||||
|
||||
#define UNITS_PER_WORD 4 /* for ARC */ |
||||
#define BITS_PER_UNIT 8 /* for ARC */ |
||||
|
||||
#define W_TYPE_SIZE (4 * BITS_PER_UNIT) |
||||
|
||||
#define MIN_UNITS_PER_WORD UNITS_PER_WORD |
||||
|
||||
/* Work out the largest "word" size that we can deal with on this target. */ |
||||
#if MIN_UNITS_PER_WORD > 4 |
||||
# define LIBGCC2_MAX_UNITS_PER_WORD 8 |
||||
#elif (MIN_UNITS_PER_WORD > 2 \ |
||||
|| (MIN_UNITS_PER_WORD > 1 && __SIZEOF_LONG_LONG__ > 4)) |
||||
# define LIBGCC2_MAX_UNITS_PER_WORD 4 |
||||
#else |
||||
# define LIBGCC2_MAX_UNITS_PER_WORD MIN_UNITS_PER_WORD |
||||
#endif |
||||
|
||||
/* Work out what word size we are using for this compilation.
|
||||
The value can be set on the command line. */ |
||||
#ifndef LIBGCC2_UNITS_PER_WORD |
||||
#define LIBGCC2_UNITS_PER_WORD LIBGCC2_MAX_UNITS_PER_WORD |
||||
#endif |
||||
|
||||
typedef int QItype __attribute__ ((mode (QI))); |
||||
typedef unsigned int UQItype __attribute__ ((mode (QI))); |
||||
typedef int HItype __attribute__ ((mode (HI))); |
||||
typedef unsigned int UHItype __attribute__ ((mode (HI))); |
||||
#if MIN_UNITS_PER_WORD > 1 |
||||
/* These typedefs are usually forbidden on dsp's with UNITS_PER_WORD 1. */ |
||||
typedef int SItype __attribute__ ((mode (SI))); |
||||
typedef unsigned int USItype __attribute__ ((mode (SI))); |
||||
#if __SIZEOF_LONG_LONG__ > 4 |
||||
/* These typedefs are usually forbidden on archs with UNITS_PER_WORD 2. */ |
||||
typedef int DItype __attribute__ ((mode (DI))); |
||||
typedef unsigned int UDItype __attribute__ ((mode (DI))); |
||||
#if MIN_UNITS_PER_WORD > 4 |
||||
/* These typedefs are usually forbidden on archs with UNITS_PER_WORD 4. */ |
||||
typedef int TItype __attribute__ ((mode (TI))); |
||||
typedef unsigned int UTItype __attribute__ ((mode (TI))); |
||||
#endif |
||||
#endif |
||||
#endif |
||||
|
||||
#if LIBGCC2_UNITS_PER_WORD == 8 |
||||
#define W_TYPE_SIZE (8 * BITS_PER_UNIT) |
||||
#define Wtype DItype |
||||
#define UWtype UDItype |
||||
#define HWtype DItype |
||||
#define UHWtype UDItype |
||||
#define DWtype TItype |
||||
#define UDWtype UTItype |
||||
#ifdef LIBGCC2_GNU_PREFIX |
||||
#define __NW(a,b) __gnu_ ## a ## di ## b |
||||
#define __NDW(a,b) __gnu_ ## a ## ti ## b |
||||
#else |
||||
#define __NW(a,b) __ ## a ## di ## b |
||||
#define __NDW(a,b) __ ## a ## ti ## b |
||||
#endif |
||||
#elif LIBGCC2_UNITS_PER_WORD == 4 |
||||
#define W_TYPE_SIZE (4 * BITS_PER_UNIT) |
||||
#define Wtype SItype |
||||
#define UWtype USItype |
||||
#define HWtype SItype |
||||
#define UHWtype USItype |
||||
#define DWtype DItype |
||||
#define UDWtype UDItype |
||||
#ifdef LIBGCC2_GNU_PREFIX |
||||
#define __NW(a,b) __gnu_ ## a ## si ## b |
||||
#define __NDW(a,b) __gnu_ ## a ## di ## b |
||||
#else |
||||
#define __NW(a,b) __ ## a ## si ## b |
||||
#define __NDW(a,b) __ ## a ## di ## b |
||||
#endif |
||||
#elif LIBGCC2_UNITS_PER_WORD == 2 |
||||
#define W_TYPE_SIZE (2 * BITS_PER_UNIT) |
||||
#define Wtype HItype |
||||
#define UWtype UHItype |
||||
#define HWtype HItype |
||||
#define UHWtype UHItype |
||||
#define DWtype SItype |
||||
#define UDWtype USItype |
||||
#ifdef LIBGCC2_GNU_PREFIX |
||||
#define __NW(a,b) __gnu_ ## a ## hi ## b |
||||
#define __NDW(a,b) __gnu_ ## a ## si ## b |
||||
#else |
||||
#define __NW(a,b) __ ## a ## hi ## b |
||||
#define __NDW(a,b) __ ## a ## si ## b |
||||
#endif |
||||
#else |
||||
#define W_TYPE_SIZE BITS_PER_UNIT |
||||
#define Wtype QItype |
||||
#define UWtype UQItype |
||||
#define HWtype QItype |
||||
#define UHWtype UQItype |
||||
#define DWtype HItype |
||||
#define UDWtype UHItype |
||||
#ifdef LIBGCC2_GNU_PREFIX |
||||
#define __NW(a,b) __gnu_ ## a ## qi ## b |
||||
#define __NDW(a,b) __gnu_ ## a ## hi ## b |
||||
#else |
||||
#define __NW(a,b) __ ## a ## qi ## b |
||||
#define __NDW(a,b) __ ## a ## hi ## b |
||||
#endif |
||||
#endif |
||||
|
||||
typedef int shift_count_type __attribute__((mode (__libgcc_shift_count__))); |
||||
|
||||
#if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ |
||||
struct DWstruct {Wtype high, low;}; |
||||
#else |
||||
struct DWstruct {Wtype low, high;}; |
||||
#endif |
||||
|
||||
/* We need this union to unpack/pack DImode values, since we don't have
|
||||
any arithmetic yet. Incoming DImode parameters are stored into the |
||||
`ll' field, and the unpacked result is read from the struct `s'. */ |
||||
|
||||
typedef union { |
||||
struct DWstruct s; |
||||
DWtype ll; |
||||
} DWunion; |
||||
|
||||
#endif /* __ASM_LIBGCC_H */ |
@ -1,3 +1,5 @@ |
||||
CONFIG_ARC=y |
||||
CONFIG_TARGET_ARCANGEL4_BE=y |
||||
CONFIG_TARGET_ARCANGEL4=y |
||||
CONFIG_SYS_CLK_FREQ=70000000 |
||||
CONFIG_CPU_BIG_ENDIAN=y |
||||
CONFIG_SYS_TEXT_BASE=0x81000000 |
||||
|
@ -1,3 +1,4 @@ |
||||
CONFIG_ARC=y |
||||
CONFIG_TARGET_ARCANGEL4=y |
||||
CONFIG_SYS_CLK_FREQ=70000000 |
||||
CONFIG_SYS_TEXT_BASE=0x81000000 |
||||
|
@ -1,3 +1,6 @@ |
||||
CONFIG_ARC=y |
||||
CONFIG_TARGET_AXS101=y |
||||
CONFIG_SYS_CLK_FREQ=750000000 |
||||
CONFIG_SYS_CLK_FREQ=750000000 |
||||
CONFIG_ARC_CACHE_LINE_SHIFT=5 |
||||
CONFIG_SYS_DCACHE_OFF=y |
||||
CONFIG_SYS_TEXT_BASE=0x81000000 |
@ -1,3 +1,5 @@ |
||||
CONFIG_ARC=y |
||||
CONFIG_TARGET_TB100=y |
||||
CONFIG_SYS_CLK_FREQ=500000000 |
||||
CONFIG_SYS_CLK_FREQ=500000000 |
||||
CONFIG_ARC_CACHE_LINE_SHIFT=5 |
||||
CONFIG_SYS_TEXT_BASE=0x84000000 |
||||
|
@ -1,91 +0,0 @@ |
||||
/*
|
||||
* Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved. |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#ifndef _CONFIG_ARCANGEL4_H_ |
||||
#define _CONFIG_ARCANGEL4_H_ |
||||
|
||||
/*
|
||||
* CPU configuration |
||||
*/ |
||||
#define CONFIG_SYS_BIG_ENDIAN |
||||
#define CONFIG_ARC700 |
||||
#define CONFIG_ARC_MMU_VER 3 |
||||
#define CONFIG_SYS_CACHELINE_SIZE 64 |
||||
#define CONFIG_SYS_TIMER_RATE CONFIG_SYS_CLK_FREQ |
||||
|
||||
/*
|
||||
* Board configuration |
||||
*/ |
||||
#define CONFIG_SYS_GENERIC_BOARD |
||||
#define CONFIG_SKIP_LOWLEVEL_INIT /* U-Boot is in RAM already */ |
||||
|
||||
#define CONFIG_ARCH_EARLY_INIT_R |
||||
|
||||
/*
|
||||
* Memory configuration |
||||
*/ |
||||
#define CONFIG_SYS_TEXT_BASE 0x81000000 |
||||
#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE |
||||
|
||||
#define CONFIG_SYS_DDR_SDRAM_BASE 0x80000000 |
||||
#define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_SDRAM_BASE |
||||
#define CONFIG_SYS_SDRAM_SIZE 0x10000000 /* 256 Mb */ |
||||
|
||||
#define CONFIG_SYS_INIT_SP_ADDR \ |
||||
(CONFIG_SYS_SDRAM_BASE + 0x1000 - GENERATED_GBL_DATA_SIZE) |
||||
|
||||
#define CONFIG_SYS_MALLOC_LEN 0x200000 /* 2 MB */ |
||||
#define CONFIG_SYS_BOOTM_LEN 0x2000000 /* 32 MB */ |
||||
#define CONFIG_SYS_LOAD_ADDR 0x82000000 |
||||
|
||||
#define CONFIG_SYS_NO_FLASH |
||||
|
||||
/*
|
||||
* UART configuration |
||||
* |
||||
*/ |
||||
#define CONFIG_ARC_SERIAL |
||||
#define CONFIG_ARC_UART_BASE 0xC0FC1000 |
||||
#define CONFIG_BAUDRATE 115200 |
||||
|
||||
/*
|
||||
* Command line configuration |
||||
*/ |
||||
#include <config_cmd_default.h> |
||||
|
||||
#define CONFIG_CMD_ELF |
||||
|
||||
#define CONFIG_OF_LIBFDT |
||||
|
||||
#define CONFIG_AUTO_COMPLETE |
||||
#define CONFIG_SYS_MAXARGS 16 |
||||
|
||||
/*
|
||||
* Environment settings |
||||
*/ |
||||
#define CONFIG_ENV_IS_NOWHERE |
||||
#define CONFIG_ENV_SIZE 0x00200 /* 512 bytes */ |
||||
#define CONFIG_ENV_OFFSET 0 |
||||
|
||||
/*
|
||||
* Environment configuration |
||||
*/ |
||||
#define CONFIG_BOOTDELAY 3 |
||||
#define CONFIG_BOOTFILE "uImage" |
||||
#define CONFIG_BOOTARGS "console=ttyARC0,115200n8" |
||||
#define CONFIG_LOADADDR CONFIG_SYS_LOAD_ADDR |
||||
|
||||
/*
|
||||
* Console configuration |
||||
*/ |
||||
#define CONFIG_SYS_LONGHELP |
||||
#define CONFIG_SYS_PROMPT "arcangel4# " |
||||
#define CONFIG_SYS_CBSIZE 256 |
||||
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE |
||||
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ |
||||
sizeof(CONFIG_SYS_PROMPT) + 16) |
||||
|
||||
#endif /* _CONFIG_ARCANGEL4_H_ */ |
Loading…
Reference in new issue