All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset
@ 2011-12-06 23:00 Tom Warren
  2011-12-08  0:14 ` Mike Frysinger
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Tom Warren @ 2011-12-06 23:00 UTC (permalink / raw)
  To: u-boot

commit 0d479b53 (Aneesh V) added code for OMAP4 that doesn't
execute on Tegra, due to the AVP (ARM7TDI) not having a CP15.
Result was an undefined instruction hang just after reset.

Signed-off-by: Tom Warren <twarren@nvidia.com>
Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Cc: Tom Rini <trini@ti.com>
---
 arch/arm/cpu/armv7/start.S |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
index d23dc9d..ceed11e 100644
--- a/arch/arm/cpu/armv7/start.S
+++ b/arch/arm/cpu/armv7/start.S
@@ -144,6 +144,7 @@ reset:
 	orr	r0, r0, #0xd3
 	msr	cpsr,r0
 
+#if !defined(CONFIG_TEGRA2)
 /*
  * Setup vector:
  * (OMAP4 spl TEXT_BASE is not 32 byte aligned.
@@ -159,6 +160,7 @@ reset:
 	ldr	r0, =_start
 	mcr	p15, 0, r0, c12, c0, 0	@Set VBAR
 #endif
+#endif	/* !Tegra2 */
 
 	/* the mask ROM code should have PLL and others stable */
 #ifndef CONFIG_SKIP_LOWLEVEL_INIT
-- 
1.7.7.1

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset
  2011-12-06 23:00 [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset Tom Warren
@ 2011-12-08  0:14 ` Mike Frysinger
  2011-12-08  5:51   ` Aneesh V
  2011-12-21  8:02 ` Aneesh V
  2011-12-21 19:37 ` Wolfgang Denk
  2 siblings, 1 reply; 12+ messages in thread
From: Mike Frysinger @ 2011-12-08  0:14 UTC (permalink / raw)
  To: u-boot

On Tuesday 06 December 2011 18:00:19 Tom Warren wrote:
> commit 0d479b53 (Aneesh V) added code for OMAP4 that doesn't
> execute on Tegra, due to the AVP (ARM7TDI) not having a CP15.
> Result was an undefined instruction hang just after reset.
> 
> --- a/arch/arm/cpu/armv7/start.S
> +++ b/arch/arm/cpu/armv7/start.S
> 
> +#if !defined(CONFIG_TEGRA2)
>  /*
>   * Setup vector:
>   * (OMAP4 spl TEXT_BASE is not 32 byte aligned.
> @@ -159,6 +160,7 @@ reset:
>  	ldr	r0, =_start
>  	mcr	p15, 0, r0, c12, c0, 0	@Set VBAR
>  #endif
> +#endif	/* !Tegra2 */

forgive my ignorance, but would it be better to invert the logic ?  have ARM 
cores that do have a CP15 define CONFIG_ARM_CP15 (or whatever) and then put all 
this logic behind that rather than grow a list of SoC's that lack it ?
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111207/1e908f4f/attachment.pgp>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset
  2011-12-08  0:14 ` Mike Frysinger
@ 2011-12-08  5:51   ` Aneesh V
  2011-12-08  6:25     ` Mike Frysinger
  2011-12-08 15:37     ` Tom Warren
  0 siblings, 2 replies; 12+ messages in thread
From: Aneesh V @ 2011-12-08  5:51 UTC (permalink / raw)
  To: u-boot

Mike,

On Thursday 08 December 2011 05:44 AM, Mike Frysinger wrote:
> On Tuesday 06 December 2011 18:00:19 Tom Warren wrote:
>> commit 0d479b53 (Aneesh V) added code for OMAP4 that doesn't
>> execute on Tegra, due to the AVP (ARM7TDI) not having a CP15.
>> Result was an undefined instruction hang just after reset.
>>
>> --- a/arch/arm/cpu/armv7/start.S
>> +++ b/arch/arm/cpu/armv7/start.S
>>
>> +#if !defined(CONFIG_TEGRA2)
>>   /*
>>    * Setup vector:
>>    * (OMAP4 spl TEXT_BASE is not 32 byte aligned.
>> @@ -159,6 +160,7 @@ reset:
>>   	ldr	r0, =_start
>>   	mcr	p15, 0, r0, c12, c0, 0	@Set VBAR
>>   #endif
>> +#endif	/* !Tegra2 */
>
> forgive my ignorance, but would it be better to invert the logic ?  have ARM
> cores that do have a CP15 define CONFIG_ARM_CP15 (or whatever) and then put all
> this logic behind that rather than grow a list of SoC's that lack it ?
> -mike

As far as I understand CP15 is typically available(if not mandatory) on
all armv7 processors. Here, IIUC, NVidia has a peculiar architecture
that necessitates an armv4 processor supported by armv7 code. IMHO,
this is the exceptional case.

br,
Aneesh

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset
  2011-12-08  5:51   ` Aneesh V
