Subject: MacOnLinux
To: None <port-macppc@netbsd.org, port-powerpc@netbsd.org>
From: Emmanuel Dreyfus <p99dreyf@criens.u-psud.fr>
List: port-powerpc
Date: 02/27/2001 22:24:24
I had a closer look at what MacOnLinux (MOL) needs in the Linux kernel.
The bigger job is in linux/arch/ppc/kernel/head.S, which seems to be a
Locore.S counterpart. Most of the MOL specific code is about MOL
'hooks', via the MOL_HOOK macro and other MOL_ macros defined in
linux/arch/ppc/kernel/mol.h ...

Here are the revelant parts:
- Exception vector
- Data access exception
- Instruction access exception
- Program check exception
- Floating-point unavailable
- Single step (not 601)
- Handle TLB miss for instruction (603)
- Handle TLB miss for DATA Load operation (603)
- Altivec handling (givup_altivec. I beleive it's not revelent for us)
- FPU handling (giveup_fpu, idem, NetBSD does not uses FPU in kernel)

I wonder where all of this is in macppc Locore.S (and other PowerPC
ports Locore.S as well, maybe MOL can run on non Mac hardware)

We also have this, which could cause some integration problems. Any
opinion on it?
#ifdef CONFIG_MOL
/*=20
 * Mac-on-linux hook_table. Don't put this in the data section -
 * the base address must be within the first 32KB of RAM.
 */
   .globl mol_interface
mol_interface:
   .long   MOL_INTERFACE_VERSION
   .fill 24,4,0      /* space for 24 hooks */
#endif

There is also a MMU hook in entry.s that could cause problems, but let's
first talk about theses head.S issues.

--=20
Emmanuel Dreyfus.
Windows 95, Windows 98, Windows 2000
D=E9sormais, les OS portent la date de peremption dans leurs noms.
p99dreyf@criens.u-psud.fr