Patchwork [1/3] buildroot: target: Add Blackfin architecture support in configuration.

login
register
mail settings
Submitter Sonic Zhang
Date Aug. 6, 2012, 11:17 a.m.
Message ID <1344251847-7709-1-git-send-email-sonic.adi@gmail.com>
Download mbox | patch
Permalink /patch/175327/
State Rejected
Headers show

Comments

Sonic Zhang - Aug. 6, 2012, 11:17 a.m.
From: Sonic Zhang <sonic.zhang@analog.com>

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
---
 target/Config.in.arch |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)
Thomas Petazzoni - Aug. 6, 2012, 12:36 p.m.
Hello,

Le Mon, 6 Aug 2012 19:17:25 +0800,
Sonic Zhang <sonic.adi@gmail.com> a écrit :

> From: Sonic Zhang <sonic.zhang@analog.com>
> 
> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
> ---
>  target/Config.in.arch |   19 +++++++++++++++++++
>  1 files changed, 19 insertions(+), 0 deletions(-)
> 
> diff --git a/target/Config.in.arch b/target/Config.in.arch
> index 6eaa951..001faf0 100644
> --- a/target/Config.in.arch
> +++ b/target/Config.in.arch
> @@ -131,6 +131,15 @@ config BR2_xtensa
>  	  http://www.tensilica.com/
>  endchoice
>  
> +config BR2_ABI_FLAT
> +	bool
> +	default n
> +
> +config BR2_ABI_ELF
> +	bool
> +	default y
> +	depends on !BR2_ABI_FLAT

Could you expand a bit on why this is needed, and where it will be
used? I have seen those used in various places in some of your packages
in your Git repository, but I am not sure the use cases were actually
valid.

>  config BR2_microblaze
>  	bool
>  	default y if BR2_microblazeel || BR2_microblazebe
> @@ -231,8 +240,18 @@ choice
>  	default BR2_BFIN_FDPIC
>  config BR2_BFIN_FDPIC
>  	bool "FDPIC"
> +	select BR2_ABI_ELF
>  config BR2_BFIN_FLAT
>  	bool "FLAT"
> +	select BR2_ABI_FLAT
> +	select BR2_PREFER_STATIC_LIB
> +config BR2_BFIN_FLAT_SEP_DATA
> +	bool "FLAT (Separate data)"
> +	select BR2_ABI_FLAT
> +	select BR2_PREFER_STATIC_LIB
> +config BR2_BFIN_SHARED_FLAT
> +	bool "Shared FLAT"
> +	select BR2_ABI_FLAT
>  	select BR2_PREFER_STATIC_LIB
>  endchoice

Are these "FLAT (Separate data)" and "Shared FLAT" use cases actually
used in practice by people? I'm not a Blackfin expert, so I don't know
what's used in the field.

Thanks!