@ 2011-12-08  6:25     ` Mike Frysinger
  2011-12-08 15:37     ` Tom Warren
  1 sibling, 0 replies; 12+ messages in thread
From: Mike Frysinger @ 2011-12-08  6:25 UTC (permalink / raw)
  To: u-boot

On Thursday 08 December 2011 00:51:01 Aneesh V wrote:
> On Thursday 08 December 2011 05:44 AM, Mike Frysinger wrote:
> > On Tuesday 06 December 2011 18:00:19 Tom Warren wrote:
> >> commit 0d479b53 (Aneesh V) added code for OMAP4 that doesn't
> >> execute on Tegra, due to the AVP (ARM7TDI) not having a CP15.
> >> Result was an undefined instruction hang just after reset.
> >> 
> >> --- a/arch/arm/cpu/armv7/start.S
> >> +++ b/arch/arm/cpu/armv7/start.S
> >> 
> >> +#if !defined(CONFIG_TEGRA2)
> >> 
> >>   /*
> >>   
> >>    * Setup vector:
> >>    * (OMAP4 spl TEXT_BASE is not 32 byte aligned.
> >> 
> >> @@ -159,6 +160,7 @@ reset:
> >>   	ldr	r0, =_start
> >>   	mcr	p15, 0, r0, c12, c0, 0	@Set VBAR
> >>   
> >>   #endif
> >> 
> >> +#endif	/* !Tegra2 */
> > 
> > forgive my ignorance, but would it be better to invert the logic ?  have
> > ARM cores that do have a CP15 define CONFIG_ARM_CP15 (or whatever) and
> > then put all this logic behind that rather than grow a list of SoC's
> > that lack it ?
> 
> As far as I understand CP15 is typically available(if not mandatory) on
> all armv7 processors. Here, IIUC, NVidia has a peculiar architecture
> that necessitates an armv4 processor supported by armv7 code. IMHO,
> this is the exceptional case.

np then ... thanks
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111208/a6a622a7/attachment.pgp>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset
  2011-12-08  5:51   ` Aneesh V
  2011-12-08  6:25     ` Mike Frysinger
@ 2011-12-08 15:37     ` Tom Warren
  2011-12-09  6:18       ` Aneesh V
  1 sibling, 1 reply; 12+ messages in thread
From: Tom Warren @ 2011-12-08 15:37 UTC (permalink / raw)
  To: u-boot

Aneesh & Mike,

