64Mbytes on Sandpoint-X3B

Mark A. Greer mgreer at mvista.com
Sat Jun 1 03:48:24 EST 2002


Tom Rini wrote:

> On Fri, May 31, 2002 at 10:20:08AM -0500, Jim Thompson wrote:
> >
> > Tom Rini writes:
> > > On Fri, May 31, 2002 at 10:01:39AM -0500, Jim Thompson wrote:
> > > >
> > > > Tom Rini writes:
> > > > >
> > > > > On Thu, May 30, 2002 at 11:02:44PM -0700, Sergiy Kovtun wrote:
> >
> > > > My question is how have_of got set:
> > > >
> > > > arch/ppc/mm/init.c:
> > > >         if (!have_of)
> > > >                 FREESEC(openfirmware);
> > >
> > > On !CONFIG_ALL_PPC, we have:
> > > #define have_of 0
> > > In include/asm-ppc/processor.h, or so.  And the compiler happily
> > > optimizes things in/out with this.
> >
> > I should have been more explicit.
> >
> > in include/asm-ppc/processor.h, I'd found:
> >
> > #define have_of (_machine == _MACH_chrp || _machine == _MACH_Pmac)
>
> Thanks for the memory jog :)
>
> Up near the top, we have:
> #ifdef CONFIG_ALL_PPC
> ...
> int _machine;
> ...
> #else
> #define _machine 0
> #endif
>
> So have_of becomes: (0 == 0x4 || 0 == 0x2)
>
> > A sandpoint (esp with Dink) is neither CHRP or PMAC, so the call to
> > FREESEC(openfirmware) shouldn't have occurred.
>
> It's !have_of, so we really did want to free the __openfirmware stuff.

I dunno guys, I think the compiler usually optimizes that all away and you
should never see "openfirmware".  I don't recall ever seeing it print out.  I
think something fishy is going on...

Mark

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list