OMAP35x To AM37x Software Migration Guide
- 1 AM37x SDK
- 2 AM37x Linux PSP
- 2.1 Supported Boot Modes
- 2.2 X-Loader/U-boot
- 2.3 Ethernet Driver
- 2.4 Audio Driver
- 2.5 Storage Subsystem - NAND, MMC/SD
- 2.6 Display Sub-System
- 2.7 USB Drivers
- 2.8 SGX Subsystem
- 3 Hardware Migration Guide
AM37x SDK contains the following packages as seperate installers.
- Linux Platform Support Package (Linux PSP) - Use the Linux PSP v3.xx release for working with AM37x EVM boards.
- Graphics Software Development Kit (Graphics SDK) - Use Graphics SDK v3.01.xx for working with AM37x EVM boards.
- Graphics Demonstration Software - For further information, refer OpenGLES_Texture_Streaming_-_bc-cat_User_Guide
AM37x Linux PSP
This section describes software interface level changes for drivers supported as part of the BSP and should serve as an aid for migrating existing applications from OMAP35x to the AM/DM37x SoC.
Supported Boot Modes
OMAP35x and AM/DM 37x support the same set of boot modes. Also they share the same base-board - thereby the list of supported boot modes is exactly the same. The list of software supported boot modes include boot from Nand,OneNAND and MMC (UART mode verified separately)
The Boot-up procedure is two-stage involving a preliminary bootloader(x-loader) running out of SRAM and secondary bootloader(u-boot) that runs out of DDR.
The same x-loader/u-boot binary should be able to run on both OMAP35x and AM/DM37x platforms. Specific differences between the two platforms are handled through runtime detection of CPU type.
Notable change includes scaling up SGX clock frequency from 96Mhz to 200Mhz(to enable TV-out clock dividers, SGX clock source now derived from Core Clk DPLL)
The ethernet controller is off-chip and both OMAP35x and AM/DM37x re-use the same SMSC 9220 chip. The driver and supported set of features remain the same.
Since the driver relies on CPU for handling IO (no DMA support), overall through put will see an improvement as AM/DM37x platform is clocked at a higher operating frequency.
The basic components that make-up the audio subsystem like McBSP,I2C,sDMA are unchanged from OMAP35x. The driver and supported set of features remain the same.
Storage Subsystem - NAND, MMC/SD
OMAP35x and AM/DM37x share the same GPMC(interfacing NAND, NOR)and MMC/SD Host controller implementation. The SW drivers are hence re-used and support the same set of features.
The Display controller module is similar in both OMAP35x and AM/DM37x supporting various features like, 3 plane (gfx, video1 and video2), 2 overlay manager (LCD/DVI out and TV out), VRFB rotation engine, alpha blending, and color keying.
The differences are summarized below:
- On AM/DM37x, VDAC (for TV out) has been enhanced to newer version as compared to OMAP35x. This should result in better video quality(no SW change for this)
- AM/DM37x supports additional new feature, pre-multiplied alpha blending which is not currently supported in software.
From application interface (Fbdev and V4L2) point of view there is no change between OMAP35x and AM/DM37x.
V4L2 Capture Driver
On Capture side, both OMAP35x and AM/DM37x share the same video capture sub-system with features like previewer, resizer and histogram. The SW implementation for both these platforms supports BT656 interface through TVP5146 decoder.
Stand-Alone Resizer Driver
The capture sub-subsytem includes resizer functionality that can be exported to the user for memory-to-memory resize operation(one-shot mode). This is supported through a char device interface on Linux (WIP for Mem-to-Mem framework under V4L2)
From application interface point of view there is no change between OMAP35x and AM/DM37x.
MUSB OTG Driver
Mentor OTG core version for AM3/DM7x has been upgraded as compared to OMAP35x - some of the hardware issues applicable to OMAP35x have been addressed with this upgradation
The following sections describe the impact of these changes as applicable to specific uses cases
Mass Storage Class(Host)
On AM/DM37x platform, MSC class Rx throughput would improve due to support for concurrent DMA and Rx DMA Mode-1 fixes.
Mentor DMA requires the buffers to be aligned on a four byte boundary on AM/DM37x while there is no such limitation for OMAP35x. This limitation would affect CDC/RNDIS class of application on AM/DM37x as networking stack allocated buffers typically end up being unaligned on word boundary(ethernet header being 14 Bytes long and the stack aligns IP headers on 4-byte boundary). USB driver mitigates this issue by using system DMA for all unaligned buffers. Using system DMA can impact throughput and cpu loading as compared to using Mentor DMA.
On AM/DM37x ability to use Mentor DMA for Rx transfers should result in higher FPS rate for USB video streaming. As compared to OMAP35x, the USB driver should be able to sustain simultaneous audio recording along with video streaming(VGA resolution).
Since applications interface through class/gadget drivers and these are unchanged between OMAP35x and AM35x, there should be no interface level changes from application standpoint.
There is no change in USBHOST interface.
The Graphics subsystem on AM/DM37x is clocked at a much higher frequency of 200Mhz as compared to OMAP35x.
Hardware Migration Guide
Refer to the OMAP35x To AM37x Hardware Migration Guide