Skip to content

Commit 1e50dd6

Browse files
committed
feat(ipc_interrupt): enable ipc delivery via interrupt in Linux
- modify the irq number in Linux dts files to reflect the 32 offset - implement and register ipc_message_handler to receive ipc notification in bao-ipcshmem driver - call bao_ipcshmem_notify in uart_rx_handler in Zephyr - modify irq number in all linux guest for ARM On success, a message like below will appear in dmesg: [ 12.881296] ipc message: freertos has received 1 uart interrupts! Tested: - qemu-aarch64-virt - linux+freertos - linux+zephyr - qemu-riscv-virt (by @josecm) - linux+freertos - rpi4 - linux+freertos Signed-off-by: Clay Chang <clay.chang@gmail.com>
1 parent e6f1f6f commit 1e50dd6

File tree

19 files changed

+80
-19
lines changed

19 files changed

+80
-19
lines changed

demos/linux+freertos/devicetrees/fvp-a-aarch32/linux.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
reg = <0x0 0xf0000000 0x0 0x00010000>;
8787
read-channel = <0x0 0x2000>;
8888
write-channel = <0x2000 0x2000>;
89-
interrupts = <0 52 1>;
89+
interrupts = <0 20 1>;
9090
id = <0>;
9191
};
9292

demos/linux+freertos/devicetrees/fvp-a/linux.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
reg = <0x0 0xf0000000 0x0 0x00010000>;
8787
read-channel = <0x0 0x2000>;
8888
write-channel = <0x2000 0x2000>;
89-
interrupts = <0 52 1>;
89+
interrupts = <0 20 1>;
9090
id = <0>;
9191
};
9292

demos/linux+freertos/devicetrees/fvp-r/linux.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
reg = <0x0 0x70000000 0x0 0x00010000>;
8787
read-channel = <0x0 0x2000>;
8888
write-channel = <0x2000 0x2000>;
89-
interrupts = <0 52 1>;
89+
interrupts = <0 20 1>;
9090
id = <0>;
9191
};
9292

demos/linux+freertos/devicetrees/imx8qm/linux.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@
259259
reg = <0x0 0xf0000000 0x0 0x00010000>;
260260
read-channel = <0x0 0x2000>;
261261
write-channel = <0x2000 0x2000>;
262-
interrupts = <0 52 1>;
262+
interrupts = <0 20 1>;
263263
interrupt-parent = <&gic>;
264264
id = <0>;
265265
};

demos/linux+freertos/devicetrees/qemu-aarch64-virt/linux.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@
120120
reg = <0x0 0xf0000000 0x0 0x00010000>;
121121
read-channel = <0x0 0x2000>;
122122
write-channel = <0x2000 0x2000>;
123-
interrupts = <0 52 1>;
123+
interrupts = <0 20 1>;
124124
id = <0>;
125125
};
126126

demos/linux+freertos/devicetrees/qemu-riscv64-virt/linux.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
read-channel = <0x0 0x2000>;
136136
write-channel = <0x2000 0x2000>;
137137
interrupt-parent = <&plic>;
138-
interrupts = <52>;
138+
interrupts = <20>;
139139
id = <0>;
140140
};
141141

demos/linux+freertos/devicetrees/rpi4/linux.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
reg = <0x0 0xf0000000 0x0 0x00010000>;
109109
read-channel = <0x0 0x2000>;
110110
write-channel = <0x2000 0x2000>;
111-
interrupts = <0 52 1>;
111+
interrupts = <0 20 1>;
112112
id = <0>;
113113
};
114114

demos/linux+freertos/devicetrees/tx2/linux.dts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@
183183
reg = <0x0 0xf0000000 0x0 0x00010000>;
184184
read-channel = <0x0 0x2000>;
185185
write-channel = <0x2000 0x2000>;
186-
interrupts = <0 52 1>;
186+
interrupts = <0 20 1>;
187187
id = <0>;
188188
};
189189

@@ -195,4 +195,4 @@
195195
bootargs = "clk_ignore_unused ip=192.168.42.15 carrier_timeout=0";
196196
};
197197

198-
};
198+
};

demos/linux+freertos/devicetrees/zcu104/linux.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
reg = <0x0 0xf0000000 0x0 0x00010000>;
139139
read-channel = <0x0 0x2000>;
140140
write-channel = <0x2000 0x2000>;
141-
interrupts = <0 52 1>;
141+
interrupts = <0 20 1>;
142142
id = <0>;
143143
};
144144

demos/linux+zephyr/devicetrees/fvp-a-aarch32/linux.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
reg = <0x0 0xf0000000 0x0 0x00010000>;
8787
read-channel = <0x0 0x2000>;
8888
write-channel = <0x2000 0x2000>;
89-
interrupts = <0 52 1>;
89+
interrupts = <0 20 1>;
9090
id = <0>;
9191
};
9292

0 commit comments

Comments
 (0)