[U-Boot] [PATCH] 85xx: Fix mapping of 0xfffffxxx when CONFIG_MP
Kumar Gala
galak at kernel.crashing.org
Thu Jul 23 17:07:01 CEST 2009
On Jul 22, 2009, at 10:47 AM, Peter Tyser wrote:
> 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?
It is at this point.
> 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...
I'd be fine if we want to add a CONFIG_ option to do the disable so
board ports that need/want it can do it.
- k
More information about the U-Boot
mailing list