Subject: Re: The Kernel for powermacs
To: Wolfgang Solfrank <ws@kurt.tools.de>
From: Dan Jacobowitz <youngdrow@geocities.com>
List: port-powerpc
Date: 01/02/1998 11:05:14
I have been examining the linuxppc code a bit, and a few discrepencies have
turned up - nothing that seems to be the cause of our problem, though.

For instance - they do not use OF_claim in their bootloader the way we do
in ofwboot/boot.c, as far as I can tell.  They simply load the kernel in
low core (0x0000).  Also, they are more rigid about setting the return
value slot in each open firmware call to -1, which we skip - probably,
safely.

I also noticed one oddity in our locore.S.  This is right above
ENTRY(ofw_stack):

/*
 * Switch to/from OpenFirmware real mode stack
 *
 * Note: has to be called as the very first thing in OpenFirmware interface
 * routines.
 * E.g.:
 * int
 * OF_xxx(arg1, arg2)
 * type arg1, arg2;
 * {
 *	static struct {
 *		char *name;
 *		int nargs;
 *		int nreturns;
 *		char *method;
 *		int arg1;
 *		int arg2;
 *		int ret;
 *	} args = {
 *		"xxx",
 *		2,
 *		1,
 *	};
 *
 *	ofw_stack();
 *	args.arg1 = arg1;
 *	args.arg2 = arg2;
 *	if (openfirmware(&args) < 0)
 *		return -1;
 *	return args.ret;
 * }
 */

Is this not yet an issue in ofwboot? Does it have to do with the kernel's
own stack? It is called religiously in openfirm.c but not in
ofwboot/Locore.c.



In case no one else mentioned this...
After the first boot fails with a default catch, if I try again, instead of:
loading .text...
loading .data...
clearing .bss...

I get:
loading .textCLAIM FAILED

Hm.
I confess yet again all the intricacies of this are bypassing me :)

---------------------------------------------------------------------
| Dan Jacobowitz                 | drow@drow.net                    |
|  Administrator Extraordinaire  | Web site coming someday          |
| My opinions are my own -       | Day Job: http://www.wwwcomm.com  |
| My mistakes are someone else's |                                  |
---------------------------------------------------------------------