Patchwork [U-Boot,2/2] mx6qsabrelite: Do not hardcode the CPU revision

login
register
mail settings
Submitter Fabio Estevam
Date March 15, 2013, 9:06 p.m.
Message ID <1363381594-17077-2-git-send-email-festevam@gmail.com>
Download mbox | patch
Permalink /patch/228185/
State Changes Requested
Delegated to: Stefano Babic
Headers show

Comments

Fabio Estevam - March 15, 2013, 9:06 p.m.
From: Fabio Estevam <fabio.estevam@freescale.com>

Instead of hardcoding the CPU revision, it is better to use get_cpu_rev().

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 board/freescale/mx6qsabrelite/mx6qsabrelite.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Dirk Behme - March 16, 2013, 5:59 a.m.
Am 15.03.2013 22:06, schrieb Fabio Estevam:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Instead of hardcoding the CPU revision, it is better to use get_cpu_rev().

I think to remember that there is a reason why it is hard coded this 
way. Have you tested this with the Vivante GPU driver? If I remember 
correctly they check for exactly the 0x63000 and if it's not there, it 
won't work (?).

Best regards

Dirk

> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
>   board/freescale/mx6qsabrelite/mx6qsabrelite.c |    3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/board/freescale/mx6qsabrelite/mx6qsabrelite.c b/board/freescale/mx6qsabrelite/mx6qsabrelite.c
> index 5b69a6d..9bd444e 100644
> --- a/board/freescale/mx6qsabrelite/mx6qsabrelite.c
> +++ b/board/freescale/mx6qsabrelite/mx6qsabrelite.c
> @@ -26,6 +26,7 @@
>   #include <asm/arch/imx-regs.h>
>   #include <asm/arch/iomux.h>
>   #include <asm/arch/mx6q_pins.h>
> +#include <asm/arch/sys_proto.h>
>   #include <asm/errno.h>
>   #include <asm/gpio.h>
>   #include <asm/imx-common/iomux-v3.h>
> @@ -300,7 +301,7 @@ int board_mmc_init(bd_t *bis)
>
>   u32 get_board_rev(void)
>   {
> -	return 0x63000 ;
> +	return get_cpu_rev();
>   }
>
>   #ifdef CONFIG_MXC_SPI
>
Wolfgang Denk - March 16, 2013, 8:19 a.m.
Dear Dirk Behme,

In message <51440A4D.5060005@gmail.com> you wrote:
>
> I think to remember that there is a reason why it is hard coded this 
> way. Have you tested this with the Vivante GPU driver? If I remember 
> correctly they check for exactly the 0x63000 and if it's not there, it 
> won't work (?).

Then this driver needs fixing?

Best regards,

Wolfgang Denk
Fabio Estevam - March 16, 2013, 2:50 p.m.
Hi Dirk,

On Sat, Mar 16, 2013 at 2:59 AM, Dirk Behme <dirk.behme@gmail.com> wrote:
> Am 15.03.2013 22:06, schrieb Fabio Estevam:
>
>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>
>> Instead of hardcoding the CPU revision, it is better to use get_cpu_rev().
>
>
> I think to remember that there is a reason why it is hard coded this way.
> Have you tested this with the Vivante GPU driver? If I remember correctly
> they check for exactly the 0x63000 and if it's not there, it won't work (?).

Good point, maybe we can do:

return (get_cpu_rev() & ~0xfff);

Regards,

Fabio Estevam
Otavio Salvador - March 16, 2013, 2:52 p.m.
On Sat, Mar 16, 2013 at 11:50 AM, Fabio Estevam <festevam@gmail.com> wrote:
> Hi Dirk,
>
> On Sat, Mar 16, 2013 at 2:59 AM, Dirk Behme <dirk.behme@gmail.com> wrote:
>> Am 15.03.2013 22:06, schrieb Fabio Estevam:
>>
>>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>>
>>> Instead of hardcoding the CPU revision, it is better to use get_cpu_rev().
>>
>>
>> I think to remember that there is a reason why it is hard coded this way.
>> Have you tested this with the Vivante GPU driver? If I remember correctly
>> they check for exactly the 0x63000 and if it's not there, it won't work (?).
>
> Good point, maybe we can do:
>
> return (get_cpu_rev() & ~0xfff);

Or add a method to do that? as it'd need to be done in all i.MX6 boards.
Fabio Estevam - March 16, 2013, 3:01 p.m.
On Sat, Mar 16, 2013 at 11:52 AM, Otavio Salvador
<otavio@ossystems.com.br> wrote:

> Or add a method to do that? as it'd need to be done in all i.MX6 boards.

Not all boards need to pass their revision to the kernel. For
mx6sabresd/sabreauto we do need it.

I plan to work on it.

Regards,

Fabio Estevam
Otavio Salvador - March 16, 2013, 4:32 p.m.
On Sat, Mar 16, 2013 at 12:01 PM, Fabio Estevam <festevam@gmail.com> wrote:
> On Sat, Mar 16, 2013 at 11:52 AM, Otavio Salvador
> <otavio@ossystems.com.br> wrote:
>
>> Or add a method to do that? as it'd need to be done in all i.MX6 boards.
>
> Not all boards need to pass their revision to the kernel. For
> mx6sabresd/sabreauto we do need it.

If Dirk is right we need to pass it to make GPU work, no?
Fabio Estevam - March 16, 2013, 7:41 p.m.
Hi Dirk,

On Sat, Mar 16, 2013 at 2:59 AM, Dirk Behme <dirk.behme@gmail.com> wrote:
> Am 15.03.2013 22:06, schrieb Fabio Estevam:
>
>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>
>> Instead of hardcoding the CPU revision, it is better to use get_cpu_rev().
>
>
> I think to remember that there is a reason why it is hard coded this way.
> Have you tested this with the Vivante GPU driver? If I remember correctly
> they check for exactly the 0x63000 and if it's not there, it won't work (?).

mx6qsabresd/sabreauto do not pass 0x63000 exactly and they are able to
run the GPU driver.

They also encode the board type and revision.

Regards,

Fabio Estevam

Patch

diff --git a/board/freescale/mx6qsabrelite/mx6qsabrelite.c b/board/freescale/mx6qsabrelite/mx6qsabrelite.c
index 5b69a6d..9bd444e 100644
--- a/board/freescale/mx6qsabrelite/mx6qsabrelite.c
+++ b/board/freescale/mx6qsabrelite/mx6qsabrelite.c
@@ -26,6 +26,7 @@ 
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/iomux.h>
 #include <asm/arch/mx6q_pins.h>
+#include <asm/arch/sys_proto.h>
 #include <asm/errno.h>
 #include <asm/gpio.h>
 #include <asm/imx-common/iomux-v3.h>
@@ -300,7 +301,7 @@  int board_mmc_init(bd_t *bis)
 
 u32 get_board_rev(void)
 {
-	return 0x63000 ;
+	return get_cpu_rev();
 }
 
 #ifdef CONFIG_MXC_SPI