Official sunxi OpenEmbedded layer for Allwinner-based boards.
Go to file
Martin Kelly 1495b5e567 linux: fix kernel config fragment support
Currently, using kernel config fragments is not working. If you try
adding one as documented in the Yocto Mega Manual [1], it will be
ignored.

There are two reasons for this:
- The config fragment logic is in kernel-yocto.bbclass, so we need to inherit
  that (this is similar to what linux-raspberrypi does in meta-raspberrypi).
- We remove ${B}/.config, which undoes any config created by
  kernel-yocto.

Fix this by inheriting kernel-yocto and not removing ${B}/.config. With
this patch, fragments are working. Note that we also need to add a few
variables (like KERNEL_KBUILD) to make kernel-yocto happy.

[1]
http://www.yoctoproject.org/docs/2.5/mega-manual/mega-manual.html#creating-the-append-file

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-01-12 13:07:17 -08:00
classes sdimage: add support for sun50i sunxi boards 2017-12-03 22:32:13 +03:00
conf drop DEFAULTTUNE from machine recipes 2017-12-21 17:40:55 +01:00
recipes-bsp u-boot: enable support for sun50i 2017-12-03 22:24:12 +03: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: fix kernel config fragment support 2018-01-12 13:07:17 -08: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: Clean up build instructions 2016-11-26 12:38:44 +11: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 linux u-boot

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