• 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) » OMAP™ Processors » OMAP-L13x, AM1x and C674x Processors Forum » SPI slave boot failure
Share
OMAP™ Processors
  • Forums
  • Announcements
Options
  • Subscribe via RSS
Resources
  • OMAP-L1x DSP+ARM9™-based Processors Product Folder
  • OMAP3525/30 DSP+ARM Cortex™-A8-based SOCs Product Folder

  • Top OMAPL Wiki Links
  • OMAPL3x Schematic Review Checklist
  • OMAPL13x Boot resources

  • OMAPL Document Resources
  • OMAPL137 Technical reference manual
  • OMAPL138 Technical reference manual
  • OMAPL Boot loader App Notes
  • SPI slave boot failure

    SPI slave boot failure

    This question is not answered
    Naoki kawada
    Posted by Naoki kawada
    on Aug 08 2012 08:14 AM
    Intellectual275 points

    Hi,

    We have a trouble at SPI slave boot on OMAPL-137.
    uC fails a opcode handshake just after PLL is enabled by 0x5853590D opcode.

    Condition:
    Using 24.576Mhz X'tal. 
    Before PLL configuration, SPI clock is 100khz and 10ms software delay is being applied before and after each opcode handshake. And, we have 100usec delay between each 16bit word sequences. After PLL is configured, we have no delay for 16bit word sequences and SPI clock is changed to 16Mhz. 

    Rate of Boot failure with this condition: 
    1/1000

    Advanced Debugging:

    I tried to connect CCS and I found Program Counter was falling into strange address.
    Also, I run the debug GEL (http://processors.wiki.ti.com/index.php/OMAP-L1x_Debug_Gel_Files) and then the following messages was displayed:

    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output: | Device Information |
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output: DEV_INFO_00 = 0x14000100
    DSP_0: GEL Output: DEV_INFO_01 = 0x9B7DF02F
    DSP_0: GEL Output: DEV_INFO_02 = 0x00000000
    DSP_0: GEL Output: DEV_INFO_03 = 0x0000F3F1
    DSP_0: GEL Output: DEV_INFO_04 = 0x00000002
    DSP_0: GEL Output: DEV_INFO_05 = 0x00000000
    DSP_0: GEL Output: DEV_INFO_06 = 0x000003E0
    DSP_0: GEL Output: DEV_INFO_07-DEV_INFO_08-DEV_INFO_09-DEV_INFO_10-DEV_INFO_11-DEV_INFO_12 = 0-0-155333-8-37-9
    DSP_0: GEL Output: DEV_INFO_13,DEV_INFO_14,DEV_INFO_15,DEV_INFO_16 = 5,0,0,3422
    DSP_0: GEL Output: -----
    DSP_0: GEL Output: DEV_INFO_17 = 0x1ABC0000
    DSP_0: GEL Output: DEV_INFO_18 = 0x00030003
    DSP_0: GEL Output: DEV_INFO_19 =
    DSP_0: GEL Output: 0
    DSP_0: GEL Output: 0
    DSP_0: GEL Output: 0
    DSP_0: GEL Output: 0
    DSP_0: GEL Output: 0
    DSP_0: GEL Output:
    DSP_0: GEL Output: -----
    DSP_0: GEL Output: DEV_INFO_20 = 0x00030003
    DSP_0: GEL Output: DEV_INFO_21 = 0x30303864
    DSP_0: GEL Output: DEV_INFO_22 = 0x3330306B
    DSP_0: GEL Output: DEV_INFO_23 = 0x00000000
    DSP_0: GEL Output: -----
    DSP_0: GEL Output: DEV_INFO_24 = 0x00000000
    DSP_0: GEL Output: DEV_INFO_25 = 0x02009025
    DSP_0: GEL Output: DEV_INFO_06 = 0x08025EC5
    DSP_0: GEL Output: DEV_INFO_26 = 0x80100100
    DSP_0: GEL Output:
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output: | BOOTROM Info |
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output: ROM ID: d800k-48-48-48
    DSP_0: GEL Output: Silicon Revision UNKNOWN
    DSP_0: GEL Output: Boot pins: 858796139
    DSP_0: GEL Output: Boot Mode: INVALID (0x3330306B)
    DSP_0: GEL Output: ROM Status Code: 0x000000F3 Description:
    DSP_0: GEL Output: Error code not recognized
    DSP_0: GEL Output: Program Counter (PC) = 0x0000040C
    DSP_0: GEL Output:
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output: | Clock Information |
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output:
    DSP_0: GEL Output: PLLs configured to utilize crystal.
    DSP_0: GEL Output: ASYNC3 = PLL0_SYSCLK2
    DSP_0: GEL Output:
    DSP_0: GEL Output: NOTE: All clock frequencies in following PLL sections are based
    DSP_0: GEL Output: off OSCIN = 1103403942 MHz. If that value does not match your hardware
    DSP_0: GEL Output: you should change the #define in the top of the gel file, save it,
    DSP_0: GEL Output: and then reload.
    DSP_0: GEL Output:
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output: | PLL0 Information |
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output:
    DSP_0: GEL Output: PLL0_SYSCLK1 = 1 MHz
    DSP_0: GEL Output: PLL0_SYSCLK2 = 24 MHz
    DSP_0: GEL Output: PLL0_SYSCLK3 = 12 MHz
    DSP_0: GEL Output: PLL0_SYSCLK4 = 3 MHz
    DSP_0: GEL Output: PLL0_SYSCLK5 = 6 MHz
    DSP_0: GEL Output: PLL0_SYSCLK6 = 24 MHz
    DSP_0: GEL Output: PLL0_SYSCLK7 = 24 MHz
    DSP_0: GEL Output: Error: PLL0_SYSCLK2 must equal PLL0_SYSCLK1 / 2
    DSP_0: GEL Output: Error: PLL0_SYSCLK4 must equal PLL0_SYSCLK1 / 4
    DSP_0: GEL Output: Error: PLL0_SYSCLK6 must equal PLL0_SYSCLK1 / 1
    DSP_0: GEL Output:
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output: | PLL1 Information |
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output:
    DSP_0: GEL Output: PLL1_SYSCLK1 = 24 MHz
    DSP_0: GEL Output: PLL1_SYSCLK2 = 24 MHz
    DSP_0: GEL Output: PLL1_SYSCLK3 = 24 MHz
    DSP_0: GEL Output:
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output: | PSC0 Information |
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output:
    DSP_0: GEL Output: State Decoder:
    DSP_0: GEL Output: 0 = SwRstDisable (reset asserted, clock off)
    DSP_0: GEL Output: 1 = SyncReset (reset assered, clock on)
    DSP_0: GEL Output: 2 = Disable (reset de-asserted, clock off)
    DSP_0: GEL Output: 3 = Enable (reset de-asserted, clock on)
    DSP_0: GEL Output: >3 = Transition in progress
    DSP_0: GEL Output:
    DSP_0: GEL Output: Module 0: EDMA3CC (0) STATE = 43
    DSP_0: GEL Output: Module 1: EDMA3 TC0 STATE = 0
    DSP_0: GEL Output: Module 2: EDMA3 TC1 STATE = 0
    DSP_0: GEL Output: Module 3: EMIFA (BR7) STATE = 0
    DSP_0: GEL Output: Module 4: SPI 0 STATE = 0
    DSP_0: GEL Output: Module 5: MMC/SD 0 STATE = 3
    DSP_0: GEL Output: Module 6: AINTC STATE = 0
    DSP_0: GEL Output: Module 7: ARM RAM/ROM STATE = 3
    DSP_0: GEL Output: Module 9: UART 0 STATE = 3
    DSP_0: GEL Output: Module 10: SCR 0 (BR0/1/2/8) STATE = 0
    DSP_0: GEL Output: Module 11: SCR 1 (BR4) STATE = 3
    DSP_0: GEL Output: Module 12: SCR 2 (BR3/5/6) STATE = 3
    DSP_0: GEL Output: Module 13: PRUSS STATE = 3
    DSP_0: GEL Output: Module 14: ARM STATE = 0
    DSP_0: GEL Output: Module 15: DSP STATE = 0
    DSP_0: GEL Output:
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output: | PSC1 Information |
    DSP_0: GEL Output: ---------------------------------------------
    DSP_0: GEL Output:
    DSP_0: GEL Output: State Decoder:
    DSP_0: GEL Output: 0 = SwRstDisable (reset asserted, clock off)
    DSP_0: GEL Output: 1 = SyncReset (reset assered, clock on)
    DSP_0: GEL Output: 2 = Disable (reset de-asserted, clock off)
    DSP_0: GEL Output: 3 = Enable (reset de-asserted, clock on)
    DSP_0: GEL Output: >3 = Transition in progress
    DSP_0: GEL Output:
    DSP_0: GEL Output: Module 0: EDMA3CC (1) STATE = 3
    DSP_0: GEL Output: Module 1: USB0 (2.0) STATE = 0
    DSP_0: GEL Output: Module 2: USB1 (1.1) STATE = 0
    DSP_0: GEL Output: Module 3: GPIO STATE = 0
    DSP_0: GEL Output: Module 4: UHPI STATE = 0
    DSP_0: GEL Output: Module 5: EMAC STATE = 0
    DSP_0: GEL Output: Module 6: DDR2 and SCR F3 STATE = 0
    DSP_0: GEL Output: Module 7: MCASP0 + FIFO STATE = 0
    DSP_0: GEL Output: Module 8: SATA STATE = 0
    DSP_0: GEL Output: Module 9: VPIF STATE = 0
    DSP_0: GEL Output: Module 10: SPI 1 STATE = 0
    DSP_0: GEL Output: Module 11: I2C 1 STATE = 0
    DSP_0: GEL Output: Module 12: UART 1 STATE = 0
    DSP_0: GEL Output: Module 13: UART 2 STATE = 0
    DSP_0: GEL Output: Module 14: MCBSP0 + FIFO STATE = 0
    DSP_0: GEL Output: Module 15: MCBSP1 + FIFO STATE = 0
    DSP_0: GEL Output: Module 16: LCDC STATE = 0
    DSP_0: GEL Output: Module 17: eHRPWM (all) STATE = 0
    DSP_0: GEL Output: Module 18: MMC/SD 1 STATE = 0
    DSP_0: GEL Output: Module 19: UPP STATE = 0
    DSP_0: GEL Output: Module 20: eCAP (all) STATE = 0
    DSP_0: GEL Output: Module 21: EDMA3 TC2 STATE = 0
    DSP_0: GEL Output: Module 24: SCR-F0 Br-F0 STATE = 0
    DSP_0: GEL Output: Module 25: SCR-F1 Br-F1 STATE = 3
    DSP_0: GEL Output: Module 26: SCR-F2 Br-F2 STATE = 3
    DSP_0: GEL Output: Module 27: SCR-F6 Br-F3 STATE = 3
    DSP_0: GEL Output: Module 28: SCR-F7 Br-F4 STATE = 0
    DSP_0: GEL Output: Module 29: SCR-F8 Br-F5 STATE = 0
    DSP_0: GEL Output: Module 30: Br-F7 (DDR Contr) STATE = 0
    DSP_0: GEL Output: Module 31: L3 RAM, SCR-F4, Br-F6 STATE = 0

    ====

    I believe we had inserted enough delay on uC code, but we have still the problem.
    And now I'm wondering if we might have something issues in HW because the above message
    indicates unknown error during boot sequence.

    Could you please let me know 

    • What is this error ?
    • Any suggestions to fix this issue
    Best Regards,
    Kawada
    OMAL-137 SPI Slave Boot
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Mukul Bhatnagar
      Posted by Mukul Bhatnagar
      on Aug 08 2012 08:55 AM
      Mastermind24420 points

      Hi

      You said that failure rate is 1/1000, can you please also share the debug gel output from a passing scenario?

      Regards

      Mukul

       

       

      Don't forget to verify answers to your forum questions by using the green "Verify Answer" button.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Naoki kawada
      Posted by Naoki kawada
      on Aug 09 2012 03:09 AM
      Intellectual275 points

      Hi Mukul,

      Thank you for the reply.
      Here is output for passing scenario.

      ==

      DSP_0: GEL Output: ---------------------------------------------
      DSP_0: GEL Output: | Device Information |
      DSP_0: GEL Output: ---------------------------------------------
      DSP_0: GEL Output: DEV_INFO_00 = 0x9B7DF02F
      DSP_0: GEL Output: DEV_INFO_01 = 0x00000000
      DSP_0: GEL Output: DEV_INFO_02 = 0x0000F3F1
      DSP_0: GEL Output: DEV_INFO_03 = 0x00000002
      DSP_0: GEL Output: DEV_INFO_04 = 0x00000000
      DSP_0: GEL Output: DEV_INFO_05 = 0x000003E0
      DSP_0: GEL Output: DEV_INFO_06 = 0x80100100
      DSP_0: GEL Output: DEV_INFO_07-DEV_INFO_08-DEV_INFO_09-DEV_INFO_10-DEV_INFO_11-DEV_INFO_12 = 8-0-155333-2-37-9
      DSP_0: GEL Output: DEV_INFO_13,DEV_INFO_14,DEV_INFO_15,DEV_INFO_16 = 0,0,0,3422
      DSP_0: GEL Output: -----
      DSP_0: GEL Output: DEV_INFO_17 = 0x00030003
      DSP_0: GEL Output: DEV_INFO_18 = 0x00000000
      DSP_0: GEL Output: DEV_INFO_19 =
      DSP_0: GEL Output: 0
      DSP_0: GEL Output: 0
      DSP_0: GEL Output: 0
      DSP_0: GEL Output: 0
      DSP_0: GEL Output: 0
      DSP_0: GEL Output:
      DSP_0: GEL Output: -----
      DSP_0: GEL Output: DEV_INFO_20 = 0x30303864
      DSP_0: GEL Output: DEV_INFO_21 = 0x3330306B
      DSP_0: GEL Output: DEV_INFO_22 = 0x00000000
      DSP_0: GEL Output: DEV_INFO_23 = 0x00000000
      DSP_0: GEL Output: -----
      DSP_0: GEL Output: DEV_INFO_24 = 0x02009025
      DSP_0: GEL Output: DEV_INFO_25 = 0x08025EC5
      DSP_0: GEL Output: DEV_INFO_06 = 0x80100100
      DSP_0: GEL Output: DEV_INFO_26 = 0x1ABC0000
      DSP_0: GEL Output:
      DSP_0: GEL Output: ---------------------------------------------
      DSP_0: GEL Output: | BOOTROM Info |
      DSP_0: GEL Output: ---------------------------------------------
      DSP_0: GEL Output: ROM ID: d800k003
      DSP_0: GEL Output: Silicon Revision 2.0
      DSP_0: GEL Output: Boot pins: 62449
      DSP_0: GEL Output: Boot Mode: SPI0 Slave (0x0000F3F1)
      DSP_0: GEL Output: ROM Status Code: 0x00000002 Description:
      DSP_0: GEL Output: Unknown error
      DSP_0: GEL Output: Program Counter (PC) = 0xC0014D58
      DSP_0: GEL Output:
      DSP_0: GEL Output: ---------------------------------------------
      DSP_0: GEL Output: | Clock Information |
      DSP_0: GEL Output: ---------------------------------------------
      DSP_0: GEL Output:
      DSP_0: GEL Output: PLLs configured to utilize crystal.
      DSP_0: GEL Output: ASYNC3 = PLL0_SYSCLK2
      DSP_0: GEL Output:
      DSP_0: GEL Output: NOTE: All clock frequencies in following PLL sections are based
      DSP_0: GEL Output: off OSCIN = 1103403942 MHz. If that value does not match your hardware
      DSP_0: GEL Output: you should change the #define in the top of the gel file, save it,
      DSP_0: GEL Output: and then reload.
      DSP_0: GEL Output:
      DSP_0: GEL Output: ---------------------------------------------
      DSP_0: GEL Output: | PLL0 Information |
      DSP_0: GEL Output: ---------------------------------------------
      DSP_0: GEL Output:
      DSP_0: GEL Output: PLL0_SYSCLK1 = 288 MHz
      DSP_0: GEL Output: PLL0_SYSCLK2 = 144 MHz
      DSP_0: GEL Output: PLL0_SYSCLK3 = 96 MHz
      DSP_0: GEL Output: PLL0_SYSCLK4 = 72 MHz
      DSP_0: GEL Output: PLL0_SYSCLK5 = 96 MHz
      DSP_0: GEL Output: PLL0_SYSCLK6 = 288 MHz
      DSP_0: GEL Output: PLL0_SYSCLK7 = 48 MHz
      DSP_0: GEL Output:
      DSP_0: GEL Output: ---------------------------------------------
      DSP_0: GEL Output: | PSC0 Information |
      DSP_0: GEL Output: ---------------------------------------------
      DSP_0: GEL Output:
      DSP_0: GEL Output: State Decoder:
      DSP_0: GEL Output: 0 = SwRstDisable (reset asserted, clock off)
      DSP_0: GEL Output: 1 = SyncReset (reset assered, clock on)
      DSP_0: GEL Output: 2 = Disable (reset de-asserted, clock off)
      DSP_0: GEL Output: 3 = Enable (reset de-asserted, clock on)
      DSP_0: GEL Output: >3 = Transition in progress
      DSP_0: GEL Output:
      DSP_0: GEL Output: Module 0: EDMA3CC (0) STATE = 3
      DSP_0: GEL Output: Module 1: EDMA3 TC0 STATE = 3
      DSP_0: GEL Output: Module 2: EDMA3 TC1 STATE = 3
      DSP_0: GEL Output: Module 3: EMIFA (BR7) STATE = 3
      DSP_0: GEL Output: Module 4: SPI 0 STATE = 3
      DSP_0: GEL Output: Module 5: MMC/SD 0 STATE = 3
      DSP_0: GEL Output: Module 6: AINTC STATE = 3
      DSP_0: GEL Output: Module 7: ARM RAM/ROM STATE = 3
      DSP_0: GEL Output: Module 9: UART 0 STATE = 3
      DSP_0: GEL Output: Module 10: SCR 0 (BR0/1/2/8) STATE = 3
      DSP_0: GEL Output: Module 11: SCR 1 (BR4) STATE = 3
      DSP_0: GEL Output: Module 12: SCR 2 (BR3/5/6) STATE = 3
      DSP_0: GEL Output: Module 13: PRUSS STATE = 3
      DSP_0: GEL Output: Module 14: ARM STATE = 0
      DSP_0: GEL Output: Module 15: DSP STATE = 3
      DSP_0: GEL Output:
      DSP_0: GEL Output: ---------------------------------------------
      DSP_0: GEL Output: | PSC1 Information |
      DSP_0: GEL Output: ---------------------------------------------
      DSP_0: GEL Output:
      DSP_0: GEL Output: State Decoder:
      DSP_0: GEL Output: 0 = SwRstDisable (reset asserted, clock off)
      DSP_0: GEL Output: 1 = SyncReset (reset assered, clock on)
      DSP_0: GEL Output: 2 = Disable (reset de-asserted, clock off)
      DSP_0: GEL Output: 3 = Enable (reset de-asserted, clock on)
      DSP_0: GEL Output: >3 = Transition in progress
      DSP_0: GEL Output:
      DSP_0: GEL Output: Module 1: USB0 (2.0) STATE = 3
      DSP_0: GEL Output: Module 2: USB1 (1.1) STATE = 3
      DSP_0: GEL Output: Module 3: GPIO STATE = 3
      DSP_0: GEL Output: Module 4: UHPI STATE = 3
      DSP_0: GEL Output: Module 5: EMAC STATE = 3
      DSP_0: GEL Output: Module 6: EMIFB (BR20) STATE = 3
      DSP_0: GEL Output: Module 7: MCASP0 + FIFO STATE = 3
      DSP_0: GEL Output: Module 8: MCASP1 + FIFO STATE = 3
      DSP_0: GEL Output: Module 9: MCASP2 + FIFO STATE = 3
      DSP_0: GEL Output: Module 10: SPI 1 STATE = 3
      DSP_0: GEL Output: Module 11: I2C 1 STATE = 3
      DSP_0: GEL Output: Module 12: UART 1 STATE = 3
      DSP_0: GEL Output: Module 13: UART 2 STATE = 3
      DSP_0: GEL Output: Module 16: LCDC STATE = 3
      DSP_0: GEL Output: Module 17: eHRPWM (all) STATE = 3
      DSP_0: GEL Output: Module 20: eCAP (all) STATE = 3
      DSP_0: GEL Output: Module 21: eQEP 0/1 STATE = 3
      DSP_0: GEL Output: Module 24: SCR8 (Br15) STATE = 3
      DSP_0: GEL Output: Module 25: SCR7 (Br12) STATE = 3
      DSP_0: GEL Output: Module 26: SCR12 (Br18) STATE = 3
      DSP_0: GEL Output: Module 31: L3 RAM (Br13) STATE = 3

      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