Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6061353
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T08:55:41+00:00 2026-05-23T08:55:41+00:00

A special memory block would be periodically updated by DMA task. When another Task

  • 0

A special memory block would be periodically updated by DMA task. When another Task tried to look up data in this block frequently, there is MCE (Machine Check Exception) about L1 data cache parity check.
Can I invalidate the L1 Data Cache for this memory block totally or only after DMA update?

There is an interesting API in libogc like:

void DCInvalidateRange(void *startaddress,u32 len); 

    .globl DCInvalidateRange
DCInvalidateRange:
    cmplwi r4, 0   # zero or negative size?
    blelr
    clrlwi. r5, r3, 27  # check for lower bits set in address
    beq 1f
    addi r4, r4, 0x20 
1:
    addi r4, r4, 0x1f
    srwi r4, r4, 5
    mtctr r4
2:
    dcbi r0, r3
    addi r3, r3, 0x20
    bdnz 2b
    blr

I am not familiar with ASM neither ASM on PowerPC. Would people recommend links or descriptions on this operation?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T08:55:42+00:00Added an answer on May 23, 2026 at 8:55 am

    Here is the best resource, the PowerPC Programming Environments Manual

    Are there specific questions you have about the cache?

    Working with DMA, your choices are snooping or cache flushing. To get this error, you probably have snooping enabled. So the problem is likely that you have data in L1 cache that is uninitialized.

    There’s a second resource, the E500 Core Reference Manual, which I couldn’t download at the moment but which should give a good description of how to init the cache. I use the E-600 book all the time.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Is there something special about Safari for Windows and AJAX? In other words: Are
I have a special url which I would want only few people to have
This is a bit special: I'm loading some HTML in string form into the
Possible Duplicates: Why is there a special new and delete for arrays? ( POD
I have a block of memory with elements of fixed size, say 100 bytes,
Is there a way to find out the memory usage of each dll within
Special thanks in advance for sending me answer........ I m the beginner in iphone
What special method(s?) should I redefine in my class so that it handled AttributeError
X Windows has special processes called Window Managers that manage the layout of windows
Kind of a special case problem: I start a process with System.Diagnostics.Process.Start(..) The process

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.