Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 03 Apr 2007 17:16:32 -0700
From:      Peter Grehan <grehan@freebsd.org>
To:        Andrew Turner <andrew@fubar.geek.nz>
Cc:        freebsd-ppc@freebsd.org
Subject:   Re: Exception in openfirmware calling
Message-ID:  <4612EE60.8040103@freebsd.org>
In-Reply-To: <20070404081638.536ca636@hermies.int.fubar.geek.nz>
References:  <20070331141428.5f7cb6b4@hermies.int.fubar.geek.nz>	<4612AA47.4060802@freebsd.org> <20070404081638.536ca636@hermies.int.fubar.geek.nz>

next in thread | previous in thread | raw e-mail | index | archive | help
> I've used the ofw_stack code from NetBSD for now. It creates a new
> stack with a real address.

  That will work, though I don't like the way it's implemented: the 
calls in all of the OFW routines is a little ugly. My plan was to have a 
call_onstack() routine that would allow a function to be executed on a 
specified stack. This can be used in other places too, such as when the 
initial thread has to switch over to it's allocated stack.

> Unfortunately there is still an exception in an address that looks like
> it is from openfirmware [1].

  DAR  0xD575A998

  That looks like a kernel virtual address: is it possible that a stack 
parameter is still getting through ? The BSD OFW routines try and 
allocate their parameters in bss (which should be 1:1 mapped), but 
sometimes a buffer will get passed through: e.g. a read/write.

later,

Peter.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4612EE60.8040103>