On Wed, Jan 24, 2007 at 08:06:06PM +0100, Markus Ritzer wrote:
> Hello!
> 
> I try to port OpenBSD to the Microsoft Xbox (the old one). My OpenBSD Kernel 
> boots until it crashes while handling memory related things. FreeBSD, which 
> is already ported, has this code:
> 
> arch_i386_is_xbox tells if it is an Xbox and
> arch_i386_xbox_memsize is set to 64 oder 128, depend how much memory you have.
> 
> 
> #ifdef XBOX
>         if (arch_i386_is_xbox) {
>                 /*
>                  * We queried the memory size before, so chop off 4MB for
>                  * the framebuffer and inform the OS of this.
>                  */
>                 physmap[0] = 0;
>                 physmap[1] = (arch_i386_xbox_memsize * 1024 * 1024) - 
> XBOX_FB_SIZE;
>                 physmap_idx = 0;
>                 goto physmap_done;
>         }
> #endif
> 
> 
> It sets up the physmap. I looked for hours on the code of OpenBSD, but I 
> cannot really find out how this is done here. The code belongs to the 
> function init386() in machdep.c.
> 
> Is there an equivalent struct in OpenBSD to FreeBSD's physmap ?
> 
> 
> Thank you in advance,
> 
> Markus Ritzer

You are better off looking at the NetBSD changes such as

http://mail-index.netbsd.org/source-changes/2007/01/04/0019.html
http://mail-index.netbsd.org/source-changes/2007/01/05/0040.html

and all the additional drivers they have added.

Seems they match on the PCI bridge and hard code sizes which
is rather gross:

http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/i386/i386/machdep.c.diff?r1=1.586&r2=1.587&f=h

Reply via email to