This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: Implementing GPIO Interrupt on Linux Operating System

Part Number: TDA4VM
Other Parts Discussed in Thread: TDA4VL,

Hi team,

Part number = TDA4VL

Linux = PROCESSOR-SDK-LINUX-J721S2  08_00_04_05

RTOS = PROCESSOR-SDK-RTOS-J721S2  08_00_04_04

The customer is running the Linux operating system on the A72. He wants to implement GPIO external interrupt function on Linux operating system. GPIO pins = GPIO0_5 (AD25)

For GPIO interrupts, he finds that request_irq returned successfully. He tries to trigger an interrupt (make sure the level of GPIO0_5 (AD25) is flipped), but the interrupt service function never responds. Below is the code:

diff --git a/board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts b/board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
index 35edbc1..9c75e3f 100755
--- a/board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
+++ b/board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
@@ -93,6 +93,13 @@
 			 <3300000 0x1>;
 	};
 
+	gpio_test: gpio_test {
+		compatible = "ti,gpio_test";
+		interrupt-parent = <&main_gpio0>;
+		interrupts = <5 IRQ_TYPE_EDGE_BOTH>;
+	};
+
+
 	transceiver1: can-phy1 {
 		compatible = "ti,tcan1043";
 		#phy-cells = <0>;
@@ -174,6 +181,12 @@
         >;
     };
 
+	test_key_pins_default: test-key-pins-default {
+		pinctrl-single,pins = <
+			J721S2_IOPAD(0x014, PIN_INPUT, 7) /* (AD25) MCAN14_TX.GPIO0_5 */
+		>;
+	};
+
 	main_uart8_pins_default: main-uart8-pins-default {
 		pinctrl-single,pins = <
 			J721S2_IOPAD(0x040, PIN_INPUT, 14) /* (AC28) MCASP0_AXR0.UART8_CTSn */
@@ -229,10 +242,11 @@
 		>;
 	};
 
+	/*更改I2C4 复用的引脚*/
 	main_i2c4_pins_default: main-i2c4-pins-default {
 		pinctrl-single,pins = <
-			J721S2_IOPAD(0x014, PIN_INPUT_PULLUP, 8) /* (AD25) I2C4_SCL */
-			J721S2_IOPAD(0x010, PIN_INPUT_PULLUP, 8) /* (AF28) I2C4_SDA */
+			J721S2_IOPAD(0x084, PIN_INPUT, 13) /* (AA28) MCASP0_AXR5.I2C4_SCL */
+			J721S2_IOPAD(0x010, PIN_INPUT, 8) /* (AF28) MCAN13_RX.I2C4_SDA */
 		>;
 	};
 
@@ -310,6 +324,12 @@
 	};
 };
 
+&main_gpio0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&test_key_pins_default>;
+};
+
+
 &main_gpio2 {
 	status = "disabled";
 };
diff --git a/board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/drivers/gpio/gpio-davinci.c b/board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/drivers/gpio/gpio-davinci.c
old mode 100644
new mode 100755
index 6f21385..d0d49d3
--- a/board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/drivers/gpio/gpio-davinci.c
+++ b/board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/drivers/gpio/gpio-davinci.c
@@ -25,6 +25,13 @@
 
 #include <asm-generic/gpio.h>
 
+#include <linux/interrupt.h>
+#include <linux/of_irq.h>
+#include <linux/of_gpio.h>
+
+int gpio_test_init(void);
+
+
 #define MAX_REGS_BANKS 5
 #define MAX_INT_PER_BANK 32
 
@@ -64,6 +71,38 @@ struct davinci_gpio_controller {
 	int			irqs[MAX_INT_PER_BANK];
 };
 
