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.

AM2634: Sysconfig error

Part Number: AM2634
Other Parts Discussed in Thread: SYSCONFIG

Dear all,

 

we are contacting you about a new issue that we encountered using Sysconfig on Sitara AM263 device.

When we tried to configure SPI4 in Multi Controller mode and we tried to configure channel 1, it is not possible to choose a pin for chip select CS1.

As you can see in the picture below:

  

SPI4 has K2 pin to be used as CS1.

Sysconfig don’t permit to select K2 pin to be used for that function as shown below:

 

 

 

Could you help us please?

Waiting for your kind reply

BR

Gianni

  • Are you using the TI evm?

  • Hi Nilabh,

    We are using CCS 12.4, and SysConfig tool 1.15.0. Anyway, the issue is present on Sysconfig 1.17 too.

    Could you help us please?

    BR

    Gianni

  • Hi Gianni,

    I will need more info on this issue, as I do not see any issue on myside.

    Could you attach your example.syscfg file and also provide following details:

    1. Which evm are you using(TI evm/customer board)

    2. Which example are you using? Is it sdk example or custom example?

    3. Also please use syscfg 1.17.

  • Hi Nilabh,

    thanks for your fast reply.

    Yes I can share my sysconfig. We are using our custom board. Anyway as you can see from the attached pin mux file, K2 pin is the chip select available on SPI4 istance instead of SPI0. In your example you selected SPI0 that cannot use K2 pin. Based on the table below, K2 pin is only available on SPI4.

    You can find this table on page 34 of the attached pin mux datasheet 

    AM263x_PinMux_06_18_2021_DRAFT_GENERAL.pdf

    Attached you can find my sysconfig. I renamed the original file with the extension.txt, otherwise I cannot attached it in this page!

    /**
     * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
     * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
     * @cliArgs --device "AM263x_beta" --package "ZCZ" --part "AM263x" --context "r5fss0-1" --product "MCU_PLUS_SDK_AM263x@08.06.00"
     * @versions {"tool":"1.15.0+2826"}
     */
    
    /**
     * Import the modules used in this configuration.
     */
    const dac         = scripting.addModule("/drivers/dac/dac", {}, false);
    const dac1        = dac.addInstance();
    const gpio        = scripting.addModule("/drivers/gpio/gpio", {}, false);
    const gpio1       = gpio.addInstance();
    const gpio2       = gpio.addInstance();
    const gpio3       = gpio.addInstance();
    const gpio4       = gpio.addInstance();
    const ipc         = scripting.addModule("/drivers/ipc/ipc");
    const mcspi       = scripting.addModule("/drivers/mcspi/mcspi", {}, false);
    const mcspi1      = mcspi.addInstance();
    const debug_log   = scripting.addModule("/kernel/dpl/debug_log");
    const mpu_armv7   = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
    const mpu_armv71  = mpu_armv7.addInstance();
    const mpu_armv72  = mpu_armv7.addInstance();
    const mpu_armv73  = mpu_armv7.addInstance();
    const mpu_armv74  = mpu_armv7.addInstance();
    const mpu_armv75  = mpu_armv7.addInstance();
    const mpu_armv76  = mpu_armv7.addInstance();
    const mpu_armv77  = mpu_armv7.addInstance();
    const input_xbar  = scripting.addModule("/xbar/input_xbar/input_xbar", {}, false);
    const input_xbar1 = input_xbar.addInstance();
    
    /**
     * Write custom configuration values to the imported modules.
     */
    dac1.$name = "CONFIG_DAC0";
    
    gpio1.$name                = "MCU_GD_ENABLE_CTRL";
    gpio1.pinDir               = "OUTPUT";
    gpio1.GPIO.gpioPin.$assign = "ball.M16";
    
    gpio2.$name                = "MCU_EN_5VAUX";
    gpio2.pinDir               = "OUTPUT";
    gpio2.GPIO.gpioPin.$assign = "ball.K4";
    
    gpio3.$name                = "TZ_TRIGGER";
    gpio3.pinDir               = "OUTPUT";
    gpio3.GPIO.gpioPin.$assign = "ball.E17";
    
    gpio4.$name                = "MCU_OE_WIFI_BUF";
    gpio4.pinDir               = "OUTPUT";
    gpio4.GPIO.gpioPin.$assign = "ball.K15";
    
    mcspi1.$name                 = "CONFIG_MCSPI4";
    mcspi1.mode                  = "MULTI_CONTROLLER";
    mcspi1.SPI.$assign           = "SPI4";
    mcspi1.mcspiChannel[0].$name = "CONFIG_MCSPI_CH0";
    
    const edma                  = scripting.addModule("/drivers/edma/edma", {}, false);
    const edma1                 = edma.addInstance({}, false);
    edma1.$name                 = "CONFIG_EDMA0";
    mcspi1.edmaDriver           = edma1;
    edma1.edmaRmDmaCh[0].$name  = "CONFIG_EDMA_RM0";
    edma1.edmaRmQdmaCh[0].$name = "CONFIG_EDMA_RM1";
    edma1.edmaRmTcc[0].$name    = "CONFIG_EDMA_RM2";
    edma1.edmaRmParam[0].$name  = "CONFIG_EDMA_RM3";
    
    debug_log.enableCssLog         = false;
    debug_log.enableLogZoneWarning = false;
    debug_log.enableLogZoneError   = false;
    
    mpu_armv71.$name             = "CONFIG_MPU_REGION0";
    mpu_armv71.size              = 31;
    mpu_armv71.attributes        = "Device";
    mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv71.allowExecute      = false;
    
    mpu_armv72.$name             = "CONFIG_MPU_REGION1";
    mpu_armv72.size              = 15;
    mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv73.$name             = "CONFIG_MPU_REGION2";
    mpu_armv73.baseAddr          = 0x80000;
    mpu_armv73.size              = 15;
    mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv74.$name             = "CONFIG_MPU_REGION3";
    mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv74.baseAddr          = 0x70000000;
    mpu_armv74.size              = 21;
    
    mpu_armv75.$name        = "CONFIG_MPU_REGION4";
    mpu_armv75.baseAddr     = 0x50D00000;
    mpu_armv75.size         = 14;
    mpu_armv75.attributes   = "Device";
    mpu_armv75.allowExecute = false;
    
    mpu_armv76.$name        = "CONFIG_MPU_REGION5";
    mpu_armv76.baseAddr     = 0x72000000;
    mpu_armv76.size         = 14;
    mpu_armv76.allowExecute = false;
    mpu_armv76.attributes   = "NonCached";
    
    mpu_armv77.$name        = "CONFIG_MPU_REGION6";
    mpu_armv77.baseAddr     = 0x701D0000;
    mpu_armv77.allowExecute = false;
    mpu_armv77.attributes   = "NonCached";
    mpu_armv77.size         = 15;
    
    input_xbar1.$name      = "CONFIG_INPUT_XBAR0";
    input_xbar1.xbarOutput = "GPIO111";
    
    /**
     * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
     * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
     * re-solve from scratch.
     */
    gpio1.GPIO.$suggestSolution                 = "GPIO0";
    gpio2.GPIO.$suggestSolution                 = "GPIO0";
    gpio3.GPIO.$suggestSolution                 = "GPIO0";
    gpio4.GPIO.$suggestSolution                 = "GPIO0";
    mcspi1.SPI.CLK.$suggestSolution             = "ball.B14";
    mcspi1.SPI.D0.$suggestSolution              = "ball.C12";
    mcspi1.SPI.D1.$suggestSolution              = "ball.D11";
    mcspi1.mcspiChannel[0].CSn.$suggestSolution = "ball.A14";
    

    Waiting for your kind reply

    BR

    Gianni

  • Hi Gianni,

    Let me look through this and get back by tomorrow. I will also loop in folks from our hardware side to help here. I am able to see that after adding SPI04 instance the CS1 pin K2 becomes greyed out..

  • Hi Nilabh,

    thanks for the answer.

    I'll wait to hear you again.

    BR

    Gianni

  • Hi Gianni,
    We have confirmed this is a bug in syscfg-tool. This will be fixed in next CCS release , mean while I can get back with a work around by early next week.

  • HI Nilab, 

    Many thanks for the information. 

    Waiting for your workaround.

    BR

    Gianni 

  • Hi Nilabh,

    have you got any news referring to the workaround?

    Thanks

    BR

    Gianni

  • Hi Gianni,

    We are in process of testing the workaround. We will try to give the work around by next week. Apologies for the delay

  • Hi

    could you please suggest how device data could be shared with the customer here, so that he can be unlocked or any work around for the issue. Thanks

  • Hello Gianni,

    Attached is the updated deviceData for AM263x with the SPI4 CS1 change. 

    Nilabh, 

    Please provide instructions on how to port the updated deviceData into CCS and the SDK.

    AM263x_UpdatedDeviceData.zip

    Regards,

    Erik

  • Hi Nilabh,

    Attached is the updated deviceData for AM263x with the SPI4 CS1 change. 

    Nilabh, 

    Please provide instructions on how to port the updated deviceData into CCS and the SDK.

    AM263x_UpdatedDeviceData.zip

    could you suggest us how to port the fix that Erik suggested us?

    Waiting for your kind reply.

    BR

    Gianni 

  • Hello Erik,

    thanks for the reply.

    BR

    Gianni

  • could you suggest us how to port the fix that Erik suggested us?

    Hi Gianni,

    You can replace this device data in syscfg installation folder at C:\ti\sysconfig_1.17.0\dist\deviceData\AM263x_beta

    After that save it and try to launch syscfg from stand alone installation. I tried to do same in ccs but it does not seem to work, for now you will have to use syscfg outside ccs.

    Let me know if you need more info on this.

  • Hi Nilabh,

    We have got a CCS update notification this morning:

    Does this update contain the fixes discussed in this thread?

    Waiting for your kind reply,

    Best regards

    Gianni Perugini

  • No  

    This is not concerned with the current issue. Please follow the steps mentioned above and the use the device data shared by Erik.

  • Hi Nilabh,

    thanks for the fast reply.

    Could you give us a timeline when this fix will be implemented on CCS?

    We don't like to exclude sysconfig from the project. 

    Waiting for your kind reply,

    Best regards

    Gianni Perugini

  • Hi  

    This will be fixed by next syscfg release, Let me check internally on the dates and version

  • Hi Nilabh,

    thanks for the reply.

    I wait confidently.

    Best regards

    Gianni

  • Hi Nilabh,

    Sorry for the ping. Have you got any update?

    BR

    Gianni

  • Hi Gianni, We will be able to bring this update with syscfg 1.19 version.

    Hi Gianni,

    You can replace this device data in syscfg installation folder at C:\ti\sysconfig_1.17.0\dist\deviceData\AM263x_beta

    After that save it and try to launch syscfg from stand alone installation. I tried to do same in ccs but it does not seem to work, for now you will have to use syscfg outside ccs.

    Let me know if you need more info on this.

    Also may I know what challenge do you face while using this workaround

  • Hi Nilabh,

    thanks for the reply.

    Also may I know what challenge do you face while using this workaround

    We have a multicore project. We prefer to left the sysconfig inside the CCS. 

    Could you give us a possible delivery date for the updated 1.19?

    Waiting for your kind reply.

    Best regards

    Gianni Perugini

  • Hi Gianni,

    The Sysconfig release is typically per quarter so next update should be available in Jan 2024, Will confirm and get back on the exact date.

    SDK release with next sysconfig is planned for Mid April 2024

    Regards,

    Ankur

  • Hi Ankur,

    thanks for your reply. This is a very big problem for us, because of we need to preserve sysconfig in our project and the next update is very far from today.

    Could you try to arrange a sysconfig release with that fix that can work in conjiuntion with CCS?

    Waiting for your kind reply

    BR

    Gianni

  • Ho Gianni,

    The device data with fix is already provided in this e2e. I have followed up further and this fix would be available in the January 2024 release.

    Thank you.

    Anita