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.

AM623: PRU Support

Part Number: AM623
Other Parts Discussed in Thread: SK-AM62, AM625,

Hi,

When using the AM6232ATCGGAALW , we cannot see the PRU core. It is possible to use the AM6254 chip on the official SK-AM62 development board. Does the AM6232 model now support the PRU function?

AM6232ATCGGAALW :

AM6254:

thanks

Kevin

  • Hello Kevin,

    If we reference the AM62x datasheet, section "Device Comparision", we see that all AM62x part numbers can have a PRUSS on them. There is no difference between AM623 and AM625. What IS different is the feature value of G (no PRU) vs C (contains PRU subsystem).

    Reference the AM62x datasheet, Device Comparison > PRUSS > NOTE (3): 
    PRU Subsystem (PRUSS) is available when selecting an orderable part number that includes a Features code of C. Refer to Device
    Naming Convention for definition of feature codes.

    In Device Naming Convention, reference "Features" and "Package Designator"

    So if the features entry is G, then there is no PRUSS.

    Let's check for PRU references in the Linux devicetrees:

    ti-processor-sdk-linux-am62xx-evm-09.00.00.03/board-support/ti-linux-kernel/arch/arm64/boot/dts/ti$ grep -r --include=k3-am62* pru
    k3-am62-lp-sk.dts:&pruss {
    k3-am62-main.dtsi:      pruss: pruss@30040000 {
    k3-am62-main.dtsi:              compatible = "ti,am625-pruss";
    k3-am62-main.dtsi:              pruss_mem: memories@0 {
    k3-am62-main.dtsi:              pruss_cfg: cfg@26000 {
    k3-am62-main.dtsi:                      compatible = "ti,pruss-cfg", "syscon";
    k3-am62-main.dtsi:                              pruss_coreclk_mux: coreclk-mux@3c {
    k3-am62-main.dtsi:                                      clocks = <&k3_clks 81 0>,  /* pruss_core_clk */
    k3-am62-main.dtsi:                                               <&k3_clks 81 20>; /* pruss_iclk */
    k3-am62-main.dtsi:                                      assigned-clocks = <&pruss_coreclk_mux>;
    k3-am62-main.dtsi:                              pruss_iepclk_mux: iepclk-mux@30 {
    k3-am62-main.dtsi:                                      clocks = <&k3_clks 81 3>,       /* pruss_iep_clk */
    k3-am62-main.dtsi:                                               <&pruss_coreclk_mux>;  /* pruss_coreclk_mux */
    k3-am62-main.dtsi:                                      assigned-clocks = <&pruss_iepclk_mux>;
    k3-am62-main.dtsi:                                      assigned-clock-parents = <&pruss_coreclk_mux>;
    k3-am62-main.dtsi:              pruss_intc: interrupt-controller@20000 {
    k3-am62-main.dtsi:                      compatible = "ti,pruss-intc";
    k3-am62-main.dtsi:              pru0: pru@34000 {
    k3-am62-main.dtsi:                      compatible = "ti,am625-pru";
    k3-am62-main.dtsi:                      firmware-name = "am62x-pru0-fw";
    k3-am62-main.dtsi:                      interrupt-parent = <&pruss_intc>;
    k3-am62-main.dtsi:              pru1: pru@38000 {
    k3-am62-main.dtsi:                      compatible = "ti,am625-pru";
    k3-am62-main.dtsi:                      firmware-name = "am62x-pru1-fw";
    k3-am62-main.dtsi:                      interrupt-parent = <&pruss_intc>;
    k3-am625.dtsi: * TRM: https://www.ti.com/lit/pdf/spruiv7
    k3-am62a7.dtsi: * TRM: https://www.ti.com/lit/zip/spruj16
    

    And if we look at the reference file k3-am62-lp-sk.dts, we see this important note:

    /*
     * All SoC variants with the AMC package have no PRU.
     * Attempting to access the PRU on these devices will
     * result in a crash at kernel bootup.
     *
     * For now, we do not have any code that can figure out
     * the absence of the PRU by reading any SoC registers,
     * so for now disable the PRU here in the board DTS file.
     */
    &pruss {
            status = "disabled";
    };
    

    And if I check the datasheet, it does seem like all AMC packages have a feature entry of G. So that comment makes sense.

    Your part number has a feature code of C, so it should have a PRU subsystem. Please verify that your Linux devicetree is properly enabling the PRU subsystem.

    Regards,

    Nick

  • Hi Nick,

    Thank you for your reply! The information you provided was very useful and I am really grateful.

    Regards,

    Kevin