Dear TI:
I added the following log printings before and after invocation of function `Sciclient_rmIrqSet()` in file pdk_jacinto_08_02_00_21/packages/ti/drv/gpio/soc/j721e/GPIO_soc.c. The codes are as follows:
printf("___ %s:%d:\n" "\trmIrqReq.hdr.type=%u\n" "\trmIrqReq.hdr.host=%u\n" "\trmIrqReq.hdr.seq=%u\n" "\trmIrqReq.hdr.flags=%u\n" "\trmIrqReq.valid_params=%u\n" "\trmIrqReq.src_id=%u\n" "\trmIrqReq.src_index=%u\n" "\trmIrqReq.dst_id=%u\n" "\trmIrqReq.dst_host_irq=%u\n" "\trmIrqReq.ia_id=%u\n" "\trmIrqReq.vint=%u\n" "\trmIrqReq.global_event=%u\n" "\trmIrqReq.vint_status_bit_index=%u\n" "\trmIrqReq.secondary_host=%u\n", __func__, __LINE__, rmIrqReq.hdr.type, rmIrqReq.hdr.host, rmIrqReq.hdr.seq, rmIrqReq.hdr.flags, rmIrqReq.valid_params, rmIrqReq.src_id, rmIrqReq.src_index, rmIrqReq.dst_id, rmIrqReq.dst_host_irq, rmIrqReq.ia_id, rmIrqReq.vint, rmIrqReq.global_event, rmIrqReq.vint_status_bit_index, rmIrqReq.secondary_host); printf("___ before 0xa00064=0x%08x\n", *((uint32_t *)0x00a00060)); printf("___ before 0xa00064=0x%08x\n", *((uint32_t *)0x00a00064)); printf("___ before 0xa00068=0x%08x\n", *((uint32_t *)0x00a00068)); printf("___ before 0xa0006c=0x%08x\n", *((uint32_t *)0x00a0006c)); printf("___ before 0xa00070=0x%08x\n", *((uint32_t *)0x00a00070)); retVal = Sciclient_rmIrqSet( (const struct tisci_msg_rm_irq_set_req *)&rmIrqReq, &rmIrqResp, SCICLIENT_SERVICE_WAIT_FOREVER); printf("___ after 0xa00064=0x%08x\n", *((uint32_t *)0x00a00060)); printf("___ after 0xa00064=0x%08x\n", *((uint32_t *)0x00a00064)); printf("___ after 0xa00068=0x%08x\n", *((uint32_t *)0x00a00068)); printf("___ after 0xa0006c=0x%08x\n", *((uint32_t *)0x00a0006c)); printf("___ after 0xa00070=0x%08x\n", *((uint32_t *)0x00a00070));
By runing the above codes on MCU2_0, I got the following logs:
[MCU2_0] 30.389959 s: ___ GPIO_socConfigIntrPath:826: [MCU2_0] 30.390021 s: rmIrqReq.hdr.type=0 [MCU2_0] 30.390059 s: rmIrqReq.hdr.host=0 [MCU2_0] 30.390093 s: rmIrqReq.hdr.seq=0 [MCU2_0] 30.390125 s: rmIrqReq.hdr.flags=0 [MCU2_0] 30.390159 s: rmIrqReq.valid_params=3 [MCU2_0] 30.390193 s: rmIrqReq.src_id=105 [MCU2_0] 30.390225 s: rmIrqReq.src_index=7 [MCU2_0] 30.390258 s: rmIrqReq.dst_id=245 [MCU2_0] 30.390292 s: rmIrqReq.dst_host_irq=184 [MCU2_0] 30.390328 s: rmIrqReq.ia_id=0 [MCU2_0] 30.390360 s: rmIrqReq.vint=0 [MCU2_0] 30.390394 s: rmIrqReq.global_event=0 [MCU2_0] 30.390430 s: rmIrqReq.vint_status_bit_index=0 [MCU2_0] 30.390467 s: rmIrqReq.secondary_host=255 [MCU2_0] 30.390507 s: ___ before 0xa00064=0x00000000 [MCU2_0] 30.390545 s: ___ before 0xa00064=0x00000000 [MCU2_0] 30.390582 s: ___ before 0xa00068=0x00000000 [MCU2_0] 30.390619 s: ___ before 0xa0006c=0x00000000 [MCU2_0] 30.390656 s: ___ before 0xa00070=0x00000000 [MCU2_0] 30.391078 s: ___ after 0xa00064=0x00000000 [MCU2_0] 30.391131 s: ___ after 0xa00064=0x00010107 [MCU2_0] 30.391171 s: ___ after 0xa00068=0x00000000 [MCU2_0] 30.391209 s: ___ after 0xa0006c=0x00000000 [MCU2_0] 30.391246 s: ___ after 0xa00070=0x00000000 [MCU2_0] 30.391337 s: ___ GPIO_socConfigIntrPath:826: [MCU2_0] 30.391382 s: rmIrqReq.hdr.type=0 [MCU2_0] 30.391418 s: rmIrqReq.hdr.host=0 [MCU2_0] 30.391452 s: rmIrqReq.hdr.seq=0 [MCU2_0] 30.391485 s: rmIrqReq.hdr.flags=0 [MCU2_0] 30.391520 s: rmIrqReq.valid_params=3 [MCU2_0] 30.391554 s: rmIrqReq.src_id=106 [MCU2_0] 30.391588 s: rmIrqReq.src_index=0 [MCU2_0] 30.391621 s: rmIrqReq.dst_id=245 [MCU2_0] 30.391656 s: rmIrqReq.dst_host_irq=185 [MCU2_0] 30.391744 s: rmIrqReq.ia_id=0 [MCU2_0] 30.391786 s: rmIrqReq.vint=0 [MCU2_0] 30.391820 s: rmIrqReq.global_event=0 [MCU2_0] 30.391858 s: rmIrqReq.vint_status_bit_index=0 [MCU2_0] 30.391896 s: rmIrqReq.secondary_host=255 [MCU2_0] 30.391934 s: ___ before 0xa00064=0x00000000 [MCU2_0] 30.391973 s: ___ before 0xa00064=0x00010107 [MCU2_0] 30.392010 s: ___ before 0xa00068=0x00000000 [MCU2_0] 30.392047 s: ___ before 0xa0006c=0x00000000 [MCU2_0] 30.392084 s: ___ before 0xa00070=0x00000000 [MCU2_0] 30.392440 s: ___ after 0xa00064=0x00000000 [MCU2_0] 30.392498 s: ___ after 0xa00064=0x00010107 [MCU2_0] 30.392565 s: ___ after 0xa00068=0x00010120 [MCU2_0] 30.392607 s: ___ after 0xa0006c=0x00000000 [MCU2_0] 30.392647 s: ___ after 0xa00070=0x00000000
From the above logs, there is `30.390292 s: rmIrqReq.dst_host_irq=184`. According to `Table 9-186. R5FSS0_CORE0 Interrupt Map` from SPRUIL1B-TRM.pdf, the corresponding Interrupt Name is `GPIOMUX_INTRTR0_OUTP_24`, so the corresponding interrupt register is `GPIOMUX_INTRTR0_MUXCNTL_24`. According to section `9.3.3.2.2 GPIOMUX_INTRTR0_MUXCNTL_n Register` from SPRUIL1B-TRM.pdf, the register address is `0x00A00004+0x4+(24*0x4)=0x00a00068`, but `0x00a00064` is changed after invocation of `Sciclient_rmIrqSet()` according to `30.391131 s: ___ after 0xa00064=0x00010107` in the above logs. From my unstanding the register `0x00a00068` should be changed.