NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
Migrating OMAP35x from BSP OMAP35x 6.xx to BSP ARM A8 1.00
- 1 Introduction
- 2 WinCE_BSP_ARM_A8 1.00: Unified BSP Architecture for OMAP35x/AM35x
- 3 EVM_OMAP3530.bat Environment Variable to Catalog Entry Mapping
This topic is intended to document known changes between WinCE_BSP_OMAP35x 6.15.xx and WinCE_BSP_ARM_A8 1.00 for OMAP35xx. This information should help you to migrate your solution from one BSP to the other.
WinCE_BSP_ARM_A8 1.00: Unified BSP Architecture for OMAP35x/AM35x
Have a common code base for both processors and easily extend it to add new processors.
This code base for WinCE_BSP_ARM_A8 1.00 (the "unified BSP") is derived from WinCE_BSP_OMAP35x 6.xx (the OMAP3530 BSP created by BSquare for TI).
A word about the initial code base.
This project started with version 6.12 of the BSquare BSP and integrated later versions during the development. Latest version merged was 6.15.
Overview of the "new" architecture.
Code re-usability relies mostly on code separation. According to Microsoft rules of BSP coding (http://msdn.microsoft.com/en-us/library/aa908532.aspx), most of the code for a BSP based on TI processor is located under PLATFORM\COMMON\SRC\SOC\COMMON_TI_V1. This code produces libraries that are then linked with the rest of the code of the BSP that is located under PLATFORM\AM35x_BSP or PLATFORM\EVM_OMAP3530.
Original code has been split in multiple parts and moved in directories according to its purpose and its targeted hardware.
- Code used for all TPS/TWL companion chips has been moved in COMMON_TI_V1\TRITON. It mostly consists in access functions.
- Code used for TPS659XX companion chip is located under COMMON_TI_V1\TPS659XX
- Code used for TPS65023 companion chip is located under COMMON_TI_V1\TPS65023
- Code that can be re-used for multiples processors is under COMMON_TI_V1\COMMON_TI.
- Code that is only for OMAP3530 is under COMMON_TI_V1\OMAP3530
- Code that is only for AM3517 is under COMMON_TI_V1\AM3517
- Code that do not directly address TI processors but can be used with the new common code base (for example the SMSC driver for EBOOT or the TCA6416 GPIO driver) is also located under COMMON_TI_V1\COMMON_TI
The header files for the OMAP3530 BSP have been moved in different directories and sometimes split into separate files. They were often named omap35xxx_YYYYYY.h. Depending of the content of the files, they’ve been renamed omap_YYYY.h or omap3530_YYYYY.h and placed in COMMON_TI_V1\COMMON_TI\INC or COMMON_TI_V1\OMAP3530\INC.
Header files defining register mapping and other controller related definitions have been renamed in omap_YYYY_regs.h and moved in COMMON_TI_V1\COMMON_TI\INC.
Note: The low level power management code, due to its complexity is not split but duplicated in each BSP. It also makes merging with BSquare code easier.
The 6.15 common part generates libs, dlls and exe.
The common code of the unified BSP only generates libraries, never executables. The main reason is simply that this is the "standard" way of doing it.
- This is the expected way of doing it. (see other BSP or Microsoft common code)
- It allows a BSP to select different implementation of the same feature (if many exist) when the executable is produced.
- Part of the library can be skipped or overridden during the link of the executable.
- It enforces code modularity and increases reusability.
- No BSP specific #define or #ifdef can be used. Code more difficult to write because of the need to define interfaces.
- Increase link time for the BSP.
From Bsquare to unified BSP "How-to"
To migrate a driver YYY from Bsquare BSP to the unified BSP, we more or less applied the following method.
- 1) Have a global look at the driver to understand how it’s architecture.
- 2) Split, renamed move the header files in the correct folders. Omap_YYY_regs.h and Omap_YYY.h (if the driver exposes a custom API) in COMMON_TI_V1\COMMON_TI\INC, omap3530_yyy.h (if needed) in COMMON_TI_V1\OMAP3530\INC.
- 3) Move all the code into a new folder in the common part.
- 4) Now comes an iterative step
- Fix errors of "header file not found".
- Re-compile If the header split has been made properly. Compilation errors will be located where the code is not common. Move this code into a separate file located either under OMAP3530\YYYY or BSP\SRC\DRIVERS\YYY. Or modify the code to use the new APIs designed to reduce the amount of processor/BSP specific code (for example RequestDevicePads(…) Or EnableDeviceClocks(…)
- Also fix warning due to WARNLEVEL=4 and CODE_ANALYSIS=1
- 5) Define the PAD configuration for YYY in the BSP(bsp_padcfg.h and bsp_padcfg.c)
- 6) Create the sources and makefiles for the code newly moved to BSP\SRC\DRIVERS\YYY and OMAP3530\YYYY.
- 7) Make OMAP3530\YYYY and BSP\SRC\DRIVERS\YYY compile and link.
- 8) Finally, create the registry file, the entry in platform.bib and the catalog item.
At this point the driver is ready for testing. Please note that this method do not induce functional change to the driver. Thus it’ll provide the same features as the original driver.
EVM_OMAP3530.bat Environment Variable to Catalog Entry Mapping
WinCE_BSP_OMAP35x 6.15.xx primarily uses EVM_OMAP3530.bat as the mechanism for selecting components for a build. In WinCE_BSP_ARM_A8 1.xx, we have changed this to use the more traditional Catalog Items method via Platform Builder.
The mapping is provided in the following table.
|Environment Variable||Availability in Unified BSP||Usability|
|BSP_NAND_MT29F2G16||Removed - NAND Autodetection instead||N/A|
|BSP_NAND_MT29F4G16||Removed - NAND Autodetection instead||N/A|
|BSP_OPM_SELECT||This variable is replaced by the following two varibles:
OMAP35xx Processor: BSP_OPM_SELECT_35XX
Set by default in EVM_OMAP3530.bat. Can be overriden.
|BSP_SDRAM_BANK1_ENABLE||Available||Set by default in EVM_OMAP3530.bat. Can be overriden.|
|BSP_NOPMEXT||Replaced by BSP_PMEXT||Exposed as a catalog item|
|BSP_NODVFS||Replaced by BSP_DVFS||Exposed as a catalog item|
|BSP_NOCPUPOLICY||Replaced by BSP_CPUPOLICY||Exposed as a catalog item|
|BSP_NOINTRLAT||Replaced by BSP_INTRLAT||Exposed as a catalog item|
|BSP_NOSYSSTATEPOLICY||Replaced by BSP_SYSSTATEPOLICY||Exposed as a catalog item|
|BSP_NOSMARTREFLEXPOLICY||Replaced by BSP_SMARTREFLEXPOLICY||Exposed as a catalog item|
|BSP_EVM2||Available||Set by default in EVM_OMAP3530.bat. Can be overriden.|
|BSP_EVM2_ENHANCED_IO||Removed - Only EVM2 configuration is supported||N/A|
|BSP_EVM2_RTS_CTS||Removed - Only EVM2 configuration is supported||N/A|
|BSP_EVM2_HSUSB_HOST||Removed - Only EVM2 configuration is supported||N/A|
|BSP_EVM2_VIDEO_CAPTURE||Removed - Only EVM2 configuration is supported||N/A|
|MMCHS1_LOW_VOLTAGE||Available||To be set manually|
|BSP_BATTERY_BQ27000||Available||Exposed as a catalog item|
|BSP_SMSC911X||Available||Exposed as a catalog item|
|BSP_NOMADC||Replaced by BSP_TPS659XX_MADC||Exposed as a catalog item|
|BSP_NOHDQ||Replaced by BSP_OMAP_HDQ||Exposed as a catalog item|
|BSP_NOCAMERA||Replaced by BSP_OMAP_CAMERA||Exposed as a catalog item|
|BSP_NOD3DM||Removed - Was no longer used in BSP 6.15||N/A|
|BSP_NOPCIBUS||Removed - Was no longer used in BSP 6.15||N/A|
|BSP_NOUSBSER||Removed - Was no longer used in BSP 6.15||N/A|
|BSP_NOIRDA||Removed - Was not actually BSP specific||Should be project specific|
|BSP_NOHEADSET||Replaced by BSP_HEADSET||Automatically set when selecting Audio driver from the catalog|
|BSP_WATCHDOG_ENABLE||Replaced by BSP_OMAP_WATCHDOG||Exposed as a catalog item|
|BSP_TVOUT_ENABLE||Available||To be set manually|
|BSP_TVOUT_COMPOSITE||Available||To be set manually|
|BSP_TVOUT_PAL||Available||To be set manually|
|BSP_NOVRFB||Replaced by BSP_OMAP_VRFB||Exposed as a catalog item|
|BSP_HSUSB1_SERIAL||Removed - Only EVM2 configuration is supported||N/A|
|BSP_HSUSB1_12PIN||Removed - Only EVM2 configuration is supported||N/A|
|BSP_NOUSBTLL1||Removed - Only EVM2 configuration is supported||N/A|
|BSP_HSUSB2_SERIAL||Removed - Only EVM2 configuration is supported||N/A|
|BSP_HSUSB2_12PIN||Removed - Only EVM2 configuration is supported||N/A|
|BSP_NOUSBTLL2||Removed - Only EVM2 configuration is supported||N/A|
|BSP_NOUSBOHCI||Removed - Missing OHCI driver due to lack of hardware||N/A|
|BSP_NOUSBEHCI||Replaced by BSP_OMAP_USB_HOST||Exposed as a catalog item|
|BSP_NOCOM||Removed - UARTs must be explicitly selected||N/A|
|BSP_NOCOM1||Replaced by BSP_OMAP_UART1||Exposed as a catalog item|
|BSP_NOCOM2||Replaced by BSP_OMAP_UART2||Exposed as a catalog item|
|BSP_NOCOM3||Replaced by BSP_OMAP_UART3||Exposed as a catalog item|
|BSP_NOCOM4||Replaced by BSP_OMAP_UART4||Available for DM37xx only|
|BSP_NOSPI2||Replaced by BSP_OMAP_MCSPI2||Exposed as a catalog item|
|BSP_NOSPI3||Replaced by BSP_OMAP_MCSPI3||Exposed as a catalog item|
|BSP_NOSPI4||Replaced by BSP_OMAP_MCSPI4||Exposed as a catalog item|
|BSP_NOSDHC1||Replaced by BSP_SDHC||Exposed as a catalog item|
|BSP_SDHIGHSPEEDSUPPORT_SDHC1||Available||To be set manually|
|BSP_NOSDHC2||Not available on 3530 EVM2||N/A|
|BSP_SDHIGHSPEEDSUPPORT_SDHC2||Available||To be set manually|
|BSP_NOSPI1||Replaced by BSP_OMAP_MCSPI1||Exposed as a catalog item|
|BSP_NONAND||Replaced by BSP_OMAP_NAND||Exposed as a catalog item|
|BSP_NONLED||Replaced by BSP_OMAP_NLED||Exposed as a catalog item|
|BSP_NODMA||Replaced by BSP_OMAP_SDMA||Exposed as a catalog item|
|BSP_NOGPIO||Replaced by BSP_OMAP_GPIO||Exposed as a catalog item|
|BSP_NOTLED||Replaced by BSP_TPS659XX_LED||Exposed as a catalog item|
|BSP_NOSPI||Removed - SPI channels must be explicitly selected||N/A|
|BSP_NOTWL||Replaced by BSP_TPS659XX||Exposed as a catalog item|
|BSP_NORTC||Replaced by BSP_TPS659XX_RTC||Exposed as a catalog item|
|BSP_NOMCBSP||Removed -McBSP channels must be explicitly selected||N/A|
|BSP_NOBACKLIGHT||Replaced by BSP_BACKLIGHT||Exposed as a catalog item|
|BSP_NOTOUCH||Replaced by BSP_TSC2046_TOUCH||Exposed as a catalog item|
|BSP_NOKEYBD||Replaced by BSP_TPS659XX_KEYPAD||Exposed as a catalog item|
|BSP_NOAUDIO||Replaced by BSP_TPS659XX_WAVE||Exposed as a catalog item|
|BSP_NOSDHC||Removed - SDHC must be explicitly selected||N/A|
|BSP_NODISPLAY||Replaced by BSP_OMAP_DSS||Exposed as a catalog item|
|BSP_NOPWRKEY||Replaced by BSP_TPS659XX_PWRKEY||Exposed as a catalog item|
|BSP_NOBATTERY||Removed - Battery must be explicitly selected||Exposed as a catalog item|
|BSP_NOUSB||Removed - USB must be explicitly selected||N/A|
|BSP_USBOTG||Replaced by BSP_OMAP_MUSBOTG||Exposed as a catalog item|
|BSP_NOUSBHSOTG||Replaced by BSP_OMAP_MUSBOTG||Exposed as a catalog item|
|BSP_NOUSBHSFN||Replaced by BSP_OMAP_MUSBFN||Exposed as a catalog item|
|BSP_NOUSBHSHCD||Replaced by BSP_OMAP_MUSBHCD||Exposed as a catalog item|
|BSP_USBHSOTG_ISP1504||Replaced by BSP_OMAP_MUSBOTG_ISP1504||Exposed as a catalog item|
|BSP_USBHSOTG_TPS659XX||Replaced by BSP_OMAP_MUSBOTG_TPS659XX||Exposed as a catalog item|
|BSP_NO_BSPINFO||Available||To be set manually|
|BSP_FLASH_PLAYER||Available||To be set manually|
|BSP_TI_DVSDK||Available||To be set manually|
|BSP_DSPLINK||Available||Automatically selected when selecting a codec in the catalog|
|BSP_CMEM||Available||Automatically selected when selecting a codec in the catalog|
|BSP_DSHOWFILTER||Available||Automatically selected when selecting a codec in the catalog|
|BSP_SDMAPROXY||Available||Automatically selected when selecting a codec in the catalog|
|BSP_H264_DECODE_FILTER||Available||Exposed as a catalog item|
|BSP_MPEG4_DECODE_FILTER||Available||Exposed as a catalog item|
|BSP_MPEG2_DECODE_FILTER||Available||Exposed as a catalog item|
|BSP_AAC_DECODE_FILTER||Available||Exposed as a catalog item|
|BSP_MP3_DECODE_FILTER||Available||Exposed as a catalog item|
|BSP_3GPP_DEMUX||Available||Exposed as a catalog item|
|BSP_AAC_PARSER||Available||Exposed as a catalog item|
|BSP_DMAI_SAMPLE_APPLICATIONS||Available||Exposed as a catalog item|
|BSP_NOSHAREETH||Removed - Was no longer used in BSP 6.15||N/A|
|BSP_SIMPLE_BENCHMARK||Available||Exposed as a catalog item|
|BSP_SHELL_EXTENSIONS_DO_CMD||Available||Exposed as a catalog item|
|BSP_EXPANSION_MAGNUM||Removed - Missing support due to lack of hardware||N/A|
|IMGNODFLTDDK||Available||Set by default in EVM_OMAP3530.bat. Can be overriden.|