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: "Damjan Lampret" <lampret@o...>
    Date: Thu, 23 Oct 2003 13:34:34 +0200
    Subject: Re: [openrisc] prefetch problem
    Top

    Tomas,
    
    what surprises me is that we have orpmon running on both development board
    and not to mention on real silicon implementation (an ASIC). In case you
    didn't change orpmon then it is really a little bit strange. Can you confirm
    you haven't changed orpmon. Can you send me your binary of orpmon and also
    explain your address space (particulary where do you have SRAM, Flash amd
    UART) - this should allow me to run your binary of orpmon on a similar
    environment - if that is going to work I'll ask you to send me your entire
    RTL environment. Can you also tell if you are running everything in RTL
    simulation (the output below is from RTL simulation?). Thanks.
    
    regards,
    Damjan
    
    ----- Original Message ----- 
    From: "Tomas Jonsson" <toj@s...>
    To: <openrisc@o...>
    Sent: Thursday, October 23, 2003 10:28 AM
    Subject: SV: [openrisc] prefetch problem
    
    
    >
    > I am not using the latest or1200 rtl but it is not old and I have checked
    if
    > you did some changes. Anyway I have checked out the latest code now and it
    > does not change anything. The same problem appears at the same time.
    >
    > I have also enabled the caches and it makes the program execute longer
    (6000
    > more instructions). The tick interrupt appears in another task. Ii seems
    > there is the same problem. I am exploring it right now and I will come
    back
    > to you.
    >
    > Regards, Tomas
    >
    > -----Ursprungligt meddelande-----
    > Från: owner-openrisc@o...
    > [mailto:owner-openrisc@o...]För Damjan Lampret
    > Skickat: den 23 oktober 2003 00:10
    > Till: openrisc@o...
    > Ämne: Re: [openrisc] prefetch problem
    >
    >
    > Hi Tomas,
    >
    > I'm curious, what happens if you enable instruction cache.
    >
    > And of course you are using the latest or1200 rtl, aren't you.
    >
    > regards,
    > Damjan
    >
    > ----- Original Message -----
    > From: "Tomas Jonsson" <toj@s...>
    > To: <openrisc@o...>
    > Cc: "Tomas Jonsson" <toj@s...>
    > Sent: Wednesday, October 22, 2003 11:45 PM
    > Subject: [openrisc] prefetch problem
    >
    >
    > >
    > > I have a problem that the last executed instruction is executed forever.
    > It
    > > happends in the uart_putc() function of orpmon. The uart_putc() has
    worked
    > > properly for several times but when a tick interrupt happends in the
    > middle
    > > of it the uart_putc() polling loop not work properly. See the
    instruction
    > > sequence below.
    > >
    > >
    > > 0xbad0 <uart_putc+124>: l.lbz r3,0x0(r5)
    > > 0xbad4 <uart_putc+128>: l.andi r3,r3,0x60
    > > ...
    > > 0xbbd4 <tick_interrupt+52>: l.jr r9
    > > 0xbbd8 <tick_interrupt+56>: l.addi r1,r1,0x4
    > > ...
    > > 0x2180 <_tick+244>: l.mfspr r31,r0,0x40
    > > 0x2184 <_tick+248>: l.lwz r31,0x74(r1)
    > > 0x2188 <_tick+252>: l.lwz r3,0x78(r1)
    > > 0x218c <_tick+256>: l.addi r1,r1,0x80
    > > 0x2190 <_tick+260>: l.rfe
    > >
    > > 0xbad8 <uart_putc+132>: l.sfne r3,r4
    > > 0xbadc <uart_putc+136>: l.bf 0xfffffffd
    > > 0xbae0 <uart_putc+140>: l.nop 0x0
    > >
    > > 0xbad0 <uart_putc+124>: l.lbz r3,0x0(r5)
    > > #(is the never ending instruction, 8c650000)
    > >
    > > #after this should the following instr had been executed but never did
    > > 0xbad4 <uart_putc+128>: l.andi r3,r3,0x60
    > > 0xbad8 <uart_putc+132>: l.sfne r3,r4
    > > 0xbadc <uart_putc+136>: l.bf 0xfffffffd
    > > 0xbae0 <uart_putc+140>: l.nop 0x0
    > > ... and so on.
    > >
    > > Another strange thing is that the CPU still is doing infinite
    instruction
    > > fetch accesses to address 0xbadc. They never stops even if the execution
    > of
    > > instructions seems to stop?!
    > >
    > > The caches are disabled. I have attached a wave dump.
    > >
    > > Please can someone help me?
    > > If you need more information do not hesitate to ask me.
    > >
    > > Best regards, Tomas Jonsson
    > >
    > >
    >
    > 
    >
    >
    >
    > 
    
    
    
    

    ReferenceAuthor
    SV: [openrisc] prefetch problemTomas Jonsson

    Follow upAuthor
    SV: [openrisc] prefetch problemTomas Jonsson

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