• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Digital Signal Processors (DSP) » DaVinci™ Video Processors » DM814x and AM387x Processors Forum » To access 8147 iss register error
Share
DaVinci™ Video Processors
  • Forums
  • Announcements
Options
  • Subscribe via RSS

Forums

To access 8147 iss register error

This question is not answered
Zeroman Yang
Posted by Zeroman Yang
on Apr 06 2012 02:25 AM
Prodigy130 points

Hi, all

I put the iss part of the 8127 transplant to 8147.
Access iss register M3 on the crash, such as
    * (unsigned int *) 0x52000010 = 0x023; / / Soft-reset ISS IP and make auto-standby = TRUE

Is it iss not working, give some advice?
Thank you very much.


8147 iss
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Anil
    Posted by Anil
    on Apr 06 2012 03:56 AM
    Expert6655 points

    Hi Zeroman,

    Can you provide the error details and software version details? From where you are writing?

    Check whether the ISS clock is enabled or not, if not then enable the clock first, then you can able to access the address space.

    Regards

    AnilKumar

    Please mark this Forum post as answered via the Verify Answer button below if it helps answer your question.  Thanks!

    psp DM8147
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Zeroman Yang
    Posted by Zeroman Yang
    on Apr 06 2012 05:48 AM
    Prodigy130 points

    Hi, Anil

    The reason may be that the clock is not turned on.But I do not know where to open iss the clock.

    I can not find the the iss clock register.
    Thank you very much.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Anil
    Posted by Anil
    on Apr 06 2012 06:02 AM
    Expert6655 points

    Hi Zeroman,

    You can look at section "2.9.9 CM_ISP Registers" in TRM and (arch/arm/mach-omap2/cm81xx.h) 

    Regards

    AilKumar

    Please mark this Forum post as answered via the Verify Answer button below if it helps answer your question.  Thanks!

    psp ISS clock
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Zeroman Yang
    Posted by Zeroman Yang
    on Apr 07 2012 05:46 AM
    Prodigy130 points

    Hi, Anil,

    I added the code in front of the iss initialization,

    Int32 Iss_init(Ptr arg)
    {
        Int32 retVal = 0;

    #define PRCM_BASE            0x48180000
    #define TI814X_CM_ISP_MOD            0x0700  /* 256B */

        /* CM_ISP */
    #define TI814X_CM_ISP_CLKSTCTRL            (PRCM_BASE + TI814X_CM_ISP_MOD + 0x0000)
    #define TI814X_CM_ISP_ISP_CLKCTRL        (PRCM_BASE + TI814X_CM_ISP_MOD + 0x0020)
    #define TI814X_CM_ISP_FDIF_CLKCTRL        (PRCM_BASE + TI814X_CM_ISP_MOD + 0x0024)
        *(unsigned int *) TI814X_CM_ISP_CLKSTCTRL = 0x2;
        *(unsigned int *) TI814X_CM_ISP_ISP_CLKCTRL    = 0x2;
        *(unsigned int *) TI814X_CM_ISP_FDIF_CLKCTRL = 0x2;

        if (0 != retVal)
        {
            Vps_printf("%s: Error @ line %d\n", __FUNCTION__, __LINE__);
            return (retVal);
        }

        if (0 == retVal)
        {
               retVal = issCommonInit();
        }

    ......

    static Int32 issCommonInit(void)
    {
        Int32 retVal = 0;
        Bool simcopInit = FALSE;
        
    #ifdef POWER_OPT_DSS_OFF
        simcopInit = FALSE;
    #else
       simcopInit = TRUE;
    #endif

       
        CSL_SimcopRegsOvly pSimcopRegs =   (CSL_SimcopRegsOvly) CSL_SIMCOP_BASE_ADDRESS;
        CSL_FINS(pSimcopRegs->CLKCTRL, SIMCOP_CLKCTRL_DMA_CLK,   CSL_SIMCOP_CLKCTRL_DMA_CLK_SUBMODULE_ENABLE_REQ);
        (unsigned int *) 0x52000010 = 0x023;        //Soft-reset ISS IP and make auto-standby=TRUE ;

    The implementation of any one of these three code will crash.As if the clock is still not open.

        CSL_SimcopRegsOvly pSimcopRegs =   (CSL_SimcopRegsOvly) CSL_SIMCOP_BASE_ADDRESS;
        CSL_FINS(pSimcopRegs->CLKCTRL, SIMCOP_CLKCTRL_DMA_CLK,   CSL_SIMCOP_CLKCTRL_DMA_CLK_SUBMODULE_ENABLE_REQ);
        (unsigned int *) 0x52000010 = 0x023;        //Soft-reset ISS IP and make auto-standby=TRUE

    Thank you.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Rajat Sagar
    Posted by Rajat Sagar
    on Apr 08 2012 23:52 PM
    Expert3690 points

    Hello Zeroman,

    If you are using the DM8127 with ipnc_rdk software, I think the reason you may be getting a crash is because you may be trying to access ISS from the wrong base address. The M3 can access ISS through a internal interconnect bus and via the MMU. This the MMU address mapping also is important.

    In the default software configuration the ISS base addresses can be refered in the following file:

    ti\psp\iss\hal\cred_cram\cred\src\cortexm3_sys_ape\cred.c

    The base address should be 0x55040010 instead of 0x52000010.

    Please confirm if this works.

    Regards

    Rajat

    --------------------------------------------------------------------------------------------------------------
    Please click the Verify Answer button on this post if it answers the question.
    --------------------------------------------------------------------------------------------------------------

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Zeroman Yang
    Posted by Zeroman Yang
    on Apr 19 2012 07:25 AM
    Prodigy130 points

    Hello Rajat,

      In TMS320DM814x Imaging Subsystem(ISS) Technical Reference Manual.pdf(Literature Number: SPRUGZ8 June 2011),

    ISS base addr is 0x52010000.

    Your  is 0x52000010.

    I tried two kinds of methods, but are invalid.

    I modified the code as follows:

    --- a/ti_tools/iss/iss_02_00_00_00/packages/ti/psp/iss/hal/cred_cram/cred/src/cortexm3_sys_ape/cred.c
    +++ b/ti_tools/iss/iss_02_00_00_00/packages/ti/psp/iss/hal/cred_cram/cred/src/cortexm3_sys_ape/cred.c
    @@ -1086,7 +1086,7 @@ const REG_UWORD32 CRED_instPhysAddr[CRED_NUM_INSTANCES] = {
         0x54164000,
         0x54165000,
         0x54200000,
    -    0x55040000,
    +    0x52010000,
         0x55040400,
         0x55041000,
         0x55041170,
    @@ -2034,7 +2034,7 @@ const CRED_instances_t CRED_instances[CRED_NUM_INSTANCES] = {
         {&CRED_instVirtAddr[333], 0x54164000, 4096, "I_CSTF1"},
         {&CRED_instVirtAddr[334], 0x54165000, 4096, "I_CSTF2"},
         {&CRED_instVirtAddr[335], 0x54200000, 120, "RT0"},
    -    {&CRED_instVirtAddr[336], 0x55040000, 144, "ISS_REGS"},
    +    {&CRED_instVirtAddr[336], 0x52010000, 144, "ISS_REGS"},
         {&CRED_instVirtAddr[337], 0x55040400, 60, "TCTRL"},
         {&CRED_instVirtAddr[338], 0x55041000, 368,
          "CSI2_RECEIVER_A__CSI2_RECEIVER_REGS1"},

    I can not do anything, I hope you give suggestions, thank you very much.


    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Rajat Sagar
    Posted by Rajat Sagar
    on May 16 2012 03:33 AM
    Expert3690 points

    Hi Zeroman, 

    Can you confirm if you are able to access iss registers @ 0x55040000 ?

    Do you want to access ISS registers from M3 process or A8 processor?

    Regards

    Rajat

    --------------------------------------------------------------------------------------------------------------
    Please click the Verify Answer button on this post if it answers the question.
    --------------------------------------------------------------------------------------------------------------

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Krisztián KAUTH
    Posted by Krisztián KAUTH
    on Sep 06 2012 09:00 AM
    Prodigy110 points

    Based on this thread I succeeded with following code: 

    *((unsigned int*)0x48180d00) = 0x2;
    *((unsigned int*)0x48180d10) = 0x3;
    *((unsigned int*)0x48180700) = 0x2;
    *((unsigned int*)0x48180720) = 0x2;
    *((unsigned int*)0x48180724) = 0x2;

    // had to add first two lines in order to access following register at all:

    *((unsigned int*)0x55050010) = 0x23; // ISP5_SYSCONFIG

    // ISP5_SYSCONFIG had been readable until write so that following further steps are required:

    *((unsigned int*)0x55040080) = 0xFFFF0000; // ISS_CTRL
    *((unsigned int*)0x55040084) = 0xF0000002;  // ISS_CLKCTRL

     // at this point it seems that ISS registers are fully accessible from the M3

     How should I reconfigure the MMU mapping table to access these registers (from 0x55040000 base address) on Cortex A8 host as well?

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Rajat Sagar
    Posted by Rajat Sagar
    on Sep 06 2012 19:38 PM
    Expert3690 points

    Krisztian,

    M3 accesses go via MMU, but for A8 the accesses don't go via the MMU. If you want to access ISS registers via A8 or on Linux, you could directly mmap the physical to virtual address and access the registers.

    Regards

    Rajat

    --------------------------------------------------------------------------------------------------------------
    Please click the Verify Answer button on this post if it answers the question.
    --------------------------------------------------------------------------------------------------------------

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Krisztián KAUTH
    Posted by Krisztián KAUTH
    on Sep 10 2012 00:46 AM
    Prodigy110 points

    Thanks, Rajat! 

    It seems that I cannot verify your answer. I should have started a new thread. :-\

    From the A8, I kept trying with 0x55050010. Or is that address to be changed without the MMU?

     

    fd = open("/dev/mem", O_RDWR | O_SYNC);

    page_addr = (unsigned char *) mmap( 0, getpagesize(), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x5505000 );

    offset = (unsigned int *)(page_addr + 0x10);

    // I get  no errors until here.

    printf("%x\n",*offset);

    // Here a bus error comes.

    Linux is configured almost as in IPNC DM8148 RDK except for the vpss notify area. It is missing from bootargs in order to run msgQ sample.

    Regards, 

    Krisztián

    PS: I am continuing thread here: http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/213095.aspx!

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use