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.

Can not rmmod the pru_rproc.ko module?

Other Parts Discussed in Thread: AM4379, ADS7846

Dear Sirs,

   I download the rtlinux SDK from TI website, and then I compile and download to SD Card, the kernel and the application both can running, but I rmmod the pru_rproc.ko  is hang on, I try this command was ok when use the rt4.4.12 kernel.I don't know how to fix this problem.

Thanks so much.

Best Regards.

Hans.

root@am437x-evm:/lib/modules/4.4.19-rt25-gf572d285f0/kernel/drivers/remoteproc# rmmod pru_rproc.ko
rmmod: ERROR: Module pru_rproc is in use
root@am437x-evm:/lib/modules/4.4.19-rt25-gf572d285f0/kernel/drivers/remoteproc# rmmod -f pru_rproc.ko
[ 93.230461] pru-rproc 54438000.pru1: pru_rproc_remove: removing rproc 54438000.pru1
[ 93.239358] remoteproc2: releasing 54438000.pru1
[ 93.244255] pru-rproc 54434000.pru0: pru_rproc_remove: removing rproc 54434000.pru0

  • Hi Hans,

    Could you specify what is your HW (processor and board)?

    BR
    Tsvetolin Shulev
  • Hi Tsvetolin,

        I running on AM4379, the board is similiar as EVM board. But the rt4.4.12 is Ok, rt4.4.19 has this problem.

       BR

      Hans.

                                     Hans.

  • Hans,

    As of Linux Processor SDK v3.1.0.6 (linux 4.4.19), both PRU subsystems in the AM437x device are supported (and can be loaded) by the Linux driver (pru_rproc). In previous versions of the Linux Processor SDK only one PRU subsystem could be loaded by the Linux driver.

    See the below wiki pages for more info:

    processors.wiki.ti.com/.../AM437x_Linux_PRU_Driver
    processors.wiki.ti.com/.../PRU_Training:_Hands-on_Labs

    Regards,
    Pavel
  • Hi   Pavel,

        Thanks for your response. 

        But I  can not rmmod -f  the pru_proc module.

        Best Regards.

        Hans.

  • Hans,

    Can you also provide the log for rt4.4.12 (rmmod -f pru_rproc.ko) ?

    In rt4.4.19, can you try first to remove rpmsg_client_sample.ko and pruss.ko, then pru_rproc.ko.

    Can you also provide the output of the "lsmod" command?

    target#lsmod

    Regards,
    Pavel

  • Hi Pavel,

       Thanks for your response.

       My board no rpmsg_client_sample.ko , I following the lsmod informations.

    root@am437x-evm:~# lsmod
    Module Size Used by
    cbc 2324 0
    jitterentropy_rng 6609 1
    drbg 13510 2
    xfrm_user 22210 2
    xfrm4_tunnel 2040 0
    ipcomp 2257 0
    xfrm_ipcomp 4161 1 ipcomp
    esp4 6427 0
    ah4 5627 0
    af_key 26090 0
    xfrm_algo 6989 5 ah4,esp4,af_key,xfrm_user,xfrm_ipcomp
    bluetooth 327090 2
    xhci_plat_hcd 4891 0
    xhci_hcd 108403 1 xhci_plat_hcd
    usbcore 191566 2 xhci_plat_hcd,xhci_hcd
    dwc3 61893 0
    udc_core 12079 1 dwc3
    snd_soc_simple_card 7736 0
    ti_emif_sram 6064 1
    pvrsrvkm 406922 1
    pruss 10647 1
    omap_des 11214 0
    sha512_generic 9903 0
    sha512_arm 12079 0
    sha256_generic 9503 1
    hmac 2735 1
    md5 1897 0
    sha1_generic 2621 0
    sha1_arm_neon 6261 0
    sha1_arm 3862 1 sha1_arm_neon
    ecb 1909 0
    omap_aes_driver 19232 0
    omap_sham 21222 0
    dwc3_omap 4425 0
    extcon 13801 2 dwc3,dwc3_omap
    am437x_vpfe 23389 0
    omap_rng 4353 0
    rng_core 7442 1 omap_rng
    ads7846 12702 0
    c_can_platform 6638 0
    c_can 9514 1 c_can_platform
    can_dev 12154 1 c_can
    snd_soc_tlv320aic3x 48260 1
    edt_ft5x06 10689 0
    ti_am335x_adc 5677 0
    kfifo_buf 3184 1 ti_am335x_adc
    wkup_m3_ipc 7424 0
    wkup_m3_rproc 3669 1
    ov2659 9618 0
    omap_wdt 4655 0
    remoteproc 26828 3 pruss,wkup_m3_rproc,wkup_m3_ipc
    rtc_omap 8015 0
    virtio 6549 1 remoteproc
    virtio_ring 12035 1 remoteproc
    sch_fq_codel 8123 3
    cryptodev 38437 1
    root@am437x-evm:~#

    I type rmmod -f pruss.ko, there are informations below:

    root@am437x-evm:~# rmmod -f pruss
    rmmod: ERROR: could not remove module pruss: Device or resource busy
    root@am437x-evm:~#

    Thanks so much.

    BR.

    Hans

     

  • Hans,

    Can you also provide the log for rt4.4.12 (rmmod -f pru_rproc.ko) ?

    Hans Huang1 said:
    root@am437x-evm:~# lsmod

    I do not see the pru_proc.ko module in the lsmod list, the only PRU related modules I see there are pruss and remoteproc. Are you trying to remove module (pru_proc.ko) that do not exist?

    Regards,
    Pavel

  • am437x-evm login: root
    root@am437x-evm:~# lsmod
    Module Size Used by
    bc_example 7266 0
    pvrsrvkm 406922 3 bc_example
    xhci_plat_hcd 4891 0
    xhci_hcd 108403 1 xhci_plat_hcd
    usbcore 191566 2 xhci_plat_hcd,xhci_hcd
    virtio_rpmsg_bus 12534 1
    dwc3 61893 0
    udc_core 12079 1 dwc3
    xfrm_user 22210 2
    pru_rproc 11744 1
    xfrm4_tunnel 2040 0
    ipcomp 2257 0
    xfrm_ipcomp 4161 1 ipcomp
    esp4 6427 0
    ah4 5627 0
    snd_soc_simple_card 7736 0
    bluetooth 327090 2
    af_key 26090 0
    xfrm_algo 6989 5 ah4,esp4,af_key,xfrm_user,xfrm_ipcomp
    pm33xx 3658 0
    ti_emif_sram 6064 1 pm33xx
    pruss_intc 7249 1 pru_rproc
    ecb 1909 0
    pruss 10647 1 pru_rproc
    omap_des 11214 0
    omap_aes_driver 19232 0
    sha512_generic 9903 0
    sha512_arm 12079 0
    sha256_generic 9503 0
    hmac 2735 0
    md5 1897 0
    sha1_generic 2621 0
    sha1_arm_neon 6261 0
    sha1_arm 3862 1 sha1_arm_neon
    omap_sham 21222 0
    dwc3_omap 4425 0
    extcon 13801 2 dwc3,dwc3_omap
    am437x_vpfe 23389 0
    omap_rng 4353 0
    rng_core 7442 1 omap_rng
    ads7846 12702 0
    c_can_platform 6638 0
    c_can 9514 1 c_can_platform
    can_dev 12154 1 c_can
    edt_ft5x06 10689 0
    snd_soc_tlv320aic3x 48260 1
    ov2659 9618 0
    ti_am335x_adc 5677 0
    kfifo_buf 3184 1 ti_am335x_adc
    rtc_omap 8015 1
    wkup_m3_ipc 7424 1 pm33xx
    wkup_m3_rproc 3669 1
    remoteproc 26828 4 pruss,wkup_m3_rproc,pru_rproc,wkup_m3_ipc
    virtio 6549 2 remoteproc,virtio_rpmsg_bus
    omap_wdt 4655 0
    virtio_ring 12035 2 remoteproc,virtio_rpmsg_bus
    sch_fq_codel 8123 3
    root@am437x-evm:~#
    root@am437x-evm:~# rmmod -f pru_rproc
    [ 169.940759] pru-rproc 54438000.pru1: pru_rproc_remove: removing rproc 54438000.pru1
    [ 169.976957] remoteproc2: releasing 54438000.pru1
    [ 169.995009] pru-rproc 54434000.pru0: pru_rproc_remove: removing rproc 54434000.pru0

    Hi Pavel,

    Above all are the detail informations, I am sorry for paste the incorrect informations at last time.

    BR.
    Hans.
  • Can you also provide the log for rt4.4.12 (rmmod -f pru_rproc.ko) ?

    In rt4.4.19, can you try first to remove pruss then pru_proc?

    Can you also try with the full path?

    root@am437x-evm:~# rmmod -f /lib/modules/4.4.19-xxxxxxxx/kernel/drivers/remoteproc/pru_rproc.ko
  • Hi Pavel, 

       I paste the informations about rmmod -f from rtlinux4.4.12

    pru_rproc 9865 2
    omap_aes_driver 18260 0
    omap_des 11214 0
    pruss 11281 1 pru_rproc
    omap_sham 20318 0
    dwc3_omap 4425 0
    extcon 13801 2 dwc3,dwc3_omap
    c_can_platform 6638 0
    c_can 9258 1 c_can_platform
    omap_rng 4353 0
    ads7846 12702 0
    rng_core 7442 1 omap_rng
    can_dev 12126 1 c_can
    snd_soc_tlv320aic3x 48260 1
    wkup_m3_rproc 3669 0
    remoteproc 26828 3 pruss,wkup_m3_rproc,pru_rproc
    rtc_omap 7870 0
    ti_am335x_adc 5451 0
    omap_wdt 4655 0
    virtio 6549 2 remoteproc,virtio_rpmsg_bus
    virtio_ring 12035 2 remoteproc,virtio_rpmsg_bus
    sch_fq_codel 8123 3
    cryptodev 38437 2
    root@am437x-evm:~# uname -r
    4.4.12-rt17-g86c9060003-Hans
    root@am437x-evm:~# rmmod pru_rproc
    rmmod: ERROR: Module pru_rproc is in use
    root@am437x-evm:~# rmmod -f pru_rproc
    [ 88.729359] pru-rproc 54438000.pru1: pru_rproc_remove: removing rproc 54438000.pru1
    [ 88.740958] ti-pruss 54400000.pruss: unconfigured system_events = 0x0800000000000000 host_intr = 0x00000002
    [ 88.760858] remoteproc2: stopped remote processor 54438000.pru1
    [ 88.770631] remoteproc2: releasing 54438000.pru1
    [ 88.779270] pru-rproc 54434000.pru0: pru_rproc_remove: removing rproc 54434000.pru0
    [ 88.791892] pru-rproc 54434000.pru0: stopping the manually booted PRU core
    [ 88.801380] ti-pruss 54400000.pruss: unconfigured system_events = 0xffffffffffffffff host_intr = 0x00000001
    [ 88.813725] remoteproc1: stopped remote processor 54434000.pru0
    [ 88.821619] remoteproc1: releasing 54434000.pru0
    root@am437x-evm:~#

    I paste the full path about rmmod -f below:

    root@am437x-evm:/lib/modules/4.4.19-rt25-gf572d285f0/kernel/drivers/remoteproc# ls
    am437x_pruss_wrapper.ko pruss.ko remoteproc.ko
    pru_rproc.ko pruss_intc.ko wkup_m3_rproc.ko
    root@am437x-evm:/lib/modules/4.4.19-rt25-gf572d285f0/kernel/drivers/remoteproc# uname -r
    4.4.19-rt25-gf572d285f0
    root@am437x-evm:/lib/modules/4.4.19-rt25-gf572d285f0/kernel/drivers/remoteproc# rmmod -f /lib/modules/4.4.19-rt25-gf572d285f0/kernel/drivers/remoteproc/pru_rproc.ko
    [ 162.380789] pru-rproc 54438000.pru1: pru_rproc_remove: removing rproc 54438000.pru1
    [ 162.390256] remoteproc2: releasing 54438000.pru1
    [ 162.399374] pru-rproc 54434000.pru0: pru_rproc_remove: removing rproc 54434000.pru0

    Hang on...

    I try rmmod the pruss.ko, but..., I paste the informations below:

    root@am437x-evm:/lib/modules/4.4.19-rt25-gf572d285f0/kernel/drivers/remoteproc# ls
    am437x_pruss_wrapper.ko pruss.ko remoteproc.ko
    pru_rproc.ko pruss_intc.ko wkup_m3_rproc.ko
    root@am437x-evm:/lib/modules/4.4.19-rt25-gf572d285f0/kernel/drivers/remoteproc# rmmod -f /lib/modules/4.4.19-rt25-gf572d285f0/kernel/drivers/remoteproc/pruss.ko
    rmmod: ERROR: could not remove module /lib/modules/4.4.19-rt25-gf572d285f0/kernel/drivers/remoteproc/pruss.ko: Resource temporarily unavailable
    root@am437x-evm:/lib/modules/4.4.19-rt25-gf572d285f0/kernel/drivers/remoteproc#

  • Hans,

    Seems that there are some differences between 4.4.12 and 4.4.19 regarding pru_rproc. You can identify these differences and apply the 4.4.12 approach in 4.4.19.

    Regards,
    Pavel
  • Pavel,

    Thanks so much. But we are not find the true issues.

    BR.
    Hans.
  • Hi Pavel,

      I fixed my bug, because I was not update my dtb file, I fixed this bug after I update the latest dtb file. 

      Thanks so much.

    root@am437x-evm:~# rmmod -f pru_rproc
    [ 80.360633] pru-rproc 54438000.pru1: pru_rproc_remove: removing rproc 54438000.pru1
    [ 80.368644] ti-pruss 54400000.pruss: unconfigured system_events = 0x0800000000000000 host_intr = 0x00000002
    [ 80.382259] remoteproc2: stopped remote processor 54438000.pru1
    [ 80.393930] remoteproc2: releasing 54438000.pru1
    [ 80.400711] pru-rproc 54434000.pru0: pru_rproc_remove: removing rproc 54434000.pru0
    [ 80.416835] ti-pruss 54400000.pruss: unconfigured system_events = 0x1000000000000000 host_intr = 0x00000001
    [ 80.430218] remoteproc1: stopped remote processor 54434000.pru0
    [ 80.439993] remoteproc1: releasing 54434000.pru0
    root@am437x-evm:~# uname -r
    4.4.19-rt25-gf572d285f0

      Best Regards.

      Hans.