mirror of
https://github.com/linux-sunxi/meta-sunxi.git
synced 2025-07-16 22:09:47 +02:00
Compare commits
219 Commits
sumo
...
mickledore
Author | SHA1 | Date | |
---|---|---|---|
385d8f8cd2 | |||
21d137f559 | |||
c67912122c | |||
0fe08a24d6 | |||
7b951191fb | |||
5723c27da1 | |||
27aadbc9bf | |||
9642c1bf2f | |||
569d314517 | |||
f93ef86045 | |||
9357921fe9 | |||
7540e7cef4 | |||
28b8144df8 | |||
046a1e27ed | |||
8bdb29e399 | |||
c4c91b604b | |||
54a4db9b55 | |||
1a42a71bb1 | |||
be26c5dd90 | |||
f87d85fa2e | |||
6c94abe54d | |||
3bab03d8a2 | |||
34ac6458dd | |||
b25b74412c | |||
48acd228c9 | |||
d28a0b02fe | |||
3276120687 | |||
62f2141df1 | |||
73f3286067 | |||
cf0bf9671a | |||
290a916e69 | |||
b0c81db3de | |||
44040b0ea4 | |||
bb5817fe0e | |||
b5de5d2be4 | |||
8bcf3b3ad4 | |||
d84706872b | |||
7278d3faaf | |||
8b3211e04c | |||
90189dae67 | |||
1b57b51612 | |||
a30c7ec984 | |||
f3bbe9f079 | |||
fdce4f8674 | |||
20822ad769 | |||
e8d39837e2 | |||
3b798310df | |||
910bb165a3 | |||
9895874a29 | |||
7feb76686f | |||
4735c7766f | |||
78c395aab7 | |||
b122bfc272 | |||
752f632e98 | |||
7dcc9a0069 | |||
ef5b9a675b | |||
b9a5f19db2 | |||
13fe88d754 | |||
6ece692e9b | |||
c39a024199 | |||
545d824ccf | |||
45a666ac43 | |||
a508443f52 | |||
0225772064 | |||
3a7f7e1199 | |||
a67a0c58df | |||
8852666a80 | |||
e584cd9084 | |||
deb667015d | |||
503102a841 | |||
02bf3fcd80 | |||
7bc87817a1 | |||
080eb40635 | |||
dcd5790e87 | |||
6a1103b726 | |||
668bc6824c | |||
fd330bbb55 | |||
e66258ad7a | |||
3caf03d9fc | |||
278bd31312 | |||
edb10c82bd | |||
c6161f546b | |||
c03a8988b8 | |||
fe54f61d61 | |||
724d154371 | |||
59b953f341 | |||
ac8695fddf | |||
efc05f66ef | |||
dc5c23908e | |||
5602fb2ff8 | |||
6eb1acdbcb | |||
5fe0f177ab | |||
151ac47fda | |||
f66e6f255f | |||
0b64109569 | |||
3dc99ee663 | |||
c32ee2b4a0 | |||
9e53e57d75 | |||
de575289a3 | |||
1e41b97b5b | |||
efcbd3a2cf | |||
2df608df63 | |||
e20eb9ef85 | |||
18f3e4a016 | |||
11052ea20e | |||
0062d5490a | |||
58d382d598 | |||
4937fc91d5 | |||
370007f1c8 | |||
1f85588709 | |||
3f6dcb3d08 | |||
9396098def | |||
636b3b74d7 | |||
eaf085f87f | |||
bcc500fb65 | |||
d6deb87bd1 | |||
4580f8964d | |||
251d048d0b | |||
cd2ec849a7 | |||
e619a01a21 | |||
9f622c70b8 | |||
9773647ff4 | |||
2e20344575 | |||
ec20258eb5 | |||
250b8652f6 | |||
9828fc2b82 | |||
5eff0296b5 | |||
ee0b2699ee | |||
d46ff454d0 | |||
ee3a551b83 | |||
74a488e2ef | |||
1d6ef084db | |||
fa0846c0eb | |||
e9d4b90576 | |||
620c66eac5 | |||
4b928c5b72 | |||
6eab521310 | |||
c82b2f8612 | |||
02e3e7fba8 | |||
12cbb60a76 | |||
2398d55ad4 | |||
f9060cda38 | |||
f25203c936 | |||
b2f0d28f49 | |||
89be65d931 | |||
802857ee59 | |||
fbf5ac3e31 | |||
c9527c099d | |||
21462a47a2 | |||
7fdbe68c1f | |||
b7b8764c8f | |||
504fa1bb71 | |||
902841dcd4 | |||
9fef250ca8 | |||
0419afad79 | |||
444672b854 | |||
f1378e33af | |||
efe6aef33f | |||
b20940edd0 | |||
63ee6333dc | |||
23acf5bc61 | |||
d0bbc7334d | |||
7964ef28bd | |||
e10f05d494 | |||
1f46cadd4c | |||
a5cecabb42 | |||
d034a64bc4 | |||
6bfa745149 | |||
70d37fa203 | |||
741b6238b6 | |||
917850e01d | |||
5e1a2937bd | |||
be78fab082 | |||
f4e059ee3d | |||
7c6cefcfe6 | |||
5ba77e0981 | |||
e698148963 | |||
c0ece4613d | |||
4921234ed7 | |||
2e5db363c2 | |||
e93d74767e | |||
7983549705 | |||
3bb0abd730 | |||
c4a2923380 | |||
9bcd991e74 | |||
628b14b9fd | |||
abd1463aa9 | |||
84961a9521 | |||
8fcc6136d0 | |||
9b32d6a61c | |||
aa36e417e2 | |||
54c75110b4 | |||
81f6a30ac9 | |||
b6288e15ad | |||
6b9ef7519c | |||
837aeefae3 | |||
bfcf51f595 | |||
efe4acdeff | |||
42fd81b2b8 | |||
064257654a | |||
72ece33639 | |||
a66f824d6f | |||
d57301be50 | |||
4e0c7e2a6c | |||
6b536f1083 | |||
f9ad5fa55b | |||
eb72b91844 | |||
df2236f3f7 | |||
0bc0be4186 | |||
991567e017 | |||
318e609f65 | |||
712229cbe4 | |||
5e1b5a9f86 | |||
a1297419fe | |||
7d770d3061 | |||
0c6e53be97 | |||
a28dffd16d | |||
47c3e21ace | |||
4b669303a3 |
34
README.md
34
README.md
@ -3,9 +3,9 @@ meta-sunxi
|
||||
|
||||
Official sunxi OpenEmbedded layer for Allwinner-based boards.
|
||||
|
||||
This layer depends on the additional layer:
|
||||
This layer depends on the additional layers:
|
||||
|
||||
meta-openembedded: git://git.openembedded.org/meta-openembedded
|
||||
* [meta-openembedded/meta-oe](http://git.openembedded.org/meta-openembedded/tree/meta-oe)
|
||||
|
||||
Tested with core-image-base.
|
||||
|
||||
@ -14,25 +14,47 @@ Maintainers:
|
||||
* Nicolas Aguirre <aguirre.nicolas@gmail.com>
|
||||
* Enrico Butera <ebutera@users.sourceforge.net>
|
||||
* Sergey Lapin <slapin@ossfans.org>
|
||||
* Marek Belisko <marek.belisko@gmail.com>
|
||||
|
||||
Community
|
||||
===========
|
||||
|
||||
You can reach community + ask your question on gitter: https://matrix.to/#/#meta-sunxi:gitter.im
|
||||
|
||||
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
|
||||
- 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"
|
||||
PREFERRED_PROVIDER_u-boot="u-boot-sunxi"
|
||||
PREFERRED_PROVIDER_virtual/bootloader="u-boot-sunxi"
|
||||
PREFERRED_PROVIDER_virtual/kernel="linux-sunxi"
|
||||
KERNEL_DEVICETREE = ""
|
||||
|
||||
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
|
||||
|
||||
Mainline Kernel / U-Boot
|
||||
-----------
|
||||
|
||||
For mainline kernel we have now support for latest LTS and stable.
|
||||
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"
|
||||
|
||||
Performance
|
||||
===========
|
||||
The default machine settings are meant to be the lowest common denominator, maximizing generality.
|
||||
|
@ -1,124 +0,0 @@
|
||||
inherit image_types
|
||||
|
||||
#
|
||||
# Create an image that can by written onto a SD card using dd.
|
||||
# Originally written for rasberrypi adapt for the needs of allwinner sunxi based boards
|
||||
#
|
||||
# The disk layout used is:
|
||||
#
|
||||
# 0 -> 8*1024 - reserverd
|
||||
# 8*1024 -> - arm combined spl/u-boot or aarch64 spl
|
||||
# 40*1024 -> - aarch64 u-boot
|
||||
# 2048*1024 -> BOOT_SPACE - bootloader and kernel
|
||||
#
|
||||
#
|
||||
|
||||
# This image depends on the rootfs image
|
||||
IMAGE_TYPEDEP_sunxi-sdimg = "${SDIMG_ROOTFS_TYPE}"
|
||||
|
||||
# Boot partition volume id
|
||||
BOOTDD_VOLUME_ID ?= "${MACHINE}"
|
||||
|
||||
# Boot partition size [in KiB]
|
||||
BOOT_SPACE ?= "40960"
|
||||
|
||||
# First partition begin at sector 2048 : 2048*1024 = 2097152
|
||||
IMAGE_ROOTFS_ALIGNMENT = "2048"
|
||||
|
||||
# Use an uncompressed ext4 by default as rootfs
|
||||
SDIMG_ROOTFS_TYPE ?= "ext4"
|
||||
SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.${SDIMG_ROOTFS_TYPE}"
|
||||
|
||||
do_image_sunxi_sdimg[depends] += " \
|
||||
parted-native:do_populate_sysroot \
|
||||
mtools-native:do_populate_sysroot \
|
||||
dosfstools-native:do_populate_sysroot \
|
||||
virtual/kernel:do_deploy \
|
||||
virtual/bootloader:do_deploy \
|
||||
"
|
||||
|
||||
# SD card image name
|
||||
SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.sunxi-sdimg"
|
||||
|
||||
IMAGE_CMD_sunxi-sdimg () {
|
||||
|
||||
# Align partitions
|
||||
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
|
||||
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
|
||||
SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + $ROOTFS_SIZE + ${IMAGE_ROOTFS_ALIGNMENT})
|
||||
|
||||
# Initialize sdcard image file
|
||||
dd if=/dev/zero of=${SDIMG} bs=1 count=0 seek=$(expr 1024 \* ${SDIMG_SIZE})
|
||||
|
||||
# Create partition table
|
||||
parted -s ${SDIMG} mklabel msdos
|
||||
# Create boot partition and mark it as bootable
|
||||
parted -s ${SDIMG} unit KiB mkpart primary fat32 ${IMAGE_ROOTFS_ALIGNMENT} $(expr ${BOOT_SPACE_ALIGNED} \+ ${IMAGE_ROOTFS_ALIGNMENT})
|
||||
parted -s ${SDIMG} set 1 boot on
|
||||
# Create rootfs partition
|
||||
parted -s ${SDIMG} unit KiB mkpart primary ext2 $(expr ${BOOT_SPACE_ALIGNED} \+ ${IMAGE_ROOTFS_ALIGNMENT}) $(expr ${BOOT_SPACE_ALIGNED} \+ ${IMAGE_ROOTFS_ALIGNMENT} \+ ${ROOTFS_SIZE})
|
||||
parted ${SDIMG} print
|
||||
|
||||
# Create a vfat image with boot files
|
||||
BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDIMG} unit b print | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 512 /2 }')
|
||||
rm -f ${WORKDIR}/boot.img
|
||||
mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
|
||||
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin ::${KERNEL_IMAGETYPE}
|
||||
|
||||
# Copy device tree file
|
||||
if test -n "${KERNEL_DEVICETREE}"; then
|
||||
for DTS_FILE in ${KERNEL_DEVICETREE}; do
|
||||
DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "." '{print $1}'`
|
||||
DTS_DIR_NAME=`dirname ${DTS_FILE}`
|
||||
if [ -e ${DEPLOY_DIR_IMAGE}/"${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb" ]; then
|
||||
|
||||
if [ ${DTS_FILE} != ${DTS_BASE_NAME}.dtb ]; then
|
||||
mmd -i ${WORKDIR}/boot.img ::/${DTS_DIR_NAME}
|
||||
fi
|
||||
|
||||
kernel_bin="`readlink ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin`"
|
||||
kernel_bin_for_dtb="`readlink ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb | sed "s,$DTS_BASE_NAME,${MACHINE},g;s,\.dtb$,.bin,g"`"
|
||||
if [ $kernel_bin = $kernel_bin_for_dtb ]; then
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb ::/${DTS_FILE}
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -e "${DEPLOY_DIR_IMAGE}/fex.bin" ]
|
||||
then
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/fex.bin ::script.bin
|
||||
fi
|
||||
if [ -e "${DEPLOY_DIR_IMAGE}/boot.scr" ]
|
||||
then
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/boot.scr ::boot.scr
|
||||
fi
|
||||
|
||||
|
||||
# Add stamp file
|
||||
echo "${IMAGE_NAME}" > ${WORKDIR}/image-version-info
|
||||
mcopy -i ${WORKDIR}/boot.img -v ${WORKDIR}/image-version-info ::
|
||||
|
||||
# Burn Partitions
|
||||
dd if=${WORKDIR}/boot.img of=${SDIMG} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
|
||||
# If SDIMG_ROOTFS_TYPE is a .xz file use xzcat
|
||||
if echo "${SDIMG_ROOTFS_TYPE}" | egrep -q "*\.xz"
|
||||
then
|
||||
xzcat ${SDIMG_ROOTFS} | dd of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
|
||||
else
|
||||
dd if=${SDIMG_ROOTFS} of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
|
||||
fi
|
||||
|
||||
# write u-boot-spl at the begining of sdcard in one shot
|
||||
SPL_FILE=$(basename ${SPL_BINARY})
|
||||
dd if=${DEPLOY_DIR_IMAGE}/${SPL_FILE} of=${SDIMG} bs=1024 seek=8 conv=notrunc
|
||||
}
|
||||
|
||||
# write uboot.itb for arm64 boards
|
||||
IMAGE_CMD_sunxi-sdimg_append_sun50i () {
|
||||
if [ -e "${DEPLOY_DIR_IMAGE}/${UBOOT_BINARY}" ]
|
||||
then
|
||||
dd if=${DEPLOY_DIR_IMAGE}/${UBOOT_BINARY} of=${SDIMG} bs=1024 seek=40 conv=notrunc
|
||||
fi
|
||||
}
|
@ -4,7 +4,14 @@ BBPATH .= ":${LAYERDIR}"
|
||||
# We have a recipes directory, add to BBFILES
|
||||
BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"
|
||||
|
||||
BBFILE_COLLECTIONS += "meta-sunxi"
|
||||
BBFILE_PATTERN_meta-sunxi := "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_meta-sunxi = "10"
|
||||
LAYERSERIES_COMPAT_meta-sunxi = "morty pyro rocko sumo thud"
|
||||
BBFILE_COLLECTIONS += "sunxi"
|
||||
BBFILE_PATTERN_sunxi := "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_sunxi = "10"
|
||||
|
||||
# This should only be incremented on significant changes that will
|
||||
# cause compatibility issues with other layers
|
||||
LAYERVERSION_sunxi = "1"
|
||||
|
||||
LAYERDEPENDS_sunxi = "core meta-python"
|
||||
|
||||
LAYERSERIES_COMPAT_sunxi = "honister kirkstone langdale mickledore"
|
||||
|
10
conf/machine/bananapi-m2-zero.conf
Normal file
10
conf/machine/bananapi-m2-zero.conf
Normal file
@ -0,0 +1,10 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: bananapi-m2-zero
|
||||
#@DESCRIPTION: Machine configuration for the Banana Pi M2 Zero, base on Allwinner H3 CPU
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
require conf/machine/include/hardware/ap6212a.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h2-plus-bananapi-m2-zero.dtb"
|
||||
UBOOT_MACHINE = "bananapi_m2_zero_defconfig"
|
||||
|
9
conf/machine/bananapi-m2m.conf
Normal file
9
conf/machine/bananapi-m2m.conf
Normal file
@ -0,0 +1,9 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: bananapi-m2m
|
||||
#@DESCRIPTION: Machine configuration for the Banana Pi M2M, base on Allwinner H8 CPU
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-r16-bananapi-m2m.dtb"
|
||||
UBOOT_MACHINE = "Bananapi_m2m_defconfig"
|
||||
|
9
conf/machine/bananapi-m2plus.conf
Normal file
9
conf/machine/bananapi-m2plus.conf
Normal file
@ -0,0 +1,9 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: bananapi-m2plus
|
||||
#@DESCRIPTION: Machine configuration for the Banana Pi M2+, base on Allwinner H3 CPU
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-bananapi-m2-plus.dtb"
|
||||
UBOOT_MACHINE = "bananapi_m2_plus_h3_defconfig"
|
||||
|
8
conf/machine/bananapi-m64.conf
Normal file
8
conf/machine/bananapi-m64.conf
Normal file
@ -0,0 +1,8 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: pine64-plus
|
||||
#@DESCRIPTION: Machine configuration for the pine64-plus, based on Allwinner A64 CPU
|
||||
|
||||
require conf/machine/include/sun50i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun50i-a64-bananapi-m64.dtb"
|
||||
UBOOT_MACHINE = "bananapi_m64_defconfig"
|
5
conf/machine/include/hardware/ap6212a.inc
Normal file
5
conf/machine/include/hardware/ap6212a.inc
Normal file
@ -0,0 +1,5 @@
|
||||
# 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"
|
@ -1,5 +1,5 @@
|
||||
require conf/machine/include/sunxi.inc
|
||||
require conf/machine/include/sunxi-mali.inc
|
||||
require conf/machine/include/tune-cortexa8.inc
|
||||
require conf/machine/include/arm/armv7a/tune-cortexa8.inc
|
||||
|
||||
SOC_FAMILY = "sun4i"
|
||||
|
8
conf/machine/include/sun50i-h616.inc
Normal file
8
conf/machine/include/sun50i-h616.inc
Normal file
@ -0,0 +1,8 @@
|
||||
require conf/machine/include/sunxi64.inc
|
||||
|
||||
DEFAULTTUNE ?= "cortexa53-crypto"
|
||||
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
|
||||
|
||||
MACHINEOVERRIDES =. "sun50i:"
|
||||
|
||||
SOC_FAMILY = "sun50i-h616"
|
@ -1,4 +1,6 @@
|
||||
require conf/machine/include/sunxi64.inc
|
||||
require conf/machine/include/arm/arch-armv8.inc
|
||||
|
||||
DEFAULTTUNE ?= "cortexa53-crypto"
|
||||
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
|
||||
|
||||
SOC_FAMILY = "sun50i"
|
||||
|
@ -1,5 +1,5 @@
|
||||
require conf/machine/include/sunxi.inc
|
||||
require conf/machine/include/sunxi-mali.inc
|
||||
require conf/machine/include/tune-cortexa8.inc
|
||||
require conf/machine/include/arm/armv7a/tune-cortexa8.inc
|
||||
|
||||
SOC_FAMILY = "sun5i"
|
||||
|
@ -1,5 +1,5 @@
|
||||
require conf/machine/include/sunxi.inc
|
||||
require conf/machine/include/sunxi-mali.inc
|
||||
require conf/machine/include/tune-cortexa7.inc
|
||||
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
|
||||
|
||||
SOC_FAMILY = "sun7i"
|
||||
|
@ -1,5 +1,5 @@
|
||||
require conf/machine/include/sunxi.inc
|
||||
require conf/machine/include/sunxi-mali.inc
|
||||
require conf/machine/include/tune-cortexa7.inc
|
||||
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
|
||||
|
||||
SOC_FAMILY = "sun8i"
|
||||
|
15
conf/machine/include/sunxi-mali-driver.inc
Normal file
15
conf/machine/include/sunxi-mali-driver.inc
Normal file
@ -0,0 +1,15 @@
|
||||
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 \
|
||||
"
|
@ -1,13 +1,5 @@
|
||||
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"
|
||||
|
||||
XSERVER += "sunxi-mali \
|
||||
sunxi-mali-dev"
|
||||
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "\
|
||||
kernel-module-mali \
|
||||
kernel-module-mali-drm \
|
||||
"
|
||||
# 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' }
|
||||
|
@ -1,34 +1,47 @@
|
||||
SOC_FAMILY ??= ""
|
||||
include conf/machine/include/soc-family.inc
|
||||
|
||||
MACHINEOVERRIDES =. "sunxi:"
|
||||
|
||||
# Sub-architecture support
|
||||
MACHINE_SOCARCH_SUFFIX ?= ""
|
||||
MACHINE_SOCARCH_SUFFIX_sun4i = "-sun4i"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
|
||||
XSERVER = "xserver-xorg \
|
||||
xf86-video-fbturbo \
|
||||
xf86-input-evdev \
|
||||
xf86-input-mouse \
|
||||
xf86-input-keyboard"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-mainline"
|
||||
PREFERRED_VERSION_linux-mainline ?= "6.1.%"
|
||||
PREFERRED_PROVIDER_u-boot ?= "u-boot"
|
||||
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot"
|
||||
|
||||
KERNEL_IMAGETYPE ?= "uImage"
|
||||
|
||||
IMAGE_CLASSES += "sdcard_image-sunxi"
|
||||
IMAGE_FSTYPES += "ext3 tar.gz sunxi-sdimg"
|
||||
IMAGE_FSTYPES += "ext3 tar.gz wic.gz wic.bmap"
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
|
||||
|
||||
UBOOT_LOCALVERSION = "-g${@d.getVar('SRCPV', True).partition('+')[2][0:7]}"
|
||||
|
||||
UBOOT_ENTRYPOINT ?= "0x40008000"
|
||||
UBOOT_LOADADDRESS ?= "0x400080OB00"
|
||||
|
||||
SPL_BINARY ?= "u-boot-sunxi-with-spl.bin"
|
||||
|
||||
SERIAL_CONSOLE ?= "115200 ttyS0"
|
||||
MACHINE_FEATURES ?= "alsa apm keyboard rtc serial screen usbgadget usbhost vfat"
|
||||
|
||||
# Mimic the sdcard_image-sunxi.bbclass
|
||||
# image-version-info file was also generated and installed to boot partition,
|
||||
# but it is missing here - can be added somehow (how?) if required
|
||||
SUNXI_FEX_FILE ?= " "
|
||||
SUNXI_BOOT_SPACE ?= "40"
|
||||
IMAGE_BOOT_FILES ?= "${KERNEL_IMAGETYPE} boot.scr"
|
||||
# ship fex file for sunxi kernel, devicetree file for mainline kernel
|
||||
IMAGE_BOOT_FILES += "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/kernel', 'linux-sunxi', '${SUNXI_FEX_FILE}', '${KERNEL_DEVICETREE}', d)}"
|
||||
WKS_FILES ?= "sunxi-sdcard-image.wks.in"
|
||||
WKS_FILE_DEPENDS ?= "virtual/kernel u-boot"
|
||||
# in case of sunxi kernel, sunxi-board-fex must be built prior wic image assembly
|
||||
WKS_FILE_DEPENDS += " ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/kernel', 'linux-sunxi', 'sunxi-board-fex', '', d)}"
|
||||
|
@ -1,14 +1,15 @@
|
||||
SOC_FAMILY ??= ""
|
||||
include conf/machine/include/soc-family.inc
|
||||
|
||||
MACHINEOVERRIDES =. "sunxi:sunxi64:"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-mainline"
|
||||
PREFERRED_PROVIDER_u-boot ?= "u-boot"
|
||||
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot"
|
||||
|
||||
KERNEL_IMAGETYPE ?= "Image"
|
||||
|
||||
IMAGE_CLASSES += "sdcard_image-sunxi"
|
||||
IMAGE_FSTYPES += "ext4 tar.gz sunxi-sdimg"
|
||||
IMAGE_FSTYPES += "ext4 tar.gz wic.gz wic.bmap"
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
|
||||
|
||||
@ -17,8 +18,34 @@ UBOOT_LOCALVERSION = "-g${@d.getVar('SRCPV', True).partition('+')[2][0:7]}"
|
||||
UBOOT_ENTRYPOINT ?= "0x40008000"
|
||||
UBOOT_LOADADDRESS ?= "0x400080OB00"
|
||||
|
||||
UBOOT_BINARY ?= "u-boot.itb"
|
||||
SPL_BINARY ?= "spl/sunxi-spl.bin"
|
||||
#UBOOT_BINARY ?= "u-boot.itb"
|
||||
SPL_BINARY ?= "u-boot-sunxi-with-spl.bin"
|
||||
|
||||
SERIAL_CONSOLE ?= "115200 ttyS0"
|
||||
MACHINE_FEATURES ?= "alsa apm keyboard rtc serial screen usbgadget usbhost vfat"
|
||||
|
||||
# arm64 dbts are under <vendor>/dts but is deployed under DEPLOYDIR
|
||||
do_fix_device_tree_location() {
|
||||
|
||||
for kdt in ${KERNEL_DEVICETREE}
|
||||
do
|
||||
local dbt_dir=$(dirname ${kdt})
|
||||
if [ "." != "${dbt_dir}" ] ; then
|
||||
local dbt=$(basename ${kdt})
|
||||
local dst=${DEPLOY_DIR_IMAGE}/${dbt_dir}/${dbt}
|
||||
if [ ! -f ${dst} ] ; then
|
||||
mkdir -p ${DEPLOY_DIR_IMAGE}/$dbt_dir
|
||||
ln -s ${DEPLOY_DIR_IMAGE}/${dbt} ${dst}
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
addtask do_fix_device_tree_location after do_write_wks_template before do_image_wic
|
||||
|
||||
SUNXI_BOOT_SPACE ?= "40"
|
||||
IMAGE_BOOT_FILES ?= "${KERNEL_IMAGETYPE} boot.scr ${KERNEL_DEVICETREE}"
|
||||
|
||||
WKS_FILES ?= "sunxi-sdcard-image.wks.in"
|
||||
WKS_FILE_DEPENDS ?= "virtual/kernel u-boot"
|
||||
|
9
conf/machine/licheepi-zero.conf
Normal file
9
conf/machine/licheepi-zero.conf
Normal file
@ -0,0 +1,9 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: licheepi-zero
|
||||
#@DESCRIPTION: Machine configuration for the licheepi-zero, based on allwinner V3s CPU
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
|
||||
UBOOT_MACHINE = "LicheePi_Zero_defconfig"
|
||||
KERNEL_DEVICETREE = "sun8i-v3s-licheepi-zero.dtb"
|
10
conf/machine/marsboard-a10.conf
Normal file
10
conf/machine/marsboard-a10.conf
Normal file
@ -0,0 +1,10 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: HAOYU Electronics MarsBoard A10
|
||||
#@DESCRIPTION: Machine configuration for the HAOYU Electronics MarsBoard A10, based on Allwinner A10 CPU
|
||||
#https://linux-sunxi.org/MarsBoard_A10
|
||||
|
||||
require conf/machine/include/sun4i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun4i-a10-marsboard.dtb"
|
||||
UBOOT_MACHINE = "Marsboard_A10_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a10/marsboard_a10.fex"
|
9
conf/machine/nanopi-m1-plus.conf
Normal file
9
conf/machine/nanopi-m1-plus.conf
Normal file
@ -0,0 +1,9 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: nanopi M1 Plus
|
||||
#@DESCRIPTION: Machine configuration for the FriendlyARM NanoPi Neo, based on the Allwinner H3 CPU
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-nanopi-m1-plus.dtb"
|
||||
UBOOT_MACHINE = "nanopi_m1_plus_defconfig"
|
||||
|
8
conf/machine/nanopi-m1.conf
Normal file
8
conf/machine/nanopi-m1.conf
Normal file
@ -0,0 +1,8 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: NanoPi M1
|
||||
#@DESCRIPTION: Machine configuration for the FriendlyARM NanoPi Neo, based on #the Allwinner H3 CPU
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-nanopi-m1.dtb"
|
||||
UBOOT_MACHINE = "nanopi_m1_defconfig"
|
@ -5,7 +5,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
PREFERRED_VERSION_u-boot = "v2018.03%"
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-nanopi-neo-air.dtb"
|
||||
UBOOT_MACHINE = "nanopi_neo_air_defconfig"
|
||||
|
@ -4,8 +4,7 @@
|
||||
# on the Allwinner H5 SoC.
|
||||
|
||||
require conf/machine/include/sun50i.inc
|
||||
|
||||
PREFERRED_VERSION_u-boot = "v2018.03%"
|
||||
require conf/machine/include/hardware/ap6212a.inc
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun50i-h5-nanopi-neo-plus2.dtb"
|
||||
UBOOT_MACHINE = "nanopi_neo_plus2_defconfig"
|
||||
|
@ -4,8 +4,6 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
PREFERRED_VERSION_u-boot = "v2018.03%"
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-nanopi-neo.dtb"
|
||||
UBOOT_MACHINE = "nanopi_neo_defconfig"
|
||||
|
||||
|
@ -5,7 +5,5 @@
|
||||
|
||||
require conf/machine/include/sun50i.inc
|
||||
|
||||
PREFERRED_VERSION_u-boot = "v2018.03%"
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun50i-h5-nanopi-neo2.dtb"
|
||||
UBOOT_MACHINE = "nanopi_neo2_defconfig"
|
||||
|
8
conf/machine/nanopi-r1.conf
Normal file
8
conf/machine/nanopi-r1.conf
Normal file
@ -0,0 +1,8 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: NanoPi R1
|
||||
#@DESCRIPTION: Machine configuration for the FriendlyARM NanoPi R1, based on #the Allwinner H3 CPU
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-nanopi-r1.dtb"
|
||||
UBOOT_MACHINE = "nanopi_r1_defconfig"
|
13
conf/machine/olinuxino-a64.conf
Normal file
13
conf/machine/olinuxino-a64.conf
Normal file
@ -0,0 +1,13 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: Olimex A64-OLinuXino Board
|
||||
#@DESCRIPTION: Machine configuration for the Olimex A64-OLinuXino Board, based on Allwinner A64 CPU
|
||||
#https://github.com/OLIMEX/OLINUXINO
|
||||
|
||||
require conf/machine/include/sun50i.inc
|
||||
|
||||
PREFFERED_VERSION_u-boot = "v2018.09%"
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS += " linux-firmware-rtl8723"
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun50i-a64-olinuxino.dtb"
|
||||
UBOOT_MACHINE = "a64-olinuxino_defconfig"
|
9
conf/machine/orange-pi-one-plus.conf
Normal file
9
conf/machine/orange-pi-one-plus.conf
Normal file
@ -0,0 +1,9 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: orange-pi-one-plus
|
||||
#@DESCRIPTION: Machine configuration for the Orange Pi One Plus, based on Allwinner H6 CPU
|
||||
|
||||
|
||||
require conf/machine/include/sun50i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun50i-h6-orangepi-one-plus.dtb"
|
||||
UBOOT_MACHINE = "orangepi_one_plus_defconfig"
|
@ -4,8 +4,6 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
PREFERRED_VERSION_u-boot = "v2018.03%"
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-orangepi-one.dtb"
|
||||
UBOOT_MACHINE = "orangepi_one_defconfig"
|
||||
|
||||
|
@ -4,8 +4,6 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
PREFERRED_VERSION_u-boot = "v2018.03%"
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-orangepi-pc-plus.dtb"
|
||||
UBOOT_MACHINE = "orangepi_pc_plus_defconfig"
|
||||
|
||||
|
@ -4,8 +4,6 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
PREFERRED_VERSION_u-boot = "v2018.03%"
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-orangepi-pc.dtb"
|
||||
UBOOT_MACHINE = "orangepi_pc_defconfig"
|
||||
|
||||
|
8
conf/machine/orange-pi-pc2.conf
Normal file
8
conf/machine/orange-pi-pc2.conf
Normal file
@ -0,0 +1,8 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: orangepi-pc2
|
||||
#@DESCRIPTION: Machine configuration for the orangepi-pc2, based on Allwinner A64 CPU
|
||||
|
||||
require conf/machine/include/sun50i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun50i-h5-orangepi-pc2.dtb"
|
||||
UBOOT_MACHINE = "orangepi_pc2_defconfig"
|
9
conf/machine/orange-pi-r1.conf
Normal file
9
conf/machine/orange-pi-r1.conf
Normal file
@ -0,0 +1,9 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: orange-pi-r1
|
||||
#@DESCRIPTION: Machine configuration for the orange-pi-r1, base on allwinner H2+ CPU
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h2-plus-orangepi-r1.dtb"
|
||||
UBOOT_MACHINE = "orangepi_r1_defconfig"
|
||||
|
9
conf/machine/orange-pi-zero-plus2-h3.conf
Normal file
9
conf/machine/orange-pi-zero-plus2-h3.conf
Normal file
@ -0,0 +1,9 @@
|
||||
#@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"
|
@ -2,10 +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
|
||||
|
||||
PREFERRED_VERSION_u-boot = "v2018.03%"
|
||||
require conf/machine/include/hardware/ap6212a.inc
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun50i-h5-orangepi-zero-plus2.dtb"
|
||||
UBOOT_MACHINE = "orangepi_zero_plus2_defconfig"
|
||||
|
@ -1,11 +1,9 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: orange-pi-one
|
||||
#@DESCRIPTION: Machine configuration for the orange-pi-one, base on allwinner H3 CPU
|
||||
#@NAME: orange-pi-zero
|
||||
#@DESCRIPTION: Machine configuration for the orange-pi-zero, based on Allwinner H2 CPU
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
PREFERRED_VERSION_u-boot = "v2018.03%"
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h2-plus-orangepi-zero.dtb"
|
||||
UBOOT_MACHINE = "orangepi_zero_defconfig"
|
||||
|
||||
|
16
conf/machine/orange-pi-zero2.conf
Normal file
16
conf/machine/orange-pi-zero2.conf
Normal file
@ -0,0 +1,16 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: orange-pi-zero-2
|
||||
#@DESCRIPTION: Machine configuration for the orange-pi-zero-2, based on Allwinner H616 CPU
|
||||
|
||||
require conf/machine/include/sun50i-h616.inc
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun50i-h616-orangepi-zero2.dtb"
|
||||
UBOOT_MACHINE = "orangepi_zero2_defconfig"
|
||||
|
||||
SPL_BINARY = "u-boot-sunxi-with-spl.bin"
|
||||
|
||||
# as for now neither graphics nor audio is supported
|
||||
MACHINE_FEATURES:remove = "alsa x11"
|
||||
MACHINE_FEATURES:append = "bluetooth wifi"
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS = "uwe5622-firmware"
|
@ -4,8 +4,6 @@
|
||||
|
||||
require conf/machine/include/sun4i.inc
|
||||
|
||||
PREFERRED_VERSION_u-boot = "v2018.03%"
|
||||
|
||||
KERNEL_DEVICETREE = "sun4i-a10-pcduino.dtb"
|
||||
UBOOT_MACHINE = "Linksprite_pcDuino_defconfig"
|
||||
SUNXI_FEX_FILE = "sys_config/a10/pcduino.fex"
|
||||
|
9
conf/machine/pcduino3.conf
Normal file
9
conf/machine/pcduino3.conf
Normal file
@ -0,0 +1,9 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: Linksprite A20-pcduino3 Board
|
||||
#@DESCRIPTION: Machine configuration for the pcDuino 3, based on Allwinner A20 CPU
|
||||
|
||||
require conf/machine/include/sun7i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun7i-a20-pcduino3.dtb"
|
||||
UBOOT_MACHINE = "Linksprite_pcDuino3_defconfig"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/linksprite_pcduino3.fex"
|
9
conf/machine/pine64-plus.conf
Normal file
9
conf/machine/pine64-plus.conf
Normal file
@ -0,0 +1,9 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: pine64-plus
|
||||
#@DESCRIPTION: Machine configuration for the pine64-plus, based on Allwinner A64 CPU
|
||||
|
||||
|
||||
require conf/machine/include/sun50i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun50i-a64-pine64-plus.dtb"
|
||||
UBOOT_MACHINE = "pine64_plus_defconfig"
|
@ -0,0 +1,26 @@
|
||||
From 087b9306659effac870b4794c0f775ce3d7208c5 Mon Sep 17 00:00:00 2001
|
||||
From: Marek Belisko <marek.belisko@open-nandra.com>
|
||||
Date: Wed, 13 Apr 2022 08:09:29 +0200
|
||||
Subject: [PATCH] Use same type as in declaration
|
||||
|
||||
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
|
||||
---
|
||||
services/std_svc/psci/psci_common.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/services/std_svc/psci/psci_common.c b/services/std_svc/psci/psci_common.c
|
||||
index 75f52f538..918a719f6 100644
|
||||
--- a/services/std_svc/psci/psci_common.c
|
||||
+++ b/services/std_svc/psci/psci_common.c
|
||||
@@ -261,7 +261,7 @@ void psci_acquire_afflvl_locks(int start_afflvl,
|
||||
******************************************************************************/
|
||||
void psci_release_afflvl_locks(int start_afflvl,
|
||||
int end_afflvl,
|
||||
- aff_map_node_t *mpidr_nodes[])
|
||||
+ mpidr_aff_map_nodes_t mpidr_nodes)
|
||||
{
|
||||
int level;
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,35 @@
|
||||
From 69d2c1ccb42942980064c12d3ea3904bac450feb Mon Sep 17 00:00:00 2001
|
||||
From: pbiel <pbiel7@gmail.com>
|
||||
Date: Thu, 23 Feb 2023 16:30:01 +0100
|
||||
Subject: [PATCH] Makefile: link with -z noexecstack --no-warn-rwx-segments
|
||||
|
||||
---
|
||||
Makefile | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 578083221..e70888cf2 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -445,6 +445,8 @@ endif
|
||||
|
||||
GCC_V_OUTPUT := $(shell $(CC) -v 2>&1)
|
||||
|
||||
+TF_LDFLAGS += --no-warn-rwx-segment
|
||||
+
|
||||
# LD = armlink
|
||||
ifneq ($(findstring armlink,$(notdir $(LD))),)
|
||||
TF_LDFLAGS += --diag_error=warning --lto_level=O1
|
||||
@@ -471,6 +473,9 @@ TF_LDFLAGS += $(subst --,-Xlinker --,$(TF_LDFLAGS_$(ARCH)))
|
||||
|
||||
# LD = gcc-ld (ld) or llvm-ld (ld.lld) or other
|
||||
else
|
||||
+# With ld.bfd version 2.39 and newer new warnings are added. Skip those since we
|
||||
+# are not loaded by a elf loader.
|
||||
+TF_LDFLAGS += $(call ld_option, --no-warn-rwx-segments)
|
||||
TF_LDFLAGS += -O1
|
||||
TF_LDFLAGS += --gc-sections
|
||||
# ld.lld doesn't recognize the errata flags,
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,16 +1,21 @@
|
||||
DESCRIPTION = "ARM Trusted Firmware Allwinner"
|
||||
LICENSE = "BSD"
|
||||
LIC_FILES_CHKSUM = "file://license.md;md5=829bdeb34c1d9044f393d5a16c068371"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://docs/license.rst;md5=b2c740efedc159745b9b31f88ff03dde"
|
||||
|
||||
SRC_URI = "git://github.com/apritzel/arm-trusted-firmware;nobranch=1"
|
||||
SRCREV = "aa75c8da415158a94b82a430b2b40000778e851f"
|
||||
SRC_URI = " \
|
||||
git://github.com/ARM-software/arm-trusted-firmware;nobranch=1;protocol=https \
|
||||
file://Makefile-link-with-z-noexecstack-no-warn-rwx-segment.patch \
|
||||
"
|
||||
|
||||
SRCREV = "ba12668a65f9b10bc18f3b49a71999ed5d32714a"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
B = "${WORKDIR}/build"
|
||||
|
||||
COMPATIBLE_MACHINE = "(sun50i)"
|
||||
COMPATIBLE_MACHINE = "(sun50i|sun50i-h616)"
|
||||
|
||||
PLATFORM_sun50i = "sun50iw1p1"
|
||||
PLATFORM:sun50i = "sun50i_a64"
|
||||
PLATFORM:sun50i-h616 = "sun50i_h616"
|
||||
|
||||
LDFLAGS[unexport] = "1"
|
||||
|
||||
|
@ -9,9 +9,9 @@ PR = "r0"
|
||||
|
||||
COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i)"
|
||||
|
||||
SRC_URI = "git://github.com/linux-sunxi/sunxi-boards.git;protocol=git"
|
||||
SRC_URI = "git://github.com/linux-sunxi/sunxi-boards.git;protocol=https;branch=master"
|
||||
# Increase PV with SRCREV change
|
||||
SRCREV = "496ef0fbd166cc2395daa76dd3c359357420963d"
|
||||
SRCREV = "af5f938ea14a3614d35ad3d9ab51a5d392117444"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
|
@ -1,26 +1,21 @@
|
||||
From f4a77da23b3890b53efab6a927cbe99b76ef3b26 Mon Sep 17 00:00:00 2001
|
||||
From 6a64d90ca4d976c16a2e102dbad0848e4d29776c Mon Sep 17 00:00:00 2001
|
||||
From: Florin Sarbu <florin@resin.io>
|
||||
Date: Wed, 12 Sep 2018 14:22:49 +0200
|
||||
Subject: [PATCH] nanopi_neo_air_defconfig: Enable eMMC support
|
||||
|
||||
Upstream-status: Pending
|
||||
Signed-off-by: Florin Sarbu <florin@resin.io>
|
||||
|
||||
---
|
||||
configs/nanopi_neo_air_defconfig | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/configs/nanopi_neo_air_defconfig b/configs/nanopi_neo_air_defconfig
|
||||
index ca9c2dd..74ce044 100644
|
||||
index 806d95c1cc..8899cc3a15 100644
|
||||
--- a/configs/nanopi_neo_air_defconfig
|
||||
+++ b/configs/nanopi_neo_air_defconfig
|
||||
@@ -10,6 +10,7 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-neo-air"
|
||||
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
||||
@@ -9,3 +9,4 @@ CONFIG_DRAM_CLK=408
|
||||
CONFIG_CONSOLE_MUX=y
|
||||
CONFIG_SPL=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
+CONFIG_MMC_SUNXI_SLOT_EXTRA=2
|
||||
# CONFIG_CMD_FLASH is not set
|
||||
# CONFIG_SPL_DOS_PARTITION is not set
|
||||
# CONFIG_SPL_ISO_PARTITION is not set
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
@ -0,0 +1,40 @@
|
||||
From 767a05572ef5b93c2e157749b1754cbe261ee43d Mon Sep 17 00:00:00 2001
|
||||
From: Marek Belisko <marek.belisko@open-nandra.com>
|
||||
Date: Fri, 8 Apr 2022 11:33:53 +0200
|
||||
Subject: [PATCH] Added nanopi-r1 board support
|
||||
|
||||
Patch taken from : https://github.com/armbian/build/blob/master/patch/u-boot/u-boot-sunxi/add-nanopi-r1-and-duo2.patch
|
||||
|
||||
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
|
||||
---
|
||||
diff --git a/configs/nanopi_r1_defconfig b/configs/nanopi_r1_defconfig
|
||||
new file mode 100644
|
||||
index 0000000..e028b41
|
||||
--- /dev/null
|
||||
+++ b/configs/nanopi_r1_defconfig
|
||||
@@ -0,0 +1,22 @@
|
||||
+CONFIG_ARM=y
|
||||
+CONFIG_ARCH_SUNXI=y
|
||||
+CONFIG_SPL=y
|
||||
+CONFIG_MACH_SUN8I_H3=y
|
||||
+CONFIG_DRAM_CLK=408
|
||||
+CONFIG_DRAM_ZQ=3881979
|
||||
+CONFIG_DRAM_ODT_EN=y
|
||||
+CONFIG_MACPWR="PD6"
|
||||
+# CONFIG_VIDEO_DE2 is not set
|
||||
+CONFIG_NR_DRAM_BANKS=1
|
||||
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
||||
+CONFIG_CONSOLE_MUX=y
|
||||
+CONFIG_SYS_CLK_FREQ=480000000
|
||||
+# CONFIG_CMD_FLASH is not set
|
||||
+# CONFIG_SPL_DOS_PARTITION is not set
|
||||
+# CONFIG_SPL_EFI_PARTITION is not set
|
||||
+CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-r1"
|
||||
+CONFIG_SUN8I_EMAC=y
|
||||
+CONFIG_USB_EHCI_HCD=y
|
||||
+CONFIG_USB_OHCI_HCD=y
|
||||
+CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
|
||||
+CONFIG_MMC_SUNXI_SLOT_EXTRA=2
|
||||
--
|
||||
2.7.4
|
||||
|
11
recipes-bsp/u-boot/files/bananapi-m64/boot.cmd
Normal file
11
recipes-bsp/u-boot/files/bananapi-m64/boot.cmd
Normal file
@ -0,0 +1,11 @@
|
||||
# Default to (primary) SD
|
||||
rootdev=mmcblk0p2
|
||||
if itest.b *0x28 == 0x02 ; then
|
||||
# U-Boot loaded from eMMC or secondary SD so use it for rootfs too
|
||||
echo "U-boot loaded from eMMC or secondary SD"
|
||||
rootdev=mmcblk2p2
|
||||
fi
|
||||
setenv bootargs console=${console} console=tty1 root=/dev/${rootdev} rootwait panic=10 ${extra}
|
||||
load mmc 0:1 ${fdt_addr_r} ${fdtfile}
|
||||
load mmc 0:1 ${kernel_addr_r} Image
|
||||
booti ${kernel_addr_r} - ${fdt_addr_r}
|
@ -1,16 +0,0 @@
|
||||
diff --git a/scripts/dtc/pylibfdt/Makefile b/scripts/dtc/pylibfdt/Makefile
|
||||
index 01d5e0ffe3..2b2dfe0bd9 100644
|
||||
--- a/scripts/dtc/pylibfdt/Makefile
|
||||
+++ b/scripts/dtc/pylibfdt/Makefile
|
||||
@@ -15,6 +15,8 @@ PYLIBFDT_srcs = $(addprefix $(LIBFDT_srcdir)/,$(LIBFDT_SRCS)) \
|
||||
|
||||
quiet_cmd_pymod = PYMOD $@
|
||||
cmd_pymod = unset CC; unset CROSS_COMPILE; unset CFLAGS;\
|
||||
+ CC="$(HOSTCC)" \
|
||||
+ LDSHARED="$(HOSTLDSHARED)" \
|
||||
LDFLAGS="$(HOSTLDFLAGS)" \
|
||||
VERSION="u-boot-$(UBOOTVERSION)" \
|
||||
CPPFLAGS="$(HOSTCFLAGS) -I$(LIBFDT_srcdir)" OBJDIR=$(obj) \
|
||||
--
|
||||
2.11.0
|
||||
|
@ -2,7 +2,7 @@ DESCRIPTION = "U-Boot port for sunxi"
|
||||
|
||||
require recipes-bsp/u-boot/u-boot.inc
|
||||
|
||||
LICENSE = "GPLv2"
|
||||
LICENSE = "GPL-2.0-only"
|
||||
LIC_FILES_CHKSUM = "file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
|
||||
|
||||
# No patches for other machines yet
|
||||
@ -19,9 +19,10 @@ UBOOT_MACHINE_olinuxino-a10s = "A10s-OLinuXino-Micro_config"
|
||||
UBOOT_MACHINE_meleg = "Mele_A1000G_config"
|
||||
|
||||
SRC_URI = " \
|
||||
git://github.com/linux-sunxi/u-boot-sunxi.git;protocol=git;branch=sunxi \
|
||||
file://0002-gcc5-fixes.patch \
|
||||
file://0003-gcc6-fixes.patch \
|
||||
git://github.com/linux-sunxi/u-boot-sunxi.git;protocol=https;branch=sunxi \
|
||||
file://0001-gcc5-fixes.patch \
|
||||
file://0002-gcc6-fixes.patch \
|
||||
file://0003-No-gcc-version-specific-includes.patch \
|
||||
"
|
||||
|
||||
PE = "1"
|
||||
@ -35,3 +36,7 @@ S = "${WORKDIR}/git"
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
SPL_BINARY="u-boot-sunxi-with-spl.bin"
|
||||
|
||||
do_configure () {
|
||||
oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE}
|
||||
}
|
||||
|
@ -0,0 +1,24 @@
|
||||
From bc4aa5814cbedbfaa1c79dfe7ea2571fee7f2d51 Mon Sep 17 00:00:00 2001
|
||||
From: Andrey Lebedev <andrey@lebedev.lt>
|
||||
Date: Wed, 22 Jan 2020 20:00:11 +0200
|
||||
Subject: [PATCH] No gcc version-specific includes
|
||||
|
||||
In order to support gcc-5 and above. Fixes compilation errors like
|
||||
|
||||
linux/compiler-gcc9.h: No such file or directory
|
||||
---
|
||||
include/linux/compiler-gcc.h | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
|
||||
index 9896e547b9..5f0bd65f3a 100644
|
||||
--- a/include/linux/compiler-gcc.h
|
||||
+++ b/include/linux/compiler-gcc.h
|
||||
@@ -90,4 +90,3 @@
|
||||
#define __gcc_header(x) #x
|
||||
#define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h)
|
||||
#define gcc_header(x) _gcc_header(x)
|
||||
-#include gcc_header(__GNUC__)
|
||||
--
|
||||
2.20.1
|
||||
|
30
recipes-bsp/u-boot/u-boot_%.bbappend
Normal file
30
recipes-bsp/u-boot/u-boot_%.bbappend
Normal file
@ -0,0 +1,30 @@
|
||||
FILESEXTRAPATHS:prepend:sunxi := "${THISDIR}/files:"
|
||||
|
||||
DEPENDS:append:sunxi = " bc-native dtc-native swig-native python3-native flex-native bison-native "
|
||||
DEPENDS:append:sun50i = " atf-sunxi "
|
||||
|
||||
COMPATIBLE_MACHINE:sunxi = "(sun4i|sun5i|sun7i|sun8i|sun50i)"
|
||||
|
||||
DEFAULT_PREFERENCE:sun4i = "1"
|
||||
DEFAULT_PREFERENCE:sun5i = "1"
|
||||
DEFAULT_PREFERENCE:sun7i = "1"
|
||||
DEFAULT_PREFERENCE:sun8i = "1"
|
||||
DEFAULT_PREFERENCE:sun50i = "1"
|
||||
|
||||
SRC_URI:append:sunxi = " \
|
||||
file://0001-nanopi_neo_air_defconfig-Enable-eMMC-support.patch \
|
||||
file://0002-Added-nanopi-r1-board-support.patch \
|
||||
file://boot.cmd \
|
||||
"
|
||||
|
||||
UBOOT_ENV_SUFFIX:sunxi = "scr"
|
||||
UBOOT_ENV:sunxi = "boot"
|
||||
|
||||
EXTRA_OEMAKE:append:sunxi = ' HOSTLDSHARED="${BUILD_CC} -shared ${BUILD_LDFLAGS} ${BUILD_CFLAGS}" '
|
||||
EXTRA_OEMAKE:append:sun50i = " BL31=${DEPLOY_DIR_IMAGE}/bl31.bin SCP=/dev/null"
|
||||
|
||||
do_compile_sun50i[depends] += "atf-sunxi:do_deploy"
|
||||
|
||||
do_compile:append:sunxi() {
|
||||
${B}/tools/mkimage -C none -A arm -T script -d ${WORKDIR}/boot.cmd ${WORKDIR}/${UBOOT_ENV_BINARY}
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
DESCRIPTION="Upstream's U-boot configured for sunxi devices"
|
||||
|
||||
require recipes-bsp/u-boot/u-boot.inc
|
||||
|
||||
DEPENDS += " bc-native dtc-native swig-native python3-native "
|
||||
DEPENDS_append_sun50i = " atf-sunxi "
|
||||
|
||||
LICENSE = "GPLv2+"
|
||||
LIC_FILES_CHKSUM = "file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6"
|
||||
|
||||
COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i|sun8i|sun50i)"
|
||||
|
||||
DEFAULT_PREFERENCE_sun4i="1"
|
||||
DEFAULT_PREFERENCE_sun5i="1"
|
||||
DEFAULT_PREFERENCE_sun7i="1"
|
||||
DEFAULT_PREFERENCE_sun8i="1"
|
||||
DEFAULT_PREFERENCE_sun50i="1"
|
||||
|
||||
SRC_URI = "git://git.denx.de/u-boot.git;branch=master \
|
||||
file://u-boot-pylibfdt-native-build.patch \
|
||||
file://0001-nanopi_neo_air_defconfig-Enable-eMMC-support.patch \
|
||||
file://boot.cmd \
|
||||
"
|
||||
|
||||
SRCREV = "f95ab1fb6e37f0601f397091bb011edf7a98b890"
|
||||
|
||||
PV = "v2018.03+git${SRCPV}"
|
||||
PE = "2"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
UBOOT_ENV_SUFFIX = "scr"
|
||||
UBOOT_ENV = "boot"
|
||||
|
||||
EXTRA_OEMAKE += ' HOSTLDSHARED="${BUILD_CC} -shared ${BUILD_LDFLAGS} ${BUILD_CFLAGS}" '
|
||||
EXTRA_OEMAKE_append_sun50i = " BL31=${DEPLOY_DIR_IMAGE}/bl31.bin "
|
||||
|
||||
do_compile_sun50i[depends] += "atf-sunxi:do_deploy"
|
||||
|
||||
do_compile_append() {
|
||||
${B}/tools/mkimage -C none -A arm -T script -d ${WORKDIR}/boot.cmd ${WORKDIR}/${UBOOT_ENV_BINARY}
|
||||
}
|
@ -1,51 +0,0 @@
|
||||
--- 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):
|
@ -1,24 +1,23 @@
|
||||
DESCRIPTION = "A module to control Allwinner GPIO,SPI and I2C channels"
|
||||
HOMEPAGE = "https://pypi.python.org/pypi/pyA20"
|
||||
SECTION = "devel/python"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=bfe0261ded6cff75086193ec2f79129e"
|
||||
DEPENDS = "python"
|
||||
LICENSE = "GPL-3.0-only"
|
||||
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=4e584373bb0f46ef1e423cb7df37847d"
|
||||
DEPENDS = "python3"
|
||||
|
||||
# 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 distutils
|
||||
inherit distutils3
|
||||
|
||||
do_compile_prepend() {
|
||||
do_compile:prepend() {
|
||||
cp ${WORKDIR}/mapping.h ${S}/pyA20/gpio/mapping.h
|
||||
}
|
||||
|
||||
SRC_URI[md5sum] = "2290066bbe274000c53693959a8005b4"
|
||||
SRC_URI[sha256sum] = "b15e4ee1016b7eb52001cbccde3751868624a88d2adbb9adc5404628f7e59e7e"
|
||||
SRC_URI[md5sum] = "cab03b4931199804603d1074f6d8f48f"
|
||||
SRC_URI[sha256sum] = "4bef559a9c5a4d648d9834bad996cf2805b20d6063b8051029ffdf9deda2b536"
|
@ -1,24 +0,0 @@
|
||||
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"
|
@ -21,8 +21,8 @@ python __anonymous() {
|
||||
raise bb.parse.SkipPackage("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
|
||||
}
|
||||
|
||||
SRCREV_pn-${PN} = "d343311efc8db166d8371b28494f0f27b6a58724"
|
||||
SRC_URI = "gitsm://github.com/linux-sunxi/sunxi-mali.git \
|
||||
SRCREV = "d343311efc8db166d8371b28494f0f27b6a58724"
|
||||
SRC_URI = "git://github.com/linux-sunxi/sunxi-mali.git;protocol=https;branch=master \
|
||||
file://0001-Add-EGLSyncKHR-EGLTimeKHR-and-GLChar-definition.patch \
|
||||
file://0002-Add-missing-GLchar-definition.patch \
|
||||
file://0003-Fix-sed-to-replace-by-the-correct-var.patch \
|
||||
@ -31,7 +31,7 @@ SRC_URI = "gitsm://github.com/linux-sunxi/sunxi-mali.git \
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
DEPENDS = "libdrm dri2proto libump"
|
||||
DEPENDS = "libdrm xorgproto libump patchelf-native"
|
||||
|
||||
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
|
||||
PACKAGECONFIG[wayland] = "EGL_TYPE=framebuffer,,,"
|
||||
@ -70,11 +70,13 @@ do_install() {
|
||||
|
||||
make libdir=${D}${libdir}/ includedir=${D}${includedir}/ install
|
||||
make libdir=${D}${libdir}/ includedir=${D}${includedir}/ install -C include
|
||||
rm -f ${D}${includedir}/KHR/khrplatform.h
|
||||
|
||||
# Fix .so name and create symlinks, binary package provides .so wich can't be included directly in package without triggering the 'dev-so' QA check
|
||||
# Packages like xf86-video-fbturbo dlopen() libUMP.so, so we do need to ship the .so files in ${PN}
|
||||
|
||||
mv ${D}${libdir}/libMali.so ${D}${libdir}/libMali.so.3
|
||||
patchelf --set-soname libMali.so.3 ${D}${libdir}/libMali.so.3
|
||||
ln -sf libMali.so.3 ${D}${libdir}/libMali.so
|
||||
|
||||
for flib in libEGL.so.1.4 libGLESv1_CM.so.1.1 libGLESv2.so.2.0 ; do
|
||||
@ -90,13 +92,13 @@ do_install() {
|
||||
# Packages like xf86-video-fbturbo dlopen() libUMP.so, so we do need to ship the .so files in ${PN}
|
||||
PACKAGES =+ "${PN}-test"
|
||||
|
||||
RPROVIDES_${PN} += "libGLESv2.so libEGL.so libGLESv2.so libGLESv1_CM.so libMali.so"
|
||||
RDEPENDS_${PN}-test = "${PN}"
|
||||
RPROVIDES:${PN} += "libGLESv2.so libEGL.so libGLESv2.so libGLESv1_CM.so libMali.so"
|
||||
RDEPENDS:${PN}-test = "${PN}"
|
||||
|
||||
FILES_${PN} += "${libdir}/lib*.so"
|
||||
FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig/*"
|
||||
FILES_${PN}-test = "${bindir}/sunximali-test"
|
||||
FILES:${PN} += "${libdir}/lib*.so"
|
||||
FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig/*"
|
||||
FILES:${PN}-test = "${bindir}/sunximali-test"
|
||||
|
||||
# These are closed binaries generated elsewhere so don't check ldflags & text relocations
|
||||
INSANE_SKIP_${PN} = "dev-so ldflags textrel"
|
||||
INSANE_SKIP_${PN}-test = "dev-so ldflags textrel"
|
||||
INSANE_SKIP:${PN} = "dev-so ldflags textrel"
|
||||
INSANE_SKIP:${PN}-test = "dev-so ldflags textrel"
|
||||
|
@ -1,14 +1,14 @@
|
||||
DESCRIPTION = "Unified Memory Provider userspace API source code needed for xf86-video-mali compilation"
|
||||
|
||||
LICENSE = "Apache-2"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://debian/copyright;md5=edf7fb6071cae7ec80d537a05ee17198"
|
||||
|
||||
inherit autotools
|
||||
|
||||
PV = "r4p0-00rel0+git${SRCPV}"
|
||||
SRCREV_pn-${PN} = "ec0680628744f30b8fac35e41a7bd8e23e59c39f"
|
||||
SRCREV = "ec0680628744f30b8fac35e41a7bd8e23e59c39f"
|
||||
|
||||
SRC_URI = "git://github.com/linux-sunxi/libump.git"
|
||||
SRC_URI = "git://github.com/linux-sunxi/libump.git;protocol=https;branch=master"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
|
1
recipes-graphics/mesa/mesa-gl_%.bbappend
Normal file
1
recipes-graphics/mesa/mesa-gl_%.bbappend
Normal file
@ -0,0 +1 @@
|
||||
PACKAGECONFIG:class-target = "opengl x11 gallium"
|
5
recipes-graphics/mesa/mesa_%.bbappend
Normal file
5
recipes-graphics/mesa/mesa_%.bbappend
Normal file
@ -0,0 +1,5 @@
|
||||
# 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"
|
@ -1,4 +1,4 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI += "file://tslib.patch"
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
DESCRIPTION = "Library for the DRI2 extension to the X Window System"
|
||||
|
||||
LICENSE = "MIT-X"
|
||||
LICENSE = "MIT-CMU"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=827da9afab1f727f2a66574629e0f39c"
|
||||
|
||||
DEPENDS = "libdrm libxext xextproto libxfixes dri2proto"
|
||||
DEPENDS = "libdrm libxext libxfixes xorgproto"
|
||||
|
||||
PE = "1"
|
||||
PV = "1.0.0+git${SRCPV}"
|
||||
SRC_URI = "git://github.com/robclark/libdri2.git;protocol=http;branch=master"
|
||||
|
||||
SRCREV_pn-${PN} = "4f1eef3183df2b270c3d5cbef07343ee5127a6a4"
|
||||
SRCREV = "4f1eef3183df2b270c3d5cbef07343ee5127a6a4"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
|
@ -2,14 +2,14 @@ require recipes-graphics/xorg-driver/xorg-driver-video.inc
|
||||
|
||||
DESCRIPTION = "X.Org X server -- A10/A13 display driver"
|
||||
|
||||
LICENSE = "MIT-X"
|
||||
LICENSE = "MIT-CMU"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=f91dc3ee5ce59eb4b528e67e98a31266"
|
||||
|
||||
DEPENDS += "sunxi-mali libump xf86driproto"
|
||||
DEPENDS += "sunxi-mali libump xorgproto"
|
||||
|
||||
PE = "3"
|
||||
PV = "0.5.1+git${SRCPV}"
|
||||
SRCREV_pn-${PN} = "e094e3c8f9004ca3347694bd05b99d136e8621b9"
|
||||
SRCREV = "e094e3c8f9004ca3347694bd05b99d136e8621b9"
|
||||
|
||||
SRC_URI = "git://github.com/ssvb/xf86-video-fbturbo.git;protocol=http;branch=master \
|
||||
file://20-fbturbo.conf"
|
||||
@ -18,9 +18,9 @@ S = "${WORKDIR}/git"
|
||||
|
||||
CFLAGS += " -I${STAGING_INCDIR}/xorg "
|
||||
|
||||
do_install_append() {
|
||||
do_install:append() {
|
||||
install -d ${D}${datadir}/X11/xorg.conf.d
|
||||
install -m 0644 ${WORKDIR}/20-fbturbo.conf ${D}${datadir}/X11/xorg.conf.d
|
||||
}
|
||||
|
||||
FILES_${PN} += "${datadir}/X11/xorg.conf.d/20-fbturbo.conf"
|
||||
FILES:${PN} += "${datadir}/X11/xorg.conf.d/20-fbturbo.conf"
|
||||
|
@ -1 +1 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
1
recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
Normal file
1
recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
Normal file
@ -0,0 +1 @@
|
||||
DEPENDS += "libxshmfence"
|
13
recipes-kernel/linux-firmware/linux-firmware_%.bbappend
Normal file
13
recipes-kernel/linux-firmware/linux-firmware_%.bbappend
Normal file
@ -0,0 +1,13 @@
|
||||
# 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
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,45 @@
|
||||
From 5138d597275fd503573fac84018186bd18740644 Mon Sep 17 00:00:00 2001
|
||||
From: pbiel <pbiel7@gmail.com>
|
||||
Date: Thu, 30 Mar 2023 22:45:33 +0200
|
||||
Subject: [PATCH] Fix incldue path for unisocwcn
|
||||
|
||||
---
|
||||
drivers/net/wireless/uwe5622/Makefile | 4 +++-
|
||||
drivers/net/wireless/uwe5622/unisocwcn/Makefile | 6 +++---
|
||||
2 files changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/uwe5622/Makefile b/drivers/net/wireless/uwe5622/Makefile
|
||||
index 313ea5123..e9a398584 100644
|
||||
--- a/drivers/net/wireless/uwe5622/Makefile
|
||||
+++ b/drivers/net/wireless/uwe5622/Makefile
|
||||
@@ -2,7 +2,9 @@ obj-$(CONFIG_AW_WIFI_DEVICE_UWE5622) += unisocwcn/
|
||||
obj-$(CONFIG_WLAN_UWE5622) += unisocwifi/
|
||||
obj-$(CONFIG_TTY_OVERY_SDIO) += tty-sdio/
|
||||
|
||||
-UNISOCWCN_DIR := $(shell cd $(src)/unisocwcn/ && /bin/pwd)
|
||||
+mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||
+UNISOCWCN_DIR := $(dir $(mkfile_path))/unisocwcn/
|
||||
+
|
||||
UNISOC_BSP_INCLUDE := $(UNISOCWCN_DIR)/include
|
||||
export UNISOC_BSP_INCLUDE
|
||||
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/Makefile b/drivers/net/wireless/uwe5622/unisocwcn/Makefile
|
||||
index f9c595747..1ad490594 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwcn/Makefile
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwcn/Makefile
|
||||
@@ -129,9 +129,9 @@ ccflags-y += -DCONFIG_WCN_BOOT
|
||||
ccflags-y += -DCONFIG_WCN_UTILS
|
||||
|
||||
#### include path ######
|
||||
-ccflags-y += -I$(src)/include/
|
||||
-ccflags-y += -I$(src)/platform/
|
||||
-ccflags-y += -I$(src)/platform/rf/
|
||||
+ccflags-y += -I$(srctree)/$(src)/include/
|
||||
+ccflags-y += -I$(srctree)/$(src)/platform/
|
||||
+ccflags-y += -I$(srctree)/$(src)/platform/rf/
|
||||
|
||||
#### add cflag for Customer ######
|
||||
### ---------- Hisilicon start ---------- ###
|
||||
--
|
||||
2.34.1
|
||||
|
@ -0,0 +1,177 @@
|
||||
From 5f4d2d5fc32dfe41c73cac36ec6747c34e5562a3 Mon Sep 17 00:00:00 2001
|
||||
From: pbiel <pbiel7@gmail.com>
|
||||
Date: Wed, 15 Mar 2023 23:04:27 +0100
|
||||
Subject: [PATCH] wireless: Adapt uwe5622 wifi driver to kernel 6.1
|
||||
|
||||
---
|
||||
drivers/net/wireless/uwe5622/tty-sdio/lpm.c | 2 +-
|
||||
.../uwe5622/unisocwcn/boot/wcn_integrate_dev.c | 2 +-
|
||||
.../uwe5622/unisocwcn/platform/wcn_parn_parser.c | 2 +-
|
||||
.../wireless/uwe5622/unisocwcn/platform/wcn_procfs.c | 2 +-
|
||||
.../wireless/uwe5622/unisocwcn/usb/wcn_usb_download.c | 2 +-
|
||||
.../net/wireless/uwe5622/unisocwcn/usb/wcn_usb_test.c | 6 +++---
|
||||
drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c | 10 +++++-----
|
||||
drivers/net/wireless/uwe5622/unisocwifi/cmdevt.c | 2 +-
|
||||
8 files changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/uwe5622/tty-sdio/lpm.c b/drivers/net/wireless/uwe5622/tty-sdio/lpm.c
|
||||
index b2d9a8994e5e..35e30651a921 100644
|
||||
--- a/drivers/net/wireless/uwe5622/tty-sdio/lpm.c
|
||||
+++ b/drivers/net/wireless/uwe5622/tty-sdio/lpm.c
|
||||
@@ -70,7 +70,7 @@ static int btwrite_proc_show(struct seq_file *m, void *v)
|
||||
|
||||
static int bluesleep_open_proc_btwrite(struct inode *inode, struct file *file)
|
||||
{
|
||||
- return single_open(file, btwrite_proc_show, PDE_DATA(inode));
|
||||
+ return single_open(file, btwrite_proc_show, pde_data(inode));
|
||||
}
|
||||
|
||||
static const struct proc_ops lpm_proc_btwrite_fops = {
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/boot/wcn_integrate_dev.c b/drivers/net/wireless/uwe5622/unisocwcn/boot/wcn_integrate_dev.c
|
||||
index 3ee6910e7cf7..29a3ec298bc1 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwcn/boot/wcn_integrate_dev.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwcn/boot/wcn_integrate_dev.c
|
||||
@@ -562,7 +562,7 @@ static struct wcn_proc_data g_proc_data = {
|
||||
static int wcn_platform_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
struct platform_proc_file_entry
|
||||
- *entry = (struct platform_proc_file_entry *)PDE_DATA(inode);
|
||||
+ *entry = (struct platform_proc_file_entry *)pde_data(inode);
|
||||
|
||||
WCN_INFO("entry name:%s\n!", entry->name);
|
||||
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c
|
||||
index aea7d6d0fe57..bd841f0b32d3 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c
|
||||
@@ -146,7 +146,7 @@ static int prefixcmp(const char *str, const char *prefix)
|
||||
}
|
||||
|
||||
#if KERNEL_VERSION(3, 19, 0) <= LINUX_VERSION_CODE
|
||||
-static int find_callback(struct dir_context *ctx, const char *name, int namlen,
|
||||
+static bool find_callback(struct dir_context *ctx, const char *name, int namlen,
|
||||
loff_t offset, u64 ino, unsigned int d_type)
|
||||
#else
|
||||
static int find_callback(void *ctx, const char *name, int namlen,
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_procfs.c b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_procfs.c
|
||||
index 2edb7903d80e..9e453365bba8 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_procfs.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_procfs.c
|
||||
@@ -431,7 +431,7 @@ static const struct proc_ops mdbg_snap_shoot_seq_fops = {
|
||||
static int mdbg_proc_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
struct mdbg_proc_entry *entry =
|
||||
- (struct mdbg_proc_entry *)PDE_DATA(inode);
|
||||
+ (struct mdbg_proc_entry *)pde_data(inode);
|
||||
filp->private_data = entry;
|
||||
|
||||
return 0;
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_download.c b/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_download.c
|
||||
index 8f228d403909..750bfc0466cb 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_download.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_download.c
|
||||
@@ -82,7 +82,7 @@ static int wcn_usb_dopen(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct wcn_usb_ddata *data;
|
||||
|
||||
- data = (struct wcn_usb_ddata *)PDE_DATA(inode);
|
||||
+ data = (struct wcn_usb_ddata *)pde_data(inode);
|
||||
|
||||
if (!data)
|
||||
return -EIO;
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_test.c b/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_test.c
|
||||
index c2cccc658c0d..e7a9f258943e 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_test.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_test.c
|
||||
@@ -61,7 +61,7 @@ static int wcn_usb_channel_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct channel *channel;
|
||||
|
||||
- channel = (struct channel *)PDE_DATA(inode);
|
||||
+ channel = (struct channel *)pde_data(inode);
|
||||
|
||||
if (!channel)
|
||||
return -EIO;
|
||||
@@ -467,7 +467,7 @@ static int wcn_usb_chnmg_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct chnmg *chnmg;
|
||||
/* get channel_list head */
|
||||
- chnmg = (struct chnmg *)PDE_DATA(inode);
|
||||
+ chnmg = (struct chnmg *)pde_data(inode);
|
||||
|
||||
file->private_data = chnmg;
|
||||
return 0;
|
||||
@@ -916,7 +916,7 @@ static int print_level_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct chnmg *chnmg;
|
||||
/* get channel_list head */
|
||||
- chnmg = (struct chnmg *)PDE_DATA(inode);
|
||||
+ chnmg = (struct chnmg *)pde_data(inode);
|
||||
|
||||
file->private_data = chnmg;
|
||||
return 0;
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c b/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c
|
||||
index daef880ae3c0..2231388da70a 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c
|
||||
@@ -703,7 +703,7 @@ static int sprdwl_add_cipher_key(struct sprdwl_vif *vif, bool pairwise,
|
||||
}
|
||||
|
||||
static int sprdwl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
- u8 key_index, bool pairwise,
|
||||
+ int link_id, u8 key_index, bool pairwise,
|
||||
const u8 *mac_addr,
|
||||
struct key_params *params)
|
||||
{
|
||||
@@ -725,7 +725,7 @@ static int sprdwl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
}
|
||||
|
||||
static int sprdwl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
- u8 key_index, bool pairwise,
|
||||
+ int link_id, u8 key_index, bool pairwise,
|
||||
const u8 *mac_addr)
|
||||
{
|
||||
struct sprdwl_vif *vif = netdev_priv(ndev);
|
||||
@@ -755,7 +755,7 @@ static int sprdwl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
|
||||
static int sprdwl_cfg80211_set_default_key(struct wiphy *wiphy,
|
||||
struct net_device *ndev,
|
||||
- u8 key_index, bool unicast,
|
||||
+ int link_id, u8 key_index, bool unicast,
|
||||
bool multicast)
|
||||
{
|
||||
struct sprdwl_vif *vif = netdev_priv(ndev);
|
||||
@@ -984,7 +984,7 @@ static int sprdwl_cfg80211_change_beacon(struct wiphy *wiphy,
|
||||
return sprdwl_change_beacon(vif, beacon);
|
||||
}
|
||||
|
||||
-static int sprdwl_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev)
|
||||
+static int sprdwl_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev, unsigned int link_id)
|
||||
{
|
||||
#ifdef DFS_MASTER
|
||||
struct sprdwl_vif *vif = netdev_priv(ndev);
|
||||
@@ -2367,7 +2367,7 @@ void sprdwl_report_connection(struct sprdwl_vif *vif,
|
||||
conn_info->status == SPRDWL_ROAM_SUCCESS){
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
|
||||
struct cfg80211_roam_info roam_info = {
|
||||
- .bss = bss,
|
||||
+ .links[0].bss = bss,
|
||||
.req_ie = conn_info->req_ie,
|
||||
.req_ie_len = conn_info->req_ie_len,
|
||||
.resp_ie = conn_info->resp_ie,
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwifi/cmdevt.c b/drivers/net/wireless/uwe5622/unisocwifi/cmdevt.c
|
||||
index e81619b12e39..1ecbfac5b490 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwifi/cmdevt.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwifi/cmdevt.c
|
||||
@@ -3296,7 +3296,7 @@ void sprdwl_event_chan_changed(struct sprdwl_vif *vif, u8 *data, u16 len)
|
||||
NL80211_CHAN_HT20);
|
||||
else
|
||||
wl_err("%s, ch is null!\n", __func__);
|
||||
- cfg80211_ch_switch_notify(vif->ndev, &chandef);
|
||||
+ cfg80211_ch_switch_notify(vif->ndev, &chandef, 0);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.34.1
|
||||
|
@ -0,0 +1,35 @@
|
||||
From 9211a92d07e9a43fce104f87f9d45e890257b699 Mon Sep 17 00:00:00 2001
|
||||
From: pbiel <pbiel7@gmail.com>
|
||||
Date: Tue, 7 Mar 2023 20:28:44 +0100
|
||||
Subject: [PATCH] wireless: fix setting mac address for netdev in uwe5622
|
||||
unisocwifi driver
|
||||
|
||||
---
|
||||
drivers/net/wireless/uwe5622/unisocwifi/main.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwifi/main.c b/drivers/net/wireless/uwe5622/unisocwifi/main.c
|
||||
index 21efdf4e0..566a9a7f3 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwifi/main.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwifi/main.c
|
||||
@@ -1356,6 +1356,7 @@ static struct sprdwl_vif *sprdwl_register_netdev(struct sprdwl_priv *priv,
|
||||
struct wireless_dev *wdev;
|
||||
struct sprdwl_vif *vif;
|
||||
int ret;
|
||||
+ u8 target_mac_addr[ETH_ALEN] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0))
|
||||
ndev = alloc_netdev(sizeof(*vif), name, NET_NAME_UNKNOWN, ether_setup);
|
||||
@@ -1411,7 +1412,8 @@ static struct sprdwl_vif *sprdwl_register_netdev(struct sprdwl_priv *priv,
|
||||
ndev->features |= NETIF_F_SG;
|
||||
SET_NETDEV_DEV(ndev, wiphy_dev(priv->wiphy));
|
||||
|
||||
- sprdwl_set_mac_addr(vif, addr, ndev->dev_addr);
|
||||
+ sprdwl_set_mac_addr(vif, addr, target_mac_addr);
|
||||
+ dev_addr_set(ndev, target_mac_addr);
|
||||
|
||||
#ifdef CONFIG_P2P_INTF
|
||||
if (type == NL80211_IFTYPE_P2P_DEVICE)
|
||||
--
|
||||
2.34.1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,60 @@
|
||||
From 452a691a83df1aab77cec33203cb04a817817a05 Mon Sep 17 00:00:00 2001
|
||||
From: The-going <48602507+The-going@users.noreply.github.com>
|
||||
Date: Thu, 5 May 2022 22:55:13 +0300
|
||||
Subject: [PATCH] drv: nvmem: sunxi_sid: Add sunxi_get_soc_chipid,
|
||||
sunxi_get_serial
|
||||
|
||||
---
|
||||
drivers/nvmem/sunxi_sid.c | 28 ++++++++++++++++++++++++++++
|
||||
1 file changed, 28 insertions(+)
|
||||
|
||||
diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c
|
||||
index 37a6abb0e..c81fac63d 100644
|
||||
--- a/drivers/nvmem/sunxi_sid.c
|
||||
+++ b/drivers/nvmem/sunxi_sid.c
|
||||
@@ -37,6 +37,25 @@ struct sunxi_sid {
|
||||
u32 value_offset;
|
||||
};
|
||||
|
||||
+static unsigned int sunxi_soc_chipid[4];
|
||||
+static unsigned int sunxi_serial[4];
|
||||
+
|
||||
+int sunxi_get_soc_chipid(unsigned char *chipid)
|
||||
+{
|
||||
+ memcpy(chipid, sunxi_soc_chipid, 16);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+EXPORT_SYMBOL(sunxi_get_soc_chipid);
|
||||
+
|
||||
+int sunxi_get_serial(unsigned char *serial)
|
||||
+{
|
||||
+ memcpy(serial, sunxi_serial, 16);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+EXPORT_SYMBOL(sunxi_get_serial);
|
||||
+
|
||||
static int sunxi_sid_read(void *context, unsigned int offset,
|
||||
void *val, size_t bytes)
|
||||
{
|
||||
@@ -167,6 +186,15 @@ static int sunxi_sid_probe(struct platform_device *pdev)
|
||||
|
||||
platform_set_drvdata(pdev, nvmem);
|
||||
|
||||
+ nvmem_cfg->reg_read(sid, 0, &sunxi_soc_chipid[0], sizeof(int));
|
||||
+ nvmem_cfg->reg_read(sid, 4, &sunxi_soc_chipid[1], sizeof(int));
|
||||
+ nvmem_cfg->reg_read(sid, 8, &sunxi_soc_chipid[2], sizeof(int));
|
||||
+ nvmem_cfg->reg_read(sid, 12, &sunxi_soc_chipid[3], sizeof(int));
|
||||
+
|
||||
+ sunxi_serial[0] = sunxi_soc_chipid[3];
|
||||
+ sunxi_serial[1] = sunxi_soc_chipid[2];
|
||||
+ sunxi_serial[2] = (sunxi_soc_chipid[1] >> 16) & 0x0ffff;
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
||||
|
@ -0,0 +1,612 @@
|
||||
From 418436514e2e64e07e7fd2ef9d77ec4712d1033b Mon Sep 17 00:00:00 2001
|
||||
From: pbiel <pbiel7@gmail.com>
|
||||
Date: Fri, 24 Feb 2023 10:38:03 +0100
|
||||
Subject: [PATCH 2/2] Add sunxi addr driver
|
||||
|
||||
---
|
||||
drivers/misc/Kconfig | 1 +
|
||||
drivers/misc/Makefile | 1 +
|
||||
drivers/misc/sunxi-addr/Kconfig | 6 +
|
||||
drivers/misc/sunxi-addr/Makefile | 5 +
|
||||
drivers/misc/sunxi-addr/sha256.c | 178 +++++++++++++
|
||||
drivers/misc/sunxi-addr/sunxi-addr.c | 358 +++++++++++++++++++++++++++
|
||||
6 files changed, 549 insertions(+)
|
||||
create mode 100644 drivers/misc/sunxi-addr/Kconfig
|
||||
create mode 100644 drivers/misc/sunxi-addr/Makefile
|
||||
create mode 100644 drivers/misc/sunxi-addr/sha256.c
|
||||
create mode 100644 drivers/misc/sunxi-addr/sunxi-addr.c
|
||||
|
||||
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
|
||||
index 358ad56f6..c59480dc8 100644
|
||||
--- a/drivers/misc/Kconfig
|
||||
+++ b/drivers/misc/Kconfig
|
||||
@@ -514,4 +514,5 @@ source "drivers/misc/habanalabs/Kconfig"
|
||||
source "drivers/misc/uacce/Kconfig"
|
||||
source "drivers/misc/pvpanic/Kconfig"
|
||||
source "drivers/misc/mchp_pci1xxxx/Kconfig"
|
||||
+source "drivers/misc/sunxi-addr/Kconfig"
|
||||
endmenu
|
||||
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
|
||||
index ac9b3e757..487a2bf2d 100644
|
||||
--- a/drivers/misc/Makefile
|
||||
+++ b/drivers/misc/Makefile
|
||||
@@ -62,3 +62,4 @@ obj-$(CONFIG_HI6421V600_IRQ) += hi6421v600-irq.o
|
||||
obj-$(CONFIG_OPEN_DICE) += open-dice.o
|
||||
obj-$(CONFIG_GP_PCI1XXXX) += mchp_pci1xxxx/
|
||||
obj-$(CONFIG_VCPU_STALL_DETECTOR) += vcpu_stall_detector.o
|
||||
+obj-$(CONFIG_SUNXI_ADDR_MGT) += sunxi-addr/
|
||||
\ No newline at end of file
|
||||
diff --git a/drivers/misc/sunxi-addr/Kconfig b/drivers/misc/sunxi-addr/Kconfig
|
||||
new file mode 100644
|
||||
index 000000000..801dd2c02
|
||||
--- /dev/null
|
||||
+++ b/drivers/misc/sunxi-addr/Kconfig
|
||||
@@ -0,0 +1,6 @@
|
||||
+config SUNXI_ADDR_MGT
|
||||
+ tristate "Allwinner Network MAC Addess Manager"
|
||||
+ depends on BT || ETHERNET || WLAN
|
||||
+ depends on NVMEM_SUNXI_SID
|
||||
+ help
|
||||
+ allwinner network mac address management
|
||||
diff --git a/drivers/misc/sunxi-addr/Makefile b/drivers/misc/sunxi-addr/Makefile
|
||||
new file mode 100644
|
||||
index 000000000..f01fd4783
|
||||
--- /dev/null
|
||||
+++ b/drivers/misc/sunxi-addr/Makefile
|
||||
@@ -0,0 +1,5 @@
|
||||
+#
|
||||
+# Makefile for wifi mac addr manager drivers
|
||||
+#
|
||||
+sunxi_addr-objs := sunxi-addr.o sha256.o
|
||||
+obj-$(CONFIG_SUNXI_ADDR_MGT) += sunxi_addr.o
|
||||
diff --git a/drivers/misc/sunxi-addr/sha256.c b/drivers/misc/sunxi-addr/sha256.c
|
||||
new file mode 100644
|
||||
index 000000000..78825810c
|
||||
--- /dev/null
|
||||
+++ b/drivers/misc/sunxi-addr/sha256.c
|
||||
@@ -0,0 +1,178 @@
|
||||
+/*
|
||||
+ * Local implement of sha256.
|
||||
+ *
|
||||
+ * Copyright (C) 2013 Allwinner.
|
||||
+ *
|
||||
+ * This file is licensed under the terms of the GNU General Public
|
||||
+ * License version 2. This program is licensed "as is" without any
|
||||
+ * warranty of any kind, whether express or implied.
|
||||
+ */
|
||||
+#include <linux/kernel.h>
|
||||
+#include <linux/string.h>
|
||||
+
|
||||
+/****************************** MACROS ******************************/
|
||||
+#define ROTRIGHT(a, b) (((a) >> (b)) | ((a) << (32 - (b))))
|
||||
+#define CH(x, y, z) (((x) & (y)) ^ (~(x) & (z)))
|
||||
+#define MAJ(x, y, z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
|
||||
+#define EP0(x) (ROTRIGHT(x, 2) ^ ROTRIGHT(x, 13) ^ ROTRIGHT(x, 22))
|
||||
+#define EP1(x) (ROTRIGHT(x, 6) ^ ROTRIGHT(x, 11) ^ ROTRIGHT(x, 25))
|
||||
+#define SIG0(x) (ROTRIGHT(x, 7) ^ ROTRIGHT(x, 18) ^ ((x) >> 3))
|
||||
+#define SIG1(x) (ROTRIGHT(x, 17) ^ ROTRIGHT(x, 19) ^ ((x) >> 10))
|
||||
+
|
||||
+/**************************** VARIABLES *****************************/
|
||||
+static const uint32_t k[64] = {
|
||||
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
|
||||
+ 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
|
||||
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
|
||||
+ 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
|
||||
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
|
||||
+ 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
|
||||
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
|
||||
+ 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
|
||||
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
|
||||
+ 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
|
||||
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
|
||||
+ 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
|
||||
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
|
||||
+ 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
|
||||
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
|
||||
+ 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
|
||||
+};
|
||||
+
|
||||
+struct sha256_ctx {
|
||||
+ uint8_t data[64]; /* current 512-bit chunk of message data, just like a buffer */
|
||||
+ uint32_t datalen; /* sign the data length of current chunk */
|
||||
+ uint64_t bitlen; /* the bit length of the total message */
|
||||
+ uint32_t state[8]; /* store the middle state of hash abstract */
|
||||
+};
|
||||
+
|
||||
+/*********************** FUNCTION DEFINITIONS ***********************/
|
||||
+static void sha256_transform(struct sha256_ctx *ctx, const uint8_t *data)
|
||||
+{
|
||||
+ uint32_t a, b, c, d, e, f, g, h, i, j, t1, t2, m[64];
|
||||
+
|
||||
+ /* initialization */
|
||||
+ for (i = 0, j = 0; i < 16; ++i, j += 4)
|
||||
+ m[i] = (data[j] << 24) | (data[j + 1] << 16) |
|
||||
+ (data[j + 2] << 8) | (data[j + 3]);
|
||||
+ for ( ; i < 64; ++i)
|
||||
+ m[i] = SIG1(m[i - 2]) + m[i - 7] + SIG0(m[i - 15]) + m[i - 16];
|
||||
+
|
||||
+ a = ctx->state[0];
|
||||
+ b = ctx->state[1];
|
||||
+ c = ctx->state[2];
|
||||
+ d = ctx->state[3];
|
||||
+ e = ctx->state[4];
|
||||
+ f = ctx->state[5];
|
||||
+ g = ctx->state[6];
|
||||
+ h = ctx->state[7];
|
||||
+
|
||||
+ for (i = 0; i < 64; ++i) {
|
||||
+ t1 = h + EP1(e) + CH(e, f, g) + k[i] + m[i];
|
||||
+ t2 = EP0(a) + MAJ(a, b, c);
|
||||
+ h = g;
|
||||
+ g = f;
|
||||
+ f = e;
|
||||
+ e = d + t1;
|
||||
+ d = c;
|
||||
+ c = b;
|
||||
+ b = a;
|
||||
+ a = t1 + t2;
|
||||
+ }
|
||||
+
|
||||
+ ctx->state[0] += a;
|
||||
+ ctx->state[1] += b;
|
||||
+ ctx->state[2] += c;
|
||||
+ ctx->state[3] += d;
|
||||
+ ctx->state[4] += e;
|
||||
+ ctx->state[5] += f;
|
||||
+ ctx->state[6] += g;
|
||||
+ ctx->state[7] += h;
|
||||
+}
|
||||
+
|
||||
+static void sha256_init(struct sha256_ctx *ctx)
|
||||
+{
|
||||
+ ctx->datalen = 0;
|
||||
+ ctx->bitlen = 0;
|
||||
+ ctx->state[0] = 0x6a09e667;
|
||||
+ ctx->state[1] = 0xbb67ae85;
|
||||
+ ctx->state[2] = 0x3c6ef372;
|
||||
+ ctx->state[3] = 0xa54ff53a;
|
||||
+ ctx->state[4] = 0x510e527f;
|
||||
+ ctx->state[5] = 0x9b05688c;
|
||||
+ ctx->state[6] = 0x1f83d9ab;
|
||||
+ ctx->state[7] = 0x5be0cd19;
|
||||
+}
|
||||
+
|
||||
+static void sha256_update(struct sha256_ctx *ctx, const uint8_t *data, size_t len)
|
||||
+{
|
||||
+ uint32_t i;
|
||||
+
|
||||
+ for (i = 0; i < len; ++i) {
|
||||
+ ctx->data[ctx->datalen] = data[i];
|
||||
+ ctx->datalen++;
|
||||
+ if (ctx->datalen == 64) {
|
||||
+ /* 64 byte = 512 bit means the buffer ctx->data has
|
||||
+ * fully stored one chunk of message,
|
||||
+ * so do the sha256 hash map for the current chunk.
|
||||
+ */
|
||||
+ sha256_transform(ctx, ctx->data);
|
||||
+ ctx->bitlen += 512;
|
||||
+ ctx->datalen = 0;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void sha256_final(struct sha256_ctx *ctx, uint8_t *hash)
|
||||
+{
|
||||
+ uint32_t i;
|
||||
+
|
||||
+ i = ctx->datalen;
|
||||
+
|
||||
+ /* Pad whatever data is left in the buffer. */
|
||||
+ if (ctx->datalen < 56) {
|
||||
+ ctx->data[i++] = 0x80; /* pad 10000000 = 0x80 */
|
||||
+ while (i < 56)
|
||||
+ ctx->data[i++] = 0x00;
|
||||
+ } else {
|
||||
+ ctx->data[i++] = 0x80;
|
||||
+ while (i < 64)
|
||||
+ ctx->data[i++] = 0x00;
|
||||
+ sha256_transform(ctx, ctx->data);
|
||||
+ memset(ctx->data, 0, 56);
|
||||
+ }
|
||||
+
|
||||
+ /* Append to the padding the total message's length in bits and transform. */
|
||||
+ ctx->bitlen += ctx->datalen * 8;
|
||||
+ ctx->data[63] = ctx->bitlen;
|
||||
+ ctx->data[62] = ctx->bitlen >> 8;
|
||||
+ ctx->data[61] = ctx->bitlen >> 16;
|
||||
+ ctx->data[60] = ctx->bitlen >> 24;
|
||||
+ ctx->data[59] = ctx->bitlen >> 32;
|
||||
+ ctx->data[58] = ctx->bitlen >> 40;
|
||||
+ ctx->data[57] = ctx->bitlen >> 48;
|
||||
+ ctx->data[56] = ctx->bitlen >> 56;
|
||||
+ sha256_transform(ctx, ctx->data);
|
||||
+
|
||||
+ /* copying the final state to the output hash(use big endian). */
|
||||
+ for (i = 0; i < 4; ++i) {
|
||||
+ hash[i] = (ctx->state[0] >> (24 - i * 8)) & 0x000000ff;
|
||||
+ hash[i + 4] = (ctx->state[1] >> (24 - i * 8)) & 0x000000ff;
|
||||
+ hash[i + 8] = (ctx->state[2] >> (24 - i * 8)) & 0x000000ff;
|
||||
+ hash[i + 12] = (ctx->state[3] >> (24 - i * 8)) & 0x000000ff;
|
||||
+ hash[i + 16] = (ctx->state[4] >> (24 - i * 8)) & 0x000000ff;
|
||||
+ hash[i + 20] = (ctx->state[5] >> (24 - i * 8)) & 0x000000ff;
|
||||
+ hash[i + 24] = (ctx->state[6] >> (24 - i * 8)) & 0x000000ff;
|
||||
+ hash[i + 28] = (ctx->state[7] >> (24 - i * 8)) & 0x000000ff;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+int hmac_sha256(const uint8_t *plaintext, ssize_t psize, uint8_t *output)
|
||||
+{
|
||||
+ struct sha256_ctx ctx;
|
||||
+
|
||||
+ sha256_init(&ctx);
|
||||
+ sha256_update(&ctx, plaintext, psize);
|
||||
+ sha256_final(&ctx, output);
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/drivers/misc/sunxi-addr/sunxi-addr.c b/drivers/misc/sunxi-addr/sunxi-addr.c
|
||||
new file mode 100644
|
||||
index 000000000..a812e4e82
|
||||
--- /dev/null
|
||||
+++ b/drivers/misc/sunxi-addr/sunxi-addr.c
|
||||
@@ -0,0 +1,358 @@
|
||||
+/*
|
||||
+ * The driver of SUNXI NET MAC ADDR Manager.
|
||||
+ *
|
||||
+ * Copyright (C) 2013 Allwinner.
|
||||
+ *
|
||||
+ * This file is licensed under the terms of the GNU General Public
|
||||
+ * License version 2. This program is licensed "as is" without any
|
||||
+ * warranty of any kind, whether express or implied.
|
||||
+ */
|
||||
+#define DEBUG
|
||||
+
|
||||
+#include <linux/kernel.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/miscdevice.h>
|
||||
+#include <linux/of.h>
|
||||
+#include <linux/platform_device.h>
|
||||
+
|
||||
+#define ADDR_MGT_DBG(fmt, arg...) printk(KERN_DEBUG "[ADDR_MGT] %s: " fmt "\n",\
|
||||
+ __func__, ## arg)
|
||||
+#define ADDR_MGT_ERR(fmt, arg...) printk(KERN_ERR "[ADDR_MGT] %s: " fmt "\n",\
|
||||
+ __func__, ## arg)
|
||||
+
|
||||
+#define MODULE_CUR_VERSION "v1.0.9"
|
||||
+
|
||||
+#define MATCH_STR_LEN 20
|
||||
+#define ADDR_VAL_LEN 6
|
||||
+#define ADDR_STR_LEN 18
|
||||
+#define ID_LEN 16
|
||||
+#define HASH_LEN 32
|
||||
+
|
||||
+#define TYPE_ANY 0
|
||||
+#define TYPE_BURN 1
|
||||
+#define TYPE_IDGEN 2
|
||||
+#define TYPE_USER 3
|
||||
+#define TYPE_RAND 4
|
||||
+
|
||||
+#define ADDR_FMT_STR 0
|
||||
+#define ADDR_FMT_VAL 1
|
||||
+
|
||||
+#define IS_TYPE_INVALID(x) ((x < TYPE_ANY) || (x > TYPE_RAND))
|
||||
+
|
||||
+#define ADDR_CLASS_ATTR_ADD(name) \
|
||||
+static ssize_t addr_##name##_show(struct class *class, \
|
||||
+ struct class_attribute *attr, char *buffer) \
|
||||
+{ \
|
||||
+ char addr[ADDR_STR_LEN]; \
|
||||
+ if (IS_TYPE_INVALID(get_addr_by_name(ADDR_FMT_STR, addr, #name))) \
|
||||
+ return 0; \
|
||||
+ return sprintf(buffer, "%.17s\n", addr); \
|
||||
+} \
|
||||
+static ssize_t addr_##name##_store(struct class *class, \
|
||||
+ struct class_attribute *attr, \
|
||||
+ const char *buffer, size_t count) \
|
||||
+{ \
|
||||
+ if (count != ADDR_STR_LEN) { \
|
||||
+ ADDR_MGT_ERR("Length wrong."); \
|
||||
+ return -EINVAL; \
|
||||
+ } \
|
||||
+ set_addr_by_name(TYPE_USER, ADDR_FMT_STR, buffer, #name); \
|
||||
+ return count; \
|
||||
+} \
|
||||
+static CLASS_ATTR_RW(addr_##name);
|
||||
+
|
||||
+struct addr_mgt_info {
|
||||
+ unsigned int type_def;
|
||||
+ unsigned int type_cur;
|
||||
+ unsigned int flag;
|
||||
+ char *addr;
|
||||
+ char *name;
|
||||
+};
|
||||
+
|
||||
+static struct addr_mgt_info info[] = {
|
||||
+ {TYPE_ANY, TYPE_ANY, 1, NULL, "wifi"},
|
||||
+ {TYPE_ANY, TYPE_ANY, 0, NULL, "bt" },
|
||||
+ {TYPE_ANY, TYPE_ANY, 1, NULL, "eth" },
|
||||
+};
|
||||
+
|
||||
+extern int hmac_sha256(const uint8_t *plaintext, ssize_t psize, uint8_t *output);
|
||||
+extern int sunxi_get_soc_chipid(unsigned char *chipid);
|
||||
+
|
||||
+static int addr_parse(int fmt, const char *addr, int check)
|
||||
+{
|
||||
+ char val_buf[ADDR_VAL_LEN];
|
||||
+ char cmp_buf[ADDR_VAL_LEN];
|
||||
+ int ret = ADDR_VAL_LEN;
|
||||
+
|
||||
+ if (fmt == ADDR_FMT_STR)
|
||||
+ ret = sscanf(addr, "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
|
||||
+ &val_buf[0], &val_buf[1], &val_buf[2],
|
||||
+ &val_buf[3], &val_buf[4], &val_buf[5]);
|
||||
+ else
|
||||
+ memcpy(val_buf, addr, ADDR_VAL_LEN);
|
||||
+
|
||||
+ if (ret != ADDR_VAL_LEN)
|
||||
+ return -1;
|
||||
+
|
||||
+ if (check && (val_buf[0] & 0x3))
|
||||
+ return -1;
|
||||
+
|
||||
+ memset(cmp_buf, 0x00, ADDR_VAL_LEN);
|
||||
+ if (memcmp(val_buf, cmp_buf, ADDR_VAL_LEN) == 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ memset(cmp_buf, 0xFF, ADDR_VAL_LEN);
|
||||
+ if (memcmp(val_buf, cmp_buf, ADDR_VAL_LEN) == 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static struct addr_mgt_info *addr_find_by_name(char *name)
|
||||
+{
|
||||
+ int i = 0;
|
||||
+ for (i = 0; i < ARRAY_SIZE(info); i++) {
|
||||
+ if (strcmp(info[i].name, name) == 0)
|
||||
+ return &info[i];
|
||||
+ }
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+static int get_addr_by_name(int fmt, char *addr, char *name)
|
||||
+{
|
||||
+ struct addr_mgt_info *t;
|
||||
+
|
||||
+ t = addr_find_by_name(name);
|
||||
+ if (t == NULL) {
|
||||
+ ADDR_MGT_ERR("can't find addr named: %s", name);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (IS_TYPE_INVALID(t->type_cur)) {
|
||||
+ ADDR_MGT_ERR("addr type invalid");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (addr_parse(ADDR_FMT_VAL, t->addr, t->flag)) {
|
||||
+ ADDR_MGT_ERR("addr parse fail(%s)", t->addr);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (fmt == ADDR_FMT_STR)
|
||||
+ sprintf(addr, "%02X:%02X:%02X:%02X:%02X:%02X",
|
||||
+ t->addr[0], t->addr[1], t->addr[2],
|
||||
+ t->addr[3], t->addr[4], t->addr[5]);
|
||||
+ else
|
||||
+ memcpy(addr, t->addr, ADDR_VAL_LEN);
|
||||
+
|
||||
+ return t->type_cur;
|
||||
+}
|
||||
+
|
||||
+static int set_addr_by_name(int type, int fmt, const char *addr, char *name)
|
||||
+{
|
||||
+ struct addr_mgt_info *t;
|
||||
+
|
||||
+ t = addr_find_by_name(name);
|
||||
+ if (t == NULL) {
|
||||
+ ADDR_MGT_ERR("can't find addr named: %s", name);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (addr_parse(fmt, addr, t->flag)) {
|
||||
+ ADDR_MGT_ERR("addr parse fail(%s)", addr);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ t->type_cur = type;
|
||||
+ if (fmt == ADDR_FMT_STR)
|
||||
+ sscanf(addr, "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
|
||||
+ &t->addr[0], &t->addr[1], &t->addr[2],
|
||||
+ &t->addr[3], &t->addr[4], &t->addr[5]);
|
||||
+ else
|
||||
+ memcpy(t->addr, addr, ADDR_VAL_LEN);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+int get_custom_mac_address(int fmt, char *name, char *addr)
|
||||
+{
|
||||
+ return get_addr_by_name(fmt, addr, name);
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(get_custom_mac_address);
|
||||
+
|
||||
+static int addr_factory(struct device_node *np,
|
||||
+ int idx, int type, char *mac, char *name)
|
||||
+{
|
||||
+ int ret, i;
|
||||
+ char match[MATCH_STR_LEN];
|
||||
+ const char *p;
|
||||
+ char id[ID_LEN], hash[HASH_LEN], cmp_buf[ID_LEN];
|
||||
+ struct timespec64 curtime;
|
||||
+
|
||||
+ switch (type) {
|
||||
+ case TYPE_BURN:
|
||||
+ sprintf(match, "addr_%s", name);
|
||||
+ ret = of_property_read_string_index(np, match, 0, &p);
|
||||
+ if (ret)
|
||||
+ return -1;
|
||||
+
|
||||
+ ret = sscanf(p, "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
|
||||
+ &mac[0], &mac[1], &mac[2],
|
||||
+ &mac[3], &mac[4], &mac[5]);
|
||||
+
|
||||
+ if (ret != ADDR_VAL_LEN)
|
||||
+ return -1;
|
||||
+ break;
|
||||
+ case TYPE_IDGEN:
|
||||
+ if (idx > HASH_LEN / ADDR_VAL_LEN - 1)
|
||||
+ return -1;
|
||||
+ if (sunxi_get_soc_chipid(id))
|
||||
+ return -1;
|
||||
+ memset(cmp_buf, 0x00, ID_LEN);
|
||||
+ if (memcmp(id, cmp_buf, ID_LEN) == 0)
|
||||
+ return -1;
|
||||
+ if (hmac_sha256(id, ID_LEN, hash))
|
||||
+ return -1;
|
||||
+ memcpy(mac, &hash[idx * ADDR_VAL_LEN], ADDR_VAL_LEN);
|
||||
+ break;
|
||||
+ case TYPE_RAND:
|
||||
+ for (i = 0; i < ADDR_VAL_LEN; i++) {
|
||||
+ ktime_get_real_ts64(&curtime);
|
||||
+ mac[i] = (char)curtime.tv_nsec;
|
||||
+ }
|
||||
+ break;
|
||||
+ default:
|
||||
+ ADDR_MGT_ERR("unsupport type: %d", type);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int addr_init(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct device_node *np = pdev->dev.of_node;
|
||||
+ int type, i, j;
|
||||
+ char match[MATCH_STR_LEN];
|
||||
+ char addr[ADDR_VAL_LEN];
|
||||
+ int type_tab[] = {TYPE_BURN, TYPE_IDGEN, TYPE_RAND};
|
||||
+
|
||||
+ /* init addr type and value */
|
||||
+ for (i = 0; i < ARRAY_SIZE(info); i++) {
|
||||
+ sprintf(match, "type_addr_%s", info[i].name);
|
||||
+ if (of_property_read_u32(np, match, &type)) {
|
||||
+ ADDR_MGT_DBG("Failed to get type_def_%s, use default: %d",
|
||||
+ info[i].name, info[i].type_def);
|
||||
+ } else {
|
||||
+ info[i].type_def = type;
|
||||
+ info[i].type_cur = type;
|
||||
+ }
|
||||
+
|
||||
+ if (IS_TYPE_INVALID(info[i].type_def))
|
||||
+ return -1;
|
||||
+ if (info[i].type_def != TYPE_ANY) {
|
||||
+ if (addr_factory(np, i, info[i].type_def, addr, info[i].name))
|
||||
+ return -1;
|
||||
+ } else {
|
||||
+ for (j = 0; j < ARRAY_SIZE(type_tab); j++) {
|
||||
+ if (!addr_factory(np, i, type_tab[j], addr, info[i].name)) {
|
||||
+ info[i].type_cur = type_tab[j];
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (info[i].flag)
|
||||
+ addr[0] &= 0xFC;
|
||||
+
|
||||
+ if (addr_parse(ADDR_FMT_VAL, addr, info[i].flag))
|
||||
+ return -1;
|
||||
+ else {
|
||||
+ info[i].addr = devm_kzalloc(&pdev->dev, ADDR_VAL_LEN, GFP_KERNEL);
|
||||
+ memcpy(info[i].addr, addr, ADDR_VAL_LEN);
|
||||
+ }
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static ssize_t summary_show(struct class *class,
|
||||
+ struct class_attribute *attr, char *buffer)
|
||||
+{
|
||||
+ int i = 0, ret = 0;
|
||||
+
|
||||
+ ret += sprintf(&buffer[ret], "name cfg cur address\n");
|
||||
+ for (i = 0; i < ARRAY_SIZE(info); i++) {
|
||||
+ ret += sprintf(&buffer[ret],
|
||||
+ "%4s %d %d %02X:%02X:%02X:%02X:%02X:%02X\n",
|
||||
+ info[i].name, info[i].type_def, info[i].type_cur,
|
||||
+ info[i].addr[0], info[i].addr[1], info[i].addr[2],
|
||||
+ info[i].addr[3], info[i].addr[4], info[i].addr[5]);
|
||||
+ }
|
||||
+ return ret;
|
||||
+}
|
||||
+static CLASS_ATTR_RO(summary);
|
||||
+
|
||||
+ADDR_CLASS_ATTR_ADD(wifi);
|
||||
+ADDR_CLASS_ATTR_ADD(bt);
|
||||
+ADDR_CLASS_ATTR_ADD(eth);
|
||||
+
|
||||
+static struct attribute *addr_class_attrs[] = {
|
||||
+ &class_attr_summary.attr,
|
||||
+ &class_attr_addr_wifi.attr,
|
||||
+ &class_attr_addr_bt.attr,
|
||||
+ &class_attr_addr_eth.attr,
|
||||
+ NULL
|
||||
+};
|
||||
+ATTRIBUTE_GROUPS(addr_class);
|
||||
+
|
||||
+static struct class addr_class = {
|
||||
+ .name = "addr_mgt",
|
||||
+ .owner = THIS_MODULE,
|
||||
+ .class_groups = addr_class_groups,
|
||||
+};
|
||||
+
|
||||
+static const struct of_device_id addr_mgt_ids[] = {
|
||||
+ { .compatible = "allwinner,sunxi-addr_mgt" },
|
||||
+ { /* Sentinel */ }
|
||||
+};
|
||||
+
|
||||
+static int addr_mgt_probe(struct platform_device *pdev)
|
||||
+{
|
||||
+ int status;
|
||||
+
|
||||
+ ADDR_MGT_DBG("module version: %s", MODULE_CUR_VERSION);
|
||||
+ status = class_register(&addr_class);
|
||||
+ if (status < 0) {
|
||||
+ ADDR_MGT_ERR("class register error, status: %d.", status);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (addr_init(pdev)) {
|
||||
+ ADDR_MGT_ERR("failed to init addr.");
|
||||
+ class_unregister(&addr_class);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ ADDR_MGT_DBG("success.");
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int addr_mgt_remove(struct platform_device *pdev)
|
||||
+{
|
||||
+ class_unregister(&addr_class);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static struct platform_driver addr_mgt_driver = {
|
||||
+ .probe = addr_mgt_probe,
|
||||
+ .remove = addr_mgt_remove,
|
||||
+ .driver = {
|
||||
+ .owner = THIS_MODULE,
|
||||
+ .name = "sunxi-addr-mgt",
|
||||
+ .of_match_table = addr_mgt_ids,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+module_platform_driver_probe(addr_mgt_driver, addr_mgt_probe);
|
||||
+
|
||||
+MODULE_AUTHOR("Allwinnertech");
|
||||
+MODULE_DESCRIPTION("Network MAC Addess Manager");
|
||||
+MODULE_LICENSE("GPL");
|
||||
--
|
||||
2.34.1
|
||||
|
@ -0,0 +1,32 @@
|
||||
From 706dc6ed092e4a1b9d84893cb4186fbd354bb1c8 Mon Sep 17 00:00:00 2001
|
||||
From: pbiel <pbiel7@gmail.com>
|
||||
Date: Thu, 26 Jan 2023 09:51:22 +0100
|
||||
Subject: [PATCH] Add addr_mgt device tree node
|
||||
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
index d0b95d43a..15f45a3f9 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
@@ -591,5 +591,15 @@ sunxi-info {
|
||||
compatible = "allwinner,sun50i-h616-sys-info";
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+ addr_mgt {
|
||||
+ compatible = "allwinner,sunxi-addr_mgt";
|
||||
+ type_addr_wifi = <0x00>;
|
||||
+ type_addr_bt = <0x00>;
|
||||
+ type_addr_eth = <0x00>;
|
||||
+ status = "okay";
|
||||
+ linux,phandle = <0x179>;
|
||||
+ phandle = <0x179>;
|
||||
+ };
|
||||
};
|
||||
};
|
||||
--
|
||||
2.34.1
|
||||
|
@ -0,0 +1,70 @@
|
||||
From 899da8366afd97b1ca59b632036dc313777026da Mon Sep 17 00:00:00 2001
|
||||
From: pbiel <pbiel7@gmail.com>
|
||||
Date: Fri, 24 Feb 2023 22:14:58 +0100
|
||||
Subject: [PATCH] Add wifi power regulator
|
||||
|
||||
---
|
||||
.../allwinner/sun50i-h616-orangepi-zero2.dts | 47 +++++++++++++++++++
|
||||
1 file changed, 47 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
index 02893f3ac..88234a139 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
@@ -49,6 +49,53 @@ reg_vcc5v: vcc5v {
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
+
|
||||
+ reg_vcc33_wifi: vcc33-wifi {
|
||||
+ /* Always on 3.3V regulator for WiFi and BT */
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "vcc33-wifi";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-always-on;
|
||||
+ vin-supply = <®_vcc5v>;
|
||||
+ };
|
||||
+
|
||||
+ reg_vcc_wifi_io: vcc-wifi-io {
|
||||
+ /* Always on 1.8V/300mA regulator for WiFi and BT IO */
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "vcc-wifi-io";
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-always-on;
|
||||
+ vin-supply = <®_vcc33_wifi>;
|
||||
+ };
|
||||
+
|
||||
+ wifi_pwrseq: wifi-pwrseq {
|
||||
+ compatible = "mmc-pwrseq-simple";
|
||||
+ clocks = <&rtc 1>;
|
||||
+ clock-names = "osc32k-out";
|
||||
+ reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
|
||||
+ post-power-on-delay-ms = <200>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mmc1 {
|
||||
+ vmmc-supply = <®_vcc33_wifi>;
|
||||
+ vqmmc-supply = <®_vcc_wifi_io>;
|
||||
+ mmc-pwrseq = <&wifi_pwrseq>;
|
||||
+ bus-width = <4>;
|
||||
+ non-removable;
|
||||
+ mmc-ddr-1_8v;
|
||||
+ status = "okay";
|
||||
+ uwe-bsp {
|
||||
+ compatible = "unisoc,uwe_bsp";
|
||||
+ keep-power-on;
|
||||
+ data-irq;
|
||||
+ //adma-tx;
|
||||
+ adma-rx;
|
||||
+ //blksz-512;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
};
|
||||
|
||||
&emac0 {
|
||||
--
|
||||
2.34.1
|
||||
|
8185
recipes-kernel/linux/linux-mainline-6.1.9/orange-pi-zero2/defconfig
Normal file
8185
recipes-kernel/linux/linux-mainline-6.1.9/orange-pi-zero2/defconfig
Normal file
File diff suppressed because it is too large
Load Diff
40
recipes-kernel/linux/linux-mainline.inc
Normal file
40
recipes-kernel/linux/linux-mainline.inc
Normal file
@ -0,0 +1,40 @@
|
||||
SECTION = "kernel"
|
||||
LICENSE = "GPL-2.0-only"
|
||||
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}"
|
||||
|
||||
# get release version 5.x or 6.x based on version
|
||||
KRELEASE = "${@d.getVar('PV', True).split('.')[0]}"
|
||||
|
||||
SRC_URI = "https://www.kernel.org/pub/linux/kernel/v${KRELEASE}.x/linux-${PV}.tar.xz \
|
||||
file://0001-dts-orange-pi-zero-Add-wifi-support.patch \
|
||||
file://0002-dts-nanopi-neo-air-add-camera.patch \
|
||||
file://0003-dts-allwinner-bananapi-m2-zreo-Enforce-consistent-MM.patch \
|
||||
file://0004-dts-allwinner-bananapi-m64-Consistent-nodes-for-mmc-devices.patch \
|
||||
file://defconfig \
|
||||
"
|
||||
|
||||
SRC_URI:append:use-mailine-graphics = " file://drm.cfg"
|
||||
SRC_URI:append:bananapi = " file://axp20x.cfg"
|
||||
SRC_URI:append:bananapi-m2-zero = " file://axp20x.cfg"
|
||||
SRC_URI:append:cubietruck = " file://axp20x.cfg"
|
||||
SRC_URI:append:nanopi-neo-air = " file://cam500b.cfg"
|
||||
|
||||
FILES_${KERNEL_PACKAGE_NAME}-base:append = " ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo"
|
@ -1,8 +1,8 @@
|
||||
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 6713d0f2b3f4..ad0829e8f716 100644
|
||||
index 84cd9c061..917986cce 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
+++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
@@ -80,19 +80,22 @@
|
||||
@@ -80,13 +80,15 @@
|
||||
};
|
||||
};
|
||||
|
||||
@ -19,10 +19,16 @@ index 6713d0f2b3f4..ad0829e8f716 100644
|
||||
gpio = <&pio 0 20 GPIO_ACTIVE_HIGH>;
|
||||
+ startup-delay-us = <70000>;
|
||||
+ enable-active-high;
|
||||
+
|
||||
};
|
||||
|
||||
reg_vdd_cpux: vdd-cpux-regulator {
|
||||
@@ -106,10 +108,12 @@
|
||||
1300000 1>;
|
||||
};
|
||||
|
||||
- wifi_pwrseq: wifi_pwrseq {
|
||||
+ pwrseq_wifi: pwrseq_wifi@0 {
|
||||
+ pwrseq_wifi: pwrseq_wifi {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&wifi_rst>;
|
||||
@ -32,10 +38,10 @@ index 6713d0f2b3f4..ad0829e8f716 100644
|
||||
};
|
||||
};
|
||||
|
||||
@@ -124,9 +127,11 @@
|
||||
@@ -140,9 +144,11 @@
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc1_pins_a>;
|
||||
- vmmc-supply = <®_vcc_wifi>;
|
||||
- mmc-pwrseq = <&wifi_pwrseq>;
|
||||
+ vmmc-supply = <®_vcc3v3>;
|
||||
@ -46,7 +52,7 @@ index 6713d0f2b3f4..ad0829e8f716 100644
|
||||
non-removable;
|
||||
status = "okay";
|
||||
|
||||
@@ -136,9 +141,30 @@
|
||||
@@ -152,6 +158,13 @@
|
||||
*/
|
||||
xr819: sdio_wifi@1 {
|
||||
reg = <1>;
|
||||
@ -60,6 +66,11 @@ index 6713d0f2b3f4..ad0829e8f716 100644
|
||||
};
|
||||
};
|
||||
|
||||
@@ -208,3 +221,18 @@
|
||||
status = "okay";
|
||||
usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
|
||||
};
|
||||
+
|
||||
+&pio {
|
||||
+ wifi_wake: wifi_wake {
|
||||
+ pins = "PG10";
|
||||
@ -74,6 +85,3 @@ index 6713d0f2b3f4..ad0829e8f716 100644
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&mmc1_pins_a {
|
||||
bias-pull-up;
|
||||
};
|
@ -0,0 +1,101 @@
|
||||
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts
|
||||
index cd3df12b65..33a161692f 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts
|
||||
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts
|
||||
@@ -77,6 +77,39 @@
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
|
||||
};
|
||||
+
|
||||
+ cam_xclk: cam-xclk {
|
||||
+ #clock-cells = <0>;
|
||||
+ compatible = "fixed-clock";
|
||||
+ clock-frequency = <24000000>;
|
||||
+ clock-output-names = "cam-xclk";
|
||||
+ };
|
||||
+
|
||||
+ reg_cam_avdd: cam-avdd {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "cam-avdd";
|
||||
+ regulator-min-microvolt = <2800000>;
|
||||
+ regulator-max-microvolt = <2800000>;
|
||||
+ vin-supply = <®_vcc3v3>;
|
||||
+ };
|
||||
+
|
||||
+ reg_cam_dovdd: cam-dovdd {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "cam-dovdd";
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ vin-supply = <®_vcc3v3>;
|
||||
+ };
|
||||
+
|
||||
+ reg_cam_dvdd: cam-dvdd {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "cam-dvdd";
|
||||
+ regulator-min-microvolt = <1500000>;
|
||||
+ regulator-max-microvolt = <1500000>;
|
||||
+ vin-supply = <®_vcc3v3>;
|
||||
+ };
|
||||
+
|
||||
+
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
@@ -141,3 +174,55 @@
|
||||
/* USB VBUS is always on */
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&csi {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ port {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ /* Parallel bus endpoint */
|
||||
+ csi_from_ov5640: endpoint {
|
||||
+ remote-endpoint = <&ov5640_to_csi>;
|
||||
+ bus-width = <8>;
|
||||
+ data-shift = <2>;
|
||||
+ hsync-active = <1>; /* Active high */
|
||||
+ vsync-active = <0>; /* Active low */
|
||||
+ data-active = <1>; /* Active high */
|
||||
+ pclk-sample = <1>; /* Rising */
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c2 {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ ov5640: camera@3c {
|
||||
+ compatible = "ovti,ov5640";
|
||||
+ reg = <0x3c>;
|
||||
+ clocks = <&cam_xclk>;
|
||||
+ clock-names = "xclk";
|
||||
+
|
||||
+ reset-gpios = <&pio 4 14 GPIO_ACTIVE_LOW>;
|
||||
+ powerdown-gpios = <&pio 4 15 GPIO_ACTIVE_HIGH>;
|
||||
+ AVDD-supply = <®_cam_avdd>;
|
||||
+ DOVDD-supply = <®_cam_dovdd>;
|
||||
+ DVDD-supply = <®_cam_dvdd>;
|
||||
+
|
||||
+ port {
|
||||
+ ov5640_to_csi: endpoint {
|
||||
+ remote-endpoint = <&csi_from_ov5640>;
|
||||
+ bus-width = <8>;
|
||||
+ data-shift = <2>;
|
||||
+ hsync-active = <1>; /* Active high */
|
||||
+ vsync-active = <0>; /* Active low */
|
||||
+ data-active = <1>; /* Active high */
|
||||
+ pclk-sample = <1>; /* Rising */
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+&i2c2_pins {
|
||||
+ bias-pull-up;
|
||||
+};
|
||||
|
@ -1,80 +0,0 @@
|
||||
From 4ca766a768e783ee5198f1935b7f46a5df9b4a35 Mon Sep 17 00:00:00 2001
|
||||
From: Jelle van der Waa <jelle@vdwaa.nl>
|
||||
Date: Tue, 23 Jan 2018 15:58:44 -0800
|
||||
Subject: [PATCH] ARM: dts: nanopi-neo-air: Add WiFi / eMMC
|
||||
|
||||
Enable the WiFi (AP6212) chip and eMMC support for the NanoPi NEO Air.
|
||||
|
||||
This patch was originally submitted by Jelle van der Waa. Martin Kelly
|
||||
modified it to compile on the latest kernel, fixed up some review
|
||||
comments from Maxime Ripard, and re-tested the patch.
|
||||
|
||||
The patch has been reworked to add back eMMC support which has been left
|
||||
out at the last backport.
|
||||
|
||||
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
Cc: linux-sunxi@googlegroups.com
|
||||
Cc: devicetree@vger.kernel.org
|
||||
Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
|
||||
Signed-off-by: Martin Kelly <mkelly@xevo.com>
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
Signed-off-by: Florin Sarbu <florin@resin.io>
|
||||
---
|
||||
arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts | 34 +++++++++++++++++++++++++++
|
||||
1 file changed, 34 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts
|
||||
index 03ff6f8..a9331fe 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts
|
||||
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts
|
||||
@@ -72,6 +72,11 @@
|
||||
gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>; /* PA10 */
|
||||
};
|
||||
};
|
||||
+
|
||||
+ wifi_pwrseq: wifi_pwrseq {
|
||||
+ compatible = "mmc-pwrseq-simple";
|
||||
+ reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
|
||||
+ };
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
@@ -84,6 +89,35 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&mmc1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc1_pins_a>;
|
||||
+ vmmc-supply = <®_vcc3v3>;
|
||||
+ vqmmc-supply = <®_vcc3v3>;
|
||||
+ mmc-pwrseq = <&wifi_pwrseq>;
|
||||
+ bus-width = <4>;
|
||||
+ non-removable;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ brcmf: bcrmf@1 {
|
||||
+ reg = <1>;
|
||||
+ compatible = "brcm,bcm4329-fmac";
|
||||
+ interrupt-parent = <&pio>;
|
||||
+ interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
|
||||
+ interrupt-names = "host-wake";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mmc2 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc2_8bit_pins>;
|
||||
+ vmmc-supply = <®_vcc3v3>;
|
||||
+ vqmmc-supply = <®_vcc3v3>;
|
||||
+ bus-width = <8>;
|
||||
+ non-removable;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins_a>;
|
||||
--
|
||||
2.11.0
|
||||
|
@ -0,0 +1,28 @@
|
||||
From 9b4baa9b5aab0511c46a1ae95485e1a3ea984352 Mon Sep 17 00:00:00 2001
|
||||
From: matteolel <matteolel91@hotmail.it>
|
||||
Date: Fri, 9 Dec 2022 16:38:11 +0000
|
||||
Subject: [PATCH] dts: allwinner: bananapi-m2-zreo: Enforce consistent MMC
|
||||
numbering
|
||||
|
||||
Enforce MMC number (sometimes the order was wrong and the device does not boot).
|
||||
---
|
||||
arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
|
||||
index 8e8634ff2..37a2ed937 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
|
||||
+++ b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
|
||||
@@ -20,6 +20,9 @@ / {
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
+ mmc0 = &mmc0;
|
||||
+ mmc1 = &mmc1;
|
||||
+ mmc2 = &mmc2;
|
||||
};
|
||||
|
||||
chosen {
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,27 @@
|
||||
From f487f62babb11d014da7a0b58a0fcdf6d217a812 Mon Sep 17 00:00:00 2001
|
||||
From: Marek Belisko <marek.belisko@open-nandra.com>
|
||||
Date: Thu, 11 May 2023 11:18:33 +0200
|
||||
Subject: [PATCH] bananapi-m64: Consistent nodes for mmc devices
|
||||
|
||||
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
|
||||
index e6d5bc0f7..39a28aad8 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
|
||||
@@ -16,6 +16,9 @@ aliases {
|
||||
ethernet0 = &emac;
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
+ mmc0 = &mmc0;
|
||||
+ mmc1 = &mmc1;
|
||||
+ mmc2 = &mmc2;
|
||||
};
|
||||
|
||||
chosen {
|
||||
--
|
||||
2.25.1
|
||||
|
@ -141,6 +141,11 @@ CONFIG_BT_LEDS=y
|
||||
# CONFIG_BT_DEBUGFS is not set
|
||||
CONFIG_BT_HCIUART=m
|
||||
CONFIG_BT_HCIUART_LL=y
|
||||
CONFIG_WIRELESS=y
|
||||
CONFIG_WIRELESS_EXT=y
|
||||
CONFIG_WEXT_CORE=y
|
||||
CONFIG_WEXT_PROC=y
|
||||
CONFIG_WEXT_PRIV=y
|
||||
CONFIG_CFG80211=m
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_MAC80211_LEDS=y
|
||||
@ -334,6 +339,7 @@ CONFIG_MFD_MAX77620=y
|
||||
CONFIG_MFD_SPMI_PMIC=y
|
||||
CONFIG_MFD_RK808=y
|
||||
CONFIG_MFD_SEC_CORE=y
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_REGULATOR_AXP20X=y
|
||||
CONFIG_REGULATOR_FAN53555=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
@ -494,6 +500,8 @@ CONFIG_VIRTIO_BALLOON=y
|
||||
CONFIG_VIRTIO_MMIO=y
|
||||
CONFIG_XEN_GNTDEV=y
|
||||
CONFIG_XEN_GRANT_DEV_ALLOC=y
|
||||
CONFIG_STAGING=y
|
||||
CONFIG_RTL8723BS=m
|
||||
CONFIG_COMMON_CLK_RK808=y
|
||||
CONFIG_COMMON_CLK_SCPI=y
|
||||
CONFIG_COMMON_CLK_CS2000_CP=y
|
||||
|
@ -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 is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
CONFIG_INPUT_KEYBOARD=y
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
CONFIG_TOUCHSCREEN_SUN4I=y
|
||||
CONFIG_INPUT_MISC=y
|
||||
|
4
recipes-kernel/linux/linux-mainline/axp20x.cfg
Normal file
4
recipes-kernel/linux/linux-mainline/axp20x.cfg
Normal file
@ -0,0 +1,4 @@
|
||||
CONFIG_MFD_AXP20X_I2C=y
|
||||
CONFIG_MFD_AXP20X=y
|
||||
CONFIG_IIO=y
|
||||
CONFIG_AXP20X_POWER=y
|
6
recipes-kernel/linux/linux-mainline/cam500b.cfg
Normal file
6
recipes-kernel/linux/linux-mainline/cam500b.cfg
Normal file
@ -0,0 +1,6 @@
|
||||
CONFIG_MEDIA_PLATFORM_SUPPORT=y
|
||||
CONFIG_V4L_PLATFORM_DRIVERS=y
|
||||
|
||||
CONFIG_VIDEO_OV5640=m
|
||||
CONFIG_VIDEO_SUN6I_CSI=m
|
||||
CONFIG_VIDEO_V4L2=m
|
9
recipes-kernel/linux/linux-mainline/drm.cfg
Normal file
9
recipes-kernel/linux/linux-mainline/drm.cfg
Normal file
@ -0,0 +1,9 @@
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_SUN4I=y
|
||||
CONFIG_DRM_SUN8I_DW_HDMI=y
|
||||
CONFIG_DRM_SUN8I_MIXER=y
|
||||
CONFIG_IOMMU_SUPPORT=y
|
||||
CONFIG_DRM_LIMA=y
|
||||
CONFIG_DRM_PANFROST=y
|
||||
CONFIG_CMA=y
|
||||
CONFIG_DMA_CMA=y
|
@ -1,32 +0,0 @@
|
||||
SECTION = "kernel"
|
||||
DESCRIPTION = "Mainline Linux kernel"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
|
||||
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"
|
||||
|
||||
# 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] = "86f56f586f35ac3a98e086dccfd2ff99"
|
||||
SRC_URI[sha256sum] = "6f0a7b3abd48eca3df5e29bfbcfc1c06dd2792f86d23cdb9ad37cf3e572df2e3"
|
||||
|
||||
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 \
|
||||
file://defconfig \
|
||||
"
|
||||
|
||||
SRC_URI_append_orange-pi-zero += "\
|
||||
file://0001-add-wifi-support.patch \
|
||||
"
|
7
recipes-kernel/linux/linux-mainline_5.10.166.bb
Normal file
7
recipes-kernel/linux/linux-mainline_5.10.166.bb
Normal file
@ -0,0 +1,7 @@
|
||||
require linux-mainline.inc
|
||||
|
||||
DESCRIPTION = "Mainline Longterm Linux kernel"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
|
||||
SRC_URI[sha256sum] = "0051a1780e5bda0efc68dafab7c728b8283d2b028fedb439418f478be7d3e1af"
|
7
recipes-kernel/linux/linux-mainline_5.15.91.bb
Normal file
7
recipes-kernel/linux/linux-mainline_5.15.91.bb
Normal file
@ -0,0 +1,7 @@
|
||||
require linux-mainline.inc
|
||||
|
||||
DESCRIPTION = "Mainline Longterm Linux kernel"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
|
||||
SRC_URI[sha256sum] = "a63c2bb1beb15f1aea9c63cf80559f5b7ab58afd2da2fa5e7670c515ebe1fe80"
|
7
recipes-kernel/linux/linux-mainline_5.4.230.bb
Normal file
7
recipes-kernel/linux/linux-mainline_5.4.230.bb
Normal file
@ -0,0 +1,7 @@
|
||||
require linux-mainline.inc
|
||||
|
||||
DESCRIPTION = "Mainline Longterm Linux kernel"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
|
||||
|
||||
SRC_URI[sha256sum] = "a74fd32ccc1025b72f3ba7183208761f7c6190fb96e8f484f6d543a5a183e62f"
|
21
recipes-kernel/linux/linux-mainline_6.1.9.bb
Normal file
21
recipes-kernel/linux/linux-mainline_6.1.9.bb
Normal file
@ -0,0 +1,21 @@
|
||||
require linux-mainline.inc
|
||||
|
||||
DESCRIPTION = "Mainline Longterm Linux kernel"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
|
||||
SRC_URI[sha256sum] = "d60cf185693c386e7acd9f3eb3a94ae30ffbfee0a9447a20e83711e0bdf5922b"
|
||||
|
||||
SRC_URI:append:orange-pi-zero2 = " \
|
||||
file://defconfig \
|
||||
file://0001-drv-wireless-add-uwe5622-wifi-driver.patch \
|
||||
file://0002-drv-wireless-driver-for-uwe5622-allwinner-bugfix.patch \
|
||||
file://0003-drv-fix-incldue-path-for-unisocwcn.patch \
|
||||
file://0004-drv-wireless-adapt-uwe5622-wifi-driver-to-kernel-6.1.patch \
|
||||
file://0005-drv-fix-setting-mac-address-for-netdev-in-uwe5622.patch \
|
||||
file://0006-drv-add-dump_reg-and-sunxi-sysinfo-drivers.patch \
|
||||
file://0007-drv-add-sunxi_get_soc_chipid-and-sunxi_get_serial.patch \
|
||||
file://0008-drv-add-sunxi-addr-driver.patch \
|
||||
file://0009-dts-add-addr_mgt-device-tree-node.patch \
|
||||
file://0010-dts-add-wifi-power-regulator.patch \
|
||||
"
|
@ -1,31 +0,0 @@
|
||||
SECTION = "kernel"
|
||||
DESCRIPTION = "Mainline 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"
|
||||
|
||||
# Pull in the devicetree files into the rootfs
|
||||
RDEPENDS_${KERNEL_PACKAGE_NAME}-base += "kernel-devicetree"
|
||||
|
||||
# Default is to use stable kernel version
|
||||
# If you want to use latest git version set to "1"
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
|
||||
|
||||
# v4.17-rc7
|
||||
PV = "v4.17-rc7+git${SRCPV}"
|
||||
SRCREV_pn-${PN} = "b04e217704b7f879c6b91222b066983a44a7a09f"
|
||||
|
||||
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git;protocol=git;branch=master \
|
||||
file://defconfig \
|
||||
"
|
||||
S = "${WORKDIR}/git"
|
@ -0,0 +1,29 @@
|
||||
From 25a7e85eb0d58479f7d8895b1b29a648bd07d60e Mon Sep 17 00:00:00 2001
|
||||
From: Andrey Lebedev <andrey@lebedev.lt>
|
||||
Date: Mon, 20 Jan 2020 23:19:51 +0200
|
||||
Subject: [PATCH 2/2] Fix asm error in put_user under gcc version 8 and above
|
||||
|
||||
Fixes these errors during compilation of linux-sunxi-3.4 kernel:
|
||||
/tmp/ccCGMQmS.s:648: Error: .err encountered
|
||||
|
||||
Taken from https://patchwork.kernel.org/patch/10546809/
|
||||
---
|
||||
arch/arm/include/asm/uaccess.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
|
||||
index b04850fd..abfafbbf 100644
|
||||
--- a/arch/arm/include/asm/uaccess.h
|
||||
+++ b/arch/arm/include/asm/uaccess.h
|
||||
@@ -159,7 +159,7 @@ extern int __put_user_8(void *, unsigned long long);
|
||||
({ \
|
||||
unsigned long __limit = current_thread_info()->addr_limit - 1; \
|
||||
const typeof(*(p)) __user *__tmp_p = (p); \
|
||||
- register const typeof(*(p)) __r2 asm("r2") = (x); \
|
||||
+ register typeof(*(p)) __r2 asm("r2") = (x); \
|
||||
register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
|
||||
register unsigned long __l asm("r1") = __limit; \
|
||||
register int __e asm("r0"); \
|
||||
--
|
||||
2.20.1
|
||||
|
25
recipes-kernel/linux/linux-sunxi/0005-silence-warning.patch
Normal file
25
recipes-kernel/linux/linux-sunxi/0005-silence-warning.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 302604ee4a2011871cb26deaf69d567cf57d0fe3 Mon Sep 17 00:00:00 2001
|
||||
From: Andrey Lebedev <andrey@lebedev.lt>
|
||||
Date: Mon, 20 Jan 2020 23:20:07 +0200
|
||||
Subject: [PATCH 1/2] Silence annoying warning
|
||||
|
||||
---
|
||||
include/linux/log2.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/linux/log2.h b/include/linux/log2.h
|
||||
index fd7ff3d9..14458fdd 100644
|
||||
--- a/include/linux/log2.h
|
||||
+++ b/include/linux/log2.h
|
||||
@@ -18,7 +18,7 @@
|
||||
/*
|
||||
* deal with unrepresentable constant logarithms
|
||||
*/
|
||||
-extern __attribute__((const, noreturn))
|
||||
+extern __attribute__((const))
|
||||
int ____ilog2_NaN(void);
|
||||
|
||||
/*
|
||||
--
|
||||
2.20.1
|
||||
|
@ -3,27 +3,30 @@ require linux.inc
|
||||
DESCRIPTION = "Linux kernel for Allwinner a10/a20 processors"
|
||||
|
||||
COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i)"
|
||||
RDEPENDS_${PN} += "sunxi-board-fex"
|
||||
RDEPENDS:${PN} += "sunxi-board-fex"
|
||||
|
||||
PV = "3.4.104"
|
||||
PR = "r1"
|
||||
SRCREV_pn-${PN} = "d47d367036be38c5180632ec8a3ad169a4593a88"
|
||||
SRCREV = "d47d367036be38c5180632ec8a3ad169a4593a88"
|
||||
|
||||
MACHINE_KERNEL_PR_append = "a"
|
||||
MACHINE_KERNEL_PR:append = "a"
|
||||
|
||||
SRC_URI += "git://github.com/linux-sunxi/linux-sunxi.git;branch=sunxi-3.4;protocol=git \
|
||||
SRC_URI += "git://github.com/linux-sunxi/linux-sunxi.git;branch=sunxi-3.4;protocol=https \
|
||||
file://0001-compiler-gcc-integrate-the-various-compiler-gcc-345-.patch \
|
||||
file://0002-use-static-inline-in-ARM-ftrace.patch \
|
||||
file://0001-gcc5-fixes.patch \
|
||||
file://0003-gcc5-fixes.patch \
|
||||
file://0004-arm-put-user-asm-fix.patch \
|
||||
file://0005-silence-warning.patch \
|
||||
file://defconfig \
|
||||
"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
#fix QA issue "Files/directories were installed but not shipped: /usr/src/debug"
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
|
||||
do_configure_prepend() {
|
||||
do_configure:prepend() {
|
||||
#fix arch QA issues ("Architecture did not match")
|
||||
rm -f ${S}/drivers/net/wireless/rtxx7x/tools/bin2h
|
||||
rm -f ${S}/modules/wifi/ar6302/AR6K_SDK_ISC.build_3.1_RC.329/host/lib/wac/wac
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user