> -----Original Message-----
> From: Aneesh V [mailto:aneesh at ti.com]
> Sent: Wednesday, December 07, 2011 10:51 PM
> To: Mike Frysinger
> Cc: u-boot at lists.denx.de; trini at ti.com; Tom Warren; Tom Warren
> Subject: Re: [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang
> immediately after reset
> 
> Mike,
> 
> On Thursday 08 December 2011 05:44 AM, Mike Frysinger wrote:
> > On Tuesday 06 December 2011 18:00:19 Tom Warren wrote:
> >> commit 0d479b53 (Aneesh V) added code for OMAP4 that doesn't execute
> >> on Tegra, due to the AVP (ARM7TDI) not having a CP15.
> >> Result was an undefined instruction hang just after reset.
> >>
> >> --- a/arch/arm/cpu/armv7/start.S
> >> +++ b/arch/arm/cpu/armv7/start.S
> >>
> >> +#if !defined(CONFIG_TEGRA2)
> >>   /*
> >>    * Setup vector:
> >>    * (OMAP4 spl TEXT_BASE is not 32 byte aligned.
> >> @@ -159,6 +160,7 @@ reset:
> >>   	ldr	r0, =_start
> >>   	mcr	p15, 0, r0, c12, c0, 0	@Set VBAR
> >>   #endif
> >> +#endif	/* !Tegra2 */
> >
> > forgive my ignorance, but would it be better to invert the logic ?
> > have ARM cores that do have a CP15 define CONFIG_ARM_CP15 (or
> > whatever) and then put all this logic behind that rather than grow a list
> of SoC's that lack it ?
> > -mike
> 
> As far as I understand CP15 is typically available(if not mandatory) on all
> armv7 processors. Here, IIUC, NVidia has a peculiar architecture that
> necessitates an armv4 processor supported by armv7 code. IMHO, this is the
> exceptional case.

Tegra has (at least) 2 ARM processors - the AVP, which is ARM7TDMI-based and hence has no CP15, and the CPU complex, which as 2 or more A9 CPUs.  Since the AVP is the boot processor, it runs the initial U-Boot code (start.S) and will eventually setup and kick off the CPU(s) to run the bulk of U-Boot.

Perhaps we should be in our own arch/arm/cpu/arm7tdmi subdir, but that's a major change from the current structure. Is it possible for this code ("Setup vector") to only be defined for OMAP processor builds? The code it replaces was ifdef'd for OMAP3, and had no affect on Tegra builds.

Unless some other SoC decides to use an ARM7TDMI-S boot proc, though, the CONFIG_TEGRA2 fencing should be the only one necessary.

Tom
> 
> br,
> Aneesh
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset
  2011-12-08 15:37     ` Tom Warren
@ 2011-12-09  6:18       ` Aneesh V
       [not found]         ` <7E91C59574E9954FA075F8D8CCDF78DB392E3A5798@HQMAIL04.nvidia.com>
  0 siblings, 1 reply; 12+ messages in thread
From: Aneesh V @ 2011-12-09  6:18 UTC (permalink / raw)
  To: u-boot

Tom,

On Thursday 08 December 2011 09:07 PM, Tom Warren wrote:
> Aneesh&  Mike,
>
>> -----Original Message-----
>> From: Aneesh V [mailto:aneesh at ti.com]
>> Sent: Wednesday, December 07, 2011 10:51 PM
>> To: Mike Frysinger
>> Cc: u-boot at lists.denx.de; trini at ti.com; Tom Warren; Tom Warren
>> Subject: Re: [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang
>> immediately after reset
>>
>> Mike,
>>
>> On Thursday 08 December 2011 05:44 AM, Mike Frysinger wrote:
>>> On Tuesday 06 December 2011 18:00:19 Tom Warren wrote:
>>>> commit 0d479b53 (Aneesh V) added code for OMAP4 that doesn't execute
>>>> on Tegra, due to the AVP (ARM7TDI) not having a CP15.
>>>> Result was an undefined instruction hang just after reset.
>>>>
>>>> --- a/arch/arm/cpu/armv7/start.S
>>>> +++ b/arch/arm/cpu/armv7/start.S
>>>>
>>>> +#if !defined(CONFIG_TEGRA2)
>>>>    /*
>>>>     * Setup vector:
>>>>     * (OMAP4 spl TEXT_BASE is not 32 byte aligned.
>>>> @@ -159,6 +160,7 @@ reset:
>>>>    	ldr	r0, =_start
>>>>    	mcr	p15, 0, r0, c12, c0, 0	@Set VBAR
>>>>    #endif
>>>> +#endif	/* !Tegra2 */
>>>
>>> forgive my ignorance, but would it be better to invert the logic ?
>>> have ARM cores that do have a CP15 define CONFIG_ARM_CP15 (or
>>> whatever) and then put all this logic behind that rather than grow a list
>> of SoC's that lack it ?
>>> -mike
>>
>> As far as I understand CP15 is typically available(if not mandatory) on all
>> armv7 processors. Here, IIUC, NVidia has a peculiar architecture that
>> necessitates an armv4 processor supported by armv7 code. IMHO, this is the
>> exceptional case.
>
> Tegra has (at least) 2 ARM processors - the AVP, which is ARM7TDMI-based and hence has no CP15, and the CPU complex, which as 2 or more A9 CPUs.  Since the AVP is the boot processor, it runs the initial U-Boot code (start.S) and will eventually setup and kick off the CPU(s) to run the bulk of U-Boot.
>
> Perhaps we should be in our own arch/arm/cpu/arm7tdmi subdir, but that's a major change from the current structure. Is it possible for this code ("Setup vector") to only be defined for OMAP processor builds? The code it replaces was ifdef'd for OMAP3, and had no affect on Tegra builds.

I think setting up vector is useful for all platforms and I think this
is the right place to do it. Just that we didn't have it till now ecept
for OMAP3 and OMAP3 was doing it in a round-about way.

>
> Unless some other SoC decides to use an ARM7TDMI-S boot proc, though, the CONFIG_TEGRA2 fencing should be the only one necessary.

I agree. I don't think there will be many more exceptions like this. We
can live with that #ifdef. Not sure what Albert thinks though.

>
> Tom
>>
>> br,
>> Aneesh
> -----------------------------------------------------------------------------------
> This email message is for the sole use of the intended recipient(s) and may contain
> confidential information.  Any unauthorized review, use, disclosure or distribution
> is prohibited.  If you are not the intended recipient, please contact the sender by
> reply email and destroy all copies of the original message.
> -----------------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset
       [not found]         ` <7E91C59574E9954FA075F8D8CCDF78DB392E3A5798@HQMAIL04.nvidia.com>
@ 2011-12-20 23:27           ` Tom Warren
  2011-12-21  4:07             ` Simon Glass
  2011-12-21  6:58             ` Wolfgang Denk
  0 siblings, 2 replies; 12+ messages in thread
From: Tom Warren @ 2011-12-20 23:27 UTC (permalink / raw)
  To: u-boot

This is needed for v2011.12-rc2. I'm using my Google email because I
seem to be getting blocked by base64 MIME crap w/Outlook.

Tom

On Wed, Dec 14, 2011 at 1:40 PM, Tom Warren <TWarren@nvidia.com> wrote:
> [Resending due to Outlook Base64 MIME issues. Sorry if you get spammed w/multiple copies]
>
> Wolfgang/Albert,
>
> This needs to be added to v2011.12-rc1 or Tegra2 builds/boards will be DOA.
>
> Thanks,
>
> Tom
>
>> -----Original Message-----
>> From: Aneesh V [mailto:aneesh at ti.com]
>> Sent: Thursday, December 08, 2011 11:18 PM
>> To: Tom Warren
>> Cc: Mike Frysinger; u-boot at lists.denx.de; trini at ti.com; Tom Warren; Albert
>> Aribaud
>> Subject: Re: [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang
>> immediately after reset
>>
>> Tom,
>>
>> On Thursday 08 December 2011 09:07 PM, Tom Warren wrote:
>> > Aneesh& ?Mike,
>> >
>> >> -----Original Message-----
>> >> From: Aneesh V [mailto:aneesh at ti.com]
>> >> Sent: Wednesday, December 07, 2011 10:51 PM
>> >> To: Mike Frysinger
>> >> Cc: u-boot at lists.denx.de; trini at ti.com; Tom Warren; Tom Warren
>> >> Subject: Re: [U-Boot] [PATCH] arm: Tegra: fix undefined instruction
>> >> hang immediately after reset
>> >>
>> >> Mike,
>> >>
>> >> On Thursday 08 December 2011 05:44 AM, Mike Frysinger wrote:
>> >>> On Tuesday 06 December 2011 18:00:19 Tom Warren wrote:
>> >>>> commit 0d479b53 (Aneesh V) added code for OMAP4 that doesn't
>> >>>> execute on Tegra, due to the AVP (ARM7TDI) not having a CP15.
>> >>>> Result was an undefined instruction hang just after reset.
>> >>>>
>> >>>> --- a/arch/arm/cpu/armv7/start.S
>> >>>> +++ b/arch/arm/cpu/armv7/start.S
>> >>>>
>> >>>> +#if !defined(CONFIG_TEGRA2)
>> >>>> ? ?/*
>> >>>> ? ? * Setup vector:
>> >>>> ? ? * (OMAP4 spl TEXT_BASE is not 32 byte aligned.
>> >>>> @@ -159,6 +160,7 @@ reset:
>> >>>> ? ? ? ? ?ldr ? ? r0, =_start
>> >>>> ? ? ? ? ?mcr ? ? p15, 0, r0, c12, c0, 0 ?@Set VBAR
>> >>>> ? ?#endif
>> >>>> +#endif ?/* !Tegra2 */
>> >>>
>> >>> forgive my ignorance, but would it be better to invert the logic ?
>> >>> have ARM cores that do have a CP15 define CONFIG_ARM_CP15 (or
>> >>> whatever) and then put all this logic behind that rather than grow a
>> >>> list
>> >> of SoC's that lack it ?
>> >>> -mike
>> >>
>> >> As far as I understand CP15 is typically available(if not mandatory)
>> >> on all
>> >> armv7 processors. Here, IIUC, NVidia has a peculiar architecture that
>> >> necessitates an armv4 processor supported by armv7 code. IMHO, this
>> >> is the exceptional case.
>> >
>> > Tegra has (at least) 2 ARM processors - the AVP, which is ARM7TDMI-based
>> and hence has no CP15, and the CPU complex, which as 2 or more A9 CPUs.
>> Since the AVP is the boot processor, it runs the initial U-Boot code
>> (start.S) and will eventually setup and kick off the CPU(s) to run the bulk
>> of U-Boot.
>> >
>> > Perhaps we should be in our own arch/arm/cpu/arm7tdmi subdir, but that's a
>> major change from the current structure. Is it possible for this code
>> ("Setup vector") to only be defined for OMAP processor builds? The code it
>> replaces was ifdef'd for OMAP3, and had no affect on Tegra builds.
>>
>> I think setting up vector is useful for all platforms and I think this is
>> the right place to do it. Just that we didn't have it till now ecept for
>> OMAP3 and OMAP3 was doing it in a round-about way.
>>
>> >
>> > Unless some other SoC decides to use an ARM7TDMI-S boot proc, though, the
>> CONFIG_TEGRA2 fencing should be the only one necessary.
>>
>> I agree. I don't think there will be many more exceptions like this. We can
>> live with that #ifdef. Not sure what Albert thinks though.
>>
>> >
>> > Tom
>> >>
>> >> br,
>> >> Aneesh
>> > ----------------------------------------------------------------------
>> > ------------- This email message is for the sole use of the intended
>> > recipient(s) and may contain confidential information. ?Any
>> > unauthorized review, use, disclosure or distribution is prohibited.
>> > If you are not the intended recipient, please contact the sender by
>> > reply email and destroy all copies of the original message.
>> > ----------------------------------------------------------------------
>> > -------------
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset
  2011-12-20 23:27           ` Tom Warren
@ 2011-12-21  4:07             ` Simon Glass
  2011-12-21  6:58             ` Wolfgang Denk
  1 sibling, 0 replies; 12+ messages in thread
From: Simon Glass @ 2011-12-21  4:07 UTC (permalink / raw)
  To: u-boot

Hi,

On Tue, Dec 20, 2011 at 4:27 PM, Tom Warren <twarren.nvidia@gmail.com> wrote:
> This is needed for v2011.12-rc2. I'm using my Google email because I
> seem to be getting blocked by base64 MIME crap w/Outlook.
>
> Tom

Yes please! Tegra is broken in mainline without this patch.

Regards,
Simon

>
> On Wed, Dec 14, 2011 at 1:40 PM, Tom Warren <TWarren@nvidia.com> wrote:
>> [Resending due to Outlook Base64 MIME issues. Sorry if you get spammed w/multiple copies]
>>
>> Wolfgang/Albert,
>>
>> This needs to be added to v2011.12-rc1 or Tegra2 builds/boards will be DOA.
>>
>> Thanks,
>>
>> Tom
>>
>>> -----Original Message-----
>>> From: Aneesh V [mailto:aneesh at ti.com]
>>> Sent: Thursday, December 08, 2011 11:18 PM
>>> To: Tom Warren
>>> Cc: Mike Frysinger; u-boot at lists.denx.de; trini at ti.com; Tom Warren; Albert
>>> Aribaud
>>> Subject: Re: [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang
>>> immediately after reset
>>>
>>> Tom,
>>>
>>> On Thursday 08 December 2011 09:07 PM, Tom Warren wrote:
>>> > Aneesh& ?Mike,
>>> >
>>> >> -----Original Message-----
>>> >> From: Aneesh V [mailto:aneesh at ti.com]
>>> >> Sent: Wednesday, December 07, 2011 10:51 PM
>>> >> To: Mike Frysinger
>>> >> Cc: u-boot at lists.denx.de; trini at ti.com; Tom Warren; Tom Warren
>>> >> Subject: Re: [U-Boot] [PATCH] arm: Tegra: fix undefined instruction
>>> >> hang immediately after reset
>>> >>
>>> >> Mike,
>>> >>
>>> >> On Thursday 08 December 2011 05:44 AM, Mike Frysinger wrote:
>>> >>> On Tuesday 06 December 2011 18:00:19 Tom Warren wrote:
>>> >>>> commit 0d479b53 (Aneesh V) added code for OMAP4 that doesn't
>>> >>>> execute on Tegra, due to the AVP (ARM7TDI) not having a CP15.
>>> >>>> Result was an undefined instruction hang just after reset.
>>> >>>>
>>> >>>> --- a/arch/arm/cpu/armv7/start.S
>>> >>>> +++ b/arch/arm/cpu/armv7/start.S
>>> >>>>
>>> >>>> +#if !defined(CONFIG_TEGRA2)
>>> >>>> ? ?/*
>>> >>>> ? ? * Setup vector:
>>> >>>> ? ? * (OMAP4 spl TEXT_BASE is not 32 byte aligned.
>>> >>>> @@ -159,6 +160,7 @@ reset:
>>> >>>> ? ? ? ? ?ldr ? ? r0, =_start
>>> >>>> ? ? ? ? ?mcr ? ? p15, 0, r0, c12, c0, 0 ?@Set VBAR
>>> >>>> ? ?#endif
>>> >>>> +#endif ?/* !Tegra2 */
>>> >>>
>>> >>> forgive my ignorance, but would it be better to invert the logic ?
>>> >>> have ARM cores that do have a CP15 define CONFIG_ARM_CP15 (or
>>> >>> whatever) and then put all this logic behind that rather than grow a
>>> >>> list
>>> >> of SoC's that lack it ?
>>> >>> -mike
>>> >>
>>> >> As far as I understand CP15 is typically available(if not mandatory)
>>> >> on all
>>> >> armv7 processors. Here, IIUC, NVidia has a peculiar architecture that
>>> >> necessitates an armv4 processor supported by armv7 code. IMHO, this
>>> >> is the exceptional case.
>>> >
>>> > Tegra has (at least) 2 ARM processors - the AVP, which is ARM7TDMI-based
>>> and hence has no CP15, and the CPU complex, which as 2 or more A9 CPUs.
>>> Since the AVP is the boot processor, it runs the initial U-Boot code
>>> (start.S) and will eventually setup and kick off the CPU(s) to run the bulk
>>> of U-Boot.
>>> >
>>> > Perhaps we should be in our own arch/arm/cpu/arm7tdmi subdir, but that's a
>>> major change from the current structure. Is it possible for this code
>>> ("Setup vector") to only be defined for OMAP processor builds? The code it
>>> replaces was ifdef'd for OMAP3, and had no affect on Tegra builds.
>>>
>>> I think setting up vector is useful for all platforms and I think this is
>>> the right place to do it. Just that we didn't have it till now ecept for
>>> OMAP3 and OMAP3 was doing it in a round-about way.
>>>
>>> >
>>> > Unless some other SoC decides to use an ARM7TDMI-S boot proc, though, the
>>> CONFIG_TEGRA2 fencing should be the only one necessary.
>>>
>>> I agree. I don't think there will be many more exceptions like this. We can
>>> live with that #ifdef. Not sure what Albert thinks though.
>>>
>>> >
>>> > Tom
>>> >>
>>> >> br,
>>> >> Aneesh
>>> > ----------------------------------------------------------------------
>>> > ------------- This email message is for the sole use of the intended
>>> > recipient(s) and may contain confidential information. ?Any
>>> > unauthorized review, use, disclosure or distribution is prohibited.
>>> > If you are not the intended recipient, please contact the sender by
>>> > reply email and destroy all copies of the original message.
>>> > ----------------------------------------------------------------------
>>> > -------------
>>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset
  2011-12-20 23:27           ` Tom Warren
  2011-12-21  4:07             ` Simon Glass
@ 2011-12-21  6:58             ` Wolfgang Denk
  1 sibling, 0 replies; 12+ messages in thread
From: Wolfgang Denk @ 2011-12-21  6:58 UTC (permalink / raw)
  To: u-boot

Dear Tom Warren,

In message <CA+m5__LR57F=KtOTMSE9SwB-zqmQJNknksg3rOR+9_aPfhZnAA@mail.gmail.com> you wrote:
> This is needed for v2011.12-rc2. I'm using my Google email because I
> seem to be getting blocked by base64 MIME crap w/Outlook.

This has received a number of comments, but not a single ACK so far.

Do all agree that his shall go in?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
For those who like this sort of thing, this is the sort of thing they
like.                                               - Abraham Lincoln

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset
  2011-12-06 23:00 [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset Tom Warren
  2011-12-08  0:14 ` Mike Frysinger
@ 2011-12-21  8:02 ` Aneesh V
  2011-12-21 16:10   ` Tom Warren
  2011-12-21 19:37 ` Wolfgang Denk
  2 siblings, 1 reply; 12+ messages in thread
From: Aneesh V @ 2011-12-21  8:02 UTC (permalink / raw)
  To: u-boot

Hi Tom,

On Wednesday 07 December 2011 04:30 AM, Tom Warren wrote:
> commit 0d479b53 (Aneesh V) added code for OMAP4 that doesn't
> execute on Tegra, due to the AVP (ARM7TDI) not having a CP15.
> Result was an undefined instruction hang just after reset.
>
> Signed-off-by: Tom Warren<twarren@nvidia.com>
> Cc: Albert Aribaud<albert.u.boot@aribaud.net>
> Cc: Tom Rini<trini@ti.com>
> ---
>   arch/arm/cpu/armv7/start.S |    2 ++
>   1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
> index d23dc9d..ceed11e 100644
> --- a/arch/arm/cpu/armv7/start.S
> +++ b/arch/arm/cpu/armv7/start.S
> @@ -144,6 +144,7 @@ reset:
>   	orr	r0, r0, #0xd3
>   	msr	cpsr,r0
>
> +#if !defined(CONFIG_TEGRA2)
>   /*
>    * Setup vector:
>    * (OMAP4 spl TEXT_BASE is not 32 byte aligned.
> @@ -159,6 +160,7 @@ reset:
>   	ldr	r0, =_start
>   	mcr	p15, 0, r0, c12, c0, 0	@Set VBAR
>   #endif
> +#endif	/* !Tegra2 */
>
>   	/* the mask ROM code should have PLL and others stable */
>   #ifndef CONFIG_SKIP_LOWLEVEL_INIT

FWIW,

Acked-by: Aneesh V <aneesh@ti.com>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset
  2011-12-21  8:02 ` Aneesh V
@ 2011-12-21 16:10   ` Tom Warren
  0 siblings, 0 replies; 12+ messages in thread
From: Tom Warren @ 2011-12-21 16:10 UTC (permalink / raw)
  To: u-boot

Thanks, Aneesh.

On Wed, Dec 21, 2011 at 1:02 AM, Aneesh V <aneesh@ti.com> wrote:
> Hi Tom,
>
>
> On Wednesday 07 December 2011 04:30 AM, Tom Warren wrote:
>>
>> commit 0d479b53 (Aneesh V) added code for OMAP4 that doesn't
>> execute on Tegra, due to the AVP (ARM7TDI) not having a CP15.
>> Result was an undefined instruction hang just after reset.
>>
>> Signed-off-by: Tom Warren<twarren@nvidia.com>
>> Cc: Albert Aribaud<albert.u.boot@aribaud.net>
>> Cc: Tom Rini<trini@ti.com>
>> ---
>> ?arch/arm/cpu/armv7/start.S | ? ?2 ++
>> ?1 files changed, 2 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
>> index d23dc9d..ceed11e 100644
>> --- a/arch/arm/cpu/armv7/start.S
>> +++ b/arch/arm/cpu/armv7/start.S
>> @@ -144,6 +144,7 @@ reset:
>> ? ? ? ?orr ? ? r0, r0, #0xd3
>> ? ? ? ?msr ? ? cpsr,r0
>>
>> +#if !defined(CONFIG_TEGRA2)
>> ?/*
>> ? * Setup vector:
>> ? * (OMAP4 spl TEXT_BASE is not 32 byte aligned.
>> @@ -159,6 +160,7 @@ reset:
>> ? ? ? ?ldr ? ? r0, =_start
>> ? ? ? ?mcr ? ? p15, 0, r0, c12, c0, 0 ?@Set VBAR
>> ?#endif
>> +#endif /* !Tegra2 */
>>
>> ? ? ? ?/* the mask ROM code should have PLL and others stable */
>> ?#ifndef CONFIG_SKIP_LOWLEVEL_INIT
>
>
> FWIW,
>
> Acked-by: Aneesh V <aneesh@ti.com>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset
  2011-12-06 23:00 [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset Tom Warren
  2011-12-08  0:14 ` Mike Frysinger
  2011-12-21  8:02 ` Aneesh V
@ 2011-12-21 19:37 ` Wolfgang Denk
  2 siblings, 0 replies; 12+ messages in thread
From: Wolfgang Denk @ 2011-12-21 19:37 UTC (permalink / raw)
  To: u-boot

Dear Tom Warren,

In message <1323212419-21023-1-git-send-email-twarren@nvidia.com> you wrote:
> commit 0d479b53 (Aneesh V) added code for OMAP4 that doesn't
> execute on Tegra, due to the AVP (ARM7TDI) not having a CP15.
> Result was an undefined instruction hang just after reset.
> 
> Signed-off-by: Tom Warren <twarren@nvidia.com>
> Cc: Albert Aribaud <albert.u.boot@aribaud.net>
> Cc: Tom Rini <trini@ti.com>
> ---
>  arch/arm/cpu/armv7/start.S |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)

Applied, thanks.

Albert: hope this is OK with you.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
They're usually so busy thinking about what  happens  next  that  the
only  time they ever find out what is happening now is when they come
to look back on it.                 - Terry Pratchett, _Wyrd Sisters_

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2011-12-21 19:37 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-06 23:00 [U-Boot] [PATCH] arm: Tegra: fix undefined instruction hang immediately after reset Tom Warren
2011-12-08  0:14 ` Mike Frysinger
2011-12-08  5:51   ` Aneesh V
2011-12-08  6:25     ` Mike Frysinger
2011-12-08 15:37     ` Tom Warren
2011-12-09  6:18       ` Aneesh V
     [not found]         ` <7E91C59574E9954FA075F8D8CCDF78DB392E3A5798@HQMAIL04.nvidia.com>
2011-12-20 23:27           ` Tom Warren
2011-12-21  4:07             ` Simon Glass
2011-12-21  6:58             ` Wolfgang Denk
2011-12-21  8:02 ` Aneesh V
2011-12-21 16:10   ` Tom Warren
2011-12-21 19:37 ` Wolfgang Denk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.