416af351cb
Modify sdcard_image-sunxi bbclass to support both sun50i and older SoC families. Major changes are as follows: - update comments: disk layout info - increase boot partition size: aarch64 unified kernels can be large - kernel image in boot partition: replace explicit name by KERNEL_IMAGETYPE - SPL image: replace explicit name by SPL_BINARY - implement flexible DTB file location in boot partition -- e.g. by defaut sun50i u-boot looks for dtb in allwinner subdirectory -- follow kernel dtb naming conventions, e.g. allwinner/<board>.dtb - copy aarch64 u-boot image to image -- sunxi arm boards use unified u-boot/spl image -- sunxi aarch64 boards use two different images Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com> |
||
---|---|---|
classes | ||
conf | ||
recipes-bsp | ||
recipes-devtools/python | ||
recipes-graphics | ||
recipes-kernel/linux | ||
recipes-multimedia/gstreamer | ||
recipes-support/sunxi-tools | ||
COPYING.MIT | ||
README.md |
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:
- Nicolas Aguirre aguirre.nicolas@gmail.com
- Enrico Butera ebutera@users.sourceforge.net
- Sergey Lapin slapin@ossfans.org
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