Part Number: TDA4VE-Q1
Hi,
Is there a recommended procedure to run an HLOS on the A72 cores while running firmware on the R5 and DSP cores?
Part Number: AM625
SYSFW/TIFS supports binary blob verification and decryption on AM6xx family SoC (HS-SE).
https://software-dl.ti.com/tisci/esd/latest/6_topic_user_guides/authentication.html
The FAQ lists how to call the TISCI API TISCI_MSG_PROC_AUTH_BOOT in AM62x Linux SDK
https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/security/PROC_BOOT.html#proc-boot-authenticate-image-and-configure-processor
It shows how to verify and decrypt the signed Linux kernel image and kernel DTB file in the extended RoT secure boot flow with AM62x Linux SDK 11.1.5.3 (TIFS 11.1.2). The scripts and the u-boot patch in the FAQ is applicable to other AM6xx devices with some adaptations.
https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-AM62X/11.01.05.03
Part Number: TDA4VH-Q1
Hi Team,
How can I generate an assembly file from C7x code and calculate the total cycle count using the software pipeline information found in the assembler file?
Regards,
Betsy Varughese
Part Number: AM2754-Q1
To be short, in case of multiple serializers used in one Mcasp, the samples are placed interleaved by slot not frame by default. (Please check the "12.1.2.2.2.2 Definition of Terms " in TRM for definition of slot and frame).
The following figure displays the buffer allocation when configuring the two serializers on one mcasp to be TDM2/I2S .
This buffer order is by default when mcasp transfer mode is configured as MCASP_TRANSFER_MODE_DMA, in which case the MCASP_AUDBUFF_FORMAT_1SER_MULTISLOT_INTERLEAVED is likely to be ignored and default config is used.
Modify mcasp_chime_tad5212 example sysconfig as follows:
Modify sysconfig to use mcasp0 instead of mcasp1 as mcasp0 is more easily to measure with aec board. Add one serializer as transmit.
diff --git a/examples/drivers/mcasp/mcasp_chime_tad5212/am275x-evm/c75ss0-0_freertos/example.syscfg b/examples/drivers/mcasp/mcasp_chime_tad5212/am275x-evm/c75ss0-0_freertos/example.syscfg
index 33904304..5351d8d0 100644
--- a/examples/drivers/mcasp/mcasp_chime_tad5212/am275x-evm/c75ss0-0_freertos/example.syscfg
+++ b/examples/drivers/mcasp/mcasp_chime_tad5212/am275x-evm/c75ss0-0_freertos/example.syscfg
@@ -1,9 +1,9 @@
 /**
  * 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 "AM275x" --part "AM2754" --package "ANJ" --context "c75ss0-0" --product "AM275x_FREERTOS_SDK@11.01.00"
- * @v2CliArgs --device "AM2754" --package "FCCSP (ANJ)" --context "c75ss0-0" --product "AM275x_FREERTOS_SDK@11.01.00"
- * @versions {"tool":"1.23.0+4000"}
+ * @cliArgs --device "AM275x" --part "AM2754" --package "ANJ" --context "c75ss0-0" --product "AM275X_FREERTOS_SDK@11.01.00"
+ * @v2CliArgs --device "AM2754" --package "FCCSP (ANJ)" --context "c75ss0-0" --product "AM275X_FREERTOS_SDK@11.01.00"
+ * @versions {"tool":"1.24.0+4150"}
  */
 
 /**
@@ -44,19 +44,24 @@ mcasp1.enableLoopback                          = false;
 mcasp1.clkSyncMode                             = "ASYNC";
 mcasp1.enableMcaspRx                           = false;
 mcasp1.txCallbackFxn                           = "mcasp_txcb";
-mcasp1.txActiveSlotMask                        = 0x3;
 mcasp1.txLoopjobBufLength                      = 384000;
 mcasp1.externTxLoopjob                         = true;
 mcasp1.txLoopjobBufExtern                      = "uint8_t audio_sample[]";
 mcasp1.txLoopjobBuf                            = "audio_sample";
+mcasp1.txActiveSlotMask                        = 0x3;
 mcasp1.CLOCKING.$assignAllowConflicts          = "CLOCKING";
-mcasp1.mcaspSer.create(1);
+mcasp1.mcaspSer.create(2);
 mcasp1.mcaspSer[0].$name                       = "CONFIG_MCASP_SER0";
-mcasp1.mcaspSer[0].serNum                      = 1;
-mcasp1.mcaspSer[0].MCASP.$assignAllowConflicts = "MCASP1";
-mcasp1.MCASP.$assignAllowConflicts             = "MCASP1";
-scripting.suppress("Resource conflict,MCASP1 is also in use by @@@.+?@@@", mcasp1.mcaspSer[0].MCASP, "$assign");
-scripting.suppress("Resource conflict,MCASP1 is also in use by @@@.+?@@@", mcasp1.MCASP, "$assign");
+mcasp1.mcaspSer[0].MCASP.$assignAllowConflicts = "MCASP0";
+mcasp1.mcaspSer[0].MCASP.AXR0.$assign          = "MCASP0_AXR0";
+mcasp1.mcaspSer[1].$name                       = "CONFIG_MCASP_SER2";
+mcasp1.mcaspSer[1].serNum                      = 1;
+mcasp1.mcaspSer[1].MCASP.$assignAllowConflicts = "MCASP0";
+mcasp1.mcaspSer[1].MCASP.AXR1.$assign          = "MCASP0_AXR1";
+mcasp1.MCASP.$assignAllowConflicts             = "MCASP0";
+scripting.suppress("Resource conflict,MCASP0 is also in use by @@@.+?@@@, @@@.+?@@@", mcasp1.mcaspSer[0].MCASP, "$assign");
+scripting.suppress("Resource conflict,MCASP0 is also in use by @@@.+?@@@, @@@.+?@@@", mcasp1.mcaspSer[1].MCASP, "$assign");
+scripting.suppress("Resource conflict,MCASP0 is also in use by @@@.+?@@@, @@@.+?@@@", mcasp1.MCASP, "$assign");
 
 const udma         = scripting.addModule("/drivers/udma/udma", {}, false);
 const udma1        = udma.addInstance({}, false);
@@ -137,9 +142,8 @@ mmu_armv812.attribute = "MAIR4";
  * 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.
  */
