Management MCU of SMARC iMX8M Plus

Hello,

I have been trying to find information how do management pins function on Toradax SMARC iMX8M Plus Module. The list of pins I am interested in is specified bellow:

  • Watchdog pin(chapter 3.19 in SMARC 2.2 Specification)
    • WDT_TIME_OUT#
  • Management pins (chapter 3.21 in SMARC 2.2 Specification)
    • BATLOW#, CARRIER_PWR_ON, CARRIER_STBY#, CHARGER_PRSNT#, CHARGING#
    • VIN_PWR_BAD#, SLEEP#, BATLOW#, CARRIER_PWR_ON, CARRIER_STBY#
    • CHARGER_PRSNT#,CHARGING#,VIN_PWR_BAD#, SLEEP#, TEST#
  • Boot Select pins (chapter 3.22 in SMARC 2.2 Specification)
    • BOOT_SEL0#, BOOT_SEL1#, BOOT_SEL2#, FORCE_RECOV#

From Figure 3 of SMARC iMX8M Plus datasheet it can be observed that majority of this signals are controlled by separate MCU:

Since I can not find any info about this MCU in datasheet, I am assuming that this MCU runs some proprietary firmware. So I guess there should be documentation explaining how exactly the MCU drives all the before mentioned signals.

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Based on the SMARC iMX8M Plus datasheet, the management MCU handles several control signals as you’ve observed in the block diagram. Here’s what the documentation reveals about these pins:

Pin Assignments and MCU Control

The datasheet confirms that many of the management pins you’ve listed are indeed controlled by an MCU on the module(1). According to the pin assignment tables:

Boot Select Pins (MCU-controlled):

  • BOOT_SEL0# (P123) - 10kΩ pull-up resistor on module(1)
  • BOOT_SEL1# (P124) - 10kΩ pull-up resistor on module(1)
  • BOOT_SEL2# (P125) - 10kΩ pull-up resistor on module(1)
  • FORCE_RECOV# (S155) - 10kΩ pull-up resistor on module(2)

Management Pins (MCU-controlled):

  • RESET_OUT# (P126) - 100kΩ pull-down resistor on module(1)
  • RESET_IN# (P127) - 10kΩ pull-up resistor on module(1)
  • POWER_BTN# (P128) - 10kΩ pull-up resistor on module(1)
  • SLEEP# (S149) - 10kΩ pull-up resistor on module(2)
  • VIN_PWR_BAD# (S150) - 10kΩ pull-up resistor on module(2)
  • CHARGING# (S151) - 10kΩ pull-up resistor on module(2)
  • CHARGER_PRSNT# (S152) - 10kΩ pull-up resistor on module(2)
  • CARRIER_STBY# (S153) - 100kΩ pull-down resistor on module(2)
  • CARRIER_PWR_ON (S154) - 100kΩ pull-down resistor on module(2)
  • BATLOW# (S156) - 10kΩ pull-up resistor on module(2)
  • TEST# (S157) - 10kΩ pull-up resistor on module(2)

Watchdog Pin (MCU-controlled):

  • WDT_TIME_OUT# (S145) - connected to MCU(2)

Documentation Availability

Unfortunately, the current SMARC iMX8M Plus datasheet does not provide detailed documentation about the MCU firmware behavior or how it specifically manages these signals. The datasheet notes and pull-up/pull-down resistor values indicate MCU control, but the specific firmware logic is not documented in the available sources.

For detailed information about how the MCU firmware handles these management signals, I recommend visiting the Toradex Community or GitHub to inquire about MCU firmware documentation or request additional technical details from Toradex support.

Best regards,
Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Yes, some management pins on the Toradex SMARC i.MX8M Plus module are controlled by the onboard MCU, while others are controlled by the i.MX8M Plus SoC, as you can see in the module’s datasheet (Tables 9–10).

The MCU runs proprietary firmware to control the management pins in accordance with the SMARC specification.

Hello Alex

thanks for quick response. SMARC standard is strict in some cases and vauge in others. So if MCU runs proprietary firmware, than I need more clarification. If we begin with Boot Pins. SMARC standard specifies 3 boot selection pins(SMAR Specs 2.2):

Those three pins are read by MCU(I guess they are latched at power-up?) and translated to 4 bit BOOT_MODE(SMARC iMX8M Plus Datasheet Rev0.1):

Could you please show how are BOOT_SEL[2:0] translated to BOOT_MODE[3:0]?

For example BOOT_SEL[2:0] = 000 sets boot to Carrrier SATA, but on SMARC iMX8M Plus SATA interface is not present on connector

FORCE_RECOV#… How is this implemented? Datasheet contains this: