Skip to content

Commit 47b8f6c

Browse files
abrodkinEvgeniiDidin
authored andcommitted
ARC: Add support for ARC HS38 with Quad MAC & FPU
We used to build everything for pretty much baseline ARC HS capable of runnig Linux kernel, which was ARC HS38/48 with MMU and caches. But there's a fully featured ARC HS with additional support for - Dual & quad integer multiply and MAC operations - Double-precision floating-point unit It corresponds to the following ARC HS templates in ARChitect: hs38_slc_full. In fact existing HSDK board uses exactly this configuration in its SoC and this is recommended configuration for Linux use-cases. To make life simpler we have corresponding "-mcpu" and "--with-cpu" options in ARC GCC port so we're going to use it and get binaries built accordingly optimized. And while at it added help message so users may better understand what they are dealing with. Signed-off-by: Alexey Brodkin <[email protected]> Cc: Arnout Vandecappelle (Essensium/Mind) <[email protected]> Cc: Thomas Petazzoni <[email protected]> Cc: Peter Korsgaard <[email protected]>
1 parent 696bbb7 commit 47b8f6c

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

arch/Config.in.arc

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,29 @@ config BR2_arc770d
1313

1414
config BR2_archs38
1515
bool "ARC HS38"
16+
help
17+
Generic ARC HS capable of running Linux, i.e. with MMU,
18+
caches and multiplier. Also it corresponds to the default
19+
configuration in older GNU toolchain versions.
20+
21+
If you're not sure which version of ARC HS core you build for
22+
keep this one.
23+
24+
config BR2_archs38_full
25+
bool "ARC HS38 with Quad MAC & FPU"
26+
help
27+
Fully featured ARC HS with additional support for
28+
- Dual- and quad multiply and MC oprations
29+
- Double-precision FPU
30+
31+
It corresponds to "hs38_slc_full" ARC HS template in ARChitect.
1632

1733
endchoice
1834

1935
# Choice of atomic instructions presence
2036
config BR2_ARC_ATOMIC_EXT
2137
bool "Atomic extension (LLOCK/SCOND instructions)"
22-
default y if BR2_arc770d || BR2_archs38
38+
default y if BR2_arc770d || BR2_archs38 || BR2_archs38_full
2339

2440
config BR2_ARCH
2541
default "arc" if BR2_arcle
@@ -37,10 +53,11 @@ config BR2_GCC_TARGET_CPU
3753
default "arc700" if BR2_arc750d
3854
default "arc700" if BR2_arc770d
3955
default "archs" if BR2_archs38
56+
default "hs38_linux" if BR2_archs38_full
4057

4158
config BR2_READELF_ARCH_NAME
4259
default "ARCompact" if BR2_arc750d || BR2_arc770d
43-
default "ARCv2" if BR2_archs38
60+
default "ARCv2" if BR2_archs38 || BR2_archs38_full
4461

4562
choice
4663
prompt "MMU Page Size"
@@ -60,7 +77,7 @@ choice
6077

6178
config BR2_ARC_PAGE_SIZE_4K
6279
bool "4KB"
63-
depends on BR2_arc770d || BR2_archs38
80+
depends on BR2_arc770d || BR2_archs38 || BR2_archs38_full
6481

6582
config BR2_ARC_PAGE_SIZE_8K
6683
bool "8KB"
@@ -70,7 +87,7 @@ config BR2_ARC_PAGE_SIZE_8K
7087

7188
config BR2_ARC_PAGE_SIZE_16K
7289
bool "16KB"
73-
depends on BR2_arc770d || BR2_archs38
90+
depends on BR2_arc770d || BR2_archs38 || BR2_archs38_full
7491

7592
endchoice
7693

0 commit comments

Comments
 (0)