To be able to run DSP-enabled userspace applications we need to
save and restore following DSP-related registers:
At IRQ/exception entry/exit:
* DSP_CTRL (save it and reset to value suitable for kernel)
* ACC0_LO, ACC0_HI (we already save them as r58, r59 pair)
At context switch:
* ACC0_GLO, ACC
In case of DSP extension presence in HW some instructions
(related to integer multiply, multiply-accumulate, and divide
operation) executes on this DSP execution unit. So their
execution will depend on dsp configuration register (DSP_CTRL)
As we want these instructions to execute the same way rega
To be able to run DSP-enabled userspace applications with AGU
(address generation unit) extensions we additionally need to
save and restore following registers at context switch:
* AGU_AP*
* AGU_OS*
* AGU_MOD*
Signed-off-by: Eugeniy Paltsev
---
arch/arc/Kconfig| 9 +
Arc processors may have DSP extension which is optional.
In this patch series we:
* Handle issues caused by DSP extension presence in HW
* Add optional support for DSP-enabled applications in
userspace (with optional AGU extension support)
Changes v1->v2:
* use r10:r11 register pair as a scratc
We'll use this macro in coming patches extensively.
Signed-off-by: Eugeniy Paltsev
---
arch/arc/include/asm/asserts.h | 24
arch/arc/kernel/setup.c| 25 -
2 files changed, 36 insertions(+), 13 deletions(-)
create mode 100644 arch/arc/incl
This adds tests which will validate architecture page table helpers and
other accessors in their compliance with expected generic MM semantics.
This will help various architectures in validating changes to existing
page table helpers or addition of new ones.
This test covers basic page table entry