ARC: SMP support
ARC common code to enable a SMP system + ISS provided SMP extensions. ARC700 natively lacks SMP support, hence some of the core features are are only enabled if SoCs have the necessary h/w pixie-dust. This includes: -Inter Processor Interrupts (IPI) -Cache coherency -load-locked/store-conditional ... The low level exception handling would be completely broken in SMP because we don't have hardware assisted stack switching. Thus a fair bit of this code is repurposing the MMU_SCRATCH reg for event handler prologues to keep them re-entrant. Many thanks to Rajeshwar Ranga for his initial "major" contributions to SMP Port (back in 2008), and to Noam Camus and Gilad Ben-Yossef for help with resurrecting that in 3.2 kernel (2012). Note that this platform code is again singleton design pattern - so multiple SMP platforms won't build at the moment - this deficiency is addressed in subsequent patches within this series. Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Rajeshwar Ranga <rajeshwar.ranga@gmail.com> Cc: Noam Camus <noamc@ezchip.com> Cc: Gilad Ben-Yossef <gilad@benyossef.com>
Esse commit está contido em:
@@ -13,6 +13,7 @@ choice
|
||||
|
||||
config ARC_BOARD_ANGEL4
|
||||
bool "ARC Angel4"
|
||||
select ISS_SMP_EXTN if SMP
|
||||
help
|
||||
ARC Angel4 FPGA Ref Platform (Xilinx Virtex Based)
|
||||
|
||||
@@ -21,6 +22,19 @@ config ARC_BOARD_ML509
|
||||
help
|
||||
ARC ML509 FPGA Ref Platform (Xilinx Virtex-5 Based)
|
||||
|
||||
config ISS_SMP_EXTN
|
||||
bool "ARC SMP Extensions (ISS Models only)"
|
||||
default n
|
||||
depends on SMP
|
||||
select ARC_HAS_COH_RTSC
|
||||
help
|
||||
SMP Extensions to ARC700, in a "simulation only" Model, supported in
|
||||
ARC ISS (Instruction Set Simulator).
|
||||
The SMP extensions include:
|
||||
-IDU (Interrupt Distribution Unit)
|
||||
-XTL (To enable CPU start/stop/set-PC for another CPU)
|
||||
It doesn't provide coherent Caches and/or Atomic Ops (LLOCK/SCOND)
|
||||
|
||||
endchoice
|
||||
|
||||
config ARC_SERIAL_BAUD
|
||||
|
Referência em uma nova issue
Block a user