On 2009/11/29 at 06:30, Mark Cave-Ayland mark.cave-ayland@siriusit.co.uk
wrote:
Hi everyone,
Here is a second version of the patch which attempts to reverse the argument order of the CIF Forth words so that they can be called correctly from both Forth and C.
The patch is fairly straightforward; probably the only unexpected part is the need to rename the existing /openprom/client-services "claim" and "release" words to "cif-claim" and "cif-release" respectively. This is because we need to use the "claim" and "release" words in forth/system/ciface.fs to reverse the argument order before calling the real underlying words.
I've tested this on a FC12 PPC CD as well as my SPARC64 Milax CD and with this version of the patch, the CIF words are called correctly in both cases. I'd like to apply this reasonably soon, so please can people test on their setups to make sure it doesn't break anything?
Signed-off-by: Mark Cave-Ayland mark.cave-ayland@siriusit.co.uk
(Sorry if the patch wasn't supposed to fix this...)
After applying this patch still getting:
OpenBIOS for Sparc64 Configuration device id QEMU version 1 machine id 0 CPUs: 1 x SUNW,UltraSPARC-II UUID: 00000000-0000-0000-0000-000000000000 claim isn't unique. release isn't unique. Welcome to OpenBIOS v1.0 built on Nov 30 2009 15:44 Type 'help' for detailed information
0 > boot cdrom [sparc64] Booting file 'cdrom' with parameters '' Not a bootable ELF image Not a Linux kernel image Not a bootable a.out image Loading FCode image... Loaded 7120 bytes entry point is 0x4000 Evaluating FCode... Unhandled Exception 0x0000000008000000 PC = 0x00000000ffd10e3c NPC = 0x00000000ffd10e40 Stopping execution
and GDB shows the error at: (gdb) l *0x00000000ffd10e3c 0xffd10e3c is in cfetch (../include/openbios/stack.h:34). 29 typedef ucell phandle_t; 30 31 32 33 34 static inline void PUSH(ucell value) { 35 dstack[++dstackcnt] = (value); 36 } 37 static inline void PUSH_xt( xt_t xt ) { PUSH( (ucell)xt ); } 38 static inline void PUSH_ih( ihandle_t ih ) { PUSH( (ucell)ih ); }
Let me know if I can provide any additional output or debugging steps! -Nick
-------- This e-mail may contain confidential and privileged material for the sole use of the intended recipient. If this email is not intended for you, or you are not responsible for the delivery of this message to the intended recipient, please note that this message may contain SEAKR Engineering (SEAKR) Privileged/Proprietary Information. In such a case, you are strictly prohibited from downloading, photocopying, distributing or otherwise using this message, its contents or attachments in any way. If you have received this message in error, please notify us immediately by replying to this e-mail and delete the message from your mailbox. Information contained in this message that does not relate to the business of SEAKR is neither endorsed by nor attributable to SEAKR.