AM37x to AM437x Hardware Migration Guide

'''  Content is no longer maintained and is being kept for reference only! '''

= Introduction =

This article documents the differences between the TI AM37x processor and the TI AM437x processor. All of the documentation referenced in this migration guide can be found on the TI website located in the two device respective product folders. The device folders are found at the following web pages.

The device folders are found at the following web pages:


 * AM37x
 * AM437x

= Software Migration Guide =

For more information on software migration, please see:

TBD

= Basic Feature comparison =

The figures and table below show a comparison of the basic features of the AM37x and the AM437x. The remainder of this document presents a comparison of these features in greater detail, and also provides references to the appropriate documentation for further information.



= Module Comparison =

ARM Core
AM37x is based on the ARM Cortex-A8 processor. AM437x is based on the ARM Cortex-A9 processor. The table below shows a comparison between these two devices.

                                                          * OPP 1G available with SmartReflex enabled.

                                                           Note: Please refer to the AM37x and AM437x Datasheets for the latest OPP values.

Neon Co-processor
The Neon co-processor is the same between the two devices.

Wake-up Controller
AM437x has a Wake-up controller that manages entry and exit of various stand-by and deep-sleep modes.

AM37x does not contain a dedicated wake-up controller.

Graphics Engine
The SGX530 3D Graphics Engine is the same between both devices.

On-Chip Memory
AM37x has 64KB of general purpose on-chip memory controller (OCMC) RAM.

AM437x has 256KB of general purpose on-chip memory controller (OCMC) RAM.

General Purpose Memory Controller
AM37x supports 8 chip selects.

AM437x supports 7 chip selects.

The GPMC module is binary compatible between the two devices. The only differences are the ECC hardware mechanism, which is outside of the GPMC module and that AM437x supports 26 address lines for memory mapped devices such as NOR flash, and AM37x supports 12 address lines.

ECC
AM37x supports 1-bit (Hamming) and 4-bit, 8-bit (BCH) hardware ECC. AM37x ROM supports 1-bit ECC. AM437x supports 1-bit (Hamming) ECC and has a new Error Locator Module (ELM) to support 4-bit, 8-bit, or 16-bit (BCH) ECC.

External Memory Interface
AM37x supports the SDRC Subsystem, providing a 16- or 32-bit interface up to 1 GB (total) to LPDDR.


 * 32-bit LPDDR 200-MHz Clock (LPDDR-400 Data Rate)

The SDRC Sybsystem includes a SDRAM memory scheduler (SMS) and a virtual rotated frame-buffer (VRFB) within the subsystem supports rotations of 0/90/180/270 degrees.

AM437x supports a single 32-bit LPDDR2(discrete or non-POP)/DDR3L/DDR3 SDRAM Interface, with up to:


 * LPDDR2: 266-MHz Clock (LPDDR2-533 Data Rate)
 * DDR3: 400-MHz Clock ( DDR3-800 Data Rate)
 * DDR3L: 400-MHz Clock (DDR3L-800 Data Rate)

One x32 device, two x16 devices, or four 8x devices and 2 GB (total) of address space are supported. The EMIF does not support Virtual Rotated Frame Buffer (VRFB) 0/90/180/270 degree rotation in hardware.

Operating Performance Points
* OPP 1G available with SmartReflex enabled.

Note: Please refer to the AM37x Datasheet for the latest OPP values.

Note: Please refer to the AM437x Datasheet for the latest OPP values.

Voltage Rails
The following table compares the power supplies for AM37x and AM437x:

* Note: Please refer to the AM37x Datasheet for the latest values.

* Note: Please refer to the AM437x Datasheet for the latest values.

PLLs
AM37x has the following PLLs, all driven by the HF clock:


 * DPLL1 - MPU
 * DPLL3 - Core


 * DPLL4 - Peripherals


 * DPLL5 - Peripherals 2

AM437x has the following PLLs, driven by a crystal (CLK_M_OSC):


 * Core PLL - for SGX, L3S, L3F, L4F, L4F_PER, PRU_ICSS_IEP, Debugss, GEMAC, PRU_ICSS OCP
 * Peripheral (Per) PLL - for PRU_ICSS_UART, MMC/SD, SPI, UART, I2C
 * MPU PLL - for MPU Subsystem (includes Cortex A-9)
 * Display PLL - for LCD Pixel Clock
 * DDR PLL - for EMIF

Display
AM437x has a similar Display Subsystem (DSS) to AM37x.

Camera SubSystem
The AM37x contains a camera image signal processor (ISP2P).

The AM437x contains two instantiations of the Video Port Front End (VPFE) camera subsystem.

MMC/SD
The MMC/SD modules are binary compatible between the two devices. Except, the CLK32 debounce clock is created by dividing the 96-MHz (48-MHz in AM437x) clock in the PRCM by two and then dividing the resulting 48-MHz (24-MHz in AM437x) clock by a fixed 732.4219 in the Control Module to get a 32-kHz clock.

