AM3715: Enabling ECC For L2 Cache - Processors Forum - TI E2E

TI E2E support forums TI E2E support forums
  • Search
  • User
  • Site
  • Search
  • User
  • E2E™ design support >
  • Forums
    • Amplifiers
    • API solutions
    • Audio
    • Clock & timing
    • Data converters
    • DLP® products
    • Interface
    • Isolation
    • Logic
    • Microcontrollers
    • Motor drivers
    • Power management
    • Processors
    • RF & microwave
    • Sensors
    • Site support
    • Switches & multiplexers
    • Tools
    • Wireless connectivity
    • Archived forums
    • Archived groups
  • Technical articles
  • TI training
    • Tech days
    • Online training
    • Live events
    • Power Supply Design Seminar
  • Getting started
  • 简体中文
  • More
  • Cancel
Processors

Processors

Processors forum

  • Mentions
  • Tags
  • More
  • Cancel
  • Ask a related question What is a related question? A related question is a question created from another question. When the related question is created, it will be automatically linked to the original question.
  • Ask a new question
  • Ask a new question
  • Cancel
  • State TI Thinks Resolved
  • Locked Locked
  • Replies 4 replies
  • Answers 1 answer
  • Subscribers 98 subscribers
  • Views 950 views
  • Users 0 members are here
  • AM3715
Support feedback Options
  • Tags
  • More
  • Cancel
Options
  • Share
  • More
  • Cancel
Related

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.

AM3715: Enabling ECC for L2 cache Zane Tarumoto Zane Tarumoto Prodigy 50 points Part Number: AM3715

So my software engineer was attempting to enable ECC fro l2 Cache and was unable to using this code snippet for an AM3715:

MRC p15, 1, <Rd>, c9, c0, 2 ; Read L2 Cache Auxiliary Control Register

ORR <Rd>, <Rd>, #0x0020_0000; Set parity/ECC enable

MCR p15, 1, <Rd>, c9, c0, 2 ; Write L2 Cache Auxiliary Control Register

MRC p15, 1, <Rd>, c9, c0, 2 ; Read L2 Cache Auxiliary Control Register

TST <Rd>, #0x0020_0000 ; Test for parity/ECC enable

BEQ no_parity_ram_setup

parity_ram_setup:

;<do parity RAM setup>

B done_parity_RAM_setup

no_parity_ram_setup:

;<do no parity/ECC RAM setup>

done_parity_RAM_setup:

;<continue>

He stated that the all indications show that the processor does not support this function. The cortex a8 shows this is the step to enable it and to verify that it was enabled, but he stated that it does not enable. Does this processor support ECC and if so what is the code I need to implement that will enable the bit. Thank you!

over 8 years ago
  • Cancel
  • Biser Gatchev-XID 0 Biser Gatchev-XID over 8 years ago TI__Guru**** 393215 points The factory team have been notified. They will respond here.
    • Cancel
    • Up 0 True Down
    • Cancel
  • JJD 0 JJD over 8 years ago in reply to Biser Gatchev-XID TI__Guru* 89485 points Zane, the L2 Cache Auxiliary Control Register has to be written in a secure mode. The AM37x provides a monitor API to perform CP15 writes in secure mode. Please check out section 26.4.1 "Booting Overview" for a description of these services. Regards, James
    • Cancel
    • Up 0 True Down
    • Cancel
  • Zane Tarumoto 0 Zane Tarumoto over 8 years ago in reply to JJD Prodigy 50 points So They have attempted this: mrc p15, 1, r0, c9, c0, 2 /* Read L2 Cache auxiliary control register */ orr r0, r0, #0x10000000 /* Set to ECC instead of parity */ orr r0, r0, #0x00200000 /* Set ECC enable bits */ ldr r12,=2 /* Setup the write to the L2 Cache auxiliary control register */ dsb isb dmb smc #1 /* Write the L2 cache auxiliary control register */ which I believe matches the section referenced. After executing this code we read the L2 cache auxiliary control register and bit 21 is not set but bit 28 is. So we can write to this register, but for some reason bit 21 is not able to be written.
    • Cancel
    • Up 0 True Down
    • Cancel
  • JJD 0 JJD over 8 years ago in reply to Zane Tarumoto TI__Guru* 89485 points

    Hi Zane, not sure what could be going wrong. Can you ensure you don't have the L2 cache enabled when you try to enable the ECC. I found the following sequence in the ARM TRM

    To enable the L2 cache following a reset or to change the settings of the L2 Cache

    Auxiliary Control Register, you must use the following sequence:

    1. Complete the processor reset sequence or disable the L2 cache.

    2. Program the L2 Cache Auxiliary Control Register. See c9, L2 Cache Auxiliary

    Control Register on page 3-124 for details.

    Note

    If you have configured the processor to support parity or ECC memory, you must

    enable those features before you can program the C bit.

    3. Program the Auxiliary Control Register to set the L2EN bit to 1. See c1, Auxiliary

    Control Register on page 3-61 for details.

    4. Program the C bit in the CP15 Control Register c1. See c1, Control Register on

    page 3-58 for details.

    Regards,

    James

    • Cancel
    • Up 0 True Down
    • Cancel

Từ khóa » C9 Ranchu