Patchwork config/arch+scripts/build/arch: Add Microblaze architecture support

login
register
mail settings
Submitter David Holsgrove
Date Sept. 18, 2012, 2:16 a.m.
Message ID <79a03dc829edb6188436.1347934614@localhost.localdomain>
Download mbox | patch
Permalink /patch/184585/
State Superseded
Headers show

Comments

David Holsgrove - Sept. 18, 2012, 2:16 a.m.
# HG changeset patch
# User David Holsgrove <david.holsgrove@xilinx.com>
# Date 1347933988 -36000
# Node ID 79a03dc829edb6188436a2c7cc33ead9e27827c4
# Parent  2858a24a584642e263a920b4214c815c172ed547
config/arch+scripts/build/arch: Add Microblaze architecture support

Add Microblaze architecture support (depends on EXPERIMENTAL)

Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com>


--
For unsubscribe information see http://sourceware.org/lists.html#faq
Yann E. MORIN - Sept. 19, 2012, 8:26 p.m.
David, All,

On Tuesday 18 September 2012 04:16:54 David Holsgrove wrote:
> # HG changeset patch
> # User David Holsgrove <david.holsgrove@xilinx.com>
> # Date 1347933988 -36000
> # Node ID 79a03dc829edb6188436a2c7cc33ead9e27827c4
> # Parent  2858a24a584642e263a920b4214c815c172ed547
> config/arch+scripts/build/arch: Add Microblaze architecture support

Usually, we just specify the component familly, the component name, and
the action being done. As microblaze is still experimental (at least in
CT-NG!), saying so in the commmit log would be good.

In this case, a subject like the following would
be more obvious:

    arch/microblaze: add new architecture

> Add Microblaze architecture support (depends on EXPERIMENTAL)
> 
> Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com>
> 
> diff -r 2858a24a5846 -r 79a03dc829ed config/arch/microblaze.in
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/config/arch/microblaze.in	Tue Sep 18 12:06:28 2012 +1000
> @@ -0,0 +1,12 @@
> +# MicroBlaze specific config options
> +
> +## depends on EXPERIMENTAL
> +##
> +## select ARCH_SUPPORT_ARCH
> +## select ARCH_FLOAT_SW
> +## select ARCH_SUPPORTS_BOTH_ENDIAN
> +## select ARCH_DEFAULT_BE
> +## select ARCH_DEFAULT_HAS_MMU

What archs usually do is:
  - if the MMU is always available (eg. x86):
        select ARCH_USE_MMU
  - if the MMU is either available or missing (eg. arm):
        select ARCH_SUPPORTS_BOTH_MMU
        select ARCH_DEFAULT_HAS_MMU   (only if the MMU is 'default')
  - if the arch never has an MMU (eg. blackfin), select nothing

AFAICS, microblaze is like ARM: use of the MMU is configurable.

Also, please add to the help entry that upstream projects are not all
up to full support for microblaze, and that support is being added.
If there are out-of-tree public patches and/or alternate repositories,
you may also want to point to them in the help entry, so that interested
parties can use them until support is upstream.

Othwerwise, looks good!

Regards,
Yann E. MORIN.
David Holsgrove - Sept. 20, 2012, 12:18 a.m.
Hi Yann,

On 20 September 2012 06:26, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
>
> David, All,
>
> On Tuesday 18 September 2012 04:16:54 David Holsgrove wrote:
> > # HG changeset patch
> > # User David Holsgrove <david.holsgrove@xilinx.com>
> > # Date 1347933988 -36000
> > # Node ID 79a03dc829edb6188436a2c7cc33ead9e27827c4
> > # Parent  2858a24a584642e263a920b4214c815c172ed547
> > config/arch+scripts/build/arch: Add Microblaze architecture support
>
> Usually, we just specify the component familly, the component name, and
> the action being done. As microblaze is still experimental (at least in
> CT-NG!), saying so in the commmit log would be good.
>
> In this case, a subject like the following would
> be more obvious:
>
>     arch/microblaze: add new architecture
>
> > Add Microblaze architecture support (depends on EXPERIMENTAL)
> >
> > Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com>
> >

