1

Closed

Sysgen fails with UART define errors

description

When doing a sysgen of the latest WEC7 source VS throws the following errors:

BUILD: [02:0000000985:ERRORE] Error(s) in directory "C:\WINCE700\platform\AM33X_BBB_BSP\SRC\CSP\AM33X\SERIAL\UART_AM33X\". {log="C:\WINCE700\build.log(43674)"}
BUILD: [02:0000000986:ERRORE] c:\wince700\platform\am33x_bbb_bsp\src\csp\am33x\serial\pdd_common.c(2030) : error C2065: 'DMA_CICR_BLOCK_IE' : undeclared identifier {log="C:\WINCE700\build.log(43675)"}
BUILD: [02:0000000987:ERRORE] c:\wince700\platform\am33x_bbb_bsp\src\csp\am33x\serial\pdd_common.c(2030) : error C2065: 'DMA_CICR_FRAME_IE' : undeclared identifier {log="C:\WINCE700\build.log(43676)"}
BUILD: [02:0000000989:ERRORE] c:\wince700\platform\am33x_bbb_bsp\src\csp\am33x\serial\pdd_common.c(2042) : error C2065: 'DMA_CICR_BLOCK_IE' : undeclared identifier {log="C:\WINCE700\build.log(43678)"}
BUILD: [02:0000000990:ERRORE] c:\wince700\platform\am33x_bbb_bsp\src\csp\am33x\serial\pdd_common.c(2042) : error C2065: 'DMA_CICR_FRAME_IE' : undeclared identifier {log="C:\WINCE700\build.log(43679)"}
BUILD: [02:0000000991:ERRORE] c:\wince700\platform\am33x_bbb_bsp\src\csp\am33x\serial\pdd_common.c(2049) : error C2065: 'DMA_CICR_BLOCK_IE' : undeclared identifier {log="C:\WINCE700\build.log(43680)"}
BUILD: [02:0000000993:ERRORE] c:\wince700\platform\am33x_bbb_bsp\src\csp\am33x\serial\pdd_common.c(3519) : error C2065: 'DMA_CSR_BLOCK' : undeclared identifier {log="C:\WINCE700\build.log(43682)"}
BUILD: [02:0000000996:ERRORE] NMAKE : fatal error U1077: 'C:\WINCE700\sdk\bin\i386\ARM\cl.EXE' : return code '0x2' {log="C:\WINCE700\build.log(43685)"}
BUILD: [02:0000000998:ERRORE] clean TargetCompilePass -nologo BUILDMSG=Stop. BUILDROOT=C:\WINCE700\platform\AM33X_BBB_BSP CLEANBUILD=1 NOLINK=1 NOPASS0=1 failed - rc = 2. {log="C:\WINCE700\build.log(43687)"}
BLDDEMO: ERROR: There were errors building CEBASE. {log="C:\WINCE700\build.log(43717)"}

file attachments

Closed Aug 19, 2014 at 9:54 AM by dvescovi
removed nonfunctional SDMA code from UART driver

comments

dvescovi wrote Aug 15, 2014 at 10:03 AM

use the new revised edma_utility.h
The AM335x uses EDMA but the UART driver was written for the original AM37XX part which only has the SDMA controller inside. TI never updated these correctly.

It seems only the MMC, UART and SPI drivers still have references to the old SDMA controller. I am refactoring as there are several bugs even in the EDMA channel definitions.

wrote Aug 18, 2014 at 4:08 AM

pdimond wrote Aug 18, 2014 at 4:08 AM

Having got past the issue you resolved above, and changing the build VM to a single core per the other issue you helped me with, I'm back to some more UART build issues. It looks like more missing header information as they are all DMA related symbols (as below and attached).

Thanks again.

BUILD: [01:0000011075:ERRORE] Error(s) in directory "C:\WINCE700\platform\AM33X_BBB_BSP\SRC\DRIVERS\UART\". {log="C:\WINCE700\build.log(53850)"}
BUILD: [01:0000011076:ERRORE] am33x_ti_uart.lib(pdd.obj) : error LNK2019: unresolved external symbol DmaGetLastWritePos referenced in function UpdateDMARxPointer {log="C:\WINCE700\build.log(53851)"}
BUILD: [01:0000011077:ERRORE] am33x_ti_uart.lib(pdd.obj) : error LNK2019: unresolved external symbol DmaClearStatus referenced in function HWTxIntr {log="C:\WINCE700\build.log(53852)"}
BUILD: [01:0000011078:ERRORE] am33x_ti_uart.lib(pdd.obj) : error LNK2019: unresolved external symbol DmaGetStatus referenced in function HWTxIntr {log="C:\WINCE700\build.log(53853)"}
BUILD: [01:0000011079:ERRORE] C:\WINCE700\OSDesigns\AM33X_BBB\AM33X_BBB\Wince700\AM33X_BBB_BSP_ARMV7_Retail\cesysgen\platform\AM33X_BBB_BSP\target\ARMV7\retail\am33x_uart.dll : fatal error LNK1120: 3 unresolved externals {log="C:\WINCE700\build.log(53854)"}
BUILD: [01:0000011080:ERRORE] NMAKE : fatal error U1077: 'C:\WINCE700\sdk\bin\i386\ARM\link.EXE' : return code '0x460' {log="C:\WINCE700\build.log(53855)"}
BUILD: [01:0000011082:ERRORE] TargetExeFiles -nologo BUILDMSG=Stop. BUILDROOT=C:\WINCE700\platform\AM33X_BBB_BSP CLEANBUILD=1 LINKONLY=1 NOPASS0=1MAKEDLL=1 failed - rc = 2 {log="C:\WINCE700\build.log(53857)"}
BLDDEMO: ERROR: There were errors building CEBASE. {log="C:\WINCE700\build.log(53889)"}

dvescovi wrote Aug 18, 2014 at 11:52 AM

I have seen this issue and I am working on it.
It has to do with the fact TI used the UART (and SPI) driver from the AM37XX BSP and the DMA on the AM37XX is SDMA not EDMA like used on AM335x.
I am working on cleaning up this code. You can remove all the DMA references as the DMA is non functional for these drivers anyway. DMA support on these drivers is normally optional via registry settings but the code also needs to be removed so it compiles without errors.

dvescovi wrote Aug 18, 2014 at 11:58 AM

a brute force method to get it to compile is to just comment out all references to the DmaGetStatus, UpdateDMARxPointer, and DmaClearStatus in the \CSP\AM33X\Serial\pdd_common.c file as the functions containing these references are never called because DMA is disabled.

pdimond wrote Aug 18, 2014 at 12:40 PM

Thanks David. I'll give that a whirl tomorrow. Fighting some of my own client fires right now! :)

wrote Aug 19, 2014 at 9:54 AM