-i2c1.I2C.SCL.$suggestSolution                  = "I2C0_SCL";
-i2c1.I2C.SDA.$suggestSolution                  = "I2C0_SDA";
-mcasp1.mcaspSer[0].MCASP.AXR1.$suggestSolution = "MCASP1_AXR1";
-mcasp1.MCASP.AFSX.$suggestSolution             = "MCASP1_AFSX";
-mcasp1.MCASP.ACLKX.$suggestSolution            = "MCASP1_ACLKX";
-debug_log.uartLog.UART.RXD.$suggestSolution    = "MCASP0_AXR6";
+i2c1.I2C.SCL.$suggestSolution               = "I2C0_SCL";
+i2c1.I2C.SDA.$suggestSolution               = "I2C0_SDA";
+mcasp1.MCASP.AFSX.$suggestSolution          = "MCASP0_AFSX";
+mcasp1.MCASP.ACLKX.$suggestSolution         = "MCASP0_ACLKX";
+debug_log.uartLog.UART.RXD.$suggestSolution = "MCASP0_AXR6";
Modify the data to be transferred to help discriminate the data:
diff --git a/examples/drivers/mcasp/mcasp_chime_tad5212/audio_sample.h b/examples/drivers/mcasp/mcasp_chime_tad5212/audio_sample.h
index 251fa7db..6ee9ffa6 100644
--- a/examples/drivers/mcasp/mcasp_chime_tad5212/audio_sample.h
+++ b/examples/drivers/mcasp/mcasp_chime_tad5212/audio_sample.h
@@ -40,12 +40,12 @@ extern "C"
 
 /* Dual channel audio sample (48 KHz) */
 const unsigned int audio_sample[]= {
-0x00000000,
-0x00000000,
-0x00121900,
-0x00121900,
-0x00479000,
-0x00479000,
+0x00000001,
+0x00000002,
+0x00121901,
+0x00121902,
+0x00479001,
+0x00479002,
 0x009df1c6,
 0x009df1c6,
 0x01114608,Rebuild this example and capture the data transferred on mcasp1 ax0 and ax1 with logic analyser.
The data captured from logic analyser:

channel 2 refers to ax0 and channel 3 refers to ax1.
The data defined in buffer in the example code:

The captured data and the transferred data conforms.
Regards,
Adam Hua
Part Number: J722SXH01EVM
Tool/software:
How do I use the Fusion2 board with the J722SXH01EVM?
When I try to run the single camera demo, I see the following error:
[MCU2_0] 76.844004 s: Error writing 0x01 to de-serializer(0x3d) register 0x4c! [MCU2_0] 76.844041 s: Deserializer Error: Reg Write Failed for regAddr 0x4c, cnt = 0 [MCU2_0] 76.844118 s: Error writing 0x01 to de-serializer(0x36) register 0x4c! [MCU2_0] 76.844151 s: Deserializer Error: Reg Write Failed for regAddr 0x4c, cnt = 0 [MCU2_0] 76.844230 s: Error reading from de-serializer(0x3d) register 0x4c! [MCU2_0] 76.844305 s: Error writing 0x01 to de-serializer(0x3d) register 0x4c! [MCU2_0] 76.844338 s: Deserializer Error: Reg Write Failed for regAddr 0x4c, cnt = 0
Part Number: TDA4VH
Tool/software:
How to enable TIMER in Capture mode in Linux ?
Part Number: TDA4VH-Q1
Tool/software:

Part Number: TDA4VM
Tool/software:
I'm using the TDA4VM Linux or Linux+RTOS 8.6 SDK. What parameters or patches are available to be enable I-frame period and IDR frame period?
Part Number: AM62A7
Tool/software:
Currently on the AM62A TI EVM, we have a OSPI Serial NAND Flash from Winbond.
The flash is: W35N01JWTBAG
Let us understand how the BBM is done with respect to some specific registers.
Part Number: PROCESSOR-SDK-AM62X
Tool/software:
In MCU+ SDK, during Flash Initialization, we read the device id and manufacture id.
Most common failure is "Unable to read Flash ID..."
Let us understand what parameters does the API Flash_norOspiReadID expects and how to debug the failures here.