1# Digital Signal Processing (DSP) configuration options
2
3# Copyright (c) 2022 Synopsys
4# SPDX-License-Identifier: Apache-2.0
5
6config ARC_HAS_DSP
7	bool
8	help
9	  This option is enabled when the ARC CPU has hardware DSP unit.
10
11menu "ARC DSP Options"
12depends on ARC_HAS_DSP
13
14config ARC_DSP
15	bool "digital signal processing (DSP)"
16	help
17	  This option enables DSP and DSP instructions.
18
19config ARC_DSP_TURNED_OFF
20	bool "Turn off DSP if it presents"
21	depends on !ARC_DSP
22	help
23	  This option disables DSP block via resetting DSP_CRTL register.
24
25config ARC_DSP_SHARING
26	bool "DSP register sharing"
27	depends on ARC_DSP && MULTITHREADING
28	select ARC_HAS_ACCL_REGS
29	help
30	  This option enables preservation of the hardware DSP registers
31	  across context switches to allow multiple threads to perform concurrent
32	  DSP operations.
33
34config ARC_DSP_BFLY_SHARING
35	bool "ARC complex DSP operation"
36	depends on ARC_DSP && CPU_ARCEM
37	help
38	  This option is to enable Zephyr to store and restore DSP_BFLY0
39	  and FFT_CTRL registers during context switch. This option is
40	  only required when butterfly instructions are used in
41	  multi-thread.
42
43config ARC_XY_ENABLE
44	bool "ARC address generation unit registers"
45	help
46	  Processors with XY memory and AGU registers can configure this
47	  option to accelerate DSP instrctions.
48
49config ARC_AGU_SHARING
50	bool "ARC address generation unit register sharing"
51	depends on ARC_XY_ENABLE && MULTITHREADING
52	default y if ARC_DSP_SHARING
53	help
54	  This option enables preservation of the hardware AGU registers
55	  across context switches to allow multiple threads to perform concurrent
56	  operations on XY memory. Save and restore small size AGU registers is
57	  set as default, including 4 address pointers regs, 2 address offset regs
58	  and 4 modifiers regs.
59
60config ARC_AGU_MEDIUM
61	bool "ARC AGU medium size register"
62	depends on ARC_AGU_SHARING
63	help
64	  Save and restore medium AGU registers, including 8 address pointers regs,
65	  4 address offset regs and 12 modifiers regs.
66
67config ARC_AGU_LARGE
68	bool "ARC AGU large size register"
69	depends on ARC_AGU_SHARING
70	select ARC_AGU_MEDIUM
71	help
72	  Save and restore large AGU registers, including 12 address pointers regs,
73	  8 address offset regs and 24 modifiers regs.
74
75endmenu
76