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 Thu, 28 Mar 2013 18:18:44 +0100
Phileas Fogg <phileas-fogg%mail.ru@localhost> wrote:

> On 03/28/2013 11:34 AM, Michael wrote:
> > Hello,
> >
> >> And i would appreciate any pointers regarding porting NetBSD to PowerMac
> >> G5. I managed to get the display console working and
> >> currently implementing support for U4 MPIC which is not supported by
> >> NetBSD yet.
> >
> > Thanks for looking into this!
> > I got my G5 ( dual core PCIe ) to display a few things and then hang
> > hard when trying to turn on address translation. And that's where I got
> > stuck - low level PowerPC MMU stuff isn't exactly my territory.
> > I'm not sure if I committed all the code needed to get even that far
> > ( dealing with different OF versions which encode memory configuration
> > in slightly different ways and such ) - I'll check.
> >
> > have fun
> > Michael
> >
> 
> Hi,
> 
> i'm already past MMU initialization and the NetBSD kernel runs in
> virtual mode on my G5.

Nice!
Are you using 32bit bridge mode or LP64?

> And i'm at the point now where cpu_configure is called but then it
> drops to DDB because init_interrupt is not able to find a PIC
> controller. U4 MPIC of my G5 is not yet supported which i'm trying to
> fix currently.

Isn't that just another kinda-sorta 'special' OpenPIC?

> I had some problems with MMU too at the beginning but after disabling
> PMAP_NEED_MAPKERNEL in pmap_bootstrap, i got it running finally.
> Do you know what is the purpouse of PMAP_NEED_MAPKERNEL ?

I'm sorry, no idea.

> And i would appreciate any help i can get because i'm a bit new
> to NetBSD kernel hacking.

I'll happily commit whatever helps us to get the G5s going. And with
the MMU up and running I'll be in familiar territory and might actually
be able to do something useful.

Leaves one question. On 32bit PowerPC ports we BAT-map PCI space with
bus address == physical address - is there a sane way to achieve that
on the G5 ( I never really understood how the segment registers work )
or do I have to write a separate bus_space and have it actually map
things?

have fun
Michael


Home | Main Index | Thread Index | Old Index