Thomas
Sonic Zhang - Aug. 8, 2012, 2:42 a.m.
On Tue, Aug 7, 2012 at 11:14 AM, Zhang, Sonic <Sonic.Zhang@analog.com> wrote:
> Hi Thomas,
>
>>-----Original Message-----
>>From: Thomas Petazzoni [mailto:thomas.petazzoni@free-electrons.com]
>>Sent: Monday, August 06, 2012 8:36 PM
>>To: Sonic Zhang
>>Cc: Peter Korsgaard; buildroot@busybox.net; buildroot-devel@lackfin.uclinux.org;
>>Zhang, Sonic
>>Subject: Re: [PATCH 1/3] buildroot: target: Add Blackfin architecture support in
>>configuration.
>>
>>Hello,
>>
>>Le Mon, 6 Aug 2012 19:17:25 +0800,
>>Sonic Zhang <sonic.adi@gmail.com> a écrit :
>>
>>> From: Sonic Zhang <sonic.zhang@analog.com>
>>>
>>> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
>>> ---
>>>  target/Config.in.arch |   19 +++++++++++++++++++
>>>  1 files changed, 19 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/target/Config.in.arch b/target/Config.in.arch
>>> index 6eaa951..001faf0 100644
>>> --- a/target/Config.in.arch
>>> +++ b/target/Config.in.arch
>>> @@ -131,6 +131,15 @@ config BR2_xtensa
>>>        http://www.tensilica.com/
>>>  endchoice
>>>
>>> +config BR2_ABI_FLAT
>>> +    bool
>>> +    default n
>>> +
>>> +config BR2_ABI_ELF
>>> +    bool
>>> +    default y
>>> +    depends on !BR2_ABI_FLAT
>>
>>Could you expand a bit on why this is needed, and where it will be
>>used? I have seen those used in various places in some of your packages
>>in your Git repository, but I am not sure the use cases were actually
>>valid.
>
> Blackfin toolchain support both the FLAT ABI and ELF(FDPIC) ABI. Some features are different between them, such as the default stack size. The default stack size of FLAT binary is only 4k bytes, while it is 128k for ELF binary. Although 4k is enough for most application, it may be too small for the others such as bonnie++. The flat to enlarge stack size "-Wl,-elf2flt=-s64000" only apply to FLAT toolchain with BF2_ABI_FLAT defined.
>
>
>>
>>>  config BR2_microblaze
>>>      bool
>>>      default y if BR2_microblazeel || BR2_microblazebe
>>> @@ -231,8 +240,18 @@ choice
>>>      default BR2_BFIN_FDPIC
>>>  config BR2_BFIN_FDPIC
>>>      bool "FDPIC"
>>> +    select BR2_ABI_ELF
>>>  config BR2_BFIN_FLAT
>>>      bool "FLAT"
>>> +    select BR2_ABI_FLAT
>>> +    select BR2_PREFER_STATIC_LIB
>>> +config BR2_BFIN_FLAT_SEP_DATA
>>> +    bool "FLAT (Separate data)"
>>> +    select BR2_ABI_FLAT
>>> +    select BR2_PREFER_STATIC_LIB
>>> +config BR2_BFIN_SHARED_FLAT
>>> +    bool "Shared FLAT"
>>> +    select BR2_ABI_FLAT
>>>      select BR2_PREFER_STATIC_LIB
>>>  endchoice
>>
>>Are these "FLAT (Separate data)" and "Shared FLAT" use cases actually
>>used in practice by people? I'm not a Blackfin expert, so I don't know
>>what's used in the field.
>
> Though I don't know if our end customers use shared FLAT in their blackfin based products, we do support these binary formats in blackfin GNU toolchain and Linux distribution for years.

Because Stuart is out these days, I cc David as well.

Regards,

Sonic

Patch

diff --git a/target/Config.in.arch b/target/Config.in.arch
index 6eaa951..001faf0 100644
--- a/target/Config.in.arch
+++ b/target/Config.in.arch
@@ -131,6 +131,15 @@  config BR2_xtensa
 	  http://www.tensilica.com/
 endchoice
 
+config BR2_ABI_FLAT
+	bool
+	default n
+
+config BR2_ABI_ELF
+	bool
+	default y
+	depends on !BR2_ABI_FLAT
+
 config BR2_microblaze
 	bool
 	default y if BR2_microblazeel || BR2_microblazebe
@@ -231,8 +240,18 @@  choice
 	default BR2_BFIN_FDPIC
 config BR2_BFIN_FDPIC
 	bool "FDPIC"
+	select BR2_ABI_ELF
 config BR2_BFIN_FLAT
 	bool "FLAT"
+	select BR2_ABI_FLAT
+	select BR2_PREFER_STATIC_LIB
+config BR2_BFIN_FLAT_SEP_DATA
+	bool "FLAT (Separate data)"
+	select BR2_ABI_FLAT
+	select BR2_PREFER_STATIC_LIB
+config BR2_BFIN_SHARED_FLAT
+	bool "Shared FLAT"
+	select BR2_ABI_FLAT
 	select BR2_PREFER_STATIC_LIB
 endchoice