[FAQ] AM625 / AM623 / AM620-Q1 / AM62L / AM64x/ AM243x (ALV) / AM62Ax / AM62D-Q1 / AM62Px Design Recommendations / Custom board hardware design – Information on processor core, PLL, VDD_CORE, VDDR_CORE, VPP and other core supplies

Part Number: AM62L
Other Parts Discussed in Thread: AM620-Q1, AM62P, SYSCONFIG, AM625, AM623, AM625-Q1, AM6421, SK-AM62B-P1, AM6442

Tool/software:

Hi TI Experts,

Please share your inputs on processor core, thermal alert, VDD_CORE, VDDR_CORE, VPP and other supplies 

Please share any available information related to the cores that can be used during custom board design 

  • Hi Board designers 

    Thank you for the interest.

    Inputs related to OPP

    Data Sheet:

    The OPP is mostly a function of software. However, the operating frequencies defined in an OPP may or may not be based on hardware imitations. This depends on the clock in question. For example, many of the modules have clock frequency ratios requirements that must be maintained between clock domains for proper operation. So it is not possible to simply change a module’s operating frequency without considering these limitations.
    The table is defining what we have internally agreed to support as valid operating points since we do not allow customers to change operating frequency of the various modules. Allowing customers to change frequencies outside of these OPPs would require us to define the clocking limitations of every module. In most cases these limitations have multiple dependencies which can be very difficult to define. In the past we have found this approach is problematic as customers may not fully understand and check the limitations. This results in the customer configuring the device to invalid operating condition. So we simplified the number of options supported by defining specific OPPs.
    No, that pretty much sums it up.
    For example, even though the processor core can technically operate from across a wide frequency range, we didn’t want to give the customer free reign on picking any operating frequency. OPPs are finite voltage/frequency operating points that the customer can choose from. These have been tested by software over the years, so there’s really no reason for a customer to deviate from these.

    I see the below in the data sheet

     

    FIXED OPERATING FREQUENCY OPTIONS (MHz)(2)

    (2) Fixed operating frequency, set by software at boot

     

    and TRM

     

    6.2.3 Power Management Techniques

    The following section describes the power management techniques supported by the device

    6.2.3.1 Dynamic Frequency Scaling (DFS)

    DFS is a power management technique where the operating frequency is dynamically scaled across device

    Operating Performance Points (OPP). An OPP is a voltage/frequency pair that defines a specific power state.

    For each OPP, software controls clock frequency in order to adjust the performance and power to the optimum

    point. The Device supports DFS for Cortex-A53 only.

    6.2.3.2 OPP Low

    The device supports lower bus frequency operation as OPP Low. The OPP Low must be configured at boot time.

    In OPP Low, the main CBASS clock frequency is reduced in half in order to lower active power consumption with

    reduced performance. The performance of some peripheral modules is limited or not available in this operating

    condition.

    Refer to the device datasheet to determine the supported features and the clock frequency of cores, modules,

    and peripheral I/Os in OPP Low

    Please refer below:

    (+) AM2432: R5F cache configuration - Arm-based microcontrollers forum - Arm-based microcontrollers - TI E2E support forums 

    Is it true that the R5F has no L2 cache towards the DDR RAM?

    The FAQ is being updated.

    Please review the FAQ frequently for updates.

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Refer below for information related to processor power

    For security reason, there're difference on TI production key set, TIFS firmware etc... between AM62x vs AM62L. So it is impossible to use AM62x OTP keywriter on AM62L.
    AM62L introduced a new OTP keywriter lite, where the new TIFS API <OTP Keywriter (Lite) TISCI Description> is callable by SW entity running on A53 cores. Refer to this e2e on AM62L OTP keywriter lite overview, and how to call the new TIFS API from u-boot.
    RE: AM62L: security document 

    (+) [FAQ] AM625 / AM623 / AM620-Q1 / AM625-Q1 / AM625SIP: Custom board hardware design – Queries regarding VPP eFuse programming power supply selection and application - Processors forum - Processors - TI E2E support forums

    FAQ related to VPP

    (+) AM620-Q1: MCU Rail Definition in Voltage/Power/Clock Domain - Processors forum - Processors - TI E2E support forums

    AM620-Q1: MCU Rail Definition in Voltage/Power/Clock Domain

    "Partial IO" is the only AM620-Q1 low power mode that requires turning-OFF external regulators. The remaining low power modes on this specific SoC family do not require to turn-OFF external supplies. 

    To get the lowest power consumption when supporting "Partial IO" LPM, the PMIC_LPM_EN0 drives the PMIC enable pin low which triggers an OFF request. Two external discrete LDOs are kept ON to supply the CANUART rails. 

    Let us know if there are any additional questions.  

    Please find the responses below and let us know if there are any additional questions. 

    1. No; For "Partial IO" low power mode, VDDSHV_CANUART and VDD_CANUART are the two rails that must stay ON. 
    2. VPP the eFuse ROM programming supply. An external LDO commonly used to supply the VPP rail and is enabled/disabled by one of the SoC digital pins. As noted in the datasheet, VPP must be disabled (OFF) during power-up.  Refer to section "VPP Specifications for One-Time Programmable (OTP) eFuses" in the spec for more information. 
    3. Yes, TPS6521920-Q1 comes pre-configured to meet the supply/sequence requirements of AM620-Q1. As mentioned in one of the previous messages, the PMIC is turned OFF when supporting "Partial IO" LPM. All the remaining low power modes in AM620-Q1 specifically do not require turning-OFF any supplies. 
    4. Partial IO power consumption is in the uW (<1mW).

    (+) AM6442: DDR Decoupling Capacitors - Discrepancies between TMDS64EVM Design & TI/Micron Recommendations - Processors forum - Processors - TI E2E support forums

    most of the discrepancies you are seeing on the EVM is due to the fact that the EVM was conceived before a lot of the app note was finalized.  We performed full power aware simulations on the EVMs, so even though we technically don't meet the app note requirements, we did pass sims to ensure a robust design.  This is what we would recommend if you are looking for assurances on signal integrity for your application.  I would not rely on strictly various numbers and values of capacitances.

    (+) TDA4VH-Q1: Is there is way to program OTP memory without keywriter tool? - Processors forum - Processors - TI E2E support forums

    Can we program OTP memory on j784s4 without keywriter tool? like TISCI api from SBL?

    To clarify, could you please specify which type of One-Time Programmable (OTP) memory you are referring to? There are two types:

    1. General OTP: This type contains fields such as SMPK/SMEK, BMPK/BMEK, MSV, KEREV/KECNT, and others. The data in this area can only be programmed using a Keywriter, with the exception of updating KEREV and SWREV(Note initial value need to be programmed using keywriter), which can be done through the TISCI API.

    2. Extended OTP: This is a 1024-bit area where customers can choose what data to store. The data in this area can be programmed in two ways:

      • Using a Keywriter
      • Using the TISCI API. For more information on using the TISCI API for Extended OTP, you can refer to the TI documentation.

    (+) TDA4VEN-Q1: Regarding the necessity of the VPP power supply - Processors forum - Processors - TI E2E support forums

    VPP is only necessary when programming security keys in the device.  It It is not needed for booting or during normal execution.  It is not needed normally when doing software update (OTA) either.  It is also not needed if not using the security features of the device.

    (+) AM62P: Secure Boot keywrite - Processors forum - Processors - TI E2E support forums

    I have a customer using AM62P and checking if the CAN_UART partial IO functionality would continue to work even in cases where the MCU_PORz (cold reset input) is low. The question is relevant since we are connecting always ON supply to the CANUART

    Expert 1 :

    The Partial IO circuits will be disabled the first time power is applied to the device. When the Partial IO circuits are disable, the MCU_PORz signal will propagate to these circuits. The MCU_PORz signal is blocked from these circuits after software enables the Partial IO circuits and configures it to monitor wake-up inputs. This is necessary since the MCU_PORz signal will be asserted by the PMIC when it begins the power down sequence associated with the other device power rails.
    Based on the information given , I think the question is :
    Even if MCU_PORZ is low during the Partial IO Low Power mode , can the device still wake up using the Partial IOs ?

    Expert 2:

    As you see below even if mcu_porz is low , and Software programming has been done correctly , can_only_io signal will go high and hence the wake-up is possible through the Partial IOs .
    When the SOC is configured for Partial IO functionality – wake-up is possible through any of the IO that support wakeup even when MCU_PORz signal is low causing a cold reset to the processor.
    Pls let me know if the above statement looks OK.

    Yes Sreenivasa, looks correct.

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Refer below for information related to processor PLL

    Errata reference

    i2424 PLL: PLL Programming Sequence May Introduce PLL Instability

    https://www.ti.com/lit/er/sprz487f/sprz487f.pdf

    Do not use clk_pll_16fft_cal_option4() in SYSFW. Ensure to use updated PLL programming sequences in SDK v10.0 or later when performing any PLL configuration change

    What you are saying is that if the register that customer refers to is changed, it is necessary to make it consistent with the settings of other related registers, therefore, DM provides a service to set the PLL, etc.?

    Absolutely!  And several aspects of the programming sequence were optimized in SDK10. There is now a usage note in the errata doc which refers to this

    The registers associated with the calibration circuit when programmed in the wrong sequence, can lead to a lock loss error.  Please refer to the function mentioned in the errata. 

    2. PLL0_HSDIV1 is used by I2C, please check the I2C Integration section in the TRM for more info

    3. This information is in the errata description.  The errata is induced because of an incorrect programming sequence when configuring the PLLs, which is present in older versions of SYSFW.   To avoid the lock loss issue, please use SDK10, which has modified SYSFW and does not have the incorrect programming sequence

    The reason for the error is simply a misconfiguration of the VCO frequency VCO max frequency is being violated, and thus PLL may lose lock or otherwise cause unpredictable behavior, especially at PVT corners  

    (+) AM6422: What's the performance of PLL module - Processors forum - Processors - TI E2E support forums

    I found the SDK10.1 release notes describes here

    https://software-dl.ti.com/processor-sdk-linux-rt/esd/AM64X/10_01_10_04/exports/docs/devices/AM64X/linux/Release_Specific_Migration_Guide.html#:~:text=Linux%20SDK%2009.02%20was%20the%20last%20SDK%20release%20with%20LTS%20Kernel%20version%206.1%20and%20u%2Dboot%20version%202024.x.%20To%20pick%20up%20the%20PLL%20updates%20on%20top%20of%20this%20SDK%2C%20pick%20the%20components%20listed%20below%20when%20building%20the%20u%2Dboot%20binaries.

    can pick up the PLL updates on top of SDK9.2, so I will follow this to update the SYSFW first, and later update all SDK to 10.1

    software-dl.ti.com/.../Release_Specific_Migration_Guide.html
    PLL Programing Sequence Update To Avoid PLL Instability
    In 10.00 SDK release, PLL programing sequence has been updated to follow the correct programing sequence to avoid PLL instability. The PLL programing sequence has been updated in following components of the SDK.

    TIFS firmware (ti-linux firmware repo)

    DM R5 firmware (ti-linux-firmware repo)

    R5 SPL (u-boot repo)

    SDK 10.0 has all the updated components by default.

    e2e.ti.com/.../5777147
    The same is applicable for AM243 as well and documented in the AM243 documentation.

    software-dl.ti.com/.../SYSFW_PLL_UPDATE_GUIDE.html

    e2e.ti.com/.../5603152
    due to device errata i2424 (PLL instability problem), it is highly recommended to use SDK10.x.
    e2e.ti.com/.../5486383
    I assume you are using Linux on the A53 cores, and you are asking about detecting frequency fluctuations in the A53 cores specifically?

    Please note that PLL instability was possible on earlier versions of the Linux SDK. SDK 10.0 is released with updated firmware that fixes the PLL instability. For more information, look here: software-dl.ti.com/.../Release_Specific_Migration_Guide.html

    Clock Tolerance for PLL MAIN_PLL0_HSDIV4_CLKOUT

    Could you please provide the clock tolerance specification for the MAIN_PLL0_HSDIV4_CLKOUT PLL that clocks the MCAN0 peripheral.

    We determined the 6-sigma frequency error of the PLL output (80 MHz) that is sourcing the MCAN controller by measuring N-cycle jitter over a period of forty 80MHz clock cycles, which represents one bit time when operating at 2Mbps. The frequency error was calculated by applying the worst-case N-cycle jitter to the nominal period of forty clock cycles, or one bit time. The maximum frequency error of a single bit across the entire process, voltage, and temperature operating range (-40 to 125 junction) was 0.022%.

    We also measured the frequency error over a period that represents 10 bits at 2Mbps, which is the resynchronization period for MCAN. The maximum frequency error of the resynchronization period across the entire process, voltage, and temperature range (-40 to 125 junction) was 0.003%.

    We determined the 6-sigma frequency error of the PLL output (80 MHz) that is sourcing the MCAN controller by measuring N-cycle jitter over a period of ten 80MHz clock cycles, which represents one bit time when operating at 8Mbps. The frequency error was calculated by applying the worst-case N-cycle jitter to the nominal period of forty clock cycles, or one bit time. The maximum frequency error of a single bit across the entire process, voltage, and temperature operating range (-40 to 125 junction) was 0.064%.

    We also measured the frequency error over a period that represents 10 bits at 8Mbps, which is the resynchronization period for MCAN. The maximum frequency error of the resynchronization period across the entire process, voltage, and temperature range (-40 to 125 junction) was 0.010%.

    We did not measure jitter for the operating condition that represents 5Mbps, but the result would be somewhere between the 8Mbps and 2Mbps values.

    Note: We do not have any plans to measure jitter for any other operating conditions.

    (+) AM625: How to measure lpddr4 clock - Processors forum - Processors - TI E2E support forums

    You might be able to find a via on the board that is associated with the CK signal that you can monitor.

    Otherwise, you can output MAIN_PLL12_HSDIV0_CLKOUT out to the OBSCLK0 pin to observe the PLL frequency. This frequency will be 1/2 the memory clock (eg, 400MHz if the DDR_CK is 800MHz). See section 6.4.3 for information on how to setup the OBSCLK0 pin.

    Can we perform Signal integrity validation check on the DDR clock probed on the vias without causing any loading effect due to the probe.? kindly let us know.

    Yes, typically you would need to use high speed active FET probes

    AM623: Does AM623x support DDR CLOCK Spread Spectrum? - Processors forum - Processors - TI E2E support forums

    We do not support spread spectrum on any PLL.  The SDK by default disables spread spectrum on all PLLs

    (+) AM6442: DDR4 CLK Setting - Processors forum - Processors - TI E2E support forums

    1. Yes, it will be a fixed value if you choose 800MHz memory clock operating frequency in the DDR register configuration tool.  Other frequencies will have a different PLL configuration, but the PLL will always be half of the memory clock frequency

    2. Yes

    There is nothing that configures the DDR PHY PLL.  This is inherent in the design.

    AM62P: Reg Default Clock Tree Information

    Could you please help us to understand what the default values of clock in the clock tree. 

    What is the value of default clock in:

    • HFOSC0_CLKOUT
    • MCU_SYSCLK0
    • MCU_PLL0_HSDIV3_CLKOUT and other MCU PLL Clocks
    • MAIN_SYSCLK0
    • DEVICE_CLKOUT_32K
    • MAIN_PLL0_HSDIV4_CLKOUT and other main PLL clocks

    Based on these inputs, we assume the following as the default clock values:

    Could you please confirm!

    Sl No Clock Name Value
    1 HFOSC0_CLKOUT 25 MHz
    2 MAIN_SYSCLK0  500 MHz
    3 MCU_SYCLK0  400 MHz
    4 DEVICE_CLKOUT_32K 32 KHz
    5 MCU_PLL0_HSDIV3_CLKOUT 800 MHz
    6 MAIN_PLL0_HSDIV4_CLKOUT 80 MHz
    7 MAIN_PLL15_HSDIV0_CLKOUT 400 MHz
    8 CLK_12M_RC 12.5 MHz

     The values are correct.

    Recommended PLL setting approach 

    The DM operations will be performed by the DM core.

    Typically, these PLL settings are configured by DM core and change of PLL effects to SOC operations.

    So, mostly, we do not encourage customers to change them

    we plan on putting the following note in the TRMs

     https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1464980/am62a7-max-pll-frequency/5621848 

    Most of the PLLs are required to operate at a fixed preset frequency.

    I don't see a maximum frequency specified in the TRM or above in this thread.  Is the implications that we shouldn't run PLL1 faster than the default 1920MHz?  Per the TRM other PLLs run in the ~2.5GHz range, does this not apply to PLL1?

    The maximum Frequency for the PLL is 3.2GHz.

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Refer below for information related to power estimation

    AM62P: How to reduce power consumption of AM62P - Processors forum - Processors - TI E2E support forums

    You can use the AM62P Power Estimation Tool for experiments like this: https://www.ti.com/lit/ug/sprujd9/sprujd9.pdf

    Just be aware how these changes may impact the performance of the application running on the A53 cores.

    If the GPU is not used, then you can consider dropping VDD_CORE from 0.85V to 0.75V. Refer to the AM62P Datasheet Section 6.6 Operating Performance Points: https://www.ti.com/lit/ds/symlink/am62p.pdf 

    (+) AM62P-Q1: power consumption - Processors forum - Processors - TI E2E support forums

    "nominal and strong" are transistors silicon process variations from FAB/manufacturing. They will impact the estimated leakage power. The combination between high temperature and strong process corner would help you estimate the worst case leakage power for your active power.  

    (+) AM62P: How to design AM625,AM62P with lower power consumption - Processors forum - Processors - TI E2E support forums

    The default Linux and Debian images are designed to maximize functionality, so it is not power optimized. To reduce the power consumption, there are many optimizations you can do.

    • Disable the Linux device tree nodes for the peripherals you do not plan to use. This will remove any claims Linux has on these peripherals.
    • Disable any unused LPSCs (See section 6.2.2 Power Control Modules in the TRMs)
    • Reduce the speed of the A53 core speeds (which may impact performance)
    • Reduce the speed of LPDDR4 (Refer to the DDR Config Tool)
    • Disable the clocking for unused peripherals (See section 6.4.5 PLLs in the TRM and use the Clock Tree Tool)
    • Change the Operational Point speed of the different cores / CBASS (See the section on Speed Grades in the Datasheet and Section 6.2.3.2 OPP Low in the TRM)

    Some common links that may help:

    Generally speaking, AM62P tends to have higher power consumption than AM62x because it has more features like a large GPU.


    Both AM62x and AM62P devices support various low power modes. You can read about the power modes and wakeup sources in Section 6.2.4 Power Modes in the TRMs. But not all the modes are implemented in Linux yet. Refer to the Processors SDK Documentation to see whats available at this point:

    Regards,

    Sreenivasa

  • Hi Board designers, 

    E2Es for reference on COREs

     https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1204069/faq-sitara-multicore-development-and-documentation 

    Sitara multicore development and documentation

    (+) [FAQ] [AM6XX]: How to check if device type is HS-SE, HS-FS or GP? - Processors forum - Processors - TI E2E support forums

     https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1228618/faq-am6xx-how-to-check-if-device-type-is-hs-se-hs-fs-or-gp 

    (+) AM625-Q1: Display sharing in AM625-Q1 - Processors forum - Processors - TI E2E support forums

    (+) TDA4VM: J7200] Could you explain Watchdog sequence ? - Processors forum - Processors - TI E2E support forums

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1405983/tmds64evm-about-the-gpmc-clock/5521424#5521424


    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1532626/am2432-r5f-cache-configuration/5894855#5894855


    I am searching for the cache configuration of AM243x regarding R5F cores, MSRAM, and DDR RAM.

    In the TRM (spruim2h), 64kB cache is mentioned for the R5F subsystem (32kB instruction + 32kB data). L2 Cache is only mentioned for the A53 subsystem.

    Is it true that the R5F has no L2 cache towards the DDR RAM?
    This is correct.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1523518/am6442-l1-cache-use-for-memory-storage/5858660#5858660


    The Cache is specific to the R5F core and TCM memory is specific to SOC.

    The TCM memory is memory maped to the SOC. So, all cores like the R5F, A53 core and M4F core can access this memory.

    So, the R5F core or A53 core can't access the cache memory as storage because this cache memory is not memory mapped to the SOC.

    (+) AM625: MTBF/FIT estimates needed - Processors forum - Processors - TI E2E support forums

    We’re quoting customers 10 FIT target at 105C/100kPOH based on intrinsic design.

    Successful UART boot 

     RE: AM620-Q1: Asymmetric Multiprocessing 

    Below is the data we get while booting from uart 02000000011a0000616d3632610000000000000048534653000800000008000002a6000000000000cb39ee39c52d0469806636ff350520fcf7065cbec5cdddfea08863506c2be9f2242ff3207f919c2edcff407261f0908459139f3c153770f3024c4eae43a71151ad0bc40b0000000000000000000000000000000C

    (25) AM6442: EtherCAT versions - Processors forum - Processors - TI E2E support forums

    One PRU-ICSSG has 2 Ethernet ports, connecting over MII (or RGMII) to a PHY, implementing one EtherCAT Slave Controller (ESC). The AM64x devices have 2 PRU-ICSSG's that can be connected to 4 PHY's. You can run one PRU-ICSSG based ESC connected to two PHY's and the second PRU-ICSSG remains for other use. Or you could run 2 ESC stacks in 2 separate EtherCAT line topologies using 4 PHY's. Did this answer the question?

    (25) AM6421: AM6421 system: No firmware, VDD_CORE,VDDSHV_MCU and VDDSHV0-3 short - Processors forum - Processors - TI E2E support forums

    You can get unpredictable results when measuring continuity of a power rail with a multimeter because the potential applied to the device by the multimeter can bias circuits in unpredictable ways. For example, the multimeter may trigger internal ESD protection circuits attached to the power rails.  If this happens the ESD circuits may think the potential applied by the multimeter is an ESD event, where the ESD circuits shunts current to ground.

    The results of a continuity test can be misleading unless you power all of the power rails in the sequenced defined in the Power Supply Sequencing section of the datasheet with a ramp rate that is less than the max slew rate defined in the Power Supply Slew Rate Requirements section in the datasheet, and the potential applied never exceeds the voltage limits defined in the Absolute Maximum Ratings table.

    Are you trying to measure continuity of the device power rails after it is installed on a PCB along with other components, or before the device is installed on a PCB? The multimeter may be measuring continuity through other components on the PCB if you are trying to make the measurement on an PCB assembly.

    Have you tried applying power to the device to see if there is a problem?

    (25) AM6412: QSPI timing specification - Processors forum - Processors - TI E2E support forums

    ROM code uses tap mode @ 50 MHz and not PHY mode.

    In ROM, the DEV_DELAY_REG is set to 0x0.


    What is actually used for tap mode is the RD_DATA_CAPTURE_REG DELAY_FLD bit[4:1]. For which we (ROM) scan all possible value to find the optimum setting.

    So for ROM only DEV_DELAY_REG does not matter.


    After boot, in their higher level s/w, if they would need/want to enable PHY mode to increase throughput then they would need to set these I imagined.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1545920/am620-q1-asymmetric-multiprocessing/5948312

    The AM62x is capable of doing processing on the Linux A53 cores, RTOS or bare metal on the M4F core, and bare metal code on the PRU cores, and then passing data between all the cores. However, I am not an audio specialist, so I am not sure if we have evaluated M4F performance in audio usecases or not.

    If you use a hypervisor, you can run Linux on a part of the A53 cluster, and RTOS on another part of the A53 cluster.

    In general, I would not suggest dividing up the A53 cluster without using a hypervisor, since management of shared resources like the cache is a lot more difficult without a hypervisor coordinating the resource usage.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1542957/am625-cpsw-support-on-m4-core-from-am625/5934920 

    CPSW support on M4 core from AM625

    We currently don't support Networking on M-core for AM62x. We only support Networking on A53 core, with Linux and RTOS platforms. AM26X and AM62X are of different series of products and differ in the offerings. But even AM26X doesn't support Networking drivers on M core.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1541622/am62p-how-do-the-a53-cores-access-mcu_i2c-mcu_spi 

    How do the A53 cores access MCU_I2C/MCU_SPI

    MAIN" and "MCU" refer to power domains.

    In general, the Main domain cores can reach across into the MCU domain to access peripherals, and the MCU domain cores can reach across to Main domain peripherals.

    The exception to this is if you have firewalled off the MCU domain core for something like a safety / security usecase. If there is a firewall between the domains, then neither core can reach across the firewall.

    Interrupt connectivity matters 

    A lot of peripheral drivers assume an interrupt connection. This is more of an issue on AM62x than AM62Px (where on AM62x, some peripherals do NOT have interrupt connectivity across the MAIN / MCU domain). For all AM62 family processors, I suggest referring to the Technical Reference Manual (TRM) section Interrupts > Interrupt Connections Summary for an overview of which peripherals have interrupt connections to the GIC (which feeds the A53 cluster)

    Don't forget to allocate your peripherals! 

    This is the most common issue I see customers run into, when multiple cores try to request the same peripheral, and then the second request fails. You can find more information about peripheral allocation in the AM62Px academy here:

    Multicore > Peripherals:
    https://dev.ti.com/tirex/explore/node?node=A__AcGdexDmDxV8k7XSDZd.4w__AM62P-ACADEMY__fp5YxRM__LATEST

    Multicore > Application Development on Remote Cores:
    https://dev.ti.com/tirex/explore/node?node=A__AW0cwnZVbDqRS5d4OiCx6A__AM62P-ACADEMY__fp5YxRM__LATEST

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Refer inputs related to DMA and PDMA

    We need to enable DMA transfers for MCSPI and MCAN.

    Q1. Is the following understanding correct?

    • MCSPI0/1/2 support both TX and RX DMA transfers with PDMA0.
    • MCAN0/1 support both TX and RX DMA transfers with PDMA0.

    Q2. Do PDMA1 and PDMA2 support DMA transfers for MCAN?

    The MCSPI and MCAN peripherals support both TX and RX DMA channels.

    However, the DMA channels for MCAN and MCSPI are statically mapped to either PDMA0, PDMA1, or PDMA2, depending on the SoC architecture.

    This means that the peripheral-to-DMA connections are fixed in hardware and cannot be reassigned from one PDMA instance to another. 

    We need to continuously perform high-speed, high-volume communication (Clock: 6 MHz, Data Size: 2 KB) in SPI Slave mode within the MCU domain.

    However, when we set the MCSPI Operating Mode to "DMA Mode" in the SysConfig for the MCU domain, we receive the message: "DMA is not supported in MCU Domain."

    We were planning to use DMA for this purpose—does this mean that DMA is actually not available in the MCU domain?

    If DMA is indeed not supported, could you kindly suggest any alternative solutions to achieve our communication requirements?

    The MCU core does not support PDMA, so the MCU domain MCSPI cannot be used with DMA.

    If the customer wants to use DMA with MCSPI from the MCU core, they can access the MAIN domain MCSPI, which supports DMA . 

    This allows high-speed data transfer without CPU overhead.

    However, if the customer prefers to use the MCU domain MCSPI, they must operate it in interrupt mode since DMA is not supported.

    Performance Considerations:
    • SPI Clock: 6 MHz
    • Payload Size: 2 KB (2048 bytes)
    • Theoretical Transfer/Read Time:

    2048 * 8 / 6M = 2.73msec 


    • Interrupt Configuration:
    The MCSPI RX FIFO can be configured to trigger an interrupt at 32 bytes.
    • Time to receive 32 bytes:
    32*8/6M = 42.67usec 

    Based on this analysis, the customer can choose between:
    1. MCU domain MCSPI in interrupt mode:
    • Suitable if CPU has enough headroom to handle interrupts every 42.67 µs.


    2. MAIN domain MCSPI with DMA:
    • Recommended for minimal CPU involvement and better performance.

    Please evaluate these options and select based on your application’s real-time constraints and system architecture.

    (+) AM623: Is chaining of DMA available like AM335 EDMA? - Processors forum - Processors - TI E2E support forums

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Refer inputs related to internal clock error detection

    (47) [FAQ] AM6422: How to Switch Back to External Clock After Clock Loss Detection - Processors forum - Processors - TI E2E support forums

    I added the inputs from out reset expert:

    The expectation is that the fault is routed to the ESM, and some external circuit would generate a power cycle or cold reset so the system can recover.  I think this is the only way the clock loss detection circuit would reset the detection.  Also, MCU_PORz is the only way CLKLOSS_SWITCH_EN bit gets reset.  So a warm reset will not help here, and that is why they observe the 12MHz_RC still clocking the processor after a warm reset

     

    The RC clock backup is not available immediately after PORz because of the default value of CLKLOSS_SWITCH_EN.  There is some setup that needs to happen anyway, in that the error needs to be routed to the ESM to trigger the ERROR signal, so that an external can do something about it (power cycle the device, for example).  When all that is setup, the RC clock will clock the device after a fault, but it is only intended to keep the ESM alive to generate the appropriate ERROR signal.  It is not expected that the device will operate fully.

     

    On a cold reset, if the 25MHz is not available, the device will not boot.  Even if the clock loss detection circuitry works at that point, the CLKLOSS_SWITCH_EN defaults to 0 as mentioned previously, so the mux will never switch to the RC clock.  Even if it would be able to switch, the ROM does not support booting with that input frequency.

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Additional inputs on processor supplies:

    Connection recommendations for processor supply rails when peripherals or IOs are not used and connection of RSVD pins

    I want to know what’s the lowest current consumption in MCU LPM (MCU ONLY MODE) , which should include PMIC?

    The MCU-only low power mode benchmark measured with our EVM can be found here: https://www.ti.com/lit/an/spradg1/spradg1.pdf.

     For power optimizations: customers can reduce the clock speed of the MCU M4F PLL and also configure the PMIC to operate in auto-PFM. PMIC operates in auto-PFM when the MODE/STBY pin is pulled low. AM620-Q1: Power Consumption Optimization For MCU Only mode (or deep sleep mode) - Processors forum - Processors - TI E2E support forums

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Additional inputs related to security

    The ROM itself loads the TIFS. The R5 SBL image is a combined image which contains the actual SBL Stage1, TIFS, and Board Configuration binaries.

    After the SBL Stage1, the bootflow is described in the following guide:

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM62PX/11_01_00_16/exports/docs/api_guide_am62px/SBL_BOOTING_LINUX_EMMC.html#autotoc_md229

    (+) AM623: Secure Boot Flow, KEY security, BMPK strategy - Processors forum - Processors - TI E2E support forums

    Please refer to the FAQs on the topic.
    [FAQ] SYSFW API on key revoke in OPTEE on AM62x 
    [FAQ] AM6442/AM243: How to use the TISCI APIs (READ_KEYCNT_KEYREV & WRITE_KEYREV) to activate the backup key set 

    This is an early e2e
    RE: AM623: Does AM62x support revocable Root of Trust (RoT) or Certificate Authority keys 

     RE: AM623: Please help to provide Safety Features documents for AM623 

    Yes, all AM62x series (AM625, AM625-Q1, AM623, AM620-Q1) support FuSa. Please see the "Functional Safety" section in the respective datasheets:
    Eg: https://www.ti.com/lit/ds/symlink/am623.pdf 

     AM623: Functional safety certification document 

    The safety manual and FMEDA documentation for AM62x device can be requested at the below link:
    https://www.ti.com/secureresources/AM62Q-17X17-RESTRICTED-DOCS-SAFETY 

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1544858/am623-functional-safety-certification-document

    The safety certificate from TUV is available at https://www.ti.com/product/AM625#tech-docs 

    https://www.ti.com/lit/fs/sffs744a/sffs744a.pdf 

    Here is the link of the OTP Keywriter tutorial as well:
    https://dev.ti.com/tirex/explore/node?node=A__AagJ-8QGXM582KzTgxFZbA__AM62-ACADEMY__uiYMDcq__LATEST

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Additional inputs related to RSVD pins.

    I would like to know the behavior of the AM62A when this reserv pin is shorted to the power supply or GND. Therefore, I would like to know the electrical behavior including the rated voltage.

    Please refer inputs i received from the expert:

    The customer should never purposely connect anything to these pins or allow them to be connected anything by accident.  There characteristics of these pins are not defined because the customer should never connect anything to them.  The device may not work as expected and may be damaged if they connected to power or ground.  The customer must ensure this never happens.

    We are currently checking our products from the perspective of functional safety.

    It is necessary to know what mode it will fall into when a failure occurs, and the above information is necessary for that.

    I understand that it is a "Reserve pin", but could you please answer my question?

    Please refer below inputs i received from the device expert and design team.

    We expect customers to do whatever is necessary to ensure the reserved pins never get connected to anything.  We expect customers to do whatever is necessary to ensure the reserved pins never get connected to anything.  We did not validate the device operation for any other condition.  Therefore, so we are not able to say what will happen if they allow any of the reserved pins to connect to other pins or signals.
    The SOC may not work properly. Just like if a power pin were shorted to ground. 
    They need to have some mechanism like a challenge-response watchdog external to the SOC to Protect against this. 

    Please refer inputs i received from the expert:

    The safety concepts we show always have a separate monitor device that can cause the system to be in a safe state

    Regardless of what happens to the SOC.   They need to treat issues with these reserved pins like shorting to a supply rail

    As possibly causing the SOC to be completely offline / possibly damaged / and possibly shorting out the power rails connected

    To the SOC.

    The monitor needs to be independent enough to cause the safe state entry if any of those things happen.

    We cannot give more detail or guarantee behavior on reserved pins past what is documented in the datasheet.  

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Additional inputs related to clock frequency

    e2e.ti.com/.../am623-cpu-frequency

    (+) AM623: CPU frequency - Processors forum - Processors - TI E2E support forums

    If you uses kernel devicetree k3-am625-sk.dts as your reference, the default frequency would be 1.4GHz, but if you use k3-am62-lp-sk.dts as the reference, the default frequency would be 1.25GHz. Because k3-am625-sk.dts has "opp-140000000" defined in the opp-table node, but k3-am62-lp-sk.dts doesn't.

    1.4GHz is only supported with 0.85V VDD_CORE.

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Additional inputs related to JTAG

     https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1547247/am625-am625---jtag-custom-board 

    I am reading the Hardware design considerations guidelines: www.ti.com/.../sprad05d.pdf

    There is a section on JTAG:

    "Although JTAG is considered optional for normal board functioning, the recommendation is to include JTAG connections on the custom board design."

    The AM625 (A53) run Linux. What purpose is the JTAG used for in this processor?

    JTAG would be used in debugging issues on the board, for example, Linux doesn't print any message on the UART console after power on.

    Thank you for the response. So, I would be able to use before u-boot to try and diagnose non-boot issues?

    Yes. JTAG can see a lot of details of the processor.

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Additional inputs related to Display sharing 

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1540316/am625-q1-display-sharing-in-am625-q1 

    In general, a single peripheral ONLY supports being controlled by a single software instance 

    For more information, please refer to the AM62x academy:
    Multicore > peripherals
    https://dev.ti.com/tirex/explore/node?node=A__AZAVEddCL5eFK1WrnKz45Q__AM62-ACADEMY__uiYMDcq__LATEST

    But why though? 

    There is a hardware limitation here, along with software limitations. In general, each peripheral was only designed to be controlled by a single software "master". That means we only have one set of configuration registers, one FIFO for sending data in and out, etc. So for most peripherals on most processors, there is no way for both Linux and an MCU+ core to read and write to the same peripheral without overwriting each other's settings and data.

    Some peripherals and peripheral interfaces ARE designed to interact with multiple software instances. The DDR interface is one example - that hardware was specifically designed to allow for multiple processor cores to access the same interface at the same time. But what about EMMC memory? That interface can only be controlled by one software instance at the same time. So either Linux can use the EMMC, or an MCU+ core can access the EMMC, but not both.

    Ok, let's talk about display 

    The display interface on the AM62x actually has a different circuit design internally than the display interface on the AM62Px. The AM62Px display circuitry actually has multiple video pipelines / overlays / etc that allow one software instance to read/write to one pipeline, and the other software instance to read/write to the other pipeline. So the two software instances are not overwriting each other's data.

    The AM62x does NOT have that design. Only one software instance can read & write to it at the same time.

    Now let's talk about software support 

    Even if we are just talking about the DM R5F controlling the display interface... there is no software support for that on AM62x.

    AM62Px: DSS supported for R5F: https://software-dl.ti.com/mcu-plus-sdk/esd/AM62PX/11_00_00_16/exports/docs/api_guide_am62px/RELEASE_NOTES_11_00_00_PAGE.html

    AM62x: DSS is NOT supported for R5F: https://software-dl.ti.com/mcu-plus-sdk/esd/AM62X/11_01_00_16/exports/docs/api_guide_am62x/RELEASE_NOTES_11_01_00_PAGE.html 

    Are there other options that TI does NOT support? 

    There are several other things you could do on AM62x to get something similar to work. However, TI has NOT tested any parts of this implementation. TI does NOT support any of these implementations. If you decide to try any of this out, you are on your own. We will not answer any questions or help you debug.

    Linux would need to be the display master. Theoretically you could send the display data that you want to come from the DM R5F to Linux through some IPC method, then a Linux application could combine the DM R5F image with the Linux image, then Linux could send the image to the DSS interface.

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Additional inputs related to PRUSS and peripherals 

    A53 operating system

    What OS are you planning on running on the A53 cores?

    At this point in time, AM62x supports controlling the PRUSS (PRU Subsystem, no Industrial Communication signals so not PRU-ICSS) from Linux running on the A53 cores.

    Differences in the PRU subsystem?

    The PRU subsystem itself on AM62x and AM26x is actually identical. The only difference are the inputs that are connected to the subsystem.

    e.g.,

    AM62x PRU cores can run at 333MHz (exactly 3 ns per clock cycle, not 3.03ns), 250MHz, 200MHz, and a couple of other options because of the clock muxing. AM26x is locked to 200MHz.

    AM62x cannot do Ethernet because the PRU subsystem's Ethernet inputs and outputs are not connected to any of the processor pins.

    At this point in time, there are no plans to add support for MCU+ on any of the AM62x cores controlling the PRU cores.

    There is no guide for porting PRU code specifically from AM26x to AM62x. You can refer to this older guide for general concepts to keep in mind when porting code: PRU-ICSS / PRU_ICSSG Migration Guide
    https://www.ti.com/lit/spracj8

    Pretty much the only thing that I would expect to significantly change (other than the clock frequency and signal pinout mentioned above) would be the base address of the PRU subsystem within the device. Everything else within the PRU subsystem is the same between AM26x and AM62x.

    (+) SK-AM62P-LP: Peripheral configuration/management can be done on both R5F and A53 cores - Processors forum - Processors - TI E2E support forums


    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1549308/sk-am62p-lp-peripheral-configuration-management-can-be-done-on-both-r5f-and-a53-cores

    I'm the author of the AM62Px Multicore academy module. Glad you already found that documentation. For future readers, please start by reading the basics of peripheral allocation in a multicore system here: https://dev.ti.com/tirex/explore/node?node=A__AcGdexDmDxV8k7XSDZd.4w__AM62P-ACADEMY__fp5YxRM__LATEST

    Let's start with the CAN 

    As per the document above, CAN was only designed to be controlled by a single software instance.

    So you can control CAN0 from the A53 core and disable it from the R5F perspective, or you can control CAN0 from the R5F and disable it in the Linux devicetree.

    What about GPIO? the short answer

    TI does not support both Linux and MCU+ SDK interacting with the same GPIO module. You may be able to get it to work, but we have neither tested nor validated this usecase.

    The longer answer 

    Here's an early draft of some future documentation changes I have planned for that page:

    1. In general, peripherals & peripheral interfaces are designed to only have one software instance controlling them. This is true for both Linux and MCU+ cores (e.g., I2C0 cannot be controlled by both DM R5F and MCU domain R5F).

    2. The exceptions to 1) are the DDR interface, the display interface (AM62Px only), and GPIO modules (where the interrupt for a single GPIO bank can still only be routed to a single software instance). GPIO sharing is only tested with MCU+ cores, NOT tested or validated with Linux & non-Linux. More about GPIO sharing between MCU+ cores at  [FAQ] AM64X/AM62X: How do I route the same GPIO bank interrupts to different destination cores? 

    3. Linux requests exclusive ownership of a power domain? (PD? currently unclear how this is different from requesting the peripheral itself), while MCU+ cores do not. This means that if there is ever a resource conflict between Linux and an MCU+ core, the 2nd core to request ownership of a peripheral will throw an error (CASE 1: Linux requests first and sets exclusive access. The following MCU+ SDK request is rejected. CASE 2: The MCU+ core requests first and sets non-exclusive access. Since nonexclusive access is already set, the Linux followup request for exclusive access is rejected)

    4. If there is ever a resource conflict between MCU+ cores, the MCU+ cores will NOT throw an error (since each MCU+ core will request non-exclusive access). So they could theoretically overwrite each other's register settings. Customers are expected to statically allocate peripherals during the software design phase to avoid conflicts. For processors with system projects in SysConfig (AM243x & AM64x), the system project will warn the user of any conflicts. However, there are not currently any tools to check for resource conflicts in AM62 family devices.

    So what does that mean in practice?

    You would still want to only enable the GPIO module (and do the associated GPIO pinmuxing) in either Linux, or on the MCU+ core. Because if the same GPIO module is enabled in both places, then the 2nd software instance to request ownership of the GPIO module will throw an error.

    After a single software instance initializes the GPIO module, you could potentially configure the interrupt routing so that the other software instance could receive an interrupt from the GPIO module and take actions as needed. We would be limited in the support we could provide here, since we have not actually tried to do that between Linux & MCU+ cores.

    (+) AM2434: Retaining variables in RAM across warm reset. - Arm-based microcontrollers forum - Arm-based microcontrollers - TI E2E support forums

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1547182/am2434-retaining-variables-in-ram-across-warm-reset/5958003?tisearch=e2e-sitesearch&keymatch=a53#

    If you just want to retain a few variables, i would not recommend DDR, as this would be overkill for that purpose.  You could use a small external memory, or the M4F core (with 256K RAM) has an isolation feature which could keep it alive across resets.

    You cannot reset individual cores, warm reset affects all the cores, with the exception of the M4F if it is isolated

     the whole DDR will get reinitialized on each warm reset, there is no way to partition it to maintain a small portion of it.  The M4F SRAM modules can be accessed by the R5F or A53s.

    Regards,

    Sreenivasa

  • Hi Board designers, 

    Additional inputs related to GPIO usage

    What about GPIO? the short answer

    TI does not support both Linux and MCU+ SDK interacting with the same GPIO module. You may be able to get it to work, but we have neither tested nor validated this usecase.

    The longer answer 

    Here's an early draft of some future documentation changes I have planned for that page:

    1. In general, peripherals & peripheral interfaces are designed to only have one software instance controlling them. This is true for both Linux and MCU+ cores (e.g., I2C0 cannot be controlled by both DM R5F and MCU domain R5F).

    2. The exceptions to 1) are the DDR interface, the display interface (AM62Px only), and GPIO modules (where the interrupt for a single GPIO bank can still only be routed to a single software instance). GPIO sharing is only tested with MCU+ cores, NOT tested or validated with Linux & non-Linux. More about GPIO sharing between MCU+ cores at  [FAQ] AM64X/AM62X: How do I route the same GPIO bank interrupts to different destination cores? 

    3. Linux requests exclusive ownership of a power domain? (PD? currently unclear how this is different from requesting the peripheral itself), while MCU+ cores do not. This means that if there is ever a resource conflict between Linux and an MCU+ core, the 2nd core to request ownership of a peripheral will throw an error (CASE 1: Linux requests first and sets exclusive access. The following MCU+ SDK request is rejected. CASE 2: The MCU+ core requests first and sets non-exclusive access. Since nonexclusive access is already set, the Linux followup request for exclusive access is rejected)

    4. If there is ever a resource conflict between MCU+ cores, the MCU+ cores will NOT throw an error (since each MCU+ core will request non-exclusive access). So they could theoretically overwrite each other's register settings. Customers are expected to statically allocate peripherals during the software design phase to avoid conflicts. For processors with system projects in SysConfig (AM243x & AM64x), the system project will warn the user of any conflicts. However, there are not currently any tools to check for resource conflicts in AM62 family devices.

    So what does that mean in practice?

    You would still want to only enable the GPIO module (and do the associated GPIO pinmuxing) in either Linux, or on the MCU+ core. Because if the same GPIO module is enabled in both places, then the 2nd software instance to request ownership of the GPIO module will throw an error.

    After a single software instance initializes the GPIO module, you could potentially configure the interrupt routing so that the other software instance could receive an interrupt from the GPIO module and take actions as needed. We would be limited in the support we could provide here, since we have not actually tried to do that between Linux & MCU+ cores.

     https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1398198/faq-am62x-how-to-allocate-use-gpios-from-different-device-domains 

    I want to use MCU GPIO from A53/Linux or Main Domain GPIO from M4/MCU. How can I allocate these GPIOs and use them?

    (+) AM623: Disabling MCU (M4) to Use MCU_UART0 Port from Main Domain — Impact and Considerations - Processors forum - Processors - TI E2E support forums

     https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1551569/am623-disabling-mcu-m4-to-use-mcu_uart0-port-from-main-domain-impact-and-considerations/5972414

    Peripheral allocation

    Each peripheral on the AM62x was designed to have a single SW owner. So Linux can use a UART instance, or the M4F can use a UART instance, but both processors cannot use the same UART instance. For more information about peripheral allocation, refer to the AM62x academy:
    Multicore > peripherals > how to allocate peripherals
    https://dev.ti.com/tirex/explore/node?node=A__Ab9v-ikRLJrpmmd7B-xvUw__AM62-ACADEMY__uiYMDcq__LATEST

    Can a processor core in one power domain control a peripheral in another power domain? 

    It depends.

    1) Has the MCU domain been isolated for safety or another usecase?

    If there is a firewall between the MAIN and MCU domains, then a core cannot reach across the firewall to control a peripheral on the other side.

    2) Is there interrupt connectivity between the peripheral and the processor core?

    For a summary of interrupt connectivity, refer to the AM62x Technical Reference Manual (TRM) section 
    Interrupts > Interrupt Architecture > Interrupt Connections Summary

    You can see that there is interrupt connectivity between the GIC (That's for the A53 cores) and UART:MCU domain. So you should be good to go.

    Will the MCU domain M4F firmware run properly if the MCU_UART is disabled in the M4F's SysConfig settings? 

    The MCU_UART is not a requirement for the firmware to run. You would need to talk with your RTOS team to understand what code they are programming for the M4F (if you are programming the M4F in your design).

    Some questions that you might have to consider include "How will we debug the M4F firmware during development". For more resources on how to do stuff like that, please refer to the AM62x academy:
    Multicore > Application Development on Remote Cores
    https://dev.ti.com/tirex/explore/node?node=A__ATWfO3c7FkPk06K9x1nvpA__AM62-ACADEMY__uiYMDcq__LATEST

    (+) PROCESSOR-SDK-AM62X: About AM62x M4F Core Program Optimization - Processors forum - Processors - TI E2E support forums

    he device is not architected to be optimized to run out of DDR from M4F.  M4F is meant  to run out of local memory as it does not have a cache like the R5F or A53 cores do.  Please refer to: 

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1187962/faq-sk-am62-how-to-execute-code-from-external-memory-using-m4f-core 

    Regards,

    Sreenivasa

  • Hi Board designers,

    Refer below for boot related inputs:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1552428/am6421-about-the-cores-on-am6241/5977433 

    AM6421: About the cores on AM6241

    Which specific core in AM6421 is initialized first during the default boot process?

    This is mentioned in section 4.2 Boot Process in the TRM, please refer to the same.

    As mentioned here: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_01_00_17/exports/docs/api_guide_am64x/BOOTFLOW_GUIDE.html#autotoc_md608

    RBL (DMSC ROM code) runs first as soon as the board is powered ON. So DMSC runs the first set of instruction, after that DMSC resets R5 from release and R5 handles rest of the boot flow.

    Are the other cores (A53, other R5F instances, PRU cores) kept in a disabled or reset state until explicitly enabled?
    If my application only needs a specific core (e.g., one R5F), do I need to manually initialize the others, or can they remain idle?
    How do I start the A53 from R5F during boot?
    After starting A53, can I put the R5F into reset or does it need to keep running for system management?

    (+) AM62L: Bare metal / freeRTOS boot time - Processors forum - Processors - TI E2E support forums

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1552423/am62l-bare-metal-freertos-boot-time/5973722 

    the AM62L boot flow is different from AM62x/A/P/D and AM64x/AM243 family devices.

    The AM62L supports a two-stage bootloader:
    • First stage: Initializes DDR
    • Second stage: Directly loads the application

    As a result, AM62L is expected to have lower boot time compared to other AM62x/A/P/D and AM64x/AM243 SoCs.

    Notably, AM62L does not require an SBL because the ROM itself loads the application in the second stage.
    We typically require an SBL when using A53 cores in AMP mode, but AMP mode has cache limitations that may degrade performance.

    For real-time use cases, the recommendation is to use SMP mode on A53, in which case no SBL is needed.

    (+) AM2432: Unexpected GPIO behavior after SPI boot - Arm-based microcontrollers forum - Arm-based microcontrollers - TI E2E support forums

     https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1544068/am2432-unexpected-gpio-behavior-after-spi-boot/5980867

     https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1545652/am2432-why-pin-y4-gpio0_63-is-toggled-after-power-up-in-rbl

    I was confusing SPI boot with GPMC NOR boot.

    I didn't notice this because my board still works in GPMC boot mode.

    Thank you for identifying the cause of this issue.

    Regards,

    Sreenivasa

    Regards,

    Sreenivasa

  • Hi Board designers,

    Refer below inputs related to package delay.

     the package pin delays can be found in the AM62P DDR layout guidelines , section 4

    https://www.ti.com/lit/pdf/sprad66

    Aside from DDR delays listed in the PDF file, there should be package delays for all other CPU High speed interface balls such as SD/MMC,DSI,LVDS,RGMII etc.

    Typically there is a internal package delay file provided (as was the case for AM62x). These delays are required since they should be taken into account in length matching. There are no internal package delays included in the EVK reference .brd layout file.

    we don’t supply that to customers.  Why do they need it?  I think for most peripheral frequencies, the package delay would be a small fraction of the rest of the board trace.

    Following the DDR design guide should be Ok. You could also reference the SK and the EVM.

    Please refer below inputs from the expert:

    we don’t typically share package delay information for the entire device.  The customer should be consulting the High Speed Layout Guidelines app note https://www.ti.com/lit/pdf/spraar7 which has layout information for some of the non-DDR interfaces. 

     For AM64x DDR specifically, the PHY has a per bit skew feature which will compensate for length mismatches during training.  This will help accommodate package length mismatches.

     https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1554534/tda4aen-q1-pin-package-delay-needed-for-lpddr/5982747 

    Yes - pin delay (package) should be taken into consideration when layout of a PCB design.  Yes - we try to account for these delays when designing our EVMs.  Sometimes the EVM and package are designed at same time, and package is not final when EVM is completed.

     https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1421855/am67a-soc-package-delay/5474846 

    Do you also have the RLC-data for the DDR pins? It would improve the Sigrity simulation of these nets.

    Yes, if you search for the word "matrix" in the ibis model you'll find the following:

    Model Data]
    |
    | The resistance matrix for this package has no coupling
    |
    [Resistance Matrix] Banded_matrix
    [Bandwidth] 0
    [Row] H17
    0.032209

    <snip>

    |
    | The inductance matrix has sparse coupling
    |
    [Inductance Matrix] Sparse_matrix
    [Row] H17
    H17 4.35728e-10
    G19 1.09632e-11

    <snip>

    |
    | The capacitance matrix has sparse coupling
    |
    [Capacitance Matrix] Sparse_matrix
    [Row] H17
    H17 7.79462e-13

    AM625-Q1: Regarding PCB Pattern, should customer consider the pin delay in SoC for eMMC / QSPI / USB for pattern layout of PCB?

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1532202/am625-q1-regarding-pcb-pattern-should-customer-consider-the-pin-delay-in-soc-for-emmc-qspi-usb-for-pattern-layout-of-pcb

    Should customer consider the pin delay in SoC for eMMC / QSPI / USB for pattern layout of PCB?

    For the propagation delay, the delay here is only for the peripheral traces on the board. There is no need to include any package level propagation delay.

    The below E2E could help in case you have similar query for DDRSS.

    (+) AM623: AM62x package internal DDR4 pin delay - Processors forum - Processors - TI E2E support forums

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1445913/tda4vm-pin-package-delay-for-csi-pins

    No package delay information is available for CSI2.  Customers can assume they are matched on package.

    e2e.ti.com/.../am62a7-q1-ddr-package-pin-delay

    Regards,

    Sreenivasa

  • HI Board designers, 

    Inputs related to delay between supply rails for processor power-up sequence

    Input 1

    The VDDS_DDR and VDDS_DDR_C power rails are expected to be powered from the same power source. This waveform shows a grey transition region that begins with the first rising edge and ends with the second rising edge. The supply that powers VDDS_DDR and VDDS_DDR_C can change anywhere in the grey transition region. So it is okay for the the 0.85V supply to ramp before the 1.2V supply.

    Note: We insert multiple transitions within the grey transition region of some waveforms when they represent a transition region for power rails which may receive power from multiple sources. Multiple transitions within the region is used to indicate these power rails can ramp anywhere within the transition region and they do not have any dependency on the other power rails associated with the waveform. Transition regions like the one used for VDDS_DDR and VDDS_DDR_C, indicate all power rails associated with the waveform are powered from a common source and are expected to ramp at the same time anywhere within the transition region.

     The shaded region of the waveform represents a range of time where a supply may ramp up/down relative to other supply rails.  The hatch marks within a shaded region is used to represent multiple power rails just in case all power rails represented by a waveform are not powered from the same source. For example, there may be a reason to power some 1.8V power rails form one source while other 1.8V rails are powered from another source.

    I will be adding legends to this section of the datasheet to describe these two types of transition regions.

    Input 2 

    There is only one firm requirement for AM64x power-down. See note 5 associated with the power-down sequence. 

    The potential applied to VDDR_CORE must never be greater than the potential applied to VDD_CORE + 0.18V during power-up or power-down. This requires VDD_CORE to ramp up before and ramp down after VDDR_CORE when VDD_CORE is operating at 0.75V. VDD_CORE does not have any ramp requirements beyond the one defined for VDDR_CORE. VDD_CORE and VDDR_CORE are expected to be powered by the same source so they ramp together when VDD_CORE is operating at 0.85V.

    Input 3

    Can we share the requirements of timing between the different voltage supply waveforms rising on power-up and falling on power-down. For example, how long after Waveform A rises must Waveform B wait before rising?

    There are no specific timing requirements for these sequencies. The sequence defined in the datasheet is only required to prevent voltage potential differences.

    in Figure  Power-Up Sequencing of the Datasheet, is there  requirements for the time interval of each voltage?
    * Spacing of vertically drawn dashed lines

    No.  No specific time is required between the groups as long as one has ramped before the next begins.

    Customer follow SK-AM62B-P1 design and use same PMIC and found MCU_OSC0 clock start up timing is not matching the sequence we describe in Data Sheet. 

    This is confirmed on both customer board and TI EVM. 

    MCU_OSC0 is supposed to be clocking after VDD_Core rising but the waveform measurement shows it is ahead VDD_CORE.

    Customer would like to get the explanation from TI for this.

    Could team check this or we need to revise data sheet? 

    The datasheet shows it not starting until after the core voltage because there are some cases where the oscillator may not start until VDD_CORE is valid. In most cases it will start as early as VDDS_OSC0, but this may not always be the case.

    This diagram in the datasheet is showing the maximum start-up time, which must include the case where the delay is based on VDD_CORE being valid.

    (+) [FAQ] AM625: Long Term Effects of Simultaneously Power-Down Sequencing of all Voltage Rails - Processors forum - Processors - TI E2E support forums

    AM625: AM6254 power up sequence question

    Will the external circuit(e.g SPI slave side) influence the AM6254 power up sequence? i mean if the SPI or other communication interface(slave side) power up first, will it introduce some current into the AM62 and mess up the AM62 power up sequence? 

    Many of the AM62x pins are not fail-safe and they should not have any potential applied until their respective power rail has ramped to a valid level. For more information refer to the Absolute Maximum Ratings and Recommended Operating Conditions tables in the datasheet.

    (+) AM6442: Powering AM6442BSFFHAALV with TPS6522430RAHRQ1 - Processors forum - Processors - TI E2E support forums

    AM6442: Powering AM6442BSFFHAALV with TPS6522430RAHRQ1

    The processor sequencing requirements can be found in the datasheet under "Power Supply Sequencing". 

    Power Supply Sequencing I can only find the order of the rails.
    However, the delays between the different power supplies are not specified in the datasheet.
    The only delay mentioned is the one between “all supplies valid” and the MCU_PORs (9.5ms).

    Does this mean that the delays between the power supplies themselves don’t matter, and only the sequence is relevant?

    We do not specify the delay between rails. Instead, we have slew rate requirements and sequence order. A supply group must fully ramp to the targeted output voltage with the required slew rate before the next one in sequence start ramping up.   

    AM625-Q1: Power-down sequence

    To which level do we have to discharge the voltages until a next power-up cycle is allowed?

    What can happen with the SoC, if we don't follow the proper power-down sequence?

    The power-down sequence diagram will be updated in the next revision of the datasheet. The update has already been applied to the AM62Ax and AM62Px datasheets released on ti.com, so you can reference one of these updated power-down diagrams until the AM62x datasheet is updated later this year. We are basically allowing the IO supply to delay their turn-off until the last core supply is turned off. The previous power-down diagram showed the IO supplies being turned off by the time VDD_CORE was turned off. This is still the preferred sequence, if possible, to help prevent the IOs from doing unpredictable things during power-down since logic in the core domain controls the IO functions. However, we found this was difficult to implement and decided the internal circuits that force the IOs to a known state until VDD_CORE ramps-up should perform a similar task during power down when VDD_CORE is lost before the IO supply. We do not want customers leaving IO supplies powered for long periods of time after the VDD_CORE is turned off, so we decided to extend each IO supply turn off until the last core rail is turned off as way to limit the time IO are turned on after VDD_CORE is turned off.    

    It appears you are showing an uncontrolled power-down sequence where all supplies are turned off at the same time, which is consistent with the new power-down diagram as long as you ensure the potential applied to VDDR_CORE is never greater than the potential applied to VDD_CORE + 0.18V during power-up or power-down. This is the only absolute voltage difference that must be managed during power-down.

    The following note will also be added to the next revision of the AM62x datasheet. This note has already been added to the AM62Ax and AM62Px datasheets.

    All power rails must be turned off and decay below 300mV before initiating a new power-up sequence anytime a power rail drops below the minimum value defined in Recommended Operating Conditions. The only exception is when entering/exiting Partial IO low power mode with VDDSHV_CANUART and VDD_CANUART sourced from an always on power source. For this use case the VDDSHV_CANUART and VDD_CANUART power rails are allowed to remain on.

    One issue is, that we can't guarantee the decay down to 300mV. As U18S takes up to 4 sec for decay, there is a high probability to start a new power-up cycle before it reaches 300mV. Can you assess, what can happen in this case? Do you expect any malfunction or damage due to this improper power cycle?

    I'm not aware of any way this can damage the AM62x device. There could be use cases where this causes a functional issue in your system.

    I also do not anticipate an issue with the AM62x device because the power-on reset input should reset every circuit in the device to the same known state every time reset is asserted. Therefore, the AM62x device should not retain any previous state held by the power not fully decaying. However, this operating condition was not expected and not validated.

    You could encounter system level issues, where other components in your system will not function if you do not allow all supplies to decay. For example: Not allowing the supplies to decay may be a problem for an SD Card connected to AM62x since the SD Card is only reset when you cycle its power, and its supply voltage drops below a specific value defined in the SDIO standard. This is required because SD Cards do not have a reset pin, so they have an internal reset circuit that generates a reset by monitoring the SD Card supply voltage. This can be a problem if the SD Card was previously told to switch to 1.8V IO signaling and you short cycle the power supply such that the AM62x MMCSD host is reset and begins communicating with the SD Card using its default 3.3V IO signaling when the SD Card is still configured to 1.8V signaling because it was not reset.

    We recommend customers design their system to decay below 300mv to minimize any risk of these type of problems.

    Regards,

    Sreenivasa