[Bug 1691] sparc64 usiii MMU trap handler crash

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Fri Aug 27 02:05:13 UTC 2010


https://www.rtems.org/bugzilla/show_bug.cgi?id=1691

Chris Johns <chrisj at rtems.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |chrisj at rtems.org

--- Comment #4 from Chris Johns <chrisj at rtems.org> 2010-08-26 21:05:11 CDT ---
(In reply to comment #4)
> 
> One solution I can think of at the moment is to try to copy more of the
> firmware. I'm not sure exactly how much needs to be copied though, and it would
> be best to determine this amount off-line so that the linker knows about the
> region of code being used.  An experimentally derived value of doubling the
> copied space (from 32K to 64K) works on the Simics simulator.  The attached
> patch introduces this doubling multiplier in the trap table size to accomplish
> the copying.

As commented in the patch this is a hack. What happens if the firmware is
upgraded and you have a number of different versions operating in the field ?

> Another possible solution would be to install a replacement trap handler,
> perhaps with a jump to the original trap handler (which still exists) in the
> firmware.

If I understand this correctly, you turn the relative address into an absolute
address when the new trap table is installed and call the absolute address
pointing to the firmware ?

>  This would have to be done for every trap handler that branches
> outside of the trap table.  Since the previous fix works, I did not investigate
> this approach.

Sound like a much better solution.

I do not consider this issue resolved or fixed with the hack installed. Please
consider reopening.

-- 
Configure bugmail: https://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the bugs mailing list