| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
|
|
|
|
|
|
| |
And also mark 4.19 as the kernel to be built when using poky-altcfg.
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
|
|
|
|
|
|
|
| |
Mark 4.14 (it should later be changed to 4.19 after the next LTS has been
merged) as the kernel to be built when using poky-altcfg. It'll help build
and test both the supported kernels.
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
LSB support has been removed from OE-core:
https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=bac4bc9aa6a1f2fcf2ce9644925615185cc8e847
https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=66dba027289d7dd20df4bae9ae4307ae3a225216
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The skylake tune introduced on 04510bfa
Currently disables qemu-usermode by default, due to the lack
of support from QEMU to several of the Intel instruction set
extensions introduced within the few latest generations of
CPU architectures (e.g. QEMU does not support avx2)
While there is a good reason to perform the removal of qemu-usermode
from MACHINE_FEATURES, there are several components within the
build system that rely on it for proper compilation and behavior,
for example anything that uses gobject data introspection or even
the components like the chromium web browser require to run a QEMU
for the target architecture to build successfully.
There is no reason why we can't have those components built without
sacrificing the cpu (most) optimizations.
The process I followed on meta-chromebook to enable an optimized build
and whats being upstreamed by this patch is that by doing some
reverse engineering, I was able to figure out which instruction
set extensions are not compatible with QEMU Skylake-Client, by
performing a bit gcc magic from inside QEMU (target) to get the
available optimizations for the native architecture (which is
actually our target in this case).
These are all (not surprisingly) the avx2 extensions, listed as
follows:
-mno-avx
-mno-avx2
-mno-avx512f
-mno-avx512er
-mno-avx512cd
-mno-avx512pf
-mno-avx512dq
-mno-avx512bw
-mno-avx512vl
-mno-avx512ifma
-mno-avx512vbmi
-mno-avx512vbmi2
-mno-avx512vnni
-mno-avx512bitalg
Specifically disabling these manually (for now), allows us to build an
optimized system for the skylake/skylake based architectures (e.g. KabyLake)
while keeping the capability of using qemu-usermode, as a side note GCC
does show more unavailable optimization tunes, (hence why there might be
some warnings), but getting rid of these specifically seems enough to make
it run happily in qemu-usermode.
Basically the MACHINE_FEATURES variable is able to dictate how we will tune
the build for our device, if qemu-usermode is present, TUNE_CCARGS will
expand as follows:
TUNE_CCARGS=" -m64 -march=skylake -mtune=skylake -mno-avx -mno-avx2
-mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-avx512dq
-mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx512vbmi2
-mno-avx512vnni -mno-avx512bitalg -mfpmath=sse"
Whats this means is that the build will be tuned for skylake architectures,
enabling all possible extensions, (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED,
ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC and XSAVES) minus the ones QEMU is unable
to run, which will result in an illegal instruction error, notice the tune is
kept as skylake.
Whilst, if qemu-usermode is not found on MACHINE_FEATURES, TUNE_CCARGS will
expand to:
TUNE_CCARGS=" -m64 -march=skylake -mtune=generic -mavx2 -mfpmath=sse"
Which is exactly what its set to with the current tune, so this patch should
be harmless, and only extend current functionality, we will still keep
qemu-usermode disabled by default (hence enabling avx2) but the user would
have the capability to decide how the skylake tune will be handled.
As the GCC manual states, we should really try to avoid using mtune=generic
when possible, and this patch allows us to do so [1].
This patch also addresses a problem on which the current skylake tune includes
tune-core2.inc instead of tune-corei7.inc to get the list of AVAILTUNES
and PACKAGE_EXTRA_ARCHS.
Right now, AVAILTUNES are set as follows:
AVAILTUNES=" x86 x86-64 x86-64-x32 i586 i686 core2-32 core2-64 core2-64-x32
skylake-64"
Where the proper set should be (after this patch):
AVAILTUNES=" x86 x86-64 x86-64-x32 i586 i686 core2-32 core2-64 core2-64-x32
corei7-32 corei7-64 corei7-64-x32 skylake-64"
When (if), QEMU gains support for the AVX2 instruction set extensions these
can be easily removed to provide full support for qemu-usermode.
[1] https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/x86-Options.html
Signed-off-by: Alejandro Enedino Hernandez Samaniego <aehs29@gmail.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add 64-bit new machine (intel-skylake-64) with -march=skylake
and avx2 instruction-set set up.
We do see a qemu-usermode failure at build time, on setup of
avx2 instruction-set as QEMU does not support AVX instruction
set.
Check this:
https://bugs.launchpad.net/qemu/+bug/1818075
So to bypass this issue disabling qemu-usermode for intel-skylake-64
machine.
Due to above limitation and in order to not affecting existing
machines, this new machine is being proposed to add.
A quick performance comparision between intel-corei7-64 vs intel-skylake-64 machines
Measurements are in time, taken by the benchmark tests. Less is better.
Test/Benchmark intel-corei7-64 intel-skylake-64
(1) CppPerformanceBenchmarks (Test: Math Library)
(1st) 5m 15.70s 4m 36.39s
(2nd) 5m 16.37s 4m 36.51s
(3rd) 5m 15.54s 4m 37.80s
CppPerformanceBenchmarks is a set of C++ compiler performance benchmarks.
(2) AOBench
(1st) 0m 35.07s 0m 28.74s
(2nd) 0m 34.90s 0m 28.72s
(3rd) 0m 34.85s 0m 28.89s
AOBench is a lightweight ambient occlusion renderer, written in C. The
test profile is using a size of 2048 x 2048.
(3) C-Ray
(1st) 320 seconds 232 seconds
(2nd) 320 seconds 232 seconds
(3rd) 321 seconds 232 seconds
C-Ray, a simple raytracer designed to test the floating-point CPU performance.
For this patch, 'bitbake world' gets successfully built with latest poky master.
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We include the firmware as part of initramfs image that is used for
live images. Make sure that we include this module for others as well.
Also include the kernel module for all images instead of relying on
"linux-modules" using MACHINE_EXTRA_RRECOMMENDS. Use
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS instead to pull in i915 module so it
works for all images based on packagegroup-core-boot.
Fixes [YOCTO #13446]
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
|
|
|
|
|
|
|
| |
Don't change native or nativesdk so that builds using both
meta-intel and other machines can share native sstate.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
|
|
|
|
|
|
| |
Explicitly set the kernel to be used when building an image with
linux-intel-rt kernel.
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
|
|
|
|
|
| |
Set preferred kernel to 4.19 for LSB as well.
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
|
|
|
|
|
| |
We don't supply binaries anymore. Also, remove some obsolete comments.
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
|
|
|
|
|
|
|
|
| |
OLD_XSERVER_X86_EXT was added to support emgd drivers that needed X server
older than 1.13. We neither support X server older than 1.13 nor the emgd
drivers now.
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
|
|
| |
Previously the ltsi kernel was 4.4, requiring us to use linux-yocto. It
has since moved to 4.9, allowing us to use linux-intel.
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
|
|
|
|
| |
RMC is confusing as a default because it is only supported by legacy
(iso, hddimg) image types. Its also not being actively maintained,
causing it to lag behind in updates (currently against systemd-boot
v232 instead of v234).
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
This driver was added for a platform that is no longer supported.
This recipe is also maintained in meta-oe in case it's required outside
of meta-intel.
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
|
|
| |
This is the newest LTS kernel, and will be the preferred kernel going
for this release.
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
|
|
|
| |
As the Quark machine has been EOL'ed at the end of 2017, remove this
machine type from the 2018 planned release of meta-intel
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
| |
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
|
|
|
| |
Use the new x86-x32 override to set the EFI_PROVIDER to grub-efi
which can build without any external libraries, thus just build
in 64bit mode without x32 libraries.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
| |
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
| |
Since we want to support the out of tree modules for wifi and ethernet
we need to also have them as common for all machines in the common arch.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
| |
This will ensure thermald is installed on all target images except core-image-minimal
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
|
| |
This lets the uefi-comboapp and new kickstart template work well
together out of the box.
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
|
|
| |
The recent patch from Todor to split the RMC recipe into lib and efi app
allows us to revert this override.
This reverts commit a0ca03a32bbe5cbc8433330c28f2044d0ff30ae8.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
| |
Since the existing rmc library does not build correctly for x32
target disable it with an ARCH based OVERRIDE.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
| |
Adding to KERNEL_FEATURES causes the kernel tools to try to add the
feature to all kernels, even custom kernels not using the
yocto-kernel-cache. By moving it to KERNEL_FEATURES_INTEL_COMMON, it
will only affect the kernels the layer supplies.
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
| |
We added -rt to available kernel, and will likely have -tiny and -dev
in the future, so add them now also.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
| |
This lets us use ovmf firmware with runqemu without building ovmf
manually beforehand.
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
|
|
|
| |
linux-intel does not provide a 4.1 kernel, which is needed for -lsb
images since they use the current LTSI kernel.
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
|
| |
Moves common MACHINE_EXTRA_RRECOMMENDS to a common include file and
add thermald to MACHINE_EXTRA_RRECOMMENDS.
Signed-off-by: Jussi Laako <jussi.laako@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
| |
Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
|
|
|
|
|
|
|
| |
This adds the linux-intel kernel to the list of packages that are
in the intel-common arch.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The latest OE's runqemu script by default uses the following
SLIRP options
-netdev user,id=net0,hostfwd=tcp::2222-:22,hostfwd=tcp::2323-:23
which are suitable for meta-intel too. And what is more important
they don't follow the deprecated syntax currently present in the
option values overriden by meta-intel.
The patch drops the meta-intel specific overrides.
Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Enable the linux-intel production kernel for meta-intel by default for 4.9,
this will enable using the Intel production kernel.
This is a well tested 4.9 tree that will start to include additional
support for the Apollolake and Joule hardware.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Although the machines definitions in meta-intel are meant to target
real hardware, begin able to start the resulting images under qemu is
nevertheless useful for testing.
Doing that via runqemu depends on a per-image runqemu.conf that
describes how to run qemu for the image. Ineriting qemuboot.bbclass in
image recipes with QB_ variables set for the current architecture via
overrides creates that file.
The new qemuboot-intel.inc was copied from OE-core's qemuboot-x86.inc
and adapted to the three common machines in meta-intel:
$ diff ../openembedded-core/meta/conf/machine/include/qemuboot-x86.inc conf/machine/include/qemuboot-intel.inc
3,5c3,5
< QB_SYSTEM_NAME_x86 = "qemu-system-i386"
< QB_CPU_x86 = "-cpu qemu32"
< QB_CPU_KVM_x86 = "-cpu kvm32"
---
> QB_SYSTEM_NAME_intel-core2-32 = "qemu-system-i386"
> QB_CPU_intel-core2-32 = "-cpu coreduo"
> QB_CPU_KVM_intel-core2-32 = "-cpu kvm32"
7,9c7,13
< QB_SYSTEM_NAME_x86-64 = "qemu-system-x86_64"
< QB_CPU_x86-64 = "-cpu core2duo"
< QB_CPU_KVM_x86-64 = "-cpu kvm64"
---
> QB_SYSTEM_NAME_intel-corei7-64 = "qemu-system-x86_64"
> QB_CPU_intel-corei7-64 = "-cpu Nehalem"
> QB_CPU_KVM_intel-corei7-64 = "-cpu kvm64"
>
> QB_SYSTEM_NAME_intel-quark = "qemu-system-i386"
> QB_CPU_intel-quark = "-cpu coreduo"
> QB_CPU_KVM_intel-quark = "-cpu kvm32"
For performance reasons, runqemu uses virtio for the boot disk. The
kernel therefore must have the necessary drivers enabled. This may
also be useful when running a meta-intel machine image on other
virtual platforms and therefore the default kernel configuration gets
changed to enable virtio.
However, OE-core's qemu.inc also enables various other tweaks for
running under qemu, like deriving the wired Ethernet address from the
kernel boot parameters. This is probably less desirable for a
meta-intel machine and thus not enabled in the new qemu-intel.inc. The
downside is that the resulting images then come up without assigned IP
address when used under qemu. Distros which want that feature can
still add it to their images by copying settings from OE-core's
qemu.inc.
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
RMC was previously configured to work only with the systemd-boot EFI
bootloader. With this commit we can specify alternative bootloaders by
setting the RMC_BOOTLOADER variable in local.conf. If RMC_BOOTLOADER is
not set systemd-boot will be used by default.
Signed-off-by: Todor Minchev <todor.minchev@linux.intel.com>
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
This allows to have one override mechansim for meta-intel instead of having
multiple machine overrides.
This replaces using rmc in DISTRO_FEATURES which was a bad idea to set in
layer.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
| |
We should not be changing DISTRO_FEATUES within a layer.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
|
|
| |
This enables the Runtime Machine Configuration feature, which
allows use to support multiple machines that have different
kernel commandline option as well as different startup requirements
to work from the base MACHINE configuration.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
| |
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
|
| |
This makes it easier for others inheriting meta-intel to use their own
kernel.
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
| |
The linux-yocto-tiny metadata assumes the common PACKAGE_ARCH but
without this is actually machine-specific and broken.
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|
|
|
|
|
|
|
| |
This address a boot issue based on using the new bootimg code that
makes a distiction between Live and VM type of image so they can
co-exisit.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
| |
This information is the same across all meta-intel supported MACHINEs,
so we can move it to a shared location.
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
|
|
|
|
|
| |
This causes the build to not use Assembly code which contains invalid
CMOV instructions.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
|
| |
The padlock code is a subset of x86 hardware acceleration code. It uses
the cmov instruction which is invalid on Quark based hardware, so we
disable this code.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
| |
This new BSP is for the Quark/X1000 and related series that need
the limited no-lock-prefix.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
|
|
|
|
|
| |
This is handled in oe-core now, remove the redundant code.
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
|
|
|
|
|
|
|
| |
LSB images prefer to build with LTSI. Update to 3.14, now that 3.10 has
been removed.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The microcode data file released by Intel has microcode for many Intel
processors, which by default all get installed onto the target image.
In some situations it may desirable to choose microcode for only a
selected processor or processors. This change provides an easier way
to filter and select only the microcode of interest for BSPs from
recipe space.
A new variable, UCODE_FILTER_PARAMETERS, is introduced, which can be
defined to contain parameters to the iucode_tool which will filter the
microcode of interest for the BSP under consideration. More
information on the iucode-tool parameters is available here:
http://manned.org/iucode-tool.
This filtering makes the generated microcode files very
machine-specific, hence making the recipe machine-specific. BSPs using
the common Intel kernel will not be using the filtered microcode, and
will be able to share the intel-microcode packages with the common
Intel package arch for the recipe.
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Acked-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
|