+static irqreturn_t test_irq(int irq, void *data)
+{
+	pr_info("%s: irq %d, val=%d\n", __func__, irq,
+		gpio_get_value(432));
+	return IRQ_HANDLED;
+}
+
+int gpio_test_init(void)
+{
+	struct device_node *np;
+	int irq;
+	int ret = 0;
+
+	printk("%s %s %d.\n", __FILE__, __func__, __LINE__);
+
+	np = of_find_node_by_name(NULL, "gpio_test");
+
+	if (np) {
+		pr_info("Initializing gpio test\n");
+		irq = irq_of_parse_and_map(np, 0);
+		printk("irq number is %d\n", irq);
+		ret = request_irq(irq, test_irq, //IRQF_TRIGGER_RISING,
+				  IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+				  "key-gpio", NULL);
+		if (ret)
+			pr_err("request_irq returns %d\n", ret);
+	}
+
+	return ret;
+}
+
+
 static inline u32 __gpio_mask(unsigned gpio)
 {
 	return 1 << (gpio % 32);
@@ -273,6 +312,10 @@ static int davinci_gpio_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
+	if (!strcmp("600000.gpio", pdev->name)) {
+		gpio_test_init();
+	}
+
 	return 0;
 }

He guesses that the relevant part of the MCU caused the interrupt to fail to respond. The following actions are taken:

1. The use of GPIO0_5 (AD25) by the MCU-related code is shielded. (The interrupt function still fails to respond)

2. During the boot process, no MCU related firmware is loaded. (The interrupt function still fails to respond)

The customer performs the same verification on TDA4VM, the same code logic, and finds that on TDA4VM, GPIO interrupts can respond normally.

Thanks,

