OpenCores

The openrisc bugtracker has been moved to: bugzilla.opencores.org. This page is read-only

Or1ksim Memory Controller problems

Back to bugtracker overview.

Information:
Type :: BUG
Status :: CLOSED
Assigned to :: Jeremy, Bennett

Description:

The Or1ksim memory controller has problems.

  1. The startup code sets the BA_MASK register for 64MB memory blocks. This means that if a smaller block of memory has been declared in the configuration file, then accesses to higher addresses, but less than 64MB will be allowed, but with no memory allocated, cause a segfault (see verify_memoryarea in memory.c).

  2. Enabling the memory controller causes memory at 0xf0000000 to be mirrored at 0x00000000. This means programs loaded in flash at 0xf0000000 work out of the box. However without the MC enabled this does not happen. The correct solution (in both cases) is to set the EPH bit in SR in the CPU configuration section. This needs more investigation, since I haven't seen what triggers this.

  3. Disabling the memory controller causes problems with the standard library startup code, since it expects to configure a memory controller at 0x93000000. This will cause lots of memory access errors. The workaround is to declare a 128B memory block at address 0x93000000.

These problems need further investigation (and probably splitting into 3 bugs). Placed here for the record.

Jeremy

Comments:

starostin, vitaly Jul 31, 2011
Bennett, Jeremy Jul 1, 2011
Transferred to OpenRISC bugzilla (Bug 15).

Marking closed in this bugtracker.

das, subhasis Nov 26, 2010
Bennett, Jeremy Oct 2, 2010

Out of the box, using the memory controller in Or1ksim will cause the simulator to hang as a consequence of the above problems.

Bug 1824 marked as a duplicate of this bug.

Bennett, Jeremy May 20, 2010

Or1ksim manual in SVN updated to warn of these issues and describe the workaround.

Jeremy

Post a comment:
Login to post comments!

Back to bugtracker overview.

© copyright 1999-2012 OpenCores.org, equivalent to ORSoC AB, all rights reserved. OpenCores®, registered trademark.