diff mbox

[U-Boot,V2,4/5] ARM: tegra: select between Seaboard/Ventana at compile time

Message ID 1350602759-22605-4-git-send-email-swarren@wwwdotorg.org
State Superseded
Delegated to: Tom Warren
Headers show

Commit Message

Stephen Warren Oct. 18, 2012, 11:25 p.m. UTC
From: Stephen Warren <swarren@nvidia.com>

Seaboard and Ventana are very similar boards, and so share the seaboard.c
board file. The one difference needed so far is detected at run-time by
calling machine_is_ventana(). This bloats the Ventana build with code
that is never used. Switch to detecting Ventana at compile time to remove
bloat. This shaves ~5K off the SPL size on Ventana, and makes the SPL fit
within the max size.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
v2: New patch to replace modification of CONFIG_SYS_TEXT_BASE.
---
 board/nvidia/seaboard/seaboard.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Comments

Simon Glass Oct. 19, 2012, 7:51 p.m. UTC | #1
Hi Stephen,

On Thu, Oct 18, 2012 at 4:25 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
> From: Stephen Warren <swarren@nvidia.com>
>
> Seaboard and Ventana are very similar boards, and so share the seaboard.c
> board file. The one difference needed so far is detected at run-time by
> calling machine_is_ventana(). This bloats the Ventana build with code
> that is never used. Switch to detecting Ventana at compile time to remove
> bloat. This shaves ~5K off the SPL size on Ventana, and makes the SPL fit
> within the max size.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> ---
> v2: New patch to replace modification of CONFIG_SYS_TEXT_BASE.
> ---
>  board/nvidia/seaboard/seaboard.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/board/nvidia/seaboard/seaboard.c b/board/nvidia/seaboard/seaboard.c
> index 4e8a183..6dce57f 100644
> --- a/board/nvidia/seaboard/seaboard.c
> +++ b/board/nvidia/seaboard/seaboard.c
> @@ -35,6 +35,7 @@
>
>  /* TODO: Remove this code when the SPI switch is working */
>  #ifndef CONFIG_SPI_UART_SWITCH
> +#if CONFIG_MACH_TYPE != MACH_TYPE_VENTANA

I guess this forks the board type again, so that it is no longer
defined by the fdt. Is that what you intend, or do I have it wrong?

>  /*
>   * Routine: gpio_config_uart_seaboard
>   * Description: Force GPIO_PI3 low on Seaboard so UART4 works.
> @@ -48,11 +49,10 @@ static void gpio_config_uart_seaboard(void)
>
>  void gpio_early_init_uart(void)
>  {
> -       if (machine_is_ventana())
> -               return;
>         gpio_config_uart_seaboard();
>  }
>  #endif
> +#endif
>
>  #ifdef CONFIG_TEGRA_MMC
>  /*
> --
> 1.7.0.4
>

Regards,
Simon
Stephen Warren Oct. 19, 2012, 9:50 p.m. UTC | #2
On 10/19/2012 01:51 PM, Simon Glass wrote:
> Hi Stephen,
> 
> On Thu, Oct 18, 2012 at 4:25 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
>> Seaboard and Ventana are very similar boards, and so share the seaboard.c
>> board file. The one difference needed so far is detected at run-time by
>> calling machine_is_ventana(). This bloats the Ventana build with code
>> that is never used. Switch to detecting Ventana at compile time to remove
>> bloat. This shaves ~5K off the SPL size on Ventana, and makes the SPL fit
>> within the max size.

>> diff --git a/board/nvidia/seaboard/seaboard.c b/board/nvidia/seaboard/seaboard.c

>>  /* TODO: Remove this code when the SPI switch is working */
>>  #ifndef CONFIG_SPI_UART_SWITCH
>> +#if CONFIG_MACH_TYPE != MACH_TYPE_VENTANA
> 
> I guess this forks the board type again, so that it is no longer
> defined by the fdt. Is that what you intend, or do I have it wrong?

This particular conditional was never driven by DT anyway; the original
code called machine_is_ventana() which I believe would have been
evaluated at compile time (and if not, the run-time evaluation wouldn't
have been DT-driven).

I imagine the code I modified here will be ripped out soon anyway; you'd
agreed to removing all the SPI/UART switching logic on Seaboard once the
LCD patches were in; we can all just set the jumper to "UART" mode
instead of "GPIO-controlled" then:-)
Allen Martin Oct. 20, 2012, 5:54 a.m. UTC | #3
On Thu, Oct 18, 2012 at 04:25:58PM -0700, Stephen Warren wrote:
> From: Stephen Warren <swarren@nvidia.com>
> 
> Seaboard and Ventana are very similar boards, and so share the seaboard.c
> board file. The one difference needed so far is detected at run-time by
> calling machine_is_ventana(). This bloats the Ventana build with code
> that is never used. Switch to detecting Ventana at compile time to remove
> bloat. This shaves ~5K off the SPL size on Ventana, and makes the SPL fit
> within the max size.
> 
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> ---
> v2: New patch to replace modification of CONFIG_SYS_TEXT_BASE.
> ---
>  board/nvidia/seaboard/seaboard.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/board/nvidia/seaboard/seaboard.c b/board/nvidia/seaboard/seaboard.c
> index 4e8a183..6dce57f 100644
> --- a/board/nvidia/seaboard/seaboard.c
> +++ b/board/nvidia/seaboard/seaboard.c
> @@ -35,6 +35,7 @@
>  
>  /* TODO: Remove this code when the SPI switch is working */
>  #ifndef CONFIG_SPI_UART_SWITCH
> +#if CONFIG_MACH_TYPE != MACH_TYPE_VENTANA

