Official sunxi OpenEmbedded layer for Allwinner-based boards.
Go to file
Jonathan Liu 26c32a3228 sdcard_image-sunxi.bbclass: fix copying device tree files not working
The image class assumes the working directory is the directory
containg the kernel and device tree files but this isn't always the
case.

Signed-off-by: Jonathan Liu <net147@gmail.com>
2016-09-09 22:43:21 +10:00
classes sdcard_image-sunxi.bbclass: fix copying device tree files not working 2016-09-09 22:43:21 +10:00
conf Add support for pcduino devices 2016-05-18 22:17:42 +03:00
recipes-bsp u-boot: fix out-of-tree builds 2016-08-23 21:48:08 +10:00
recipes-devtools/python pyA20: Add more olimex boards 2015-03-02 16:39:10 +01:00
recipes-graphics sunxi-mali: error out earlier on non-hf builds 2016-09-06 11:53:08 +02:00
recipes-kernel/linux Change PV for kernel git version 2016-06-25 14:02:53 +02: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 update sunxi-tools 2015-09-21 15:54:00 +02:00
COPYING.MIT allwinner-a10: initial import. 2012-06-03 19:47:57 +02:00
README.md README.md: improve instructions for sunxi versions 2015-09-21 22:04:36 -04: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
bitbake -c clean u-boot

Also, older kernel versions such as this don't build successfully with any gcc version 5.0 or newer. Since gcc-5.2 is the current default compiler on master, if you wish to build this kernel with master you'll need to add the following to your conf/local.conf:

GCCVERSION = "4.9%"

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