AM335x to AM437x Hardware Migration Guide

= Introduction =

This article documents the differences between the TI AM335x 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:


 * AM335x
 * 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 AM335x 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
AM335x 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.

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

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

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

System DMA
AM437x has a new DMA event mapping corresponding to the supported peripherals on this device. Additionally, AM335x has 32 events in the cross bar. AM437x has 64.

On-Chip Memory
AM335x 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
Both AM335x and AM437x support 7 chip selects.

External Memory Interface
AM335x supports a single 16-bit LPDDR (mDDR)/DDR2/DDR3 SDRAM Interface, with up to:


 * LPDDR 200-MHz Clock (400-MHz Data Rate)
 * DDR2 266-MHz Clock (532-MHz Data Rate)
 * DDR3 400-MHz Clock (800-MHz Data Rate)
 * DDR3L 400-MHz Clock (800-MHz Data Rate)

One x32 device or two x16 devices and 1 GB (total) of address space are supported.

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.

Operating Performance Points
                                                                         * Note: Please refer to the AM335x 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 AM335x and AM437x:

* Note: These voltage rails are not available in the 13x13 package.

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

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


 * Core PLL - for SGX, EMAC, L3S, L3F, L4F, L4_PER, L4_WKUP, PRU-ICSS IEP, Debugss
 * Peripheral (Per) PLL - for USB PHY, PRU-ICSS UART, MMC/SD, SPI, I2C, UART
 * MPU PLL - for MPU Subsystem (includes Cortex A-8)
 * Display PLL - for LCD Pixel Clock
 * DDR PLL - for EMIF

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

Power Management Feature Comparison


* On 13x13 mm package option, VDD_CORE and VDD_MPU are merged.

Display
The display modules are different between AM335x and AM437x.

AM335x supports LCD Controller.

AM437x has a similar display subsystem (DSS).

The pin mapping for the display output changes substantially when migrating from AM335x to AM43xx. In particular, the AM335x has an advisory related to color assignments (see Section 3.1.1 "LCD: Color Assignments of LCD_DATA Terminals" of the AM335x errata). Please see Section 13.3.2.1.1.3 "LCD Output and Data Format for the Parallel Interface" of the AM437x TRM for the exact pin mapping on AM43xx.

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 the supported data width is subject to pinmux constraints.

USB
The AM335x has 2 usb20otg_f controllers that have a USB port capable of host and OTG operations and have an integrated PHY that supports HS, FS and LS.

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. Both devices support 3 general I2C ports. The ports only support 100/400Kbps operation. No high speed mode is supported.

UART
On AM335x and AM437x, only UART1 supports full modem control. All 6 UARTs support a maximum baud rate of 3.6864 Mbps.

The UART interface clock (CLK) is sourced from CORE_CLKOUTM4 / 2 in AM335x and AM437x (max 100-MHz) except for UART0 on AM437x that is sourced from M_OSC_CLK in AM437x (max 26-MHz).

Real-Time Clock (RTC)
The RTC module is identical between the two devices, except for the interface clock source -- AM335x uses CORE_CLKOUTM4/2, providing a max frequency of 100 MHz. AM437x uses CLK_M_OSC, providing a max frequency of 26 MHz.

Ethernet
There are small differences between the AM335x and AM437x Ethernet module.

The AM437x module adds support for multi core split processing, connecting the Core 0 interrupt to the MPU subsystem and the Core 2 interrupt to the PRU-ICSS. On AM335x, the Core 0 interrupt was connected to both the MPU subsystem and the PRU-ICSS. Core 1 and Core 2 interrupts were unconnected.

In AM437x, the cpts_rft_clk (IEEE 1588v2 clock) adds DISP_PLL_CLK as a third source option.

McSPI
AM335x includes 2 McSPI ports, each with two chip select signals. All McSPI have 4 DMA requests to EDMA.

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.

PWM Subsystem (PWMSS)
The PWM Subsystem contains PWM, eCAP, and eQEP submodules. AM335x has 3 PWMSS instances. AM437x has 6 PWMSS instances, but eCAP3-5 and eQEP3-5 are not used.

The PWMSS synchronization of the PWM and eCAP submodules is also different between AM335x and AM437x.

PRU-ICSS - Programmable Real-time Unit Subsystem and Industrial Communications Subsystem
AM335x has one PRU-ICSS and AM437x has two PRU-ICSS. The PRU-ICSS on AM437x is backwards compatible with the subsystem on AM335x. The table below summarizes the differences between the PRU-ICSS instances on each device.

GPTimer
AM335x has 7 General Purpose Timers. One GPTimer (DMTIMER1) is specialized for accurate 1mS OS Ticks. Only 4 GPTimers (DMTIMER4 - DMTIMER7) are extended to SoC pins.

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
AM335x and AM437x both have one watchdog timer.

Additionally, the interface clock source is different between the two devices. AM335x uses CORE_CLKOUTM4/2, providing a max frequency of 100 MHz. AM437x uses CLK_M_OSC, providing a max frequency of 26 MHz.

GPIOs
AM335x has 4 banks of GPIOs, each with 32 dedicated IO pins. With the 4 GPIO modules, AM335x allows for a maximum of 128 GPIO pins. Supports a single DMA request for GPIO[0:2].

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.

ARM Interrupt Controller
AM335x and AM437x implement different interrupt controllers. Additionally, the interrupt controller on AM335x has 128 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 AM335x. Any details about these interfaces can be found in the Technical Reference Manual for AM437x.


 * Camera Video Processing Front End (VPFE)
 * Quad-SPI (QSPI)
 * Dallas1-Wire &amp; HDQ
 * Generic ADC

Pin and package
The AM335x 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 AM335x and the AM437x devices.