P2020 use Linux 4.19.68 Doorbell can send but failed when receive?

cancel
Showing results for 
Search instead for 
Did you mean: 

P2020 use Linux 4.19.68 Doorbell can send but failed when receive?

427 Views
liguofa
Contributor III

Hello, elites!!!yipingwangdhaval

Now Now we're faced with a very difficult problem,which we can send a doorbell to fpga by p2020 but can not receive a doorbell from fpga。The FPGA's send test also saw the P2020 reply to the doorbell response package, indicating that the P2020 underlying controller has received the package.

now we give we u-boot log and kernel dmesg and some relatived dts file。Please give some suggestions to us,it takes  us too many time to debug it。The Kernel version we git from  linux - AFD Kernel 

u-boot log and dmesg log as follow。need your help!
first We cat /proc/interrupt  we can not find dbell_rx callback func increase.than we check irq map in dts file as lastest question you apply to me. but I can not understand the hw irq no. and linux soft irq well in powerpc arch ,as far as I am known, irq in request_irq need soft irq which mapped by linux.but the driver /arch/powerpc/sysdev/fsl_rmu.c and fsl_rio.c  the functions is used No. which parse in dts from p2020rdb-pc.dtsi.as follow.

rmu: rmu@d3000 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,srio-rmu";
reg = <0xd3000 0x500>;
ranges = <0x0 0xd3000 0x500>;

message-unit@0 {
compatible = "fsl,srio-msg-unit";
reg = <0x0 0x100>;
interrupts = <
60 2 0 0 /* msg1_tx_irq ref 37 */
61 2 0 0>;/* msg1_rx_irq ref 38*/
};

message-unit@100 {
compatible = "fsl,srio-msg-unit";
reg = <0x100 0x100>;
interrupts = <
62 2 0 0 /* msg2_tx_irq ref 39*/
63 2 0 0>;/* msg2_rx_irq ref 40*/
};

doorbell-unit@400 {
compatible = "fsl,srio-dbell-unit";
reg = <0x400 0x80>;
interrupts = <
56 2 0 0 /* bell_outb_irq ref 33*/
57 2 0 0>;/* bell_inb_irq ref 34*/
};

port-write-unit@4e0 {
compatible = "fsl,srio-port-write-unit";
reg = <0x4e0 0x20>;
interrupts = <16 2 1 11>;/* srio-port-write_irq 32 */
};

0 Kudos
2 Replies

342 Views
liguofa
Contributor III

however ,in p2020rm datasheet It shows doorbell irq No. in internal interrupts no is 33 SRIO outbound doorbell 1.34 SRIO inbound doorbell 1. Page 394 of P2020RM.

Please gvie any suggestions ,thanks~~~yipingwangkhumphriMandarMandardhavalRHinnenjimtrudeauMartinP-Series

0 Kudos

342 Views
yipingwang
NXP TechSupport
NXP TechSupport

Please refer to the following rmu device node definition.

rmu: rmu@d3000 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,srio-rmu";
reg = <0xd3000 0x500>;
ranges = <0x0 0xd3000 0x500>;

message-unit@0 {
compatible = "fsl,srio-msg-unit";
reg = <0x0 0x100>;
interrupts = <
53 2 0 0 /* msg1_tx_irq */
54 2 0 0>;/* msg1_rx_irq */
};
message-unit@100 {
compatible = "fsl,srio-msg-unit";
reg = <0x100 0x100>;
interrupts = <
55 2 0 0 /* msg2_tx_irq */
56 2 0 0>;/* msg2_rx_irq */
};
doorbell-unit@400 {
compatible = "fsl,srio-dbell-unit";
reg = <0x400 0x80>;
interrupts = <
49 2 0 0 /* bell_outb_irq */
50 2 0 0>;/* bell_inb_irq */
};
port-write-unit@4e0 {
compatible = "fsl,srio-port-write-unit";

reg = <0x4e0 0x20>;
interrupts = <48 2 0 0>;
};
};

0 Kudos