Why not roll this into the previous #ifdef intead of the back to back #ifdefs?


>  /*
>   * Routine: gpio_config_uart_seaboard
>   * Description: Force GPIO_PI3 low on Seaboard so UART4 works.
> @@ -48,11 +49,10 @@ static void gpio_config_uart_seaboard(void)
>  
>  void gpio_early_init_uart(void)
>  {
> -	if (machine_is_ventana())
> -		return;
>  	gpio_config_uart_seaboard();
>  }
>  #endif
> +#endif
>  
>  #ifdef CONFIG_TEGRA_MMC
>  /*
> -- 
> 1.7.0.4
> 

-Allen
Stephen Warren Oct. 22, 2012, 4:09 p.m. UTC | #4
On 10/19/2012 11:54 PM, Allen Martin wrote:
> On Thu, Oct 18, 2012 at 04:25:58PM -0700, Stephen Warren wrote:
>> From: Stephen Warren <swarren@nvidia.com>
>>
>> Seaboard and Ventana are very similar boards, and so share the seaboard.c
>> board file. The one difference needed so far is detected at run-time by
>> calling machine_is_ventana(). This bloats the Ventana build with code
>> that is never used. Switch to detecting Ventana at compile time to remove
>> bloat. This shaves ~5K off the SPL size on Ventana, and makes the SPL fit
>> within the max size.
>>
>> Signed-off-by: Stephen Warren <swarren@nvidia.com>
>> ---
>> v2: New patch to replace modification of CONFIG_SYS_TEXT_BASE.
>> ---
>>  board/nvidia/seaboard/seaboard.c |    4 ++--
>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/board/nvidia/seaboard/seaboard.c b/board/nvidia/seaboard/seaboard.c
>> index 4e8a183..6dce57f 100644
>> --- a/board/nvidia/seaboard/seaboard.c
>> +++ b/board/nvidia/seaboard/seaboard.c
>> @@ -35,6 +35,7 @@
>>  
>>  /* TODO: Remove this code when the SPI switch is working */
>>  #ifndef CONFIG_SPI_UART_SWITCH
>> +#if CONFIG_MACH_TYPE != MACH_TYPE_VENTANA
> 
> Why not roll this into the previous #ifdef intead of the back to back #ifdefs?

I guess I could, although it's going to get line-wrapped anyway due to
length...
Allen Martin Oct. 22, 2012, 5:26 p.m. UTC | #5
On Mon, Oct 22, 2012 at 09:09:46AM -0700, Stephen Warren wrote:
> On 10/19/2012 11:54 PM, Allen Martin wrote:
> > On Thu, Oct 18, 2012 at 04:25:58PM -0700, Stephen Warren wrote:
> >> From: Stephen Warren <swarren@nvidia.com>
> >>
> >> Seaboard and Ventana are very similar boards, and so share the seaboard.c
> >> board file. The one difference needed so far is detected at run-time by
> >> calling machine_is_ventana(). This bloats the Ventana build with code
> >> that is never used. Switch to detecting Ventana at compile time to remove
> >> bloat. This shaves ~5K off the SPL size on Ventana, and makes the SPL fit
> >> within the max size.
> >>
> >> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> >> ---
> >> v2: New patch to replace modification of CONFIG_SYS_TEXT_BASE.
> >> ---
> >>  board/nvidia/seaboard/seaboard.c |    4 ++--
> >>  1 files changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/board/nvidia/seaboard/seaboard.c b/board/nvidia/seaboard/seaboard.c
> >> index 4e8a183..6dce57f 100644
> >> --- a/board/nvidia/seaboard/seaboard.c
> >> +++ b/board/nvidia/seaboard/seaboard.c
> >> @@ -35,6 +35,7 @@
> >>  
> >>  /* TODO: Remove this code when the SPI switch is working */
> >>  #ifndef CONFIG_SPI_UART_SWITCH
> >> +#if CONFIG_MACH_TYPE != MACH_TYPE_VENTANA
> > 
> > Why not roll this into the previous #ifdef intead of the back to back #ifdefs?
> 
> I guess I could, although it's going to get line-wrapped anyway due to
> length...

Just a nit, your call.  Either way:

Acked-by: Allen Martin <amartin@nvidia.com>

And the whole series:

Tested-by: Allen Martin <amartin@nvidia.com>
diff mbox

Patch

diff --git a/board/nvidia/seaboard/seaboard.c b/board/nvidia/seaboard/seaboard.c
index 4e8a183..6dce57f 100644
--- a/board/nvidia/seaboard/seaboard.c
+++ b/board/nvidia/seaboard/seaboard.c
@@ -35,6 +35,7 @@ 
 
 /* TODO: Remove this code when the SPI switch is working */
 #ifndef CONFIG_SPI_UART_SWITCH
+#if CONFIG_MACH_TYPE != MACH_TYPE_VENTANA
 /*
  * Routine: gpio_config_uart_seaboard
  * Description: Force GPIO_PI3 low on Seaboard so UART4 works.
@@ -48,11 +49,10 @@  static void gpio_config_uart_seaboard(void)
 
 void gpio_early_init_uart(void)
 {
-	if (machine_is_ventana())
-		return;
 	gpio_config_uart_seaboard();
 }
 #endif
+#endif
 
 #ifdef CONFIG_TEGRA_MMC
 /*