[U-Boot] [PATCH v5 4/7] arm, arm926ejs: Do not clear the V bit on DA850 SoCs

Heiko Schocher hs at denx.de
Thu Feb 2 10:34:19 CET 2012


Hello Christian,

Christian Riesch wrote:
> 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.

It should be CONFIG_SYS as this is a hardware dependend config
option.

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list