This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DDR2 caching and SMMQT on C6472

I would like to summarize my sample app before I get to explaining the issue I am facing:

I have an algorithm handle, with memory allocated in DDR2, that I am passing over various cores on the C6472 for some distributed processing. I am using SMMQT for passing the handle (pointer only) from core to core. Since each core modifies the handle memory I do BCACHE_wbInv(<handle pointer>) before MSGQ_put() on that core, to maintain cache coherence.

I am using mqtciv_1_20. When I used the pre-built SMMQT drivers I could work fine (with some minor workarounds). Now that I want to place the SMMQT shared buffers in DDR2, I have recompiled the drivers with _CACHELINE_SIZE defined to 128 (L2 cacheline size; pre-bulilt drivers set it to 64). But with the newly built drivers the handle memory seems corrupted on remote cores.

I am unable to understand how SMMQT is affecting cache operations on completely unrelated memory (in this case the alg handle). I can see in the release notes of mqtciv_1_20 "SDSCM00026206: Cache Bug in SMMQT Driver" resolved.

Can anybody throw any light on this?

  • Hi Viswanath,

    A couple sanity checks.

    1. Just to make sure...you are doing a BCACHE_wbInv on the handle you put in the message before you send it. You are not doing any cache calls with the actual msg (MSGQ does the msg cache coherency for you).

    2. On the receiving side, are you doing a BCACHE_inv on the handle before you access the memory. If not, you could be reading garbage data. Again the cache coherency of the actual msg is managed by MSGQ, but you are responsible for the cache coherency if there is a pointer in the message.

    What platform is this on?

    Also, what were the minor work-arounds? Were they bugs or just your application is different?

    Todd

  • Hello Todd,

    Thanks for your interest.

    I am doing all necessary cache coherence operations on the alg handle. I understand that SMMQT will not take care of cache coherence of any pointer in the message. Also, the coherence of alg handle has been verified as I am able to work with the pre-built SMMQT libs. The exact same app, with rebuilt SMMQT libs, is what is giving me the issues I have mentioned in the post. The purpose of rebuilding the SMMQT is, as I said, to set the cacheline size to 128 and be able to place the SMMQT message bufs in DDR2. But to begin with I am continuing with the message bufs in SL2RAM, only that I am using newly built SMMQT libs.

    About the workaround, it was necessary to perform explicit cache coherence operations on the message buf in the app, before MSGQ_put and after MSGQ_get, for reliable performance. Without that some particular combinations were running fine while some were not. This has been verified with both, the pre-built SMMQT libs and the newly built ones. In the latter case I disabled caching of the alg handle in DDR2 to avoid coherency issues.

    BTW I am using bios_5_41_03_17.

     

  • Which version of the SMMQT are you using?

    Can you post how you are defining you pools? You are using MSGQ_alloc to get the messages...correct?

    How are you getting/managing the alg memory?

    What is your message flow like? For example are you sending a message from one core to another and then wait for a reply or do you have lots of messages flowing between all the cores.

    Todd

  • Hello Todd,

    I am using SMMQT from mqtciv_1_20 and bios_5_41_03_17.

    I am defining pools just as recommended in the example app. The .sharedmem section is directed to SL2RAM. Yes I am using MSGQ_alloc to get messages.

    Alg memory is allocated in core 0 from DDR2 and the pointer is passed to remote core using SMMQT. Both core 0 and remote core read / modify the handle memory, so BCACHE_wbInv(<alg_handle>) is done before MSGQ_put on the core that is currently holding the handle.

    The app protocol is post and wait for reply, not asynchronous send - receive.

    I suspect either some issue in the SMMQT source code or some specific build procedure that was used to obtain the pre-built libs has not been documented. I am specifically looking for some clue from these points of view. The regular things about app issues and SMMQT considerations like messages and particular objects being on cacheline boundary have been taken care of.

    To explain the problem again, caching of DDR2 goes for a toss when I use the SMMQT built from source (whether with cacheline size 64 or 128). Note that the SMMQT and message bufs are still in SL2RAM, only the alg handle is in DDR2. I am able to work with i) prebuilt SMMQT and caching enabled and ii) rebuilt SMMQT and caching disabled.

  • Viswanath,

    Below is the build output for the pre-built SMMQT module (both debug and release).

    You probably should upgrade to mqtciv_1_21. There is a bug fix related to SMPOOL initialization.

    Are you running the same image on all cores? If yes, are you making sure that the other cores (non core 0 cores) are not some how getting the alg memory into cache during initialization? If the alg memory is getting into cache on core 1 somehow, the cache controller, on it own, without you asking, would probably evict it (and do a writeback if dirty) at some point. If this occurs, it could wipe out the contents of the messages that was filled in by core 0. The bug in SMPOOL was related to this.

    Todd

    Output:
    #
    # generating interfaces for package ti.bios.drivers.smmqt.tci6486 (because packa
    ge/package.xdc.inc is older than package.xdc) ...
    /db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10
    /xs -Dxdc.path="^/../imports;^/../src/ti/bios/drivers/common;/db/rtree/install/t
    rees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10/packages;../../../
    ../.." -Dxdc.root=/db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/L
    inux/xdctools_3_10 -Dxdc.hostOS=Linux -Dconfig.importPath=".;../../../../../../i
    mports;../../../../../../src/ti/bios/drivers/common;/db/rtree/install/trees/prod
    ucts/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10/packages;../../../../..;/db
    /rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10;/d
    b/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10/e
    tc ;../../../../../ti/bios/drivers/shared;../../../../../ti/bios/drivers/aamcrit
    " -Dxdc.bld.targets="" -DTOOLS=/db/toolsrc/library/tools  -f xdc/services/intern
    /cmd/build.xs -m package/package.xdc.dep -i package/package.xdc.inc package.xdc
    rm -f package/lib/debug/tci6486/ti/bios/drivers/smmqt/smmqt_locate.o64P
    #
    # cl64P ../../../../../ti/bios/drivers/smmqt/smmqt_locate.c ...
    /db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/bin/cl6x -c  -qq -pdsw225
    -mv64p -eo.o64P -ea.s64P  -D_DEBUG_=1 -Dxdc_target_name__=C64P -Dxdc_target_type
    s__=ti/targets/std.h -Dxdc_bld__profile_debug -Dxdc_bld__vers_1_0_6_0_14 -g  -ml
    0 -mi10 -D_CACHELINE_SIZE=64 -pds179 -pds48 -pds452 -dCHIP_tci6486  -i/db/vtree/
    toddm/drivers-h33x/imports/ti/bios/include -i/db/vtree/toddm/drivers-h33x/import
    s/ti/csl/include/c6000 -I. -I../../../../../../imports -I../../../../../../src/t
    i/bios/drivers/common -I/db/rtree/install/trees/products/xdcprod/xdcprod-j42/pro
    duct/Linux/xdctools_3_10/packages -I../../../../.. -I../../../../../ti/bios/driv
    ers/shared -I../../../../../ti/bios/drivers/aamcrit -I/db/toolsrc/library/tools/
    vendors/ti/c6x/6.0.14/Linux/include -fs=./package/lib/debug/tci6486/ti/bios/driv
    ers/smmqt -fr=./package/lib/debug/tci6486/ti/bios/drivers/smmqt -fc ../../../../
    ../ti/bios/drivers/smmqt/smmqt_locate.c
    /db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10
    /bin/mkdep -a package/lib/debug/tci6486/ti/bios/drivers/smmqt/smmqt_locate.o64P.
    dep -p package/lib/debug/tci6486/ti/bios/drivers/smmqt -s o64P ../../../../../ti
    /bios/drivers/smmqt/smmqt_locate.c -C   -qq -pdsw225 -mv64p -eo.o64P -ea.s64P  -
    D_DEBUG_=1 -Dxdc_target_name__=C64P -Dxdc_target_types__=ti/targets/std.h -Dxdc_
    bld__profile_debug -Dxdc_bld__vers_1_0_6_0_14 -g  -ml0 -mi10 -D_CACHELINE_SIZE=6
    4 -pds179 -pds48 -pds452 -dCHIP_tci6486  -i/db/vtree/toddm/drivers-h33x/imports/
    ti/bios/include -i/db/vtree/toddm/drivers-h33x/imports/ti/csl/include/c6000 -I.
    -I../../../../../../imports -I../../../../../../src/ti/bios/drivers/common -I/db
    /rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10/pa
    ckages -I../../../../.. -I../../../../../ti/bios/drivers/shared -I../../../../..
    /ti/bios/drivers/aamcrit -I/db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux
    /include -fs=./package/lib/debug/tci6486/ti/bios/drivers/smmqt -fr=./package/lib
    /debug/tci6486/ti/bios/drivers/smmqt
    rm -f package/lib/debug/tci6486/ti/bios/drivers/smmqt/smmqt_vt.o64P
    #
    # cl64P ../../../../../ti/bios/drivers/smmqt/smmqt_vt.c ...
    /db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/bin/cl6x -c  -qq -pdsw225
    -mv64p -eo.o64P -ea.s64P  -D_DEBUG_=1 -Dxdc_target_name__=C64P -Dxdc_target_type
    s__=ti/targets/std.h -Dxdc_bld__profile_debug -Dxdc_bld__vers_1_0_6_0_14 -g  -ml
    0 -mi10 -D_CACHELINE_SIZE=64 -pds179 -pds48 -pds452 -dCHIP_tci6486  -i/db/vtree/
    toddm/drivers-h33x/imports/ti/bios/include -i/db/vtree/toddm/drivers-h33x/import
    s/ti/csl/include/c6000 -I. -I../../../../../../imports -I../../../../../../src/t
    i/bios/drivers/common -I/db/rtree/install/trees/products/xdcprod/xdcprod-j42/pro
    duct/Linux/xdctools_3_10/packages -I../../../../.. -I../../../../../ti/bios/driv
    ers/shared -I../../../../../ti/bios/drivers/aamcrit -I/db/toolsrc/library/tools/
    vendors/ti/c6x/6.0.14/Linux/include -fs=./package/lib/debug/tci6486/ti/bios/driv
    ers/smmqt -fr=./package/lib/debug/tci6486/ti/bios/drivers/smmqt -fc ../../../../
    ../ti/bios/drivers/smmqt/smmqt_vt.c
    /db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10
    /bin/mkdep -a package/lib/debug/tci6486/ti/bios/drivers/smmqt/smmqt_vt.o64P.dep
    -p package/lib/debug/tci6486/ti/bios/drivers/smmqt -s o64P ../../../../../ti/bio
    s/drivers/smmqt/smmqt_vt.c -C   -qq -pdsw225 -mv64p -eo.o64P -ea.s64P  -D_DEBUG_
    =1 -Dxdc_target_name__=C64P -Dxdc_target_types__=ti/targets/std.h -Dxdc_bld__pro
    file_debug -Dxdc_bld__vers_1_0_6_0_14 -g  -ml0 -mi10 -D_CACHELINE_SIZE=64 -pds17
    9 -pds48 -pds452 -dCHIP_tci6486  -i/db/vtree/toddm/drivers-h33x/imports/ti/bios/
    include -i/db/vtree/toddm/drivers-h33x/imports/ti/csl/include/c6000 -I. -I../../
    ../../../../imports -I../../../../../../src/ti/bios/drivers/common -I/db/rtree/i
    nstall/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10/packages -
    I../../../../.. -I../../../../../ti/bios/drivers/shared -I../../../../../ti/bios
    /drivers/aamcrit -I/db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/include
     -fs=./package/lib/debug/tci6486/ti/bios/drivers/smmqt -fr=./package/lib/debug/t
    ci6486/ti/bios/drivers/smmqt
    rm -f package/lib/debug/tci6486/ti/bios/drivers/smmqt/smmqt.o64P
    #
    # cl64P ../../../../../ti/bios/drivers/smmqt/smmqt.c ...
    /db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/bin/cl6x -c  -qq -pdsw225
    -mv64p -eo.o64P -ea.s64P  -D_DEBUG_=1 -Dxdc_target_name__=C64P -Dxdc_target_type
    s__=ti/targets/std.h -Dxdc_bld__profile_debug -Dxdc_bld__vers_1_0_6_0_14 -g  -ml
    0 -mi10 -D_CACHELINE_SIZE=64 -pds179 -pds48 -pds452 -dCHIP_tci6486  -i/db/vtree/
    toddm/drivers-h33x/imports/ti/bios/include -i/db/vtree/toddm/drivers-h33x/import
    s/ti/csl/include/c6000 -I. -I../../../../../../imports -I../../../../../../src/t
    i/bios/drivers/common -I/db/rtree/install/trees/products/xdcprod/xdcprod-j42/pro
    duct/Linux/xdctools_3_10/packages -I../../../../.. -I../../../../../ti/bios/driv
    ers/shared -I../../../../../ti/bios/drivers/aamcrit -I/db/toolsrc/library/tools/
    vendors/ti/c6x/6.0.14/Linux/include -fs=./package/lib/debug/tci6486/ti/bios/driv
    ers/smmqt -fr=./package/lib/debug/tci6486/ti/bios/drivers/smmqt -fc ../../../../
    ../ti/bios/drivers/smmqt/smmqt.c
    /db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10
    /bin/mkdep -a package/lib/debug/tci6486/ti/bios/drivers/smmqt/smmqt.o64P.dep -p
    package/lib/debug/tci6486/ti/bios/drivers/smmqt -s o64P ../../../../../ti/bios/d
    rivers/smmqt/smmqt.c -C   -qq -pdsw225 -mv64p -eo.o64P -ea.s64P  -D_DEBUG_=1 -Dx
    dc_target_name__=C64P -Dxdc_target_types__=ti/targets/std.h -Dxdc_bld__profile_d
    ebug -Dxdc_bld__vers_1_0_6_0_14 -g  -ml0 -mi10 -D_CACHELINE_SIZE=64 -pds179 -pds
    48 -pds452 -dCHIP_tci6486  -i/db/vtree/toddm/drivers-h33x/imports/ti/bios/includ
    e -i/db/vtree/toddm/drivers-h33x/imports/ti/csl/include/c6000 -I. -I../../../../
    ../../imports -I../../../../../../src/ti/bios/drivers/common -I/db/rtree/install
    /trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10/packages -I../..
    /../../.. -I../../../../../ti/bios/drivers/shared -I../../../../../ti/bios/drive
    rs/aamcrit -I/db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/include -fs=.
    /package/lib/debug/tci6486/ti/bios/drivers/smmqt -fr=./package/lib/debug/tci6486
    /ti/bios/drivers/smmqt
    rm -f package/lib/debug/tci6486/package/package_ti.bios.drivers.smmqt.tci6486.o6
    4P
    #
    # cl64P package/package_ti.bios.drivers.smmqt.tci6486.c ...
    /db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/bin/cl6x -c  -qq -pdsw225
    -mv64p -eo.o64P -ea.s64P  -D_DEBUG_=1 -Dxdc_target_name__=C64P -Dxdc_target_type
    s__=ti/targets/std.h -Dxdc_bld__profile_debug -Dxdc_bld__vers_1_0_6_0_14 -g  -ml
    0 -mi10 -D_CACHELINE_SIZE=64 -pds179 -pds48 -pds452 -dCHIP_tci6486  -i/db/vtree/
    toddm/drivers-h33x/imports/ti/bios/include -i/db/vtree/toddm/drivers-h33x/import
    s/ti/csl/include/c6000 -I. -I../../../../../../imports -I../../../../../../src/t
    i/bios/drivers/common -I/db/rtree/install/trees/products/xdcprod/xdcprod-j42/pro
    duct/Linux/xdctools_3_10/packages -I../../../../.. -I../../../../../ti/bios/driv
    ers/shared -I../../../../../ti/bios/drivers/aamcrit -I/db/toolsrc/library/tools/
    vendors/ti/c6x/6.0.14/Linux/include -fs=./package/lib/debug/tci6486/package -fr=
    ./package/lib/debug/tci6486/package -fc package/package_ti.bios.drivers.smmqt.tc
    i6486.c
    /db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10
    /bin/mkdep -a package/lib/debug/tci6486/package/package_ti.bios.drivers.smmqt.tc
    i6486.o64P.dep -p package/lib/debug/tci6486/package -s o64P package/package_ti.b
    ios.drivers.smmqt.tci6486.c -C   -qq -pdsw225 -mv64p -eo.o64P -ea.s64P  -D_DEBUG
    _=1 -Dxdc_target_name__=C64P -Dxdc_target_types__=ti/targets/std.h -Dxdc_bld__pr
    ofile_debug -Dxdc_bld__vers_1_0_6_0_14 -g  -ml0 -mi10 -D_CACHELINE_SIZE=64 -pds1
    79 -pds48 -pds452 -dCHIP_tci6486  -i/db/vtree/toddm/drivers-h33x/imports/ti/bios
    /include -i/db/vtree/toddm/drivers-h33x/imports/ti/csl/include/c6000 -I. -I../..
    /../../../../imports -I../../../../../../src/ti/bios/drivers/common -I/db/rtree/
    install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10/packages
    -I../../../../.. -I../../../../../ti/bios/drivers/shared -I../../../../../ti/bio
    s/drivers/aamcrit -I/db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/includ
    e -fs=./package/lib/debug/tci6486/package -fr=./package/lib/debug/tci6486/packag
    e
    rm -f debug/tci6486.a64P
    #
    # archiving package/lib/debug/tci6486/ti/bios/drivers/smmqt/smmqt_locate.o64P pa
    ckage/lib/debug/tci6486/ti/bios/drivers/smmqt/smmqt_vt.o64P package/lib/debug/tc
    i6486/ti/bios/drivers/smmqt/smmqt.o64P package/lib/debug/tci6486/package/package
    _ti.bios.drivers.smmqt.tci6486.o64P into debug/tci6486.a64P ...
    /db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/bin/ar6x  rq debug/tci6486
    .a64P   package/lib/debug/tci6486/ti/bios/drivers/smmqt/smmqt_locate.o64P packag
    e/lib/debug/tci6486/ti/bios/drivers/smmqt/smmqt_vt.o64P package/lib/debug/tci648
    6/ti/bios/drivers/smmqt/smmqt.o64P package/lib/debug/tci6486/package/package_ti.
    bios.drivers.smmqt.tci6486.o64P
    rm -f package/lib/release/tci6486/ti/bios/drivers/smmqt/smmqt_locate.o64P
    #
    # cl64P ../../../../../ti/bios/drivers/smmqt/smmqt_locate.c ...
    /db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/bin/cl6x -c  -qq -pdsw225
    -mv64p -eo.o64P -ea.s64P  -Dxdc_target_name__=C64P -Dxdc_target_types__=ti/targe
    ts/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_6_0_14 -O2  -ml0 -mi10 -
    D_CACHELINE_SIZE=64 -pds179 -pds48 -pds452 -dCHIP_tci6486  -i/db/vtree/toddm/dri
    vers-h33x/imports/ti/bios/include -i/db/vtree/toddm/drivers-h33x/imports/ti/csl/
    include/c6000 -I. -I../../../../../../imports -I../../../../../../src/ti/bios/dr
    ivers/common -I/db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linu
    x/xdctools_3_10/packages -I../../../../.. -I../../../../../ti/bios/drivers/share
    d -I../../../../../ti/bios/drivers/aamcrit -I/db/toolsrc/library/tools/vendors/t
    i/c6x/6.0.14/Linux/include -fs=./package/lib/release/tci6486/ti/bios/drivers/smm
    qt -fr=./package/lib/release/tci6486/ti/bios/drivers/smmqt -fc ../../../../../ti
    /bios/drivers/smmqt/smmqt_locate.c
    /db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10
    /bin/mkdep -a package/lib/release/tci6486/ti/bios/drivers/smmqt/smmqt_locate.o64
    P.dep -p package/lib/release/tci6486/ti/bios/drivers/smmqt -s o64P ../../../../.
    ./ti/bios/drivers/smmqt/smmqt_locate.c -C   -qq -pdsw225 -mv64p -eo.o64P -ea.s64
    P  -Dxdc_target_name__=C64P -Dxdc_target_types__=ti/targets/std.h -Dxdc_bld__pro
    file_release -Dxdc_bld__vers_1_0_6_0_14 -O2  -ml0 -mi10 -D_CACHELINE_SIZE=64 -pd
    s179 -pds48 -pds452 -dCHIP_tci6486  -i/db/vtree/toddm/drivers-h33x/imports/ti/bi
    os/include -i/db/vtree/toddm/drivers-h33x/imports/ti/csl/include/c6000 -I. -I../
    ../../../../../imports -I../../../../../../src/ti/bios/drivers/common -I/db/rtre
    e/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10/package
    s -I../../../../.. -I../../../../../ti/bios/drivers/shared -I../../../../../ti/b
    ios/drivers/aamcrit -I/db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/incl
    ude -fs=./package/lib/release/tci6486/ti/bios/drivers/smmqt -fr=./package/lib/re
    lease/tci6486/ti/bios/drivers/smmqt
    rm -f package/lib/release/tci6486/ti/bios/drivers/smmqt/smmqt_vt.o64P
    #
    # cl64P ../../../../../ti/bios/drivers/smmqt/smmqt_vt.c ...
    /db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/bin/cl6x -c  -qq -pdsw225
    -mv64p -eo.o64P -ea.s64P  -Dxdc_target_name__=C64P -Dxdc_target_types__=ti/targe
    ts/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_6_0_14 -O2  -ml0 -mi10 -
    D_CACHELINE_SIZE=64 -pds179 -pds48 -pds452 -dCHIP_tci6486  -i/db/vtree/toddm/dri
    vers-h33x/imports/ti/bios/include -i/db/vtree/toddm/drivers-h33x/imports/ti/csl/
    include/c6000 -I. -I../../../../../../imports -I../../../../../../src/ti/bios/dr
    ivers/common -I/db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linu
    x/xdctools_3_10/packages -I../../../../.. -I../../../../../ti/bios/drivers/share
    d -I../../../../../ti/bios/drivers/aamcrit -I/db/toolsrc/library/tools/vendors/t
    i/c6x/6.0.14/Linux/include -fs=./package/lib/release/tci6486/ti/bios/drivers/smm
    qt -fr=./package/lib/release/tci6486/ti/bios/drivers/smmqt -fc ../../../../../ti
    /bios/drivers/smmqt/smmqt_vt.c
    /db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10
    /bin/mkdep -a package/lib/release/tci6486/ti/bios/drivers/smmqt/smmqt_vt.o64P.de
    p -p package/lib/release/tci6486/ti/bios/drivers/smmqt -s o64P ../../../../../ti
    /bios/drivers/smmqt/smmqt_vt.c -C   -qq -pdsw225 -mv64p -eo.o64P -ea.s64P  -Dxdc
    _target_name__=C64P -Dxdc_target_types__=ti/targets/std.h -Dxdc_bld__profile_rel
    ease -Dxdc_bld__vers_1_0_6_0_14 -O2  -ml0 -mi10 -D_CACHELINE_SIZE=64 -pds179 -pd
    s48 -pds452 -dCHIP_tci6486  -i/db/vtree/toddm/drivers-h33x/imports/ti/bios/inclu
    de -i/db/vtree/toddm/drivers-h33x/imports/ti/csl/include/c6000 -I. -I../../../..
    /../../imports -I../../../../../../src/ti/bios/drivers/common -I/db/rtree/instal
    l/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10/packages -I../.
    ./../../.. -I../../../../../ti/bios/drivers/shared -I../../../../../ti/bios/driv
    ers/aamcrit -I/db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/include -fs=
    ./package/lib/release/tci6486/ti/bios/drivers/smmqt -fr=./package/lib/release/tc
    i6486/ti/bios/drivers/smmqt
    rm -f package/lib/release/tci6486/ti/bios/drivers/smmqt/smmqt.o64P
    #
    # cl64P ../../../../../ti/bios/drivers/smmqt/smmqt.c ...
    /db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/bin/cl6x -c  -qq -pdsw225
    -mv64p -eo.o64P -ea.s64P  -Dxdc_target_name__=C64P -Dxdc_target_types__=ti/targe
    ts/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_6_0_14 -O2  -ml0 -mi10 -
    D_CACHELINE_SIZE=64 -pds179 -pds48 -pds452 -dCHIP_tci6486  -i/db/vtree/toddm/dri
    vers-h33x/imports/ti/bios/include -i/db/vtree/toddm/drivers-h33x/imports/ti/csl/
    include/c6000 -I. -I../../../../../../imports -I../../../../../../src/ti/bios/dr
    ivers/common -I/db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linu
    x/xdctools_3_10/packages -I../../../../.. -I../../../../../ti/bios/drivers/share
    d -I../../../../../ti/bios/drivers/aamcrit -I/db/toolsrc/library/tools/vendors/t
    i/c6x/6.0.14/Linux/include -fs=./package/lib/release/tci6486/ti/bios/drivers/smm
    qt -fr=./package/lib/release/tci6486/ti/bios/drivers/smmqt -fc ../../../../../ti
    /bios/drivers/smmqt/smmqt.c
    /db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10
    /bin/mkdep -a package/lib/release/tci6486/ti/bios/drivers/smmqt/smmqt.o64P.dep -
    p package/lib/release/tci6486/ti/bios/drivers/smmqt -s o64P ../../../../../ti/bi
    os/drivers/smmqt/smmqt.c -C   -qq -pdsw225 -mv64p -eo.o64P -ea.s64P  -Dxdc_targe
    t_name__=C64P -Dxdc_target_types__=ti/targets/std.h -Dxdc_bld__profile_release -
    Dxdc_bld__vers_1_0_6_0_14 -O2  -ml0 -mi10 -D_CACHELINE_SIZE=64 -pds179 -pds48 -p
    ds452 -dCHIP_tci6486  -i/db/vtree/toddm/drivers-h33x/imports/ti/bios/include -i/
    db/vtree/toddm/drivers-h33x/imports/ti/csl/include/c6000 -I. -I../../../../../..
    /imports -I../../../../../../src/ti/bios/drivers/common -I/db/rtree/install/tree
    s/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10/packages -I../../../.
    ./.. -I../../../../../ti/bios/drivers/shared -I../../../../../ti/bios/drivers/aa
    mcrit -I/db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/include -fs=./pack
    age/lib/release/tci6486/ti/bios/drivers/smmqt -fr=./package/lib/release/tci6486/
    ti/bios/drivers/smmqt
    rm -f package/lib/release/tci6486/package/package_ti.bios.drivers.smmqt.tci6486.
    o64P
    #
    # cl64P package/package_ti.bios.drivers.smmqt.tci6486.c ...
    /db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/bin/cl6x -c  -qq -pdsw225
    -mv64p -eo.o64P -ea.s64P  -Dxdc_target_name__=C64P -Dxdc_target_types__=ti/targe
    ts/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_6_0_14 -O2  -ml0 -mi10 -
    D_CACHELINE_SIZE=64 -pds179 -pds48 -pds452 -dCHIP_tci6486  -i/db/vtree/toddm/dri
    vers-h33x/imports/ti/bios/include -i/db/vtree/toddm/drivers-h33x/imports/ti/csl/
    include/c6000 -I. -I../../../../../../imports -I../../../../../../src/ti/bios/dr
    ivers/common -I/db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linu
    x/xdctools_3_10/packages -I../../../../.. -I../../../../../ti/bios/drivers/share
    d -I../../../../../ti/bios/drivers/aamcrit -I/db/toolsrc/library/tools/vendors/t
    i/c6x/6.0.14/Linux/include -fs=./package/lib/release/tci6486/package -fr=./packa
    ge/lib/release/tci6486/package -fc package/package_ti.bios.drivers.smmqt.tci6486
    .c
    /db/rtree/install/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10
    /bin/mkdep -a package/lib/release/tci6486/package/package_ti.bios.drivers.smmqt.
    tci6486.o64P.dep -p package/lib/release/tci6486/package -s o64P package/package_
    ti.bios.drivers.smmqt.tci6486.c -C   -qq -pdsw225 -mv64p -eo.o64P -ea.s64P  -Dxd
    c_target_name__=C64P -Dxdc_target_types__=ti/targets/std.h -Dxdc_bld__profile_re
    lease -Dxdc_bld__vers_1_0_6_0_14 -O2  -ml0 -mi10 -D_CACHELINE_SIZE=64 -pds179 -p
    ds48 -pds452 -dCHIP_tci6486  -i/db/vtree/toddm/drivers-h33x/imports/ti/bios/incl
    ude -i/db/vtree/toddm/drivers-h33x/imports/ti/csl/include/c6000 -I. -I../../../.
    ./../../imports -I../../../../../../src/ti/bios/drivers/common -I/db/rtree/insta
    ll/trees/products/xdcprod/xdcprod-j42/product/Linux/xdctools_3_10/packages -I../
    ../../../.. -I../../../../../ti/bios/drivers/shared -I../../../../../ti/bios/dri
    vers/aamcrit -I/db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/include -fs
    =./package/lib/release/tci6486/package -fr=./package/lib/release/tci6486/package
    rm -f release/tci6486.a64P
    #
    # archiving package/lib/release/tci6486/ti/bios/drivers/smmqt/smmqt_locate.o64P
    package/lib/release/tci6486/ti/bios/drivers/smmqt/smmqt_vt.o64P package/lib/rele
    ase/tci6486/ti/bios/drivers/smmqt/smmqt.o64P package/lib/release/tci6486/package
    /package_ti.bios.drivers.smmqt.tci6486.o64P into release/tci6486.a64P ...
    /db/toolsrc/library/tools/vendors/ti/c6x/6.0.14/Linux/bin/ar6x  rq release/tci64
    86.a64P   package/lib/release/tci6486/ti/bios/drivers/smmqt/smmqt_locate.o64P pa
    ckage/lib/release/tci6486/ti/bios/drivers/smmqt/smmqt_vt.o64P package/lib/releas
    e/tci6486/ti/bios/drivers/smmqt/smmqt.o64P package/lib/release/tci6486/package/p
    ackage_ti.bios.drivers.smmqt.tci6486.o64P

     

  • Todd,

    I tried your suggestion and used SMPOOL module from mqt_1_21, but that has not solved my issue.

    About the build procedure I have used:

    I have built SMPOOL, AAMCRIT & SMMQT as a single lib; I have created a CCS4 project for the build, not the XDC based build I see from your log; I tried but could fnd no place to put -ml0 option; I have removed the CHIP_tci6486 define as I see it is redundant.

    Here is the build log:

     

    **** Build of configuration Release for project smmqt ****

     

    C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake -k all

    'Building file: C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/aamcrit/aamcrit.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/bin/cl6x" -mv64+ -O2 --define=_CACHELINE_SIZE=128 --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/include" --include_path="C:/Program Files/Texas Instruments/bios_5_41_03_17/packages/ti/bios/include" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/shared" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/aamcrit" --diag_suppress=179 --diag_suppress=48 --diag_suppress=452 --diag_warning=225 --interrupt_threshold=10 --preproc_with_compile --preproc_dependency="aamcrit.pp" "C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/aamcrit/aamcrit.c"

    'Finished building: C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/aamcrit/aamcrit.c'

    ' '

    'Building file: C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/aamcrit/aamcrit_asm.s64P'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/bin/cl6x" -mv64+ -O2 --define=_CACHELINE_SIZE=128 --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/include" --include_path="C:/Program Files/Texas Instruments/bios_5_41_03_17/packages/ti/bios/include" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/shared" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/aamcrit" --diag_suppress=179 --diag_suppress=48 --diag_suppress=452 --diag_warning=225 --interrupt_threshold=10 --preproc_with_compile --preproc_dependency="aamcrit_asm.pp" "C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/aamcrit/aamcrit_asm.s64P"

    'Finished building: C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/aamcrit/aamcrit_asm.s64P'

    ' '

    'Building file: C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/aamcrit/aamcrit_vt.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/bin/cl6x" -mv64+ -O2 --define=_CACHELINE_SIZE=128 --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/include" --include_path="C:/Program Files/Texas Instruments/bios_5_41_03_17/packages/ti/bios/include" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/shared" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/aamcrit" --diag_suppress=179 --diag_suppress=48 --diag_suppress=452 --diag_warning=225 --interrupt_threshold=10 --preproc_with_compile --preproc_dependency="aamcrit_vt.pp" "C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/aamcrit/aamcrit_vt.c"

    'Finished building: C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/aamcrit/aamcrit_vt.c'

    ' '

    'Building file: C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/smmqt/smmqt.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/bin/cl6x" -mv64+ -O2 --define=_CACHELINE_SIZE=128 --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/include" --include_path="C:/Program Files/Texas Instruments/bios_5_41_03_17/packages/ti/bios/include" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/shared" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/aamcrit" --diag_suppress=179 --diag_suppress=48 --diag_suppress=452 --diag_warning=225 --interrupt_threshold=10 --preproc_with_compile --preproc_dependency="smmqt.pp" "C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/smmqt/smmqt.c"

    'Finished building: C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/smmqt/smmqt.c'

    ' '

    'Building file: C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/smmqt/smmqt_locate.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/bin/cl6x" -mv64+ -O2 --define=_CACHELINE_SIZE=128 --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/include" --include_path="C:/Program Files/Texas Instruments/bios_5_41_03_17/packages/ti/bios/include" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/shared" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/aamcrit" --diag_suppress=179 --diag_suppress=48 --diag_suppress=452 --diag_warning=225 --interrupt_threshold=10 --preproc_with_compile --preproc_dependency="smmqt_locate.pp" "C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/smmqt/smmqt_locate.c"

    'Finished building: C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/smmqt/smmqt_locate.c'

    ' '

    'Building file: C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/smmqt/smmqt_vt.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/bin/cl6x" -mv64+ -O2 --define=_CACHELINE_SIZE=128 --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/include" --include_path="C:/Program Files/Texas Instruments/bios_5_41_03_17/packages/ti/bios/include" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/shared" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/aamcrit" --diag_suppress=179 --diag_suppress=48 --diag_suppress=452 --diag_warning=225 --interrupt_threshold=10 --preproc_with_compile --preproc_dependency="smmqt_vt.pp" "C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/smmqt/smmqt_vt.c"

    'Finished building: C:/TI_tools/mqtciv_1_20/packages/ti/bios/drivers/smmqt/smmqt_vt.c'

    ' '

    'Building file: C:/TI_tools/mqt_1_21/mqt_1_21/packages/ti/bios/drivers/smpool/smpool.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/bin/cl6x" -mv64+ -O2 --define=_CACHELINE_SIZE=128 --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/include" --include_path="C:/Program Files/Texas Instruments/bios_5_41_03_17/packages/ti/bios/include" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/shared" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/aamcrit" --diag_suppress=179 --diag_suppress=48 --diag_suppress=452 --diag_warning=225 --interrupt_threshold=10 --preproc_with_compile --preproc_dependency="smpool.pp" "C:/TI_tools/mqt_1_21/mqt_1_21/packages/ti/bios/drivers/smpool/smpool.c"

    'Finished building: C:/TI_tools/mqt_1_21/mqt_1_21/packages/ti/bios/drivers/smpool/smpool.c'

    ' '

    'Building file: C:/TI_tools/mqt_1_21/mqt_1_21/packages/ti/bios/drivers/smpool/smpool_vt.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/bin/cl6x" -mv64+ -O2 --define=_CACHELINE_SIZE=128 --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/include" --include_path="C:/Program Files/Texas Instruments/bios_5_41_03_17/packages/ti/bios/include" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/shared" --include_path="%DDK_INSTALL_DIR%/packages/ti/bios/drivers/aamcrit" --diag_suppress=179 --diag_suppress=48 --diag_suppress=452 --diag_warning=225 --interrupt_threshold=10 --preproc_with_compile --preproc_dependency="smpool_vt.pp" "C:/TI_tools/mqt_1_21/mqt_1_21/packages/ti/bios/drivers/smpool/smpool_vt.c"

    'Finished building: C:/TI_tools/mqt_1_21/mqt_1_21/packages/ti/bios/drivers/smpool/smpool_vt.c'

    ' '

    'Building target: smmqt.a64P'

    'Invoking: Archiver'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c6000/bin/ar6x" r "smmqt.a64P" "./smpool_vt.obj" "./smpool.obj" "./smmqt_vt.obj" "./smmqt_locate.obj" "./smmqt.obj" "./aamcrit_vt.obj" "./aamcrit_asm.obj" "./aamcrit.obj"

    ==> new archive 'smmqt.a64P'

    ==> building archive 'smmqt.a64P'

    'Finished building target: smmqt.a64P'

    ' '

    Build complete for project smmqt

     

  • Todd,

    I owe an apology to you. I had gone wrong with the 'sanity checks' you had mentioned. I am able to work with the rebuilt libs just as I could with the prebuilt ones. SMMQT is working fine with message bufs in DDR2 as well.

    The workarounds w.r.t. to cache coherency of the SMMQT message bufs are still necessary though, even with SMPOOL from mqt_1_21, but I'll post that in a separate thread for clarity.

    Thanks for all your help and time.

  • Hi Viswanath,

    I'm glad to hear you found the problem.

    As you stated, you should not need to do any cache calls with the message bufs since MSGQ handles that. So I look forward to the separate thread to help get it resolved.

    Todd