64Mbytes on Sandpoint-X3B

Tom Rini trini at kernel.crashing.org
Sat Jun 1 04:13:49 EST 2002


On Fri, May 31, 2002 at 01:48:24PM -0400, Mark A. Greer wrote:
> 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...

Er, first, it becomes:
if (1)
So we always 'do it'.  However, all of the __openfirmware code is now
almost never compiled in on !CONFIG_ALL_PPC, so we never see it being
free'd.

--
Tom Rini (TR1265)
http://gate.crashing.org/~trini/

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





More information about the Linuxppc-embedded mailing list