Port-macppc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [PATCH] Incorrect segment 0 initialization for PMAC G5



Hello,

On Mon, 01 Apr 2013 17:25:30 +0200
Phileas Fogg <phileas-fogg%mail.ru@localhost> wrote:

> i prepared the first bunch of patches for G5 support.
> These patches fix MMU issues on G5.
> I tested the patches with NetBSD HEAD.
> Please review them and tell me if it's OK.
> After applying these patches your NetBSD kernel should boot in virtual
> mode and panic in init_interrupt. All patches were tested by me
> with netbooting.



> POWERMAC_G5_11_2.patch   :  My kernel config which i used

Nothing to complain about here.

> locore.S.patch           :  Enable 64bit bridge mode at boot
> 
> trap_subr.S.patch        :  Enable 64bit bridge mode when entering an
>                              exception handler

I don't see anything wrong with these but since I'm not exactly familiar with 
PowerPC assembly I'll wait for matt@'s opinion.

> pmap.c.patch             :  Disable kernel map in pmap_bootstrap

Seems to have no ill side effects on my G3.

> ofw_rascons.c.patch      :  Do not use ROM font if kernel option
>                              OFWOEA_WSCONS_NO_ROM_FONT is defined.
>                              I'm having problems with ROM font currently,
>                              my machine hangs, so that's why i added
>                              a new kernel option.

Minor nit - why call copy_rom_font() when you're going to discard the result on 
G5 anyway?

> ofwoea_machdep.c.patch   :  Make OFW code+data mapping machine
>                              independent and map video frame buffer into
>                              pmap_kernel for console.
>                              Also fix ofw_map segments.

Minor nit - no need to get the video memory parameters from OF again, either 
rascons_console_screen is filled in or we don't use the framebuffer console.

That said, my G5 crashes in pmap_bootstrap() when zeroing
pmap_pteg_table, the memory region returned by pmap_boot_find_memory()
is 0x2000000 size 0x2000000, which falls into the available regions.
Memory size is correctly detected ( I found some old code to deal with
64bit addresses in /memory/regs - should probably commit it now before
reinventing the wheel ) - 2GB for 32bit kernels, with another 2GB upper
memory ignored. Any idea what I might be missing here?

have fun
Michael


Home | Main Index | Thread Index | Old Index