Thanks for the comments, I'll update my commit log message in v2

> > diff -r 2858a24a5846 -r 79a03dc829ed config/arch/microblaze.in
> > --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> > +++ b/config/arch/microblaze.in       Tue Sep 18 12:06:28 2012 +1000
> > @@ -0,0 +1,12 @@
> > +# MicroBlaze specific config options
> > +
> > +## depends on EXPERIMENTAL
> > +##
> > +## select ARCH_SUPPORT_ARCH
> > +## select ARCH_FLOAT_SW
> > +## select ARCH_SUPPORTS_BOTH_ENDIAN
> > +## select ARCH_DEFAULT_BE
> > +## select ARCH_DEFAULT_HAS_MMU
>
> What archs usually do is:
>   - if the MMU is always available (eg. x86):
>         select ARCH_USE_MMU
>   - if the MMU is either available or missing (eg. arm):
>         select ARCH_SUPPORTS_BOTH_MMU
>         select ARCH_DEFAULT_HAS_MMU   (only if the MMU is 'default')
>   - if the arch never has an MMU (eg. blackfin), select nothing
>
> AFAICS, microblaze is like ARM: use of the MMU is configurable.
>

Yes indeed, I can add ARCH_SUPPORTS_BOTH_MMU, and having
ARCH_DEFAULT_HAS_MMU would be a reasonable config choice.

> Also, please add to the help entry that upstream projects are not all
> up to full support for microblaze, and that support is being added.
> If there are out-of-tree public patches and/or alternate repositories,
> you may also want to point to them in the help entry, so that interested
> parties can use them until support is upstream.
>
> Othwerwise, looks good!

Thanks Yann - I'll resubmit shortly :-)

David

>
> Regards,
> Yann E. MORIN.
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
> | +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> '------------------------------^-------^------------------^--------------------'
>
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq
>

--
For unsubscribe information see http://sourceware.org/lists.html#faq

Patch

diff -r 2858a24a5846 -r 79a03dc829ed config/arch/microblaze.in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/config/arch/microblaze.in	Tue Sep 18 12:06:28 2012 +1000
@@ -0,0 +1,12 @@ 
+# MicroBlaze specific config options
+
+## depends on EXPERIMENTAL
+##
+## select ARCH_SUPPORT_ARCH
+## select ARCH_FLOAT_SW
+## select ARCH_SUPPORTS_BOTH_ENDIAN
+## select ARCH_DEFAULT_BE
+## select ARCH_DEFAULT_HAS_MMU
+##
+## help The MicroBlaze architecture, as defined by:
+## help 	http://www.xilinx.com/
diff -r 2858a24a5846 -r 79a03dc829ed scripts/build/arch/microblaze.sh
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/build/arch/microblaze.sh	Tue Sep 18 12:06:28 2012 +1000
@@ -0,0 +1,21 @@ 
+# Compute microblaze specific values
+
+CT_DoArchTupleValues () {
+    # The architecture part of the tuple:
+    CT_TARGET_ARCH="${CT_ARCH}${target_endian_el}"
+
+    # gcc ./configure flags
+    CT_ARCH_WITH_ARCH=
+    CT_ARCH_WITH_ABI=
+    CT_ARCH_WITH_CPU=
+    CT_ARCH_WITH_TUNE=
+    CT_ARCH_WITH_FPU=
+    CT_ARCH_WITH_FLOAT=
+
+    # CFLAGS
+    case "${CT_ARCH_FLOAT_HW},${CT_ARCH_FLOAT_SW}" in
+        y,) CT_ARCH_FLOAT_CFLAG="-mhard-float" ;;
+        ,y) CT_ARCH_FLOAT_CFLAG="-msoft-float" ;;
+    esac
+
+}