5 Commits

Author SHA1 Message Date
26ecaec7cb Merge pull request #279 from kedder/zeus
Backport linux-sunxi compilation fixes to Zeus
2020-01-26 19:35:19 +01:00
3aec777673 Mention that devicetree needs to be disabled for old kernel 2020-01-26 12:11:20 +02:00
b88a5c62f1 Correctly generate .config file for the compilation 2020-01-26 12:11:20 +02:00
3107a0c1c9 u-boot-sunxi: fix compilation under gcc, newer than 4 2020-01-26 12:11:19 +02:00
4c6dd3d573 linux-sunxi: fix compilation issue on gcc-9
Error comes in form of

/tmp/ccCGMQmS.s:648: Error: .err encountered

Tested on zeus branch of linux-sunxi.
2020-01-26 12:11:19 +02:00
24 changed files with 174 additions and 124 deletions

View File

@ -19,12 +19,8 @@ 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.
Legacy sunxi Kernel / U-Boot
-----------
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.
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
@ -39,16 +35,9 @@ If you already have built the mainline versions it might be necessary to reset t
bitbake -c clean virtual/kernel virtual/bootloader
Mainline Kernel / U-Boot
-----------
For mainline kernel we have now support for latest LTS and stable.
For mainline kernel we have now support for latest LTS, stable and bleeding edge (latest possible rc).
By default we use latest LTS. If you would like to change version please update ```PREFERRED_VERSION_linux-mainline``` in:
* [conf/machine/include/sunxi.inc](https://github.com/linux-sunxi/meta-sunxi/blob/fa0846c0eb23e3424b89acb4d5a327e921f73497/conf/machine/include/sunxi.inc#L16)
When using mainline kernel ≥ 5.2 it is now possible to use the mainline graphics drivers *lima* and *panfrost*, instead of the *mali* driver provided by ARM. To enable open source mainline graphics support add the following line in your `local.conf`:
MACHINEOVERRIDES .= ":use-mailine-graphics"
* [conf/machine/include/sunxi.inc](https://github.com/linux-sunxi/meta-sunxi/blob/4921234ed77f9df77c65c88637ce50468f65bde7/conf/machine/include/sunxi.inc#L16)
Performance
===========

View File

@ -94,10 +94,6 @@ IMAGE_CMD_sunxi-sdimg () {
then
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/boot.scr ::boot.scr
fi
if [ -e "${DEPLOY_DIR_IMAGE}/splash.bmp" ]
then
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/splash.bmp ::splash.bmp
fi
# Add stamp file

View File

@ -14,4 +14,4 @@ LAYERVERSION_meta-sunxi = "1"
LAYERDEPENDS_meta-sunxi = "core openembedded-layer"
LAYERSERIES_COMPAT_meta-sunxi = "zeus dunfell"
LAYERSERIES_COMPAT_meta-sunxi = "zeus"

View File

@ -1,5 +0,0 @@
# Include for boards with AMPAK 6212A Wifi / Bluetooth module
# https://linux-sunxi.org/Wifi#Ampak
MACHINE_EXTRA_RRECOMMENDS_append = " kernel-module-brcmfmac"
MACHINE_EXTRA_RDEPENDS_append = " linux-firmware-bcm43430"

View File

@ -1,15 +0,0 @@
PREFERRED_PROVIDER_virtual/mesa ?= "mesa-gl"
PREFERRED_PROVIDER_virtual/libgl ?= "mesa-gl"
PREFERRED_PROVIDER_virtual/libgles1 ?= "sunxi-mali"
PREFERRED_PROVIDER_virtual/libgles2 ?= "sunxi-mali"
PREFERRED_PROVIDER_virtual/egl ?= "sunxi-mali"
PACKAGECONFIG_remove_pn-xserver-xorg = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glamor', '', d)}"
XSERVER += "sunxi-mali \
sunxi-mali-dev"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "\
kernel-module-mali \
kernel-module-mali-drm \
"

View File

@ -1,5 +1,15 @@
# The "sunxi-mailine-graphics-drivers.inc" doesn't exist, but it can be created
# in the future if needed. Using include directive ensures build doesn't fail
# if .inc file doesn't exist:
# https://www.yoctoproject.org/pipermail/yocto/2019-August/046484.html
include ${@'sunxi-mali-driver.inc' if 'use-mailine-graphics' not in d.getVar("MACHINEOVERRIDES").split(":") else 'sunxi-mailine-graphics-drivers.inc' }
PREFERRED_PROVIDER_virtual/mesa ?= "mesa-gl"
PREFERRED_PROVIDER_virtual/libgl ?= "mesa-gl"
PREFERRED_PROVIDER_virtual/libgles1 ?= "sunxi-mali"
PREFERRED_PROVIDER_virtual/libgles2 ?= "sunxi-mali"
PREFERRED_PROVIDER_virtual/egl ?= "sunxi-mali"
PACKAGECONFIG_remove_pn-xserver-xorg = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glamor', '', d)}"
XSERVER += "sunxi-mali \
sunxi-mali-dev"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "\
kernel-module-mali \
kernel-module-mali-drm \
"

View File

@ -13,7 +13,7 @@ XSERVER = "xserver-xorg \
xf86-input-keyboard"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-mainline"
PREFERRED_VERSION_linux-mainline ?= "5.4.%"
PREFERRED_VERSION_linux-mainline ?= "4.19%"
PREFERRED_PROVIDER_u-boot ?= "u-boot"
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot"

View File

@ -4,7 +4,6 @@
# on the Allwinner H5 SoC.
require conf/machine/include/sun50i.inc
require conf/machine/include/hardware/ap6212a.inc
KERNEL_DEVICETREE = "allwinner/sun50i-h5-nanopi-neo-plus2.dtb"
UBOOT_MACHINE = "nanopi_neo_plus2_defconfig"

View File

@ -1,9 +0,0 @@
#@TYPE: Machine
#@NAME: orange-pi-zero-plus2-h3
#@DESCRIPTION: Machine configuration for the orange-pi-zero-plus2, based on Allwinner H3 CPU
require conf/machine/include/sun8i.inc
require conf/machine/include/hardware/ap6212a.inc
KERNEL_DEVICETREE = "sun8i-h3-orangepi-zero-plus2.dtb"
UBOOT_MACHINE = "orangepi_zero_plus2_h3_defconfig"

View File

@ -2,8 +2,8 @@
#@NAME: orange-pi-zero-plus2
#@DESCRIPTION: Machine configuration for the orange-pi-zero-plus2, base on Allwinner H5 CPU
require conf/machine/include/sun50i.inc
require conf/machine/include/hardware/ap6212a.inc
KERNEL_DEVICETREE = "allwinner/sun50i-h5-orangepi-zero-plus2.dtb"
UBOOT_MACHINE = "orangepi_zero_plus2_defconfig"

View File

@ -0,0 +1,51 @@
--- pyA20-0.2.1/setup.py 2014-09-04 12:17:18.000000000 +0200
+++ pyA20-0.2.1/setup.py 2014-11-24 17:44:37.000000000 +0100
@@ -43,31 +43,31 @@
Detect processor type
:return:
"""
- cpuinfo = open("/proc/cpuinfo", 'r')
- for line in cpuinfo:
- if "Hardware" in line:
- processor = line.split(":")[1].rstrip()
+ #cpuinfo = open("/proc/cpuinfo", 'r')
+ #for line in cpuinfo:
+ # if "Hardware" in line:
+ # processor = line.split(":")[1].rstrip()
- if "sun4i" in processor:
- print ("Detected processor: " + print_color(processor) + " (Probably Allwinner A10)")
+ # if "sun4i" in processor:
+ # print ("Detected processor: " + print_color(processor) + " (Probably Allwinner A10)")
- elif "sun5i" in processor:
- print ("Detected processor: " + print_color(processor) + " (Probably Allwinner A13)")
+ # elif "sun5i" in processor:
+ # print ("Detected processor: " + print_color(processor) + " (Probably Allwinner A13)")
- elif "sun7i" in processor:
- print ("Detected processor: " + print_color(processor) + " (Probably Allwinner A20)")
+ # elif "sun7i" in processor:
+ # print ("Detected processor: " + print_color(processor) + " (Probably Allwinner A20)")
- else:
- print ("Detected processor: " + print_color("unknown"))
+ # else:
+ # print ("Detected processor: " + print_color("unknown"))
- if processor_type not in processor:
- print_warning()
+ # if processor_type not in processor:
+ # print_warning()
- return
+ return
- print ("No processor detected")
- print_warning()
+ #print ("No processor detected")
+ #print_warning()
class build_ext(_build_ext):

View File

@ -1,23 +1,24 @@
DESCRIPTION = "A module to control Allwinner GPIO,SPI and I2C channels"
HOMEPAGE = "https://pypi.python.org/pypi/pyA20"
SECTION = "devel/python"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=4e584373bb0f46ef1e423cb7df37847d"
DEPENDS = "python3"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=bfe0261ded6cff75086193ec2f79129e"
DEPENDS = "python"
# No GPIO mappings for other machines yet
COMPATIBLE_MACHINE = "(olinuxino-a13|olinuxino-a10|olinuxino-a20|olinuxino-a10lime|olinuxino-a20lime|olinuxino-a20lime2|olinuxino-a13som|olinuxino-a20som)"
SRC_URI = "https://pypi.python.org/packages/source/p/pyA20/pyA20-${PV}.tar.gz \
file://setup.py.patch \
file://mapping.h \
"
S = "${WORKDIR}/pyA20-${PV}"
inherit distutils3
inherit distutils
do_compile_prepend() {
cp ${WORKDIR}/mapping.h ${S}/pyA20/gpio/mapping.h
}
SRC_URI[md5sum] = "cab03b4931199804603d1074f6d8f48f"
SRC_URI[sha256sum] = "4bef559a9c5a4d648d9834bad996cf2805b20d6063b8051029ffdf9deda2b536"
SRC_URI[md5sum] = "2290066bbe274000c53693959a8005b4"
SRC_URI[sha256sum] = "b15e4ee1016b7eb52001cbccde3751868624a88d2adbb9adc5404628f7e59e7e"

View File

@ -0,0 +1,24 @@
DESCRIPTION = "A module to control Allwinner GPIO,SPI and I2C channels"
HOMEPAGE = "https://pypi.python.org/pypi/pyA20SOM"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=cf6345f2cb2acee98b01c493d68b8322"
DEPENDS = "python"
# No GPIO mappings for other machines yet
COMPATIBLE_MACHINE = "olinuxino-a20som"
SRC_URI = "https://pypi.python.org/packages/source/p/pyA20SOM/pyA20SOM-${PV}.tar.gz \
file://setup.py.patch \
file://mapping.h \
"
S = "${WORKDIR}/pyA20SOM-${PV}"
inherit distutils
do_compile_prepend() {
cp ${WORKDIR}/mapping.h ${S}/pyA20SOM/gpio/mapping.h
}
SRC_URI[md5sum] = "a720115ef1d3dffe82f42f2157ca1c56"
SRC_URI[sha256sum] = "1ac1025596cc112964f7caac9a6a523d5da61623c248ccc178c6cbb4bc1b4549"

View File

@ -1,5 +0,0 @@
# Enable lima and panfrost Mesa drivers
PACKAGECONFIG_append_use-mailine-graphics = " lima panfrost"
# Enable KMS renderonly Mesa support
# See https://cgit.freedesktop.org/mesa/mesa/commit/?id=2b780fe89300199f2334539aa1678e9b68f0434f
GALLIUMDRIVERS_append_use-mailine-graphics = ",kmsro"

View File

@ -1,13 +0,0 @@
# The brcmfmac driver looks for NVRAM files using the first entry in board
# compatible since kernel >= 5.0:
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0ad4b55b2f29784f93875e6231bf57cd233624a2
# We create a link to the AP6212 module NVRAM file so that firmware is
# autodetected by the driver.
# WARNING: The following commit is required for NVRAM files to be included in
# linux-firmware-bcm43430 package:
# http://git.openembedded.org/openembedded-core/commit/?id=dde0f79f32fa6bab045ef60199903f74c4cc3393
do_install_append() {
ln -sf -r ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.xunlong,orangepi-zero-plus2.txt
ln -sf -r ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.xunlong,orangepi-zero-plus2-h3.txt
ln -sf -r ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.friendlyarm,nanopi-neo-plus2.txt
}

View File

@ -485,8 +485,8 @@ CONFIG_CW1200_WLAN_SDIO=m
CONFIG_CW1200_WLAN_SPI=m
CONFIG_RSI_91X=m
# CONFIG_INPUT_MOUSEDEV is not set
CONFIG_INPUT_KEYBOARD=y
CONFIG_INPUT_MOUSE=y
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_SUN4I=y
CONFIG_INPUT_MISC=y

View File

@ -1,4 +0,0 @@
CONFIG_MFD_AXP20X_I2C=y
CONFIG_MFD_AXP20X=y
CONFIG_IIO=y
CONFIG_AXP20X_POWER=y

View File

@ -1,8 +0,0 @@
CONFIG_DRM=y
CONFIG_DRM_SUN4I=y
CONFIG_DRM_SUN8I_DW_HDMI=y
CONFIG_DRM_SUN8I_MIXER=y
CONFIG_DRM_LIMA=y
CONFIG_DRM_PANFROST=y
CONFIG_CMA=y
CONFIG_DMA_CMA=y

View File

@ -1,18 +1,28 @@
From 055155f463693e61f9018a011ad600d872d6736f Mon Sep 17 00:00:00 2001
From: Marek Belisko <marek.belisko@open-nandra.com>
Date: Fri, 2 Aug 2019 14:46:10 +0200
Subject: [PATCH] dts: orange-pi-zero: Add wifi support
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
---
arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 47 ++++++++++++++++++-----
1 file changed, 37 insertions(+), 10 deletions(-)
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
index 84cd9c061..917986cce 100644
index 84cd9c0..77b2fc6 100644
--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
+++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
@@ -80,13 +80,15 @@
@@ -80,13 +80,14 @@
};
};
- reg_vcc_wifi: reg_vcc_wifi {
+ vdd_wifi: vdd_wifi {
compatible = "regulator-fixed";
- compatible = "regulator-fixed";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-name = "vcc-wifi";
- enable-active-high;
+ vdd_wifi: vdd_wifi {
+ regulator-name = "wifi";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
@ -23,7 +33,7 @@ index 84cd9c061..917986cce 100644
};
reg_vdd_cpux: vdd-cpux-regulator {
@@ -106,10 +108,12 @@
@@ -106,10 +107,12 @@
1300000 1>;
};
@ -38,7 +48,7 @@ index 84cd9c061..917986cce 100644
};
};
@@ -140,9 +144,11 @@
@@ -140,9 +143,11 @@
};
&mmc1 {
@ -52,7 +62,7 @@ index 84cd9c061..917986cce 100644
non-removable;
status = "okay";
@@ -152,6 +158,13 @@
@@ -152,6 +157,13 @@
*/
xr819: sdio_wifi@1 {
reg = <1>;
@ -66,7 +76,7 @@ index 84cd9c061..917986cce 100644
};
};
@@ -208,3 +221,18 @@
@@ -208,3 +220,18 @@
status = "okay";
usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
};
@ -85,3 +95,6 @@ index 84cd9c061..917986cce 100644
+ };
+};
+
--
2.7.4

View File

@ -19,8 +19,8 @@ KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
S = "${WORKDIR}/linux-${PV}"
SRC_URI[md5sum] = "6287e6d6658e593a2978dc718f7de3f3"
SRC_URI[sha256sum] = "b4784571bd7f3dc10ae3dc4414876dbd73fc6750401299b206670ce3e5c4bb43"
SRC_URI[md5sum] = "bf96b6783a2d11178a2aaa3cf376f975"
SRC_URI[sha256sum] = "293ec1ae0f6b3b4be83a217224b51d137f2163cf2d9d294eecf5d0a354e4e29d"
SRC_URI = "https://www.kernel.org/pub/linux/kernel/v4.x/linux-${PV}.tar.xz \
file://0003-ARM-dts-nanopi-neo-air-Add-WiFi-eMMC.patch \

View File

@ -1,4 +1,5 @@
SECTION = "kernel"
DESCRIPTION = "Mainline Stable Linux kernel"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i|sun8i|sun50i)"
@ -20,13 +21,14 @@ KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
S = "${WORKDIR}/linux-${PV}"
SRC_URI[md5sum] = "6f4ab59d6ac7311f4245fc359706a0b7"
SRC_URI[sha256sum] = "78f3cfc6c20b10ff21c0bb22d7d257cab03781c44d8c5aae289f749f94f76649"
SRC_URI = "https://www.kernel.org/pub/linux/kernel/v5.x/linux-${PV}.tar.xz \
file://0003-ARM-dts-nanopi-neo-air-Add-WiFi-eMMC.patch \
file://0001-dts-orange-pi-zero-Add-wifi-support.patch \
file://defconfig \
"
SRC_URI_append_use-mailine-graphics = " file://drm.cfg"
SRC_URI_append_bananapi = " file://axp20x.cfg"
FILES_${KERNEL_PACKAGE_NAME}-base_append = " ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo"
SRC_URI_append_orange-pi-zero += "\
file://0001-dts-orange-pi-zero-Add-wifi-support.patch \
"

View File

@ -0,0 +1,36 @@
SECTION = "kernel"
DESCRIPTION = "Mainline RC Linux kernel"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i|sun8i|sun50i)"
inherit kernel
require linux.inc
# Since we're not using git, this doesn't make a difference, but we need to fill
# in something or kernel-yocto.bbclass will fail.
KBRANCH ?= "master"
DEPENDS += "rsync-native"
# Pull in the devicetree files into the rootfs
RDEPENDS_${KERNEL_PACKAGE_NAME}-base += "kernel-devicetree"
KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
S = "${WORKDIR}/linux-${PV}"
SRC_URI[md5sum] = "58b2b15fb3c429948051ce4f12f30c37"
SRC_URI[sha256sum] = "b07532aa008438e0bce2b8f0253079a4f1654a048a75ae1477c8826f32feea7a"
SRC_URI = "https://git.kernel.org/torvalds/t/linux-${PV}.tar.gz \
file://0003-ARM-dts-nanopi-neo-air-Add-WiFi-eMMC.patch \
file://defconfig \
"
SRC_URI_append_orange-pi-zero += "\
file://0001-dts-orange-pi-zero-Add-wifi-support.patch \
"
FILES_${KERNEL_PACKAGE_NAME}-base_append = " ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo"

View File

@ -1,6 +0,0 @@
require linux-mainline.inc
DESCRIPTION = "Mainline Longterm Linux kernel"
SRC_URI[md5sum] = "dccb4d028c97b6fe5d0bca14a1afcd58"
SRC_URI[sha256sum] = "92e9f1fd69543e9ce2a9e6eb918823b1846d2dd99246a74456263cd5ad234d89"

View File

@ -1,6 +0,0 @@
require linux-mainline.inc
DESCRIPTION = "Mainline Stable Linux kernel"
SRC_URI[md5sum] = "3ea50025d8c679a327cf2fc225d81a46"
SRC_URI[sha256sum] = "2bef3edcf44c746383045f4a809b2013e18c52319c827875ed8e89138951cab2"