* Note full compliance with the MMC command/response sets and MMC bus testing procedure, as defined in the Multimedia Card System Specification, v4.2, does not prevent the use of e.MMC version 4.3 (or 4.4) devices with the AM37x, because e.MMC devices are backward compatible.

** Note the supported data width is subject to pinmux constraints.

USB
The USB module is different between AM37x and AM437x.

The AM37x requires an external PHY with both the USB-OTG and USB1-3 host ports. Also, the USB1-3 ports are only capable of host mode operation, at either high speed or full speed mode (not both).

The AM437x contains two USB 2.0 dual-role-device (DRD) subsystems, either of which can be configured as an xHCI Host (HS, FS, LS supported) or as a Device (HS and FS supported).

I2C
The I2C ports are binary compatible between the two devices.

AM37x supports 3 general I2C ports. The I2C ports can support up to 3.4Mbps high speed transmissions, along with the usual 100/400Kbps operation.

AM437x supports 3 general I2C ports. The ports only support 100/400Kbps operation. No high speed mode is supported.

UART
On both Am37x and AM437x, the maximum supported baud rate is 3.6864 Mbps.

AM37x has 4 UARTs. Only UART3 has IrDA capabilities. UART 4 does not support flow control. UART1 and UART2 source CORE_L4_ICLK for the interface clock while UART3 and UART4 use PER_L4_ICLK.

On AM437x, there are 6 UARTs, only UART1 supports full modem control. For UART0 the UART interface clock (CLK) is sourced from M_OSC_CLK in AM437x (max 26MHz), UART 1-5 use the CORE_CLKOUTM4 / 2 at 100MHz.

McBSP/McASP
AM37x has 5 McBSP ports and no McASP ports.

Both AM437x has two McASP ports and no McBSP ports. McASP0/1 support up to 4 McASP serializers.

McSPI
AM37x includes 4 McSPI ports, SPI1 supports up to 4 peripherals and 8 DMA requests to the sDMA, SPI2 and SPI3 support up to 2 peripherals and 8 DMA requests to the sDMA, and SPI4 supports 1 peripheral and 2 DMA requests to the sDMA.

AM437x includes 5 McSPI ports. McSPI[0-2] support 4 chip select signals and 8 DMA requests to the eDMA. McSPI[3-4] only support 2 CS signals and 4 DMA requests to the eDMA.

GPTimer
AM37x has 11 32-bit GPTimers. Three GPTimers (GPTIMER1, GPTIMER2, and GPTIMER10) support 1-ms tick with 32,768 Hz functional clock generated. Only 4 GPTimers (GPT_8 - GPT_11) are pinned out.

AM437x has 12 General Purpose Timers. One GPTimer (DMTIMER1) is specialized for accurate 1mS OS Ticks. Only 6 GPTimers (DMTIMER0, DMTIMER1, DMTIMER4 - DMTIMER7) are extended to SoC pins. AM437x also adds support for timer cascading, providing a 64-bit timer option. With this feature, DMTIMER2-3 provide a 64-bit internal timer and DMTIMER4-5 provide a 64-bit timer with output capability.

WDTimer
AM37x has 2 32-bit Watchdog Timers, the MPU WDT which uses the WKUP_L4_ICLK at t32 kHz, and the IVA2 WDT which uses the PER_L4_ICLK 32 kHz clock.

AM437x has one watchdog timer and uses the CLK_M_OSC, providing a max frequency of 26 MHz.

GPIOs
AM37x supports 6 banks of GPIO signals. Each bank supports 32 GPIOs and two interrupts. All GPIOs are 1.8V I/Os, with the exception of those muxed with MMC1 which are 3.0V capable.

AM437x has 6 banks of GPIOs, each with 32 dedicated IO pins. With the 6 GPIO modules, AM437x allows for a maximum of 192 GPIO pins. Supports a single DMA request for each GPIO module.

INTC
AM335x and AM437x implement different interrupt controllers. Additionally, the interrupt controller on AM37x has 96 interrupt lines. AM437x has 224 interrupt lines.

New interfaces in AM437x
The following are new interfaces in the AM437x device that do not exist in AM37x. Any details about these interfaces can be found in the Technical Reference Manual for AM437x.


 * Camera (VPFE)
 * PRU-ICSS (Programmable Real-Time Unit SubSystem and Industrial Communication Subsystem)
 * Quad-SPI (QSPI)
 * EMAC
 * CAN
 * McASP
 * eCAP
 * eHRPWM
 * eQPE
 * TS/ADC
 * RTC

Pin and package
The AM37x and the AM437x devices are offered different mechanical packages. The physical dimensions and pin out of the packages are also different. The table below lists the variations between the AM337x and the AM437x devices.