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<damjanl@o...>
    Date: Thu Jun 24 14:27:38 CEST 2004
    Subject: [openrisc] start of execution
    Top
    Michael

    are you sure you are using correct release (ie I suggest the latest rel_28).
    Please check that you have in your or1200_sprs.v the following line

    if (rst)
    sr <= #1 {1'b1, `OR1200_SR_EPH_DEF, {`OR1200_SR_WIDTH-3{1'b0}}, 1'b1};

    sr[EPH] goes through except_prefix to or1200_genpc.v and makes sure that
    first fetch comes from the right address. In your case sr[EPH] has to be 1
    at reset and this should mean that first fetch would have to come from
    0xF000_0000 as indicated by or1200_genpc.v lines:

    if (rst)
    pcreg <= #1 ({(except_prefix ? `OR1200_EXCEPT_EPH1_P :
    `OR1200_EXCEPT_EPH0_P), `OR1200_EXCEPT_RESET, `OR1200_EXCEPT_V} - 1) >> 2;

    regards,
    Damjan

    ----- Original Message -----
    From: "Michael Unnebäck" <michael@h...>
    To: "List about OpenRISC project" <openrisc@o...>
    Sent: Wednesday, June 23, 2004 11:55 PM
    Subject: [openrisc] start of execution


    > Hi all,
    >
    > I have a system with RAM at location 0x00000000 and FLASH memory at
    > 0xF0000000.
    > In FLASH I have my boot code at adress 0xF0000100. I want OR1200 to
    > start execute
    > at that adress.
    >
    > To do so I use the following define in or1200_defines.v
    > // Default Exception Prefix
    > //
    > // 1'b0 - OR1200_EXCEPT_EPH0_P (0x0000_0000)
    > // 1'b1 - OR1200_EXCEPT_EPH1_P (0xF000_0000)
    > //
    > `define OR1200_SR_EPH_DEF 1'b1
    >
    > What happens is the following:
    > the first instruction is fetched from 0x100 (reading an undefined value
    > from RAM)
    > the second instruction is fetched from 0xF0000100
    >
    > System does not boot.
    >
    > If I place l.nop (0x18000000) at adress 0x100 with JTAG debug interface
    > system boots OK
    > when I press reset. But the startup gets a bit complicated ...
    >
    > Any suggestion on how to solve the problem ?
    > /Michael Unneback
    >
    >
    >
    > _______________________________________________
    > http://www.opencores.org/mailman/listinfo/openrisc


    ReferenceAuthor
    [openrisc] start of executionMichael Unnebäck

    Follow upAuthor
    [openrisc] start of executionMichael Unnebäck

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