1/1
ORP memory layout
by Unknown on Jan 22, 2004 |
Not available! | ||
ORP.txt says there is 1G RAM at address 0x0. OR1000 wants to find its
reset vector at addr 0x100. So obviously, steps must be taken to have program code available in the RAM area after reset. The ORP HDL code mirrors the ROM temporarily to address 0x0. So that is a possible solution. Still I don't understand why ORP places RAM at the processors reset address. But that scheme doesn't work on the or1ksim, which doesn't do the mirroring. Does that mean I have to build a seperate executable for use with or1ksim? Heiko |
ORP memory layout
by Unknown on Jan 23, 2004 |
Not available! | ||
Heiko,
no, you should use exactly the same executable on or1ksim and your HW. What is usually done is than when system starts, MC (momory controller) is not inicialized and flash is seen all over the address map. Therefore or1k has no problems booting from 0x100. Next, or1k jumps to the address where flash will reside after the inicialization of MC. MC inicialization is done and RAM gets visible at 0. Next, .data and .bss and possibly some other sections as well gets copied and initialized. Then program jumps to "main" routine of C program or some other startup routine, which calls "main". You have examples how this functions in basically all or1k programs, e.g. orpmon. hope it helps, Marko On Thursday 22 January 2004 16:12, Heiko Panther wrote:
ORP.txt says there is 1G RAM at address 0x0. OR1000 wants to find its
reset vector at addr 0x100. So obviously, steps must be taken to have
program code available in the RAM area after reset.
The ORP HDL code mirrors the ROM temporarily to address 0x0. So that is
a possible solution. Still I don't understand why ORP places RAM at the
processors reset address.
But that scheme doesn't work on the or1ksim, which doesn't do the
mirroring. Does that mean I have to build a seperate executable for use
with or1ksim?
Heiko
_______________________________________________
http://www.opencores.org/mailman/listinfo/openrisc
|
ORP memory layout
by Unknown on Jan 23, 2004 |
Not available! | ||
no, you should use exactly the same executable on or1ksim and your HW.
What is usually done is than when system starts, MC (momory controller) is not inicialized and flash is seen all over the address map. Therefore or1k has no problems booting from 0x100. Next, or1k jumps to the address where flash will reside after the inicialization of MC. MC inicialization is done and RAM gets visible at 0. Does or1ksim simulate this behaviour? What do I have to do so this behaviour is simulated? Are the sim.cfg "ce" properties of the memory areas important for this? Heiko |
ORP memory layout
by Unknown on Jan 23, 2004 |
Not available! | ||
Yes!
On Friday 23 January 2004 13:30, Heiko Panther wrote:
> no, you should use exactly the same executable on or1ksim and your HW.
Does or1ksim simulate this behaviour? What do I have to do so this
behaviour is simulated? Are the sim.cfg "ce" properties of the memory
areas important for this?
Heiko
_______________________________________________
http://www.opencores.org/mailman/listinfo/openrisc
> What is usually done is than when system starts, MC (momory controller) > is not inicialized and flash is seen all over the address map. Therefore > or1k has no problems booting from 0x100. Next, or1k jumps to the address > where flash will reside after the inicialization of MC. MC inicialization > is done and RAM gets visible at 0. |
ORP memory layout
by Unknown on Jan 23, 2004 |
Not available! | ||
> Yes!
Could you explain how the "ce" properties work and what general steps I have to take (with memory regions, memory controller settings etc.) to achieve the mirror effect? I'm going to put that info into the READMEs for later reference then. Heiko |
ORP memory layout
by Unknown on Jan 26, 2004 |
Not available! | ||
CEs are numbered as you specify them in sim.cfg.
See memory controller doc for more details. Marko On Friday 23 January 2004 18:40, Heiko Panther wrote:
> Yes!
Could you explain how the "ce" properties work and what general steps I
have to take (with memory regions, memory controller settings etc.) to
achieve the mirror effect? I'm going to put that info into the READMEs
for later reference then.
Heiko
_______________________________________________
http://www.opencores.org/mailman/listinfo/openrisc
|
ORP memory layout
by Unknown on Feb 5, 2004 |
Not available! | ||
huh, sorry, I though it has this option.
But it is not so hard to add it: In except.c, except_handle: just logical-or the ea (effective address) with 0xf0000000. Maybe we should put it under sim.cfg? Marko On Wednesday 04 February 2004 14:23, you wrote:
Marko Mlinar wrote:
> you can:
> - modify or1ksim (but don' put it on cvs) > - boot from f0000100, if your flash is visible there I was going to put my flash to 0xf0000000. But it looks like or1ksim has no option to boot from there. Heiko |
ORP memory layout
by Unknown on Feb 5, 2004 |
Not available! | ||
Marko Mlinar wrote:
Marko Mlinar wrote:
you can:
- modify or1ksim (but don' put it on cvs) - boot from f0000100, if your flash is visible there I was going to put my flash to 0xf0000000. But it looks like or1ksim has no option to boot from there. There is a way to do this from or1ksim. There's an option to set the initial contents of the SR register. If you set the EPH (Exception Prefix High) bit, the simulator will boot at 0xf0000100. (I'm sorry I don't have access to my files now so I can't relate the exact syntax.) -Scott |
1/1