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.

PROCESSOR-SDK-AM64X: EDAC and Rpmsg kernel configuration options

Part Number: PROCESSOR-SDK-AM64X


Hi team

I refer to the Processor SDK AM64X version 08.06.00.42.

We design a custom board based on the AM64X family of processors. For security considerations, we strip the kernel configuration to the minimum requirements of our board. We are unsure about three settings, where we need your advise:

1) Error Detection And Correction reporting

Two configuration options (CONFIG_EDAC and CONFIG_EDAC_LEGACY_SYSFS) are enabled which are located in the following menu:

Device Drivers  --->

    <*> EDAC (Error Detection And Correction) reporting  --->

        [*]   EDAC legacy sysfs

We are not sure if these settings are really required. The edac_init() function is actually called (see drivers/edac/edac_module.c) but we do not see any TI specific driver. We very much think, that this options have no effect. Can we safely disable them ?

2) Rpmsg drivers

Sevelral configuration options are enabled in the following menu:

Device Drivers  --->

    Rpmsg drivers  --->

Based on what we found here https://software-dl.ti.com/processor-sdk-linux-rt/esd/AM64X/latest/exports/docs/linux/Foundational_Components/PRU-ICSS/Linux_Drivers/RPMsg.html?highlight=rpmsg, we think that that the RPMsg method only supports communication with remote processors located in the PRU-ICSS subsystems. If this is true, then we can possibly disable all options below this menu because we do not utilize the PRU-ICSS. However, we are not fully sure.

3) Rpmsg virtual device drivers

Sevelral configuration options are enabled in the following menu:

Device Drivers  --->

    Rpmsg virtual device drivers  --->

This menu seems to be related with the menu above. Same question here: Can we safely disable these options if we do not utilize the PRU-ICSS subsystems ?

  • Hello Walter,

    I will be commenting on your RPMsg questions, and then I will send your thread to another team member to comment on the EDC questions.

    Remoteproc is the driver that Linux uses to initialize non-Linux cores (R5F, M4F, PRU subsystem). RPMsg is the inter-processor communication (IPC) driver that TI supports to communicate between Linux and the non-Linux cores. Remote cores = non-Linux cores for the rest of this response.

    If you are ONLY using the Linux A53 cores and not the R5F, M4F, and PRU cores, then you do not need to include either RemoteProc, or RPMsg (however, I would probably advise you to look at a cheaper processor family like AM62x if you were not using all those extra AM64x cores).

    If you are using the remote cores, but Linux is not interacting with them at all, then you also do not need to include the RemoteProc or RPMsg drivers & modules. (i.e., if the MCU+ SDK SBL boot is used to initialize the remote cores, and Linux never interacts with the cores at all)

    Otherwise, you need to include the Remoteproc drivers & RPMsg drivers associated with the cores that Linux is initializing (the typical Linux SDK SPL boot uses Linux remoteproc to initialize remote cores instead of an SBL bootloader). Even if you are not using IPC to communicate between the cores after the remote cores have been initialized, I believe the Linux Remoteproc driver will not work properly if the RPMsg driver does not exist.

    I'll wait for confirmation to see if you have any other questions around RPMsg / RemoteProc. Once you tell me you've got it, I'll reassign to continue the discussion around EDC.

    Regards,

    Nick

  • Hello Nick,

    Thanks a lot for your clear response. This answers my questions regarding (2) and (3).

    Regards,

    Walter

  • Hello Walter,

    Glad to hear! I am sending your thread to another team member now. Feel free to ping the thread if you do not get a response within several business days.

    Regards,

    Nick

  • 3) Rpmsg virtual device drivers

    Sevelral configuration options are enabled in the following menu:

    Device Drivers  --->

        Rpmsg virtual device drivers  --->

    This menu seems to be related with the menu above. Same question here: Can we safely disable these options if we do not utilize the PRU-ICSS subsystems ?

    yes you should be able to disable all CONFIG_RPMSG_KDRV* options. The use case is only around device virtualization. Is the purpose to trim down the Kernel size by removing features you don't need?

    Regards, Andreas

  • Andreas,

    Kernel size is of minor importance. The main purposes is to reduce attack surface.

    Regards, Walter

  • Hi Team,

    I still miss an answer to my question (1) "Error Detection And Correction reporting". Did you miss that ?

  • 1) Error Detection And Correction reporting

    Two configuration options (CONFIG_EDAC and CONFIG_EDAC_LEGACY_SYSFS) are enabled which are located in the following menu:

    Device Drivers  --->

        <*> EDAC (Error Detection And Correction) reporting  --->

            [*]   EDAC legacy sysfs

    We are not sure if these settings are really required. The edac_init() function is actually called (see drivers/edac/edac_module.c) but we do not see any TI specific driver. We very much think, that this options have no effect. Can we safely disable them ?

    I had a look at the Kernel tree, and yes you should be able to safely disable those options. They are not used for current-generation AM6x SoCs.

    Regards, Andreas