Annie

  • By the way, I find datasheet GPIO PINMUX register show as below:

    But this register show as TRM is wkup register. Is this information have any error?

  • Hi Kangjia,

    Were you able to get any other GPIO working on TDA4VL?

    - Keerthy

  • Hi Keerthy,

    Yes, I have try other GPIO include main domain GPIO and WKUP domain GPIO. It also failed to trigger GPIO interrupt.

  • Hi Kangjia,

    Can you dump the pinmux registers once you boot to Linux? I am suspecting if they are getting overwritten by other firmware running.
    Please share the pinmux register values read using devmem2 in Linux.

    Also could you please check if you have the patch in the version of SDK that you are using:

    From: Keerthy <j-keerthy@ti.com>
    
    
    The interrupt-parent for wkup_gpioX instances are wrongly assigned as
    main_gpio_intr instead of wkup_gpio_intr. Fix it.
    
    Fixes: b8545f9d3a54 ("arm64: dts: ti: Add initial support for J721S2 SoC")
    Signed-off-by: Keerthy <j-keerthy@ti.com>
    ---
     arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi
    index 7521963719ff..6c5c02edb375 100644
    --- a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi
    @@ -108,7 +108,7 @@
     		reg = <0x00 0x42110000 0x00 0x100>;
     		gpio-controller;
     		#gpio-cells = <2>;
    -		interrupt-parent = <&main_gpio_intr>;
    +		interrupt-parent = <&wkup_gpio_intr>;
     		interrupts = <103>, <104>, <105>, <106>, <107>, <108>;
     		interrupt-controller;
     		#interrupt-cells = <2>;
    @@ -124,7 +124,7 @@
     		reg = <0x00 0x42100000 0x00 0x100>;
     		gpio-controller;
     		#gpio-cells = <2>;
    -		interrupt-parent = <&main_gpio_intr>;
    +		interrupt-parent = <&wkup_gpio_intr>;
     		interrupts = <112>, <113>, <114>, <115>, <116>, <117>;
     		interrupt-controller;
     		#interrupt-cells = <2>;
    --



    - Keerthy

  • hi Keerthy,

    I dumped the register corresponding to the GPIO pinmux and determined that the pinmux is set to the GPIO function. At the same time I confirmed the contents of the arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi file. The interrupt-parent property is correctly configured as <&wkup_gpio_intr>;

  • hi Keerthy,

    I had the same problem as kangjia and we discussed it together before. The root cause of the problem was not found.

  • Could you please dump all the registers of the GPIO instance that is being used for interrupt generation?

    - Keerthy

  • hi Keerthy,

    I dumped the GPIO related registers, please see the attachment for the register values.
    My steps are as follows:
    1. According to the information in this post, I added the interrupt function of GPIO0_5 in the k3-j721s2-common-proc-board.dts and gpio-davinci.c files.
    2. Then recompile, burn, and boot.
    3. After booting, I first dump the GPIO registers, and the corresponding information is saved in the dump_reg_1.log file.
    4. Then I configured the GPIO as follows:
    root@j721s2-evm:/sys/class/gpio# echo 362 > export
    root@j721s2-evm:/sys/class/gpio# cd gpio362
    root@j721s2-evm:/sys/class/gpio/gpio362# echo out > direction
    root@j721s2-evm:/sys/class/gpio/gpio362# echo 0 > value
    root@j721s2-evm:/sys/class/gpio/gpio362# echo 1 > value
    root@j721s2-evm:/sys/class/gpio/gpio362# echo 0 > value
    root@j721s2-evm:/sys/class/gpio/gpio362# echo 1 > value
    5. Then I dump the GPIO registers again, and the corresponding information is saved in the dump_reg_2.log file.

    6. Next, I renamed the /lib/firmwa folder in rootfs to /lib/firmw_ybak. This ensures that the firmware of other cores will not be loaded on the next boot. Make sure GPIO0_5 is not used by other cores.
    7. Power off and restart.

    8、After booting, I first dump the GPIO registers, and the corresponding information is saved in the dump_reg_3.log file.

    9. Then I configured the GPIO as follows:
    root@j721s2-evm:/sys/class/gpio# echo 362 > export
    root@j721s2-evm:/sys/class/gpio# cd gpio362
    root@j721s2-evm:/sys/class/gpio/gpio362# echo out > direction
    root@j721s2-evm:/sys/class/gpio/gpio362# echo 0 > value
    root@j721s2-evm:/sys/class/gpio/gpio362# echo 1 > value
    root@j721s2-evm:/sys/class/gpio/gpio362# echo 0 > value
    root@j721s2-evm:/sys/class/gpio/gpio362# echo 1 > value

    10.Then I dump the GPIO registers again, and the corresponding information is saved in the dump_reg_4.log file.

    /dev/mem opened.
    Memory mapped at address 0xffff98e90000.
    Read at address  0x00600000 (0xffff98e90000): 0x44832905
    /dev/mem opened.
    Memory mapped at address 0xffffbbb10000.
    Read at address  0x00600004 (0xffffbbb10004): 0x00000001
    /dev/mem opened.
    Memory mapped at address 0xffff90860000.
    Read at address  0x00600008 (0xffff90860008): 0x0000001F
    /dev/mem opened.
    Memory mapped at address 0xffff9cab0000.
    Read at address  0x0060000C (0xffff9cab000c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff99b90000.
    Read at address  0x00600010 (0xffff99b90010): 0xFFEFFEFF
    /dev/mem opened.
    Memory mapped at address 0xffff87db0000.
    Read at address  0x00600014 (0xffff87db0014): 0x00000100
    /dev/mem opened.
    Memory mapped at address 0xffffb5690000.
    Read at address  0x00600018 (0xffffb5690018): 0x00000100
    /dev/mem opened.
    Memory mapped at address 0xffffb7b60000.
    Read at address  0x0060001C (0xffffb7b6001c): 0x00000100
    /dev/mem opened.
    Memory mapped at address 0xffff92100000.
    Read at address  0x00600020 (0xffff92100020): 0x5DA715DF
    /dev/mem opened.
    Memory mapped at address 0xffff7ff20000.
    Read at address  0x00600024 (0xffff7ff20024): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffffb0050000.
    Read at address  0x00600028 (0xffffb0050028): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffffa0dc0000.
    Read at address  0x0060002C (0xffffa0dc002c): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffffb8f80000.
    Read at address  0x00600030 (0xffffb8f80030): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffffb90d0000.
    Read at address  0x00600034 (0xffffb90d0034): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff94cf0000.
    Read at address  0x00600038 (0xffff94cf0038): 0xFFFFFFFB
    /dev/mem opened.
    Memory mapped at address 0xffff918e0000.
    Read at address  0x0060003C (0xffff918e003c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa7bd0000.
    Read at address  0x00600040 (0xffffa7bd0040): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8f070000.
    Read at address  0x00600044 (0xffff8f070044): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff90f70000.
    Read at address  0x00600048 (0xffff90f70048): 0xF3A7A500
    /dev/mem opened.
    Memory mapped at address 0xffffb2180000.
    Read at address  0x0060004C (0xffffb218004c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff89c70000.
    Read at address  0x00600050 (0xffff89c70050): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffba0d0000.
    Read at address  0x00600054 (0xffffba0d0054): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffac710000.
    Read at address  0x00600058 (0xffffac710058): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff837a0000.
    Read at address  0x0060005C (0xffff837a005c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb7e80000.
    Read at address  0x00600060 (0xffffb7e80060): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffff991b0000.
    Read at address  0x00600064 (0xffff991b0064): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff91fd0000.
    Read at address  0x00600068 (0xffff91fd0068): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8a230000.
    Read at address  0x0060006C (0xffff8a23006c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff87c60000.
    Read at address  0x00600070 (0xffff87c60070): 0x00000003
    /dev/mem opened.
    Memory mapped at address 0xffffb5410000.
    Read at address  0x00600074 (0xffffb5410074): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8b370000.
    Read at address  0x00600078 (0xffff8b370078): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa7ab0000.
    Read at address  0x0060007C (0xffffa7ab007c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff844a0000.
    Read at address  0x00600080 (0xffff844a0080): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa8df0000.
    Read at address  0x00600084 (0xffffa8df0084): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb1050000.
    Read at address  0x00600088 (0xffffb1050088): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffffb2580000.
    Read at address  0x0060008C (0xffffb258008c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffbc7a0000.
    Read at address  0x00600090 (0xffffbc7a0090): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff90e90000.
    Read at address  0x00600094 (0xffff90e90094): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9e790000.
    Read at address  0x00600098 (0xffff9e790098): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa6d70000.
    Read at address  0x0060009C (0xffffa6d7009c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff99b80000.
    Read at address  0x006000A0 (0xffff99b800a0): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9c870000.
    Read at address  0x006000A4 (0xffff9c8700a4): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa1360000.
    Read at address  0x006000A8 (0xffffa13600a8): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff92350000.
    Read at address  0x006000AC (0xffff923500ac): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa41c0000.
    Read at address  0x006000B0 (0xffffa41c00b0): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffffa17a0000.
    Read at address  0x006000B4 (0xffffa17a00b4): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffbbc50000.
    Read at address  0x006000B8 (0xffffbbc500b8): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa4490000.
    Read at address  0x006000BC (0xffffa44900bc): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff91010000.
    Read at address  0x006000C0 (0xffff910100c0): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9ca80000.
    Read at address  0x006000C4 (0xffff9ca800c4): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb2e80000.
    Read at address  0x006000C8 (0xffffb2e800c8): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff952c0000.
    Read at address  0x006000CC (0xffff952c00cc): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa32a0000.
    Read at address  0x006000D0 (0xffffa32a00d0): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffab090000.
    Read at address  0x006000D4 (0xffffab0900d4): 0x00000000
    
    /dev/mem opened.
    Memory mapped at address 0xffffa97a0000.
    Read at address  0x00600000 (0xffffa97a0000): 0x44832905
    /dev/mem opened.
    Memory mapped at address 0xffff9bfb0000.
    Read at address  0x00600004 (0xffff9bfb0004): 0x00000001
    /dev/mem opened.
    Memory mapped at address 0xffffbc7a0000.
    Read at address  0x00600008 (0xffffbc7a0008): 0x0000001F
    /dev/mem opened.
    Memory mapped at address 0xffff8ce60000.
    Read at address  0x0060000C (0xffff8ce6000c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffbe750000.
    Read at address  0x00600010 (0xffffbe750010): 0xFFEFFEDF
    /dev/mem opened.
    Memory mapped at address 0xffffa5c50000.
    Read at address  0x00600014 (0xffffa5c50014): 0x00000120
    /dev/mem opened.
    Memory mapped at address 0xffff9af20000.
    Read at address  0x00600018 (0xffff9af20018): 0x00000120
    /dev/mem opened.
    Memory mapped at address 0xffffb23a0000.
    Read at address  0x0060001C (0xffffb23a001c): 0x00000120
    /dev/mem opened.
    Memory mapped at address 0xffff8c090000.
    Read at address  0x00600020 (0xffff8c090020): 0x5DA715FF
    /dev/mem opened.
    Memory mapped at address 0xffff95a90000.
    Read at address  0x00600024 (0xffff95a90024): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffff880f0000.
    Read at address  0x00600028 (0xffff880f0028): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffffa12f0000.
    Read at address  0x0060002C (0xffffa12f002c): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffffb4a20000.
    Read at address  0x00600030 (0xffffb4a20030): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffffb26a0000.
    Read at address  0x00600034 (0xffffb26a0034): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffff85480000.
    Read at address  0x00600038 (0xffff85480038): 0xFFFFFFFB
    /dev/mem opened.
    Memory mapped at address 0xffff9f870000.
    Read at address  0x0060003C (0xffff9f87003c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8b8e0000.
    Read at address  0x00600040 (0xffff8b8e0040): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa41a0000.
    Read at address  0x00600044 (0xffffa41a0044): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9ed10000.
    Read at address  0x00600048 (0xffff9ed10048): 0xF3A78500
    /dev/mem opened.
    Memory mapped at address 0xffff9bc40000.
    Read at address  0x0060004C (0xffff9bc4004c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff92400000.
    Read at address  0x00600050 (0xffff92400050): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffba010000.
    Read at address  0x00600054 (0xffffba010054): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9f8b0000.
    Read at address  0x00600058 (0xffff9f8b0058): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff86780000.
    Read at address  0x0060005C (0xffff8678005c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffaef10000.
    Read at address  0x00600060 (0xffffaef10060): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffff814e0000.
    Read at address  0x00600064 (0xffff814e0064): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff80640000.
    Read at address  0x00600068 (0xffff80640068): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff7f9a0000.
    Read at address  0x0060006C (0xffff7f9a006c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb6050000.
    Read at address  0x00600070 (0xffffb6050070): 0x00000003
    /dev/mem opened.
    Memory mapped at address 0xffff8e4f0000.
    Read at address  0x00600074 (0xffff8e4f0074): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb62f0000.
    Read at address  0x00600078 (0xffffb62f0078): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9ff50000.
    Read at address  0x0060007C (0xffff9ff5007c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa3a70000.
    Read at address  0x00600080 (0xffffa3a70080): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff91780000.
    Read at address  0x00600084 (0xffff91780084): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9b260000.
    Read at address  0x00600088 (0xffff9b260088): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffffad070000.
    Read at address  0x0060008C (0xffffad07008c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffac1c0000.
    Read at address  0x00600090 (0xffffac1c0090): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffbba10000.
    Read at address  0x00600094 (0xffffbba10094): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8f3d0000.
    Read at address  0x00600098 (0xffff8f3d0098): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffab2e0000.
    Read at address  0x0060009C (0xffffab2e009c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9c690000.
    Read at address  0x006000A0 (0xffff9c6900a0): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff97600000.
    Read at address  0x006000A4 (0xffff976000a4): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8c6f0000.
    Read at address  0x006000A8 (0xffff8c6f00a8): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9d6c0000.
    Read at address  0x006000AC (0xffff9d6c00ac): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff99a80000.
    Read at address  0x006000B0 (0xffff99a800b0): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffff843e0000.
    Read at address  0x006000B4 (0xffff843e00b4): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffaa4c0000.
    Read at address  0x006000B8 (0xffffaa4c00b8): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa82d0000.
    Read at address  0x006000BC (0xffffa82d00bc): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9c3c0000.
    Read at address  0x006000C0 (0xffff9c3c00c0): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9fdf0000.
    Read at address  0x006000C4 (0xffff9fdf00c4): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffbc560000.
    Read at address  0x006000C8 (0xffffbc5600c8): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8e160000.
    Read at address  0x006000CC (0xffff8e1600cc): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa6e10000.
    Read at address  0x006000D0 (0xffffa6e100d0): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9e690000.
    Read at address  0x006000D4 (0xffff9e6900d4): 0x00000000
    
    /dev/mem opened.
    Memory mapped at address 0xffff934c0000.
    Read at address  0x00600000 (0xffff934c0000): 0x44832905
    /dev/mem opened.
    Memory mapped at address 0xffff97d80000.
    Read at address  0x00600004 (0xffff97d80004): 0x00000001
    /dev/mem opened.
    Memory mapped at address 0xffffb39c0000.
    Read at address  0x00600008 (0xffffb39c0008): 0x0000001F
    /dev/mem opened.
    Memory mapped at address 0xffff7f750000.
    Read at address  0x0060000C (0xffff7f75000c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb44d0000.
    Read at address  0x00600010 (0xffffb44d0010): 0xFFFFFEFF
    /dev/mem opened.
    Memory mapped at address 0xffff86280000.
    Read at address  0x00600014 (0xffff86280014): 0x00000100
    /dev/mem opened.
    Memory mapped at address 0xffff85c70000.
    Read at address  0x00600018 (0xffff85c70018): 0x00000100
    /dev/mem opened.
    Memory mapped at address 0xffff9a5f0000.
    Read at address  0x0060001C (0xffff9a5f001c): 0x00000100
    /dev/mem opened.
    Memory mapped at address 0xffffa2940000.
    Read at address  0x00600020 (0xffffa2940020): 0x00200500
    /dev/mem opened.
    Memory mapped at address 0xffff8c5b0000.
    Read at address  0x00600024 (0xffff8c5b0024): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffff9eef0000.
    Read at address  0x00600028 (0xffff9eef0028): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffff890d0000.
    Read at address  0x0060002C (0xffff890d002c): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffff85f10000.
    Read at address  0x00600030 (0xffff85f10030): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffffa2060000.
    Read at address  0x00600034 (0xffffa2060034): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff98240000.
    Read at address  0x00600038 (0xffff98240038): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffff9c880000.
    Read at address  0x0060003C (0xffff9c88003c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb3420000.
    Read at address  0x00600040 (0xffffb3420040): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff867b0000.
    Read at address  0x00600044 (0xffff867b0044): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffbadd0000.
    Read at address  0x00600048 (0xffffbadd0048): 0xF3000000
    /dev/mem opened.
    Memory mapped at address 0xffffb7d90000.
    Read at address  0x0060004C (0xffffb7d9004c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff954d0000.
    Read at address  0x00600050 (0xffff954d0050): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff97850000.
    Read at address  0x00600054 (0xffff97850054): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9aef0000.
    Read at address  0x00600058 (0xffff9aef0058): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9fc40000.
    Read at address  0x0060005C (0xffff9fc4005c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff88b50000.
    Read at address  0x00600060 (0xffff88b50060): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffffb5760000.
    Read at address  0x00600064 (0xffffb5760064): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8b470000.
    Read at address  0x00600068 (0xffff8b470068): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff88450000.
    Read at address  0x0060006C (0xffff8845006c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff98fd0000.
    Read at address  0x00600070 (0xffff98fd0070): 0x00000002
    /dev/mem opened.
    Memory mapped at address 0xffff8eef0000.
    Read at address  0x00600074 (0xffff8eef0074): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff87710000.
    Read at address  0x00600078 (0xffff87710078): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8df10000.
    Read at address  0x0060007C (0xffff8df1007c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff91fc0000.
    Read at address  0x00600080 (0xffff91fc0080): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffbb090000.
    Read at address  0x00600084 (0xffffbb090084): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9a5a0000.
    Read at address  0x00600088 (0xffff9a5a0088): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffff95dd0000.
    Read at address  0x0060008C (0xffff95dd008c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb03a0000.
    Read at address  0x00600090 (0xffffb03a0090): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff86d40000.
    Read at address  0x00600094 (0xffff86d40094): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb9b50000.
    Read at address  0x00600098 (0xffffb9b50098): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff975f0000.
    Read at address  0x0060009C (0xffff975f009c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb3390000.
    Read at address  0x006000A0 (0xffffb33900a0): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff83c10000.
    Read at address  0x006000A4 (0xffff83c100a4): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff822a0000.
    Read at address  0x006000A8 (0xffff822a00a8): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9eef0000.
    Read at address  0x006000AC (0xffff9eef00ac): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffbd3d0000.
    Read at address  0x006000B0 (0xffffbd3d00b0): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffffb3ff0000.
    Read at address  0x006000B4 (0xffffb3ff00b4): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff94860000.
    Read at address  0x006000B8 (0xffff948600b8): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa8ab0000.
    Read at address  0x006000BC (0xffffa8ab00bc): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9cda0000.
    Read at address  0x006000C0 (0xffff9cda00c0): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff82960000.
    Read at address  0x006000C4 (0xffff829600c4): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9e730000.
    Read at address  0x006000C8 (0xffff9e7300c8): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9b7c0000.
    Read at address  0x006000CC (0xffff9b7c00cc): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff840f0000.
    Read at address  0x006000D0 (0xffff840f00d0): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb9490000.
    Read at address  0x006000D4 (0xffffb94900d4): 0x00000000
    
    /dev/mem opened.
    Memory mapped at address 0xffff9b3f0000.
    Read at address  0x00600000 (0xffff9b3f0000): 0x44832905
    /dev/mem opened.
    Memory mapped at address 0xffffab4f0000.
    Read at address  0x00600004 (0xffffab4f0004): 0x00000001
    /dev/mem opened.
    Memory mapped at address 0xffff8e6d0000.
    Read at address  0x00600008 (0xffff8e6d0008): 0x0000001F
    /dev/mem opened.
    Memory mapped at address 0xffffba9d0000.
    Read at address  0x0060000C (0xffffba9d000c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff92440000.
    Read at address  0x00600010 (0xffff92440010): 0xFFFFFEDF
    /dev/mem opened.
    Memory mapped at address 0xffffb94b0000.
    Read at address  0x00600014 (0xffffb94b0014): 0x00000120
    /dev/mem opened.
    Memory mapped at address 0xffff84db0000.
    Read at address  0x00600018 (0xffff84db0018): 0x00000120
    /dev/mem opened.
    Memory mapped at address 0xffff8f8c0000.
    Read at address  0x0060001C (0xffff8f8c001c): 0x00000120
    /dev/mem opened.
    Memory mapped at address 0xffff8aa10000.
    Read at address  0x00600020 (0xffff8aa10020): 0x00200520
    /dev/mem opened.
    Memory mapped at address 0xffffadc70000.
    Read at address  0x00600024 (0xffffadc70024): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffffb2d30000.
    Read at address  0x00600028 (0xffffb2d30028): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffff8a3c0000.
    Read at address  0x0060002C (0xffff8a3c002c): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffffbc820000.
    Read at address  0x00600030 (0xffffbc820030): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffff9afc0000.
    Read at address  0x00600034 (0xffff9afc0034): 0x00000020
    /dev/mem opened.
    Memory mapped at address 0xffffa4c60000.
    Read at address  0x00600038 (0xffffa4c60038): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffff8f0e0000.
    Read at address  0x0060003C (0xffff8f0e003c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa6c30000.
    Read at address  0x00600040 (0xffffa6c30040): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb1dd0000.
    Read at address  0x00600044 (0xffffb1dd0044): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9d690000.
    Read at address  0x00600048 (0xffff9d690048): 0xF3000000
    /dev/mem opened.
    Memory mapped at address 0xffffb3f40000.
    Read at address  0x0060004C (0xffffb3f4004c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff83720000.
    Read at address  0x00600050 (0xffff83720050): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9d2b0000.
    Read at address  0x00600054 (0xffff9d2b0054): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff956c0000.
    Read at address  0x00600058 (0xffff956c0058): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8db90000.
    Read at address  0x0060005C (0xffff8db9005c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8e940000.
    Read at address  0x00600060 (0xffff8e940060): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffffa0b60000.
    Read at address  0x00600064 (0xffffa0b60064): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa9b70000.
    Read at address  0x00600068 (0xffffa9b70068): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa9ca0000.
    Read at address  0x0060006C (0xffffa9ca006c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff81bd0000.
    Read at address  0x00600070 (0xffff81bd0070): 0x00000002
    /dev/mem opened.
    Memory mapped at address 0xffffaed00000.
    Read at address  0x00600074 (0xffffaed00074): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff95230000.
    Read at address  0x00600078 (0xffff95230078): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8d230000.
    Read at address  0x0060007C (0xffff8d23007c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa3510000.
    Read at address  0x00600080 (0xffffa3510080): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa2c10000.
    Read at address  0x00600084 (0xffffa2c10084): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8e350000.
    Read at address  0x00600088 (0xffff8e350088): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffffa2990000.
    Read at address  0x0060008C (0xffffa299008c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8b6f0000.
    Read at address  0x00600090 (0xffff8b6f0090): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8aa60000.
    Read at address  0x00600094 (0xffff8aa60094): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa2710000.
    Read at address  0x00600098 (0xffffa2710098): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb0430000.
    Read at address  0x0060009C (0xffffb043009c): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb3f80000.
    Read at address  0x006000A0 (0xffffb3f800a0): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff9b240000.
    Read at address  0x006000A4 (0xffff9b2400a4): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffa6c90000.
    Read at address  0x006000A8 (0xffffa6c900a8): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb7700000.
    Read at address  0x006000AC (0xffffb77000ac): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff86fe0000.
    Read at address  0x006000B0 (0xffff86fe00b0): 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffff89c40000.
    Read at address  0x006000B4 (0xffff89c400b4): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffb49c0000.
    Read at address  0x006000B8 (0xffffb49c00b8): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffbc2c0000.
    Read at address  0x006000BC (0xffffbc2c00bc): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff8d790000.
    Read at address  0x006000C0 (0xffff8d7900c0): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff88560000.
    Read at address  0x006000C4 (0xffff885600c4): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff90350000.
    Read at address  0x006000C8 (0xffff903500c8): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffffbdb90000.
    Read at address  0x006000CC (0xffffbdb900cc): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff90630000.
    Read at address  0x006000D0 (0xffff906300d0): 0x00000000
    /dev/mem opened.
    Memory mapped at address 0xffff80420000.
    Read at address  0x006000D4 (0xffff804200d4): 0x00000000
    

  • Thanks. I have been able to reproduce the issue. I am checking internally on this. It seems to be something related to interrupt router configuration. I will keep you posted on this by mid next week.

    Best regards,

    Keerthy

  • Hi,

    Can you please add the below changes on top:

    diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
    index 57990eba5..dbd5ee283 100644
    --- a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
    @@ -103,7 +103,7 @@
    #interrupt-cells = <1>;
    ti,sci = <&sms>;
    ti,sci-dev-id = <148>;
    - ti,interrupt-ranges = <8 360 56>;
    + ti,interrupt-ranges = <8 392 56>;
    };

    main_pmx0: pinctrl@11c000 {
    diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi
    index f31749ba9..c23fb6f7b 100644
    --- a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi
    @@ -65,7 +65,7 @@
    #interrupt-cells = <1>;
    ti,sci = <&sms>;
    ti,sci-dev-id = <125>;
    - ti,interrupt-ranges = <16 928 16>;
    + ti,interrupt-ranges = <16 960 16>;

    Best Regards,
    Keerthy