[U-Boot] [PATCH] 85xx: Fix mapping of 0xfffffxxx when CONFIG_MP

Peter Tyser ptyser at xes-inc.com
Wed Jul 22 17:47:01 CEST 2009


Hi Kumar,

> > >> I understand what the patch does.  It just removes the capability of
> > >> soft-resetting a core back into the boot translation code.  I
> > >> understand your problem I'm just not keen on solving it by completely
> > >> disabling boot translation.
> > >>
> > >> We had a similar memory map and I moved away from it because of the
> > >> reset vector issues.  Additionally, things like >4G of memory also
> > >> start creeping up.
> > >
> > > I'm not super familiar with how the MP support in U-Boot is used.   
> > > Would
> > > you be resetting a secondary core for debug purposes?  Or is there an
> > > example of when you'd reset one in normal operation?  I thought normal
> > > operation was to use the "cpu release" command, or to let the OS
> > > manually take the secondary cores out of their wait loops.
> > >
> > > What if I spruced up cpu_reset() to temporarily re-enable boot page
> > > translation, then disabled it again?  (And maybe re-initialized the  
> > > cpus
> > > MP table so that it could properly ack the primary core similar to in
> > > pq3_mp_up().
> > >
> > > It seems somewhat dirty to me to constantly keep boot page translation
> > > enabled, even when its not needed.  Especially since it would  
> > > require us
> > > to change our memory map, environment variable scripts, documentation,
> > > etc on all our boards:)
> > >
> > > I'd be happy to look into an alternate workaround if you have an idea
> > > for a cleaner implementation.
> > 
> > The idea is after u-boot if you soft-reset a core that it would go  
> > back into the spin table code.  U-boot is long gone at this point.
> 
> Are there common scenarios where a core would be reset after its already
> booted an OS?  If an OS did need to soft-reset a secondary core,
> shouldn't the OS be responsible for ensuring boot page translation is
> enabled, its translating to the proper location, etc?  For example, I
> imagine non-Linux OSes bring up secondary cores in different manners and
> some wouldn't re-utilize U-Boot's boot page code located in SDRAM at
> all, thus they wouldn't want the boot page translation always enabled.
> 
> It just seems less than ideal to have a chunk of memory space that
> somewhat magically accesses a completely different, unintuitive address
> space.  Someone else ran into the same issue already:
> http://www.mail-archive.com/u-boot@lists.denx.de/msg08361.html
> 
> I realize there's a tradeoff between keeping the translation enabled vs
> disabled, I'm just not familiar with how OSes utilize the secondary
> cores to know what the downsides of disabling translation are...

Any feedback on my last email above, or is disabling boot page
translation just a no-go?

Or is there an more ideal alternative?  I really don't want to change up
the memory map on all our Freescale boards, documentation, dts files,
etc because of an optional 4KB chunk of memory space:)  I'm more than
willing to implement a different workaround if it means we can keep our
current memory map...

Thanks,
Peter



More information about the U-Boot mailing list