[meta-xilinx] [PATCH] meta: introduce bigendian instead of little-endian/big-endian

Ming Liu liu.ming50 at gmail.com
Thu Jul 6 00:25:09 PDT 2017


> This looks ok. Just out of query is there a reason for this change apart
from lining up with oe-core?

Yes, there is a reason, I am now working on a patch refactoring
linuxloader.bbclass for musl libc in OE(not sent to mail list yet), in
which I need query microblaze TUNE_FEATURES for endianness, I prefer to
query "bigendian" like all other architectures are doing, that's why I made
this patch.

//Ming Liu

2017-07-06 7:22 GMT+02:00 Nathan Rossi <nathan at nathanrossi.com>:

> On 6 July 2017 at 12:02,  <liu.ming50 at gmail.com> wrote:
> > From: Ming Liu <peter.x.liu at external.atlascopco.com>
> >
> > The endianess of a specific architecture could be either big or little,
> > there is not a third value, so let it default to be little endian, and
> > get rid of the tune feature 'little-endian' which is redundant to be
> > there, also change tune feature 'big-endian' to 'bigendian'.
> >
> > With these changes, it will behave same with all other architectures in
> > openembedded-core layer.
>
> This looks ok. Just out of query is there a reason for this change
> apart from lining up with oe-core?
>
> On a side note, I am working towards getting these microblaze tunes
> included in oe-core so this will be included in that.
>
> >
> > Signed-off-by: Ming Liu <peter.x.liu at external.atlascopco.com>
> > ---
> >  classes/zynqmp-pmu.bbclass                                   |  2 +-
> >  conf/machine/include/microblaze/arch-microblaze.inc          | 12
> ++++--------
> >  .../include/microblaze/feature-microblaze-versions.inc       |  2 +-
> >  conf/machine/kc705-microblazeel.conf                         |  2 +-
> >  conf/machine/ml605-qemu-microblazeel.conf                    |  2 +-
> >  conf/machine/s3adsp1800-qemu-microblazeeb.conf               |  2 +-
> >  6 files changed, 9 insertions(+), 13 deletions(-)
> >
> > diff --git a/classes/zynqmp-pmu.bbclass b/classes/zynqmp-pmu.bbclass
> > index 7291344..3ebe488 100644
> > --- a/classes/zynqmp-pmu.bbclass
> > +++ b/classes/zynqmp-pmu.bbclass
> > @@ -18,7 +18,7 @@ ORIG_TARGET_ARCH := "${TARGET_ARCH}"
> >  # zynqmp-pmu target arch (hardcoded based on pre-gen data from
> arch-microblaze.inc)
> >  ABIEXTENSION = ""
> >  TUNE_ARCH = "microblazeel"
> > -#TUNE_FEATURES_tune-microblaze += "v9.2 little-endian barrel-shift
> pattern-compare"
> > +#TUNE_FEATURES_tune-microblaze += "v9.2 barrel-shift pattern-compare"
> >  TUNE_CCARGS = "-mlittle-endian -mxl-barrel-shift -mxl-pattern-compare
> -mno-xl-reorder -mcpu=v9.2 -mxl-soft-mul -mxl-soft-div"
> >  TUNE_LDARGS = ""
> >  TUNE_ASARGS = ""
> > diff --git a/conf/machine/include/microblaze/arch-microblaze.inc
> b/conf/machine/include/microblaze/arch-microblaze.inc
> > index b01f03b..27f776c 100644
> > --- a/conf/machine/include/microblaze/arch-microblaze.inc
> > +++ b/conf/machine/include/microblaze/arch-microblaze.inc
> > @@ -5,15 +5,11 @@ TUNEVALID[microblaze] = "MicroBlaze"
> >  MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES",
> "microblaze", "microblaze:", "" ,d)}"
> >
> >  # Endian
> > -TUNEVALID[big-endian] = "Use Microblaze Big Endian."
> > -TUNECONFLICTS[big-endian] = "little-endian"
> > -TUNEVALID[little-endian] = "Use Microblaze Little Endian."
> > -TUNECONFLICTS[little-endian] = "big-endian"
> > +TUNEVALID[bigendian] = "Use Microblaze Big Endian."
> >
> > -MBPKGARCH_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES",
> "little-endian", "el", "eb" ,d)}"
> > +MBPKGARCH_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian",
> "eb", "el" ,d)}"
> >
> > -TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "big-endian",
> "-mbig-endian", "" ,d)}"
> > -TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "little-endian",
> "-mlittle-endian", "" ,d)}"
> > +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "bigendian",
> "-mbig-endian", "-mlittle-endian" ,d)}"
> >
> >  # General features
> >  TUNEVALID[barrel-shift] = "Enable Hardware Barrel Shifter"
> > @@ -42,7 +38,7 @@ require conf/machine/include/
> microblaze/feature-microblaze-versions.inc
> >  require conf/machine/include/microblaze/feature-microblaze-math.inc
> >
> >  # Architecture name, either 'microblazeeb' or 'microblazeel' depending
> on endianess
> > -TUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES",
> "little-endian", "el", "eb" ,d)}"
> > +TUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES",
> "bigendian", "eb", "el" ,d)}"
> >
> >  # Package Architecture formatting
> >  TUNE_PKGARCH = "microblaze${MBPKGARCH_ENDIAN}${MBPKGARCH_VERSION}${
> MBPKGARCH_TUNE}${MBPKGARCH_MATH}"
> > diff --git a/conf/machine/include/microblaze/feature-microblaze-versions.inc
> b/conf/machine/include/microblaze/feature-microblaze-versions.inc
> > index 7e9aa95..4a2b4f4 100644
> > --- a/conf/machine/include/microblaze/feature-microblaze-versions.inc
> > +++ b/conf/machine/include/microblaze/feature-microblaze-versions.inc
> > @@ -69,7 +69,7 @@ TUNECONFLICTS[v9.6] := "${@microblaze_version_conflict('v9.6',
> d)}"
> >  TUNECONFLICTS[v10.0] := "${@microblaze_version_conflict('v10.0', d)}"
> >
> >  # Version/feature conflicts
> > -TUNECONFLICTS[v7.30] += "reorder little-endian"
> > +TUNECONFLICTS[v7.30] += "reorder"
>
> So this is the only issue I see with this change, in that MicroBlaze
> never used to support little endian.
>
> But since v7.30 and earlier versions (which only supported big endian)
> of MicroBlaze have been marked "obsolete" since at least 2012 i'm
> inclined to remove those tunes anyway.
>
> Any opinion on this Manju, or the change in general?
>
> Regards,
> Nathan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-xilinx/attachments/20170706/ced543c0/attachment.html>


More information about the meta-xilinx mailing list