[U-Boot] [PATCH v5 4/7] arm, arm926ejs: Do not clear the V bit on DA850 SoCs
Christian Riesch
christian.riesch at omicron.at
Thu Feb 2 10:30:35 CET 2012
Hello Heiko and Sughosh,
On Wed, Feb 1, 2012 at 8:33 AM, Heiko Schocher <hs at denx.de> wrote:
> Sughosh Ganu wrote:
>> On Tue, Jan 31, 2012 at 7:26 PM, Christian Riesch <
>> christian.riesch at omicron.at> wrote:
>>
>>> The V bit of the c1 register of CP15 should not be cleared
>>> since the SoC has no valid memory at 0x00000000.
>>>
>>> Signed-off-by: Christian Riesch <christian.riesch at omicron.at>
>>> Reported-by: Sughosh Ganu <urwithsughosh at gmail.com>
>>> Cc: Albert Aribaud <albert.u.boot at aribaud.net>
>>> Cc: Tom Rini <trini at ti.com>
>>> ---
>>> arch/arm/cpu/arm926ejs/start.S | 5 ++++-
>>> 1 files changed, 4 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/arch/arm/cpu/arm926ejs/start.S
>>> b/arch/arm/cpu/arm926ejs/start.S
>>> index b39ed8a..b350480 100644
>>> --- a/arch/arm/cpu/arm926ejs/start.S
>>> +++ b/arch/arm/cpu/arm926ejs/start.S
>>> @@ -372,7 +372,10 @@ flush_dcache:
>>> * disable MMU and D cache, and enable I cache
>>> */
>>> mrc p15, 0, r0, c1, c0, 0
>>> - bic r0, r0, #0x00002300 /* clear bits 13, 9:8 (--V- --RS)
>>> */
>>> + bic r0, r0, #0x00000300 /* clear bits 9:8 (---- --RS) */
>>> +#ifndef CONFIG_SOC_DA850
>>> + bic r0, r0, #0x00002000 /* clear bit 13 (--V- ----) */
>>> +#endif
>>>
>>
>> Instead of checking for a particular SOC, can we introduce a generic
>> config, something like CONFIG_EXCEPTION_VECTORS_LOW. This way, if other
>> SOC's have a similar requirement, it won't be needed to keep adding checks
>> here. It would also help in case this needs to be implemented for other arm
>> cores, so that we can have a common config option for bypassing this V-bit
>> clear. Just my suggestion. Maybe Tom and Albert can comment.
>
> Yep, I vote for this too, also this config option should be documented
> in the README.
Ok, I'll change this to
#ifdef CONFIG_EXCEPTION_VECTORS_HIGH
orr r0, r0, #0x00002000 /* set bit 13 (--V- ----) */
#else
bic r0, r0, #0x00002000 /* clear bit 13 (--V- ----) */
#endif
Or should it be CONFIG_SYS_EXCEPTION_VECTORS_HIGH? I think I don't
understand the explanation in README whether it should be _SYS_ or
not.
Regards, Christian
More information about the U-Boot
mailing list