aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/armvirt
diff options
context:
space:
mode:
authorAleksander Jan Bajkowski <olek2@wp.pl>2022-09-10 20:13:58 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2022-11-27 15:43:08 +0100
commita4e8ff5ab4445fd028ea058801511c688fedf925 (patch)
tree5ad49dcec27313c3a4baa5ebe28aa5840d92b446 /target/linux/armvirt
parentdca73263a4388ec35217354b556d78b097947fa2 (diff)
downloadupstream-a4e8ff5ab4445fd028ea058801511c688fedf925.tar.gz
upstream-a4e8ff5ab4445fd028ea058801511c688fedf925.tar.bz2
upstream-a4e8ff5ab4445fd028ea058801511c688fedf925.zip
lantiq: enable interrupts on second VPEs
This patch is needed to handle interrupts by the second VPE on the Lantiq ARX100, xRX200, xRX300 and xRX330 SoCs. Switching some ICU interrupts to the second VPE results in a hang. Currently, the vsmp_init_secondary() function is responsible for enabling these interrupts. It only enables Malta-specific interrupts (SW0, SW1, HW4 and HW5). The MIPS core has 8 interrupts defined. On Lantiq SoCs, hardware interrupts are wired to an ICU instance. Each VPE has an independent instance of the ICU. The mapping of the ICU interrupts is shown below: SW0(IP0) - IPI call, SW1(IP1) - IPI resched, HW0(IP2) - ICU 0-31, HW1(IP3) - ICU 32-63, HW2(IP4) - ICU 64-95, HW3(IP5) - ICU 96-127, HW4(IP6) - ICU 128-159, HW5(IP7) - timer. This patch enables all interrupt lines on the second VPE. This problem affects multithreaded SoCs with a custom interrupt controller. SOCs with 1004Kc core and newer use the MIPS GIC. At this point, I am aware that the Realtek RTL839x and RTL930x SoCs may need a similar fix. In the future, this may be replaced with some generic solution. Tested on Lantiq xRX200. Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl> (cherry picked from commit fbd33d61648ae8982fbada7ad3b6d8222b367ab5)
Diffstat (limited to 'target/linux/armvirt')
0 files changed, 0 insertions, 0 deletions