Official sunxi OpenEmbedded layer for Allwinner-based boards.
Go to file
Sergey Matyukevich d1e20fbe84 linux: specify explicit dependencies to configme task
This change is an adaptation of commit 81e8a52e8e40e47 from poky/master.

Linux kernel build dependencies include bison since v4.16.
There were two different commits in poky adding those dependencies:
- poky/master: 81e8a52e8e40e47
- poky/sumo:   20e4d309e12bf10

However just adding bison-native to DEPENDS in linux or linux-yocto
class (as in poky/sumo) appears to be insufficient. The reason has
been clarified in 81e8a52e8e40e47 commit message:

"For linux-yocto, we also need to specify the compiler/tools dependencies
for the configme task since it executes before configure and hence the
main kernel build DEPENDS will not always be in the sysroot before it
executes. Without those dependencies the kernel will be incorrectly
configured (i.e. bison is missing) or the configuration will fail
the mitigation tests."

Layer meta-sunxi is compatible with multiple Yocto releases. Some of
those releases have been developed and tested with earlier kernels.
So they may not include new bison kernel build dependencies. That
is why it  makes sense to specify new kernel build dependencies
explicitely in meta-sunxi kernel recipes rather than rely upon
upper layers.

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2018-12-04 10:47:53 +01:00
classes sdimage: fix incorrect comment 2018-01-10 12:21:59 -08:00
conf orange-pi-pc-plus: update preferred U-boot version to v2018.03 2018-09-27 21:04:14 +02:00
recipes-bsp u-boot_2018.03.bb: Enable eMMC support for Nanopi Neo Air 2018-09-12 14:50:33 +02:00
recipes-devtools/python pypi requires a https connection 2017-10-27 13:46:41 +02:00
recipes-graphics Disables tslib 2017-02-13 09:39:29 +00:00
recipes-kernel/linux linux: specify explicit dependencies to configme task 2018-12-04 10:47:53 +01:00
recipes-multimedia/gstreamer gst-plugin-cedar: import PoC gstreamer 0.10 plugin 2014-01-16 13:52:23 +01:00
recipes-support/sunxi-tools PR reset to 0 2017-04-01 16:02:53 +01:00
COPYING.MIT allwinner-a10: initial import. 2012-06-03 19:47:57 +02:00
README.md README.md: Update Kernel / U-Boot Version 2018-04-13 03:20:45 +03:00

meta-sunxi

Official sunxi OpenEmbedded layer for Allwinner-based boards.

This layer depends on the additional layer:

meta-openembedded: git://git.openembedded.org/meta-openembedded

Tested with core-image-base.

Maintainers:

Kernel / U-Boot Version

Most Allwinner devices and hardware are supported in mainline kernel and U-Boot, so this layer builds mainline by default. There is a custom U-Boot and Kernel version for sunxi devices which includes some special drivers not mainlined. These versions are rather old (3.4 for kernel and 2014.04 for U-Boot), but may support more functions and devices than current mainline

If you want to switch back to sunxi versions for some reasons (no device tree available, unsupported hardware), either:

  • change the file conf/machine/include/sunxi.inc to include the following block

  • edit your conf/local.conf to add the following block

    PREFERRED_PROVIDER_u-boot="u-boot-sunxi" PREFERRED_PROVIDER_virtual/bootloader="u-boot-sunxi" PREFERRED_PROVIDER_virtual/kernel="linux-sunxi"

If you already have built the mainline versions it might be necessary to reset the build directories with:

bitbake -c clean virtual/kernel virtual/bootloader

Performance

The default machine settings are meant to be the lowest common denominator, maximizing generality. Significantly better performance (2x-3x) can be achieved with the following settings:

Allwinner A20

For Allwinner A20 (Cubieboard2/CubieTruck), the following tuning options are recommended:

Enable hardfloat, thumb2 and neon capabilities

DEFAULTTUNE = "cortexa7hf-neon-vfpv4"

This tuning profile takes advantage of the Allwinner A20 hardfloat, neon and vfpv4 capabilities.

Change CPU governor to ondemand, and tune settings

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 336000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 912000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
#More aggressive
#echo 1008000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 40 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 200000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate

This code changes the default CPU governor from fantasy to ondemand, and tunes its settings, as recommended at http://linux-sunxi.org/Cpufreq

For additional discussion, see https://github.com/linux-sunxi/meta-sunxi/issues/25