LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Find Resources
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Openrisc > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Matjaz Breskvar<phoenix@o...>
    Date: Sat Feb 19 01:54:51 CET 2005
    Subject: [openrisc] instruction cache
    Top
    Ok, i should have removed some code from this two functions.
    it's commented out in this email...

    best regards,
    p.

    * Matjaz Breskvar (phoenix@o...) wrote:
    > * sankar@m... (sankar@m...) wrote:
    >
    > Hi,
    >
    > > Could you give a software example (preferrably in assembly) which
    > > does that?
    >
    > This is from Linux...
    >
    > The define names may or may not be obvious to you... if
    > they are not please ask again... ;)
    >
    >
    > # define ENTRY(symbol) \
    > .global symbol ;\
    > symbol:
    >
    >
    > ENTRY(_ic_enable)
    /*
    * SF_DISABLED(r6,INIT_IC_ADDR)
    * l.bf 9f
    * l.nop
    */
    > /* Disable IC */
    > l.mfspr r6,r0,SPR_SR
    > l.addi r5,r0,-1
    > l.xori r5,r5,SPR_SR_ICE
    > l.and r5,r6,r5
    > l.mtspr r0,r5,SPR_SR
    >
    > /* Invalidate IC */
    > l.addi r6,r0,0
    > l.addi r5,r0,IC_SIZE
    > 1:
    > l.mtspr r0,r6,SPR_ICBIR
    > l.sfne r6,r5
    > l.bf 1b
    > l.addi r6,r6,IC_LINE
    >
    > /* Enable IC */
    > l.mfspr r6,r0,SPR_SR
    > l.ori r6,r6,SPR_SR_ICE
    > l.mtspr r0,r6,SPR_SR
    > l.nop
    > l.nop
    > l.nop
    > l.nop
    > l.nop
    > l.nop
    > l.nop
    > l.nop
    > l.nop
    > l.nop
    > 9:
    > l.jr r9
    > l.nop
    >
    >
    > ENTRY(_dc_enable)
    /*
    * SF_DISABLED(r6,INIT_DC_ADDR)
    * l.bf 9f
    * l.nop
    */
    > /* Disable DC */
    > l.mfspr r6,r0,SPR_SR
    > l.addi r5,r0,-1
    > l.xori r5,r5,SPR_SR_DCE
    > l.and r5,r6,r5
    > l.mtspr r0,r5,SPR_SR
    >
    > /* Flush DC */
    > l.addi r6,r0,0
    > l.addi r5,r0,DC_SIZE
    > 1:
    > l.mtspr r0,r6,SPR_DCBIR
    > l.sfne r6,r5
    > l.bf 1b
    > l.addi r6,r6,DC_LINE
    >
    > /* Enable DC */
    > l.mfspr r6,r0,SPR_SR
    > l.ori r6,r6,SPR_SR_DCE
    > l.mtspr r0,r6,SPR_SR
    > 9:
    > l.jr r9
    > l.nop
    >
    >
    > > I am asking this because I thought while using or32-uclinux tools
    > > to compile my assembly with cache that is automatically done. I have
    > > included the Makefile below.
    > > or32-uclinux tools do not automaticaly clear the cache. the code > in the source file has to do it explicitly... > > best regards, > p. > _______________________________________________ > http://www.opencores.org/mailman/listinfo/openrisc

    ReferenceAuthor
    [openrisc] instruction cacheMatjaz Breskvar

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.