274 Commits

Author SHA1 Message Date
7df2e3d132 orange-pi-zero2: Added wifi firmware
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2023-02-02 20:35:35 +01:00
577edca3d1 Add UWE5622 wifi driver and required firmwmare
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
Signed-off-by: pbiel <pbiel7@gmail.com>
2023-02-02 20:35:35 +01:00
ea93a2dd03 linux-mainline: Added orangepi-zero-2 support patches
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
Signed-off-by: pbiel <pbiel7@gmail.com>
2023-02-02 20:35:35 +01:00
948205c553 conf: Added machine definition for orange-pi-zero-2
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
Signed-off-by: pbiel <pbiel7@gmail.com>
2023-02-02 20:35:30 +01:00
fde5948e85 Merge pull request #362 from spanceac/A13_boot_fix
Fix boot of A13 based machines
2023-01-31 08:38:29 +01:00
7b05a7ea5f Merge pull request #361 from qpmr/kirkstone-add-pi-one-plus-support
conf: machine: Add "Orange Pi One Plus" support
2023-01-31 08:17:42 +01:00
2dc45f3cdc Fix boot of A13 based machines
This commit backports an u-boot patch that adds a compatible
string for the Allwinner Sun4i-A10 I2C controller.

This will fix the boot process freeze after SPL stage for A13 based machines

Signed-off-by: Sebastian Panceac <spanceac@gmail.com>
2023-01-30 23:31:53 +02:00
2d229d2ca0 conf: machine: Add "Orange Pi One Plus" support
Signed-off-by: Ilja Byckevich <iljabyckevich@gmail.com>
2023-01-30 20:13:27 +03:00
d1a076fbea Merge pull request #360 from linux-sunxi/core-image-sato-fixes
Core image sato fixes
2023-01-25 13:31:11 +01:00
7371198497 xserver-xorg: Added xshmfence dependency
Fixes following:
ERROR: Problem encountered: DRI3 requested, but xshmfence not found

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2023-01-23 10:36:20 +01:00
35e9d23058 mega-gl: Added more dependencies to fix config issue
Fix following:
ERROR: Problem encountered: xlib based GLX requires at least one gallium driver


Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2023-01-23 10:35:38 +01:00
56dec0cd0f sunxi.inc: Drop xf86-video-turbo
It cannot be compiled anymore drop it.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2023-01-23 10:33:56 +01:00
df4da8dd06 Merge pull request #353 from spanceac/patch-2
Use correct arch in sun5i.inc - Kirkstone
2022-12-05 09:24:40 +01:00
2d86e00d7e Use correct arch in sun5i.inc
Cortex-A8 architecture is ARMv7A.
Before this path fix the following failure was triggered when building for "olinuxino-a13"
machine:

"
[..]/meta-sunxi/conf/machine/include/sun5i.inc:3: Could not include required
file conf/machine/include/arm/armv8a/tune-cortexa8.inc
"
2022-11-29 15:51:19 +02:00
5f4a85b92b Merge pull request #350 from jakub-kozlowicz/kirkstone
Add NanoPi Duo2 board support
2022-11-16 09:55:17 +01:00
9aab097e6b add nanopi duo2 board support 2022-11-15 21:40:54 +01:00
773dc04614 Fix LICENSE field of some recipes to correspond to Poky ones. 2022-09-12 07:27:30 +02:00
eeb1cefdd4 Fix inherit distutils3 error 2022-09-09 08:24:40 +02:00
ebdbb33410 u-boot: Fix booting issues for 64bit boards
In kirkstone we use u-boot 2022.01 which added as mandatory usage of scp.
As it's used for power relates stuff and we don't need it atm set to to empty.

Without this fix generated u-boot cannot boot.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2022-08-24 14:05:50 +02:00
fdce4f8674 conf: Added orange-pi-pc2 config
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2022-04-21 21:23:33 +02:00
20822ad769 linux-mainline: Fix kernel license warning
Fix following:
WARNING: linux-mainline-5.15.35-r0 do_package_qa: QA Issue: Recipe LICENSE includes obsolete licenses GPLv2 [obsolete-license]

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2022-04-21 21:23:20 +02:00
e8d39837e2 conf: machine: Added nanopi r1 support
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2022-04-21 09:27:42 +02:00
3b798310df u-boot: Added patch for adding nanopi r1 machine support
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2022-04-21 09:27:38 +02:00
910bb165a3 conf: Added kirkstone compatible string
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2022-04-21 09:18:12 +02:00
9895874a29 sunxi: Use 5.15 as kernel provider
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2022-04-21 09:18:10 +02:00
7feb76686f linux-mainline: Added 5.15 LTS kernel
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2022-04-21 09:17:57 +02:00
4735c7766f atf-sunxi: Fix warnings
Fix license and protocol for fetching

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2022-04-21 09:17:54 +02:00
78c395aab7 sunxi64.inc: Don't set UBOOT_BINARY
It's valid for sunxi uboot only and breaks wic so comment it

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2022-04-13 10:35:31 +02:00
b122bfc272 u-boot: Refresh path
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2022-04-13 09:31:24 +02:00
752f632e98 atf-sunxi: Fix build issue
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2022-04-13 09:31:07 +02:00
7dcc9a0069 Merge pull request #337 from StealthyCoder/master
conf: machine: add orange-pi-r1
2022-01-27 19:32:46 +01:00
ef5b9a675b conf: machine: add orange-pi-r1
Add the machine configuration for the Orange Pi R1.

Signed-off-by: Eric Bode <eric.bode@foundries.io>
2022-01-20 09:50:05 +01:00
b9a5f19db2 Merge pull request #336 from abrodkin/abrodkin-updates-2022.01
Minor updates
2022-01-04 21:05:51 +01:00
13fe88d754 linux-sunxi_3.4: Switch GitHub protocol from git to https
This mutes bitbake warning:
----------------------------->8------------------------
WARNING: .../meta-sunxi/recipes-kernel/linux/linux-sunxi_3.4.bb:
URL: git://github.com/linux-sunxi/linux-sunxi.git;branch=sunxi-3.4;protocol=git uses git protocol which is no longer supported by github.
Please change to ;protocol=https in the url.
----------------------------->8------------------------

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2022-01-04 20:23:14 +03:00
6ece692e9b sunxi-boards: Bump version
For some reason it was not updated since 2015 and
there seem to be quite some changes in the repo.

Also switch protocol for getting sources from GitHub
from git to https to get rid of the bitbake warning.

Signed-off-by: Alexey Brodkin <alexey.brodkin@gmail.com>
2022-01-04 20:21:07 +03:00
c39a024199 Merge pull request #334 from clementperon/to_merge
Fixes
2022-01-03 18:02:21 +01:00
545d824ccf atf-sunxi: fix new syntax 2022-01-02 21:46:06 +01:00
45a666ac43 classes: sdcard_image-sunxi: fix depends
Signed-off-by: Clément Péron <peron.clem@gmail.com>
2022-01-02 21:20:28 +01:00
a508443f52 recipes: use github https and specify master branch to fix warnings
Signed-off-by: Clément Péron <peron.clem@gmail.com>
2022-01-02 19:47:59 +01:00
0225772064 conf: layer: oe layer is not mandatory
Signed-off-by: Clément Péron <peron.clem@gmail.com>
2022-01-02 19:46:55 +01:00
3a7f7e1199 conf: sunxi.inc: bump linux mainline preferred version to 5.10
Signed-off-by: Clément Péron <peron.clem@gmail.com>
2022-01-02 19:39:34 +01:00
a67a0c58df Merge pull request #331 from mpromonet/master
Fix build for nanopi neo air
2021-12-15 21:10:25 +01:00
8852666a80 Merge branch 'master' into master 2021-12-15 21:07:43 +01:00
e584cd9084 Merge pull request #333 from MatScheifi/honister
Fix SD Image Build for honister
2021-12-15 07:57:54 +01:00
deb667015d cover up build error with kernel headers 2021-12-10 10:59:19 +01:00
503102a841 move ext4 dep 2021-12-10 10:51:18 +01:00
02bf3fcd80 fix sd-card creation - use new syntax 2021-12-10 10:45:50 +01:00
7bc87817a1 this is integrate in kernel mainline since 88c23c05ef (diff-9c6eb3684dca738538e1dcb691cb9dd7684d6d5da0e963b5ba5a7e47b8b95e21) and breaks the build
Signed-off-by: mpromonet <michel.promonet@free.fr>
2021-11-12 15:42:27 +01:00
080eb40635 conf: Set LAYERSERIES_COMPAT to honister only
It's not anymore compatible with old releases due new syntax.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2021-09-20 10:19:34 +02:00
dcd5790e87 conf: machine: Fix paths for tunes
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2021-09-20 09:39:40 +02:00
6a1103b726 misc: More fixes for new syntax
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2021-09-20 09:39:18 +02:00
668bc6824c conf: Added honister layer to LAYERSERIAS_COMPAT
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2021-09-20 09:27:46 +02:00
fd330bbb55 Merge pull request #328 from dev-0x7C6/master
layer: convert to new override syntax 💥
2021-09-20 09:26:15 +02:00
e66258ad7a layer: convert to new override syntax 💥
OE/Yocto is migration towards new override syntax,
current master (upcomming honister release) will not
tolerate "_" as override operator.

New override syntax will be backported to
dunfell, gatesgarth, hardknott releases.

Signed-off-by: Bartłomiej Burdukiewicz <bartlomiej.burdukiewicz@gmail.com>
2021-08-23 18:47:19 +02:00
3caf03d9fc xradio-firmware: Update to latest master
Old version seems to have random crashes when using softap functionality

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2021-06-30 11:08:56 +02:00
278bd31312 Merge pull request #322 from linux-sunxi/mbe-bananapi-m64
bananapi m64
2021-05-21 21:16:33 +02:00
edb10c82bd Added support for bananapi-m64 machine
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2021-05-21 21:14:52 +02:00
c6161f546b Merge pull request #321 from HerrMuellerluedenscheid/bugfix/partition-label
remove boot partition label
2021-05-17 13:28:18 +02:00
c03a8988b8 default to 'boot' as boot partition label
Defaulting to the $MACHINE may lead to failure if the name was
longer than the limit of allowed volume label of fat (11 chars).

Signed-off-by: Marius Kriegerowski <marius.kriegerowski@gmail.com>
2021-05-17 13:10:45 +02:00
fe54f61d61 layer.conf: Added compatibility with hardknott
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2021-04-30 08:31:53 +02:00
724d154371 Merge pull request #320 from linux-sunxi/mbe-fix-master
u-boot: Drop un-needed patch
2021-04-23 14:25:09 +02:00
59b953f341 u-boot: Drop un-needed patch
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2021-04-23 14:24:06 +02:00
ac8695fddf Merge pull request #317 from MdeVries86/feature/fix-regulator
Add missing voltage/current regulator category in kernel config for the aarch64 config
2021-04-19 08:43:36 +02:00
efc05f66ef Add missing voltage/current regulator category in kernel config
Without this category enabled, all the regulator drivers will not be compiled resulting in the mmc/sd-card driver failing to set a valid voltage.
2021-04-18 23:04:58 +02:00
dc5c23908e Merge pull request #315 from linux-sunxi/nandra-banana-pi-m2m
Added bananapi-m2m machine
2021-04-17 09:37:16 +02:00
5602fb2ff8 Added bananapi-m2m machine
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2021-04-13 13:13:20 +02:00
6eb1acdbcb Merge pull request #312 from louisbuchert/master
adding Lichee Pi Zero machine (booted)
2021-04-06 22:32:13 +02:00
5fe0f177ab Merge pull request #314 from linux-sunxi/nandra-fix-opi-zero-boot
Fix orange-pi-zero booting with 2020.01 u-boot
2021-03-31 08:24:23 +02:00
151ac47fda Merge pull request #295 from macpijan/add_wks_file
conf: sunxi.inc: add wks file for arm
2021-03-30 22:16:40 +02:00
f66e6f255f u-boot: Fix orange-pi-zero booting
Without this patch booting ends with Starting kernel ...

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2021-03-30 21:54:45 +02:00
0b64109569 Added Lichee Pi Zero machine (booted) 2021-03-30 19:23:08 +02:00
3dc99ee663 Merge pull request #311 from katyo/master
Added MarsBoard A10 machine config
2021-03-23 07:58:35 +01:00
K
c32ee2b4a0 Added MarsBoard A10 machine config 2021-03-23 11:09:20 +05:00
9e53e57d75 Merge pull request #306 from Kynetics/master
linux-mainline: add lt 5.10.2
2020-12-22 11:57:50 +01:00
de575289a3 linux-mainline: add lt 5.10.2
Add version 5.10.2. According to:
https://www.kernel.org/category/releases.html
version 5.10 is a longterm release.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2020-12-22 10:40:11 +00:00
1e41b97b5b linux-mainline: Fix USb support on cubietruck
See issue #350

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2020-12-22 07:37:46 +01:00
efcbd3a2cf Merge pull request #303 from mfrydrysiak/machine-bananapim2plus
conf: machine: add bananapi-m2plus
2020-11-10 18:07:23 +01:00
2df608df63 conf: machine: add bananapi-m2plus
Add machine configuration for H3 based Banana Pi M2+.

Signed-off-by: Marek Frydrysiak <marek.frydrysiak@gmail.com>
2020-11-10 17:48:01 +01:00
e20eb9ef85 Merge pull request #302 from 3mdeb/uboot-fix-revert
Revert "u-boot: rebase nanopi_neo_air emmc patch"
2020-11-04 22:39:45 +01:00
18f3e4a016 Merge pull request #294 from macpijan/add_nanopi_m1
machine: nanopi-m1: add config
2020-11-04 22:35:49 +01:00
11052ea20e Revert "u-boot: rebase nanopi_neo_air emmc patch"
This reverts commit 58d382d598.

This change was not needed on master. The patch was already correctly
refreshed on the dunfell branch to be compatible with the v2020.01
U-Boot release. It was done in the following commit: d0bbc7334d
2020-11-04 22:16:53 +01:00
0062d5490a Merge pull request #301 from 3mdeb/uboot-fix
u-boot: rebase nanopi_neo_air emmc patch
2020-11-04 22:01:35 +01:00
58d382d598 u-boot: rebase nanopi_neo_air emmc patch
Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
2020-11-04 21:50:05 +01:00
4937fc91d5 Merge pull request #300 from dev-0x7C6/master
Bunch of tweaks.
2020-10-23 08:16:28 +02:00
370007f1c8 Merge branch 'master' into master 2020-10-23 08:16:19 +02:00
1f85588709 Merge pull request #299 from Kynetics/master
Remove kernel 4.19 and add 5.9 to master
2020-10-23 08:14:33 +02:00
3f6dcb3d08 u-boot: don't override COMPATIBLE_MACHINE. 2020-10-23 00:08:17 +02:00
9396098def layer: added support for upcomming gatesgarth release. 2020-10-22 20:54:26 +02:00
636b3b74d7 u-boot: don't override u-boot configuration when building for other machines. 2020-10-22 19:30:32 +02:00
eaf085f87f conf: added sunxi and sunxi64 machine overrides. 2020-10-22 19:30:01 +02:00
bcc500fb65 linux-mainline: added 5.9.1 kernel. 2020-10-22 19:27:53 +02:00
d6deb87bd1 linux-mainline: update stable to 5.9.1
Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2020-10-20 20:29:30 +00:00
4580f8964d linux-mainline: remove lt 4.19
Remove lt 4.19 as lt 5.4 is available and well tested by now.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2020-10-20 20:27:44 +00:00
251d048d0b xradio: Use updated driver from armbian
Current xradio driver have an issue that with 5.x kernel doesn't work properly.
Bump it to more maintained one which support also 5.x kernel.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2020-10-15 19:50:50 +02:00
cd2ec849a7 Merge pull request #297 from Kynetics/master
linux-mainline: update to lt 5.4.69
2020-10-02 07:39:30 +02:00
e619a01a21 linux-mainline: update to lt 5.4.69
Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2020-10-01 22:17:57 +02:00
9f622c70b8 conf: sunxi.inc: add wks file for arm
Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
2020-09-28 21:57:43 +02:00
9773647ff4 machine: nanopi-m1: add config
Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
2020-09-28 21:57:07 +02:00
2e20344575 xradio: Bump revision to have it compilable with later 5.x kernel
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2020-09-18 10:44:17 +02:00
ec20258eb5 linux-mainline: Added fix for bananapi
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2020-06-01 08:43:33 +02:00
250b8652f6 Merge pull request #290 from net147/uboot-v2020.04-rebase
u-boot: rebase patch against v2020.04
2020-06-01 07:51:27 +02:00
9828fc2b82 u-boot: rebase patch against v2020.04
Signed-off-by: Jonathan Liu <net147@gmail.com>
2020-05-30 18:58:15 +10:00
5eff0296b5 Merge pull request #169 from Embedlynx/master
Copy a splash.bmp splash screen for u-boot to the SD card VFAT partit…
2020-05-26 07:47:04 +02:00
ee0b2699ee Merge pull request #287 from Kynetics/master
layer.conf: add "dunfell" compatibility
2020-05-08 20:33:59 +02:00
d46ff454d0 layer.conf: add "dunfell" compatibility
Update the layer compatibility information to indicate this layer is
compatible with "dunfell".

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2020-04-28 21:12:04 +00:00
ee3a551b83 Merge pull request #285 from Kynetics/use-mainline-graphics
Enable open source GPU drivers
2020-03-19 07:49:36 +01:00
74a488e2ef README.md: document how to select gfx drivers
Update documentation to clarify how to select the use of mainline graphics
drivers lima and panfrost.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2020-03-18 22:45:30 +01:00
1d6ef084db Enable open source GPU support
Enable open source GPU support for Mali Utgard GPUs (lima driver) and
Mali Midgard and Bifrost GPUs (panfrost driver).
The support is enabled by:
- enabling DRM kernel CONFIGs
- enabling lima, panfrost and kmsro in Mesa
- disabling the specific mali driver overrides in sunxi-mali.inc
To enable open source mainline graphics support just add the following
line in your local.conf:

MACHINEOVERRIDES .= ":use-mailine-graphics"

Please note that some machines may need a bigger CMA value to be able to
start Weston. To do that, add e.g. "cma=128M" to the kernel parameters.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2020-03-18 21:36:14 +01:00
fa0846c0eb Merge pull request #284 from Kynetics/master
Kernel recipe improvements
2020-03-05 22:14:02 +01:00
e9d4b90576 linux-mainline: use .inc for common code
Use .inc file to share common code and parameters. Also, always apply
orange-pi-zero wifi patch unconditionally: it is easier to spot build
issues while updating recipes if patch is applied regardless of the
machine we're building on.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2020-03-03 20:58:15 +00:00
620c66eac5 linux-mainline: enable keyboard and mouse
Enable keyboard and mouse support in arm defconfig.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2020-02-28 20:55:44 +00:00
4b928c5b72 Merge pull request #283 from Kynetics/master
conf: machine: add orange-pi-zero-plus2-h3
2020-02-14 08:02:49 +01:00
6eab521310 conf: machine: add orange-pi-zero-plus2-h3
Add machine configuration for H3 variant of Orange Pi Zero Plus2.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2020-02-13 23:14:28 +00:00
c82b2f8612 Merge pull request #277 from Kynetics/master
linux-mainline: update lt to 5.4.12, rc to 5.5-rc6
2020-02-11 22:31:32 +01:00
02e3e7fba8 linux-mainline: add lt 5.4.18, stable 5.5.3
According to:
https://www.kernel.org/category/releases.html
version 5.4 is a longterm release, so:
- add longterm 5.4 series at 5.4.18
- update longterm 4.19 series to 4.19.103
- update stable to 5.5.3
- remove rc, as it quickly gets out of date. rc users will likely build
kernel from master outside of OE anyway
- set 5.4 as the preferred version for linux-mainline

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2020-02-11 20:54:54 +00:00
12cbb60a76 Merge pull request #280 from Kynetics/python2-removal
pya20: update to 0.2.12 and python3
2020-01-30 09:49:10 +01:00
2398d55ad4 pya20: update to 0.2.12 and python3
Update pya20 to version 0.2.12:
- support for Python2 has been removed in oe-core master (see commit
390f3edabfb1f68ed9766245291c5f44ea00cc38) so dependencies and classes
have been changed to use Python3. Without this change recipe parsing
fails on master, as distutils class doesn't exist anymore
- license has been fixed to be GPLv3 as declared in pyA20/__init__.py
- setup.py.patch is no longer needed
- pya20som has been removed, as machine olinuxino-a20som is supported by
pya20

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2020-01-29 22:50:09 +00:00
f9060cda38 Merge pull request #278 from kedder/master
Fix compilation of legacy linux-sunxi-3.4 kernel under zeus
2020-01-26 10:35:38 +01:00
f25203c936 Mention that devicetree needs to be disabled for old kernel 2020-01-26 11:02:00 +02:00
b2f0d28f49 Correctly generate .config file for the compilation 2020-01-26 11:02:00 +02:00
89be65d931 u-boot-sunxi: fix compilation under gcc, newer than 4 2020-01-26 11:01:56 +02:00
802857ee59 linux-sunxi: fix compilation issue on gcc-9
Error comes in form of

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

Tested on zeus branch of linux-sunxi.
2020-01-26 10:57:58 +02:00
fbf5ac3e31 Merge pull request #276 from cz7asm/master
fixing missing 'compatible' property in reg_vcc_wifi node
2020-01-12 09:16:23 +01:00
c9527c099d fixing missing 'compatible' property in reg_vcc_wifi node 2020-01-11 22:59:27 +01:00
21462a47a2 Merge pull request #274 from Kynetics/master
ap6212a.inc: add support for AMPAK 6212A
2019-12-31 18:38:46 +01:00
7fdbe68c1f ap6212a.inc: add support for AMPAK 6212A
Add support for AMPAK 6212A module:
1) install kernel module
2) install firmware
3) create the required symlink with the AP6212 NVRAM file
Enable the support in the boards with the module, according to:
https://linux-sunxi.org/Table_of_Allwinner_based_boards
The link creation with compatible name works on kernels >= 5.0.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2019-12-05 10:05:54 +00:00
b7b8764c8f Merge pull request #271 from Kynetics/master
machine: remove U-Boot PREFERRED_VERSION
2019-11-07 11:24:48 +01:00
504fa1bb71 machine: remove U-Boot PREFERRED_VERSION
Remove pointless U-Boot PREFERRED_VERSION, as meta-sunxi no longer
provides its own u-boot recipe.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2019-11-06 12:44:11 +00:00
902841dcd4 Merge pull request #272 from Kynetics/kernel-update/master
Update kernel recipes to latest revisions
2019-11-06 12:58:23 +01:00
9fef250ca8 linux-mainline: update rc to 5.4-rc6
Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2019-11-06 11:19:00 +00:00
0419afad79 linux-mainline: update stable to 5.3.8
Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2019-11-06 11:19:00 +00:00
444672b854 linux-mainline: update longterm to 4.19.81
Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2019-11-06 11:19:00 +00:00
f1378e33af Merge pull request #270 from twoerner/contrib/twoerner/fixes-05
LAYERSERIES_COMPAT: warrior -> zeus
2019-10-16 14:05:56 +02:00
efe6aef33f LAYERSERIES_COMPAT: warrior -> zeus
Update the layer compatibility information to indicate this layer is
compatible with "zeus".

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2019-10-09 08:00:20 -04:00
b20940edd0 linux-sunxi: disable glamor build if Mali is used
Unless somebody writes libgbm replacement for binary Mali driver
(sort of converter for gbm-UMB) there is no glamor for us.

Closes #227
2019-09-07 22:16:50 +02:00
63ee6333dc Fix soname in Mali.so to make auto-RDEPENDS work
The auto-RDEPENDs system reqires that all .so libraries have
proper soname set. If library soes not have soname set, it will
not be added to RDEPENDs list of other elf files.

Closes #240
2019-09-07 16:38:48 +02:00
23acf5bc61 Merge pull request #266 from twoerner/contrib/twoerner/fixes-04
Contrib/twoerner/fixes 04
2019-09-02 07:52:42 +02:00
d0bbc7334d U-Boot: patch refresh
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2019-08-30 14:06:41 -04:00
7964ef28bd U-Boot: switch to upstream
Use the upstream U-Boot and simply bbappend the changes that are needed.

U-Boot 2018.09 no longer builds against master.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2019-08-30 14:06:41 -04:00
e10f05d494 Merge pull request #264 from nandra/mbe-fix-wifi-patch
linux: refresh orange-pi-zero wifi patch
2019-08-07 08:17:00 +02:00
1f46cadd4c linux: refresh orange-pi-zero wifi patch
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2019-08-07 08:16:15 +02:00
a5cecabb42 Merge pull request #265 from nandra/mbe-update-kernels
Update mainline kernels
2019-08-07 08:14:03 +02:00
d034a64bc4 linux-mainline: Added bleeding edge kernel 5.3-rc2
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2019-08-07 08:13:19 +02:00
6bfa745149 linux-mainline: Drop 5.0 and use 5.2 as latest release
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2019-08-07 08:13:19 +02:00
70d37fa203 linux-mainline: Bump 4.19 to latest stable
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2019-08-07 08:13:19 +02:00
741b6238b6 Merge pull request #262 from MdeVries86/feature/olinuxino-a64-wifi
Add wifi support for olinuxino-a64
2019-07-09 11:35:36 +02:00
917850e01d Merge pull request #261 from lorem-ipsum/sun50i-tune
sun50i: change tuning params to cortex-a53
2019-07-04 10:00:17 +02:00
5e1a2937bd Add wifi support for olinuxino-a64 2019-06-25 23:50:52 +02:00
be78fab082 drop layers older than warrior from layercompat 2019-06-25 16:23:08 +02:00
f4e059ee3d sun50i: change tuning params to cortex-a53 2019-06-25 16:17:10 +02:00
7c6cefcfe6 conf: machine: Add Machine Nano Pi M1 Plus
Signed-off-by: Thinh Nguyen <nguyen.trong.thinh@styl.solutions>
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2019-06-15 16:28:07 +02:00
5ba77e0981 Add machine config for olinuxino-a64 2019-06-15 16:23:54 +02:00
e698148963 Added pcDuino3 Board 2019-06-15 16:22:20 +02:00
c0ece4613d Update maintainer section + section about kernel
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2019-06-07 10:25:15 +02:00
4921234ed7 Merge pull request #257 from nandra/sunxi-kernel-bump
Sunxi kernel bump
2019-06-07 10:18:41 +02:00
2e5db363c2 linux-mainline: Added latest stable version
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2019-05-30 15:57:09 +02:00
e93d74767e sunxi.inc: Set kernel version to latest LTS version
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2019-05-30 15:56:54 +02:00
7983549705 linux-mainline: Add bleeding edge kernel version
Useful for testing new stuff.
There is one patch which was necessary see:

http://lists.openembedded.org/pipermail/openembedded-core/2019-May/283034.html

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2019-05-30 15:20:44 +02:00
3bb0abd730 linux-mainline: Bump to latest LTS kernel
In sync with warrior branch

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2019-05-30 15:19:11 +02:00
c4a2923380 xorg-server: xf86-video-fbturbo: Replace xf86driproto with xorgproto
xf86driproto was dropped and replaced by xorgproto

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2019-05-29 22:30:40 +02:00
9bcd991e74 Merge pull request #256 from 3mdeb/layerdepends
Layerdepends
2019-05-29 20:30:27 +02:00
628b14b9fd README.md: meta-openembedded/meta-oe as dependency
Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
2019-05-29 19:14:33 +02:00
abd1463aa9 conf/layer.conf: add LAYERDEPENDS
Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
2019-05-29 19:09:40 +02:00
84961a9521 conf/layer.conf: add LAYERVERSION
Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
2019-05-29 19:09:30 +02:00
8fcc6136d0 Merge pull request #252 from nandra/nandra-dri2proto-replacement
misc: Replace dri2proto with xorgproto
2019-05-28 10:20:27 +02:00
9b32d6a61c misc: Replace dri2proto with xorgproto
dri2proto and xextproto was replaced by xorgproto
see: https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#migration

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2019-05-27 16:26:37 +02:00
aa36e417e2 Merge pull request #249 from darekp/dev
sunxi-tools: add inherit pkgconfig
2019-04-19 16:58:50 +02:00
54c75110b4 Merge pull request #247 from twoerner/contrib/twoerner/warrior
layer.conf: add warrior to COMPAT list
2019-04-19 16:58:20 +02:00
81f6a30ac9 sunxi-tools: add inherit pkgconfig
sunxi-tools requires pkg-config native binary
which may be missing wihen pkgconfig class
is not inherited.

Signed-off-by: Dariusz Pelowski <dariusz.pelowski@gmail.com>
2019-04-17 15:45:37 +00:00
b6288e15ad layer.conf: add warrior to COMPAT list
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2019-04-03 16:12:25 -04:00
6b9ef7519c Merge pull request #246 from XevoInc/master
machine: use armv8a, not armv8
2019-03-07 07:13:49 +01:00
837aeefae3 Merge pull request #245 from mwohlert/update-xradio-firmware
xradio-firmware: Update git repository und paths
2019-03-07 07:13:19 +01:00
bfcf51f595 Merge pull request #243 from konsulko/pine64-plus
Add pine64-plus machine
2019-03-07 07:12:43 +01:00
efe4acdeff machine: use armv8-a, not armv8
In the latest OE, this file has been renamed. Since this board is
ARMv8-A, we should use the armv8-a config instead of the armv8 config.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2019-03-05 15:35:52 -08:00
42fd81b2b8 recipes-kernel: xradio-firmware: Update git repository und paths 2019-02-09 21:37:20 +01:00
064257654a Add pine64-plus machine
Adds A64-based pine64-plus machine.

Signed-off-by: Matt Porter <mporter@konsulko.com>
2019-01-13 08:37:06 -05:00
72ece33639 Merge pull request #238 from geomatsi/update-u-boot-to-2018.09
u-boot: upgrade to 2018.09
2018-11-21 18:23:40 +01:00
a66f824d6f Merge pull request #236 from geomatsi/fix-dtb-filenames
sdcard_image-sunxi.bbclass: fix dtb naming conventions
2018-11-21 18:20:20 +01:00
d57301be50 Merge pull request #234 from geomatsi/fix-bison-native-dep
linux: specify explicit dependencies to configme task
2018-11-21 18:17:19 +01:00
4e0c7e2a6c Merge pull request #233 from nandra/opi-zero-wifi-support
Adde orange-pi-zero wifi support
2018-11-21 18:15:08 +01:00
6b536f1083 u-boot: upgrade to 2018.09
Bump u-boot version. Notes:
- pylibfdt fix is not needed anymore
- add bison and flex as depenedencies
- update license info

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2018-11-10 21:58:32 +03:00
f9ad5fa55b sdcard_image-sunxi.bbclass: fix dtb naming conventions
DTB naming conventions has been changed on deploy, see:
poky: c5b70d7155a76b727400db225c446d1b2f7072a6
oe-core: 1860d9d3c62e2e94cd68a809385873ffd8270b6d

Modify sdcard_image-sunxi.bbclass accordingly.

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2018-11-09 23:09:54 +03:00
eb72b91844 xradio: Drop unnecessary patch when fix module compilation
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2018-11-03 22:43:29 +01:00
df2236f3f7 linux: specify explicit dependencies to configme task
This change is an adaptation of commit 81e8a52e8e40e47 from poky/master.

Linux kernel build dependencies include bison since v4.16.
There were two different commits in poky adding those dependencies:
- poky/master: 81e8a52e8e40e47
- poky/sumo:   20e4d309e12bf10

However just adding bison-native to DEPENDS in linux or linux-yocto
class (as in poky/sumo) appears to be insufficient. The reason has
been clarified in 81e8a52e8e40e47 commit message:

"For linux-yocto, we also need to specify the compiler/tools dependencies
for the configme task since it executes before configure and hence the
main kernel build DEPENDS will not always be in the sysroot before it
executes. Without those dependencies the kernel will be incorrectly
configured (i.e. bison is missing) or the configuration will fail
the mitigation tests."

Layer meta-sunxi is compatible with multiple Yocto releases. Some of
those releases have been developed and tested with earlier kernels.
So they may not include new bison kernel build dependencies. That
is why it  makes sense to specify new kernel build dependencies
explicitely in meta-sunxi kernel recipes rather than rely upon
upper layers.

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2018-10-31 09:08:32 +03:00
0bc0be4186 linux-mainline: Added wifi dts changes for orange-pi-zero wifi
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2018-10-30 20:43:28 +01:00
991567e017 recipes-kernel: xradio-firmware: Added wifi firmware for orange-pi-zero
Taken from:
https://github.com/Halolo/orange-pi-distro.git

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2018-10-30 20:43:28 +01:00
318e609f65 recipes-kernel: xradio: Added wifi driver for orange-pi-zero wifi
Driver taken from:
https://github.com/Halolo/orange-pi-distro.git

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2018-10-30 20:43:28 +01:00
712229cbe4 Merge pull request #230 from floion/enable_emmc_in_kernel_and_uboot
Enable emmc in kernel and uboot for Nanopi Neo Air
2018-09-27 20:58:07 +02:00
5e1b5a9f86 u-boot_2018.03.bb: Enable eMMC support for Nanopi Neo Air
Signed-off-by: Florin Sarbu <florin@resin.io>
2018-09-25 20:27:12 +02:00
a1297419fe linux-mainline: Add back eMMC support for Nanopi Neo Air
Signed-off-by: Florin Sarbu <florin@resin.io>
2018-09-25 20:27:11 +02:00
7d770d3061 Merge pull request #225 from mirzak/orange-pi-pc-plus-update-u-boot-version
orange-pi-pc-plus: update preferred U-boot version to v2018.03
2018-09-25 19:34:40 +02:00
0c6e53be97 Merge pull request #226 from mirzak/fix-loadaddress
remove UBOOT_LOADADDRES
2018-09-25 19:34:05 +02:00
a28dffd16d machine: sunxi: remove UBOOT_LOADADDRESS
This has been assigned a value containing a typo since 2015, my
assumption is that this is not used and hence we can simply drop
it. The typo is that the address contains a 'O' character instead
of '0', the last one is a zero.

Either way the kernel.bbclass will set a default value, that is:

     UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}"

Signed-off-by: Mirza Krak <mirza.krak@northern.tech>
2018-08-06 16:02:13 +02:00
47c3e21ace orange-pi-pc-plus: update preferred U-boot version to v2018.03
v2017.03 no longer exists and produces warnings if set as preferred:

NOTE: Resolving any missing task queue dependencies
NOTE: preferred version v2017.03% of u-boot not available (for item virtual/bootloader)
NOTE: versions of u-boot available: 1:2018.01 2:v2018.03+gitAUTOINC+f95ab1fb6e
NOTE: preferred version v2017.03% of u-boot not available (for item u-boot-dev)
NOTE: versions of u-boot available: 1:2018.01 2:v2018.03+gitAUTOINC+f95ab1fb6e
NOTE: preferred version v2017.03% of u-boot not available (for item u-boot)
NOTE: versions of u-boot available: 1:2018.01 2:v2018.03+gitAUTOINC+f95ab1fb6e

Signed-off-by: Mirza Krak <mirza.krak@northern.tech>
2018-08-06 12:50:50 +02:00
df468d72d7 Merge pull request #215 from XevoInc/nanopi-neo-plus2
Add the nanopi neo 2 and plus2
2018-06-10 23:40:08 +02:00
fef6da2d86 Merge pull request #220 from Kynetics/master
Update kernel to latest versions
2018-06-10 23:38:58 +02:00
85cc70a3fa Merge pull request #214 from XevoInc/layerseries-compat
add LAYERSERIES_COMPAT declaration
2018-06-10 23:38:33 +02:00
f54a652383 Merge pull request #216 from leon-anavi/master
README.md: Update Kernel / U-Boot Version
2018-06-10 23:37:46 +02:00
927dd91361 Merge pull request #221 from koenkooi/master-oe.utils
Fix parse failure with sumo and master
2018-06-10 22:31:31 +02:00
9bd942ab3b linux.inc: base_conditional -> oe.utils.conditional
Fixes parsing with e.g. 'sumo' and 'master' branch of OE-core

Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
2018-06-10 08:55:39 +02:00
6759ac4ce6 linux-mainline: update stable to 4.16.13
Update stable kernel to 4.16.13 and git kernel to 4.17-rc7.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2018-06-01 11:59:44 +00:00
cf8eb364a0 add LAYERSERIES_COMPAT declaration
In current Yocto master, it's now a warning not to include
LAYERSERIES_COMPAT in layer.conf. See below for more information:

https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#var-LAYERSERIES_COMPAT

Add this information for all current development and stable releases.

Tested-by: Sergey Matyukevich <geomatsi@gmail.com>
Tested-by: Diego Rondini <diego.rondini@kynetics.com>
Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-05-30 09:16:42 -07:00
4900e75a6a nanopi-neo2: add new board
Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-05-01 10:11:57 -07:00
d419cfe0a1 nanopi-neo-plus2: enable the second USB port
Currently, only one of the exposed USB ports works because we haven't
loaded the sunxi musb driver, which enables the OTG port to act in host
mode.

After enabling this driver in the config, both ports work correctly.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-04-30 16:54:47 -07:00
c0f804f573 nanopi-neo-plus2: add new board
Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-04-30 16:54:43 -07:00
8cd113bdd8 README.md: Update Kernel / U-Boot Version
Update and improve the information in section
"Kernel / U-Boot Version".

Signed-off-by: Leon Anavi <leon@anavi.org>
2018-04-13 03:20:45 +03:00
5e61ba92e3 u-boot: upgrade to 2018.03
This version of u-boot includes nanopi-neo-plus2 support.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-04-12 15:18:56 -07:00
7df74e3847 add LAYERSERIES_COMPAT declaration
In current Yocto master, it's now a warning not to include
LAYERSERIES_COMPAT in layer.conf. See below for more information:

https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#var-LAYERSERIES_COMPAT

Add this information for all current development and stable releases.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-04-10 13:45:56 -07:00
073dbda366 Merge pull request #208 from geomatsi/kernel-update
linux: bump kernel version to 4.15
2018-03-09 08:48:42 +01:00
7bbd1ea6fa linux: bump kernel version to 4.15
Bump Linux kernel version to 4.15.

Notes:
- orange-pi-zero-plus2: drop patch fixing sdcard detect
  -- this fix is already in 4.15
- H2+/H3 SoCs: in 4.15 ethernet works right out of the box

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2018-02-03 21:11:09 +03:00
09b67e1d65 Merge pull request #204 from XevoInc/nanopi-neo-air-wifi
nanopi-neo-air: add wifi DT patch
2018-01-26 19:22:17 +01:00
beee11ba81 nanopi-neo-air: add wifi DT patch
Backport a devicetree patch to enable wifi on the nanopi neo air.

The patch comes from here:

https://www.spinics.net/lists/arm-kernel/msg630904.html

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-01-25 11:43:06 -08:00
c549fc237d Merge branch 'XevoInc-update-kernel' 2018-01-23 23:29:17 +01:00
29eb4d3de7 Merge branch 'update-kernel' of https://github.com/XevoInc/meta-sunxi into XevoInc-update-kernel 2018-01-23 23:28:34 +01:00
c83ad689e3 Merge pull request #201 from Kynetics/master
linux-mainline: update RDEPENDS to match kernel naming
2018-01-23 23:23:56 +01:00
c351ae2786 Merge pull request #200 from XevoInc/fix-kernel-fragments
linux: fix kernel config fragment support
2018-01-23 23:23:30 +01:00
20864bd184 Merge pull request #198 from XevoInc/add-nanopi-neo-air
nanopi-neo-air: add new board
2018-01-23 23:20:52 +01:00
8875f3cc9a Merge pull request #197 from XevoInc/comment-fix
sdimage: fix incorrect comment
2018-01-23 23:20:06 +01:00
b5e1851242 linux-mainline: update to 4.14.15
This fixes an important brcmfmac use-after-free error:
brcmfmac: change driver unbind order of the sdio function devices
commit 5c3de777bdaf48bd0cfb43097c0d0fb85056cab7 upstream.
commit 01b43f2e3cad60c626daa9b174667a202cee6987 in linux-4.14.y

Without this change, I notice this error regularly when loading the wifi
firmware on the nanopi neo air.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-01-23 13:13:05 -08:00
874c9ff224 linux-mainline: update RDEPENDS to match kernel naming
The kernel-devicetree class now sets RDEPENDS_${KERNEL_PACKAGE_NAME}-base so we
needs to do the same, otherwise bitbake emits a warning. Reference change is
6c8c899 commit in oe-core.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2018-01-16 09:25:12 +00:00
1495b5e567 linux: fix kernel config fragment support
Currently, using kernel config fragments is not working. If you try
adding one as documented in the Yocto Mega Manual [1], it will be
ignored.

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

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

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

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-01-12 13:07:17 -08:00
17c1731264 nanopi-neo-air: add new board
We have devicetree and u-boot configs for the nanopi-neo-air, so add
them. As a basic test, this boots correctly on my nanopi-neo-air.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-01-10 12:56:57 -08:00
418ea17239 sdimage: fix incorrect comment
The comment says ext3 but the code says ext4, so fix the comment.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-01-10 12:21:59 -08:00
2c85181c92 drop DEFAULTTUNE from machine recipes
Signed-off-by: Enrico Butera <ebutera@users.sourceforge.net>
2017-12-21 17:40:55 +01:00
f3cba0b6b0 Merge pull request #196 from nandra/nandra-orangepi-pc-plus
Add configuration for orangepi pc plus
2017-12-21 17:39:34 +01:00
9e04cc3782 Merge pull request #193 from geomatsi/orange-pi-zero-plus2-wip
aarch64: sun50i: add support for orange-pi-zero-plus2 board
2017-12-21 17:34:42 +01:00
97ba08e3b6 conf: Added configuration for orangepi pc plus
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2017-12-20 21:20:03 +01:00
72c0f7aa6e orange-pi-zero-plus2: add new board
Orange Pi Zero Plus2 board is based on AllWinner H5 SoC.
For more details on its hardware see linux-sunxi wiki:
http://linux-sunxi.org/Xunlong_Orange_Pi_Zero_Plus_2

This patch enables basic support for orange-pi-zero-plus2 board:
- mainline kernel 4.14.2
- mainline u-boot 2017.11
- dts kernel patch that fixes boot from SD card
- dts kernel patch enabling AP6212 WiFi/BT chip

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-12-03 22:41:36 +03:00
416af351cb sdimage: add support for sun50i sunxi boards
Modify sdcard_image-sunxi bbclass to support both sun50i and older
SoC families. Major changes are as follows:
- update comments: disk layout info
- increase boot partition size: aarch64 unified kernels can be large
- kernel image in boot partition: replace explicit name by KERNEL_IMAGETYPE
- SPL image: replace explicit name by SPL_BINARY
- implement flexible DTB file location in boot partition
  -- e.g. by defaut sun50i u-boot looks for dtb in allwinner subdirectory
  -- follow kernel dtb naming conventions, e.g. allwinner/<board>.dtb
- copy aarch64 u-boot image to image
  -- sunxi arm boards use unified u-boot/spl image
  -- sunxi aarch64 boards use two different images

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-12-03 22:32:13 +03:00
e85a48c611 linux: enable sun50i support
There is no common kernel defconfig for both arm and aarch64.
Create separate kernel defconfigs in arm and aarch64 subdirectories.
Proper defconfig will be selected in build time
according to target architecture.

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-12-03 22:28:10 +03:00
684a800c86 u-boot: enable support for sun50i
Add support of sun50i SoC family to u-boot recipe:
- move SPL_BINARY to sunxi.inc and sunxi64.inc
  -- different SoC families have different SPL_BINARY names
- create separate boot.cmd files for arm and aarch64
  -- different kernel image types require different boot commands
- add atf-sunxi dependency
  -- u-boot for aarch64 needs ATF BL31 binary

- add do_compile_sun50i[depends]
  -- make sure that BL31 binary is already deployed before u-boot build

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-12-03 22:24:12 +03:00
da0e7e0ed1 atf-sunxi: add new recipe
Add ARM Trusted Firmware package for Allwinner arm64 chips.
There are different approaches to build bootloaders for aarch64
platforms. Allwinner approach is to build ATF first, and then
to build U-Boot using BL31 binary from ATF build.

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-12-03 22:21:21 +03:00
3434ae8c66 sun50i: add support for aarch64 sun50i SoC family
Follow the same approach as in 32-bit sunxi SoC families:
- create sunxi64.inc: umbrella description for aarch64 sunxi
  -- specify proper u-boot/spl image types
  -- specify proper kernel image type
  -- specify u-boot/kernel preferred providers
- create basic description of sun50i SoC family
  -- sun50i SoC family is based on armv8

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-12-03 22:18:23 +03:00
4d9466c131 linux: update kernel recipes
- remove older stable release recipes
- bump stable linux recipe to 4.14.2
- bump git linux recipe to 4.15-rc1
- rename linux to linux-mainline

Renaming kernel recipe from 'linux' to 'linux-mainline' is needed to
get ready for adding aarch64 support. The reason is in the value of
OVERRIDES environment variable. BitBake uses OVERRIDES to control what
variables are overridden after BitBake parses recipes and configuration
files. So packages names are not allowed to take values listed in
OVERRIDES. One of the OVERRIDES values is TARGET_OS:
  TARGET_OS = linux${LIBCEXTENSION}${ABIEXTENSION}
For arm architecture TARGET_OS = "linux-gnueabi". However for aarch64
architecture TARGET_OS = "linux". As a result, in the case of aarch64
kernel package can not be named 'linux'. This patch renames kernel
package name to 'linux-mainline' in order to be able to maintain the
same kernel recipes for both arm and aarch64 boards.

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-12-03 21:57:31 +03:00
1af0ae84d1 u-boot: fix binman/libfdt/pylibfdt build issue
Binman host tool in u-boot depends on libfdt library and pylibfdt module.
All the needed libraries and python modules are a part of u-boot.
This patch adds libfdt and pylibfdt to u-boot build:
- add required dependencies swig-native and python3-native
- fix python setup-tools issue: pass proper shared lib linker

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-12-03 21:53:46 +03:00
6499191c36 u-boot: simplify recipe license section
Remove the complete list of U-Boot licenses. Follow the poky and OE-core
approach and keep only umbrella reference to Licenses/README.

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-12-03 21:46:10 +03:00
35e264f9fe u-boot: bump version to 2017.11
Remove patch adding OLinuxino-Lime2-eMMC defconfig:
it already merged to uboot mainline.

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-12-03 21:44:48 +03:00
cee0b74ce4 pypi requires a https connection
(cherry picked from commit 7f5aae9d1c)
2017-10-27 13:46:41 +02:00
f7169d0855 Merge pull request #191 from Kynetics/master
Kernels update (4.13.4, 4.4.89)
2017-10-05 21:20:24 +02:00
7a5d385087 linux: update 4.4 to 4.4.89
Update 4.4 series from 4.4.40 to 4.4.89.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2017-10-02 11:27:38 +00:00
4b43209a92 linux: update to 4.13.4
Update stable to 4.13.4 version thus removing backported patch and requirement
of git version for several boards (current stable 4.13 is newer than previous
git 4.11).
Additionally update git version to 4.14-rc3.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2017-10-02 11:23:06 +00:00
2b4fc8f546 Merge pull request #190 from Kynetics/master
linux: remove linux-dtb.inc
2017-10-01 20:31:10 +02:00
0c69f0fb5b linux: remove linux-dtb.inc
Adapt to upstream change in oe-core commit 03a00be: now Device Tree support is
automatically enabled when KERNEL_DEVICETREE is set.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2017-09-29 10:06:44 +00:00
fcda1c7baa Merge pull request #186 from twoerner/contrib/twoerner/deprecated-depends
sdcard_image-sunxi.bbclass: fix deprecated notation
2017-07-17 19:09:14 +02:00
77c1026676 sdcard_image-sunxi.bbclass: fix deprecated notation
The older "IMAGE_DEPENDS_*" notation has been deprecated in favour of the
"do_image_...[depends]" notation.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2017-07-17 09:01:30 -04:00
a84d6a40c1 sdcard_image-sunxi: fix dependency loop
As suggested by Andrei Gherzan (see #178):

"The current implementation inherits sdcard_image-sunxi.bbclass
unconditionally which in turn, sets two depends on do_rootfs
unconditionally again.

This means that if I want to build an initramfs image in the
kernel image I will get a dependency loop."

Signed-off-by: Enrico Butera <ebutera@users.sourceforge.net>
2017-04-26 23:34:47 +02:00
4740d3fe2d Merge pull request #175 from Kynetics/master
Add support for eMMC variant of OLinuXino Lime2
2017-04-26 14:01:45 +02:00
0ebd445fbd olinuxino-a20lime2-emmc: add configuration
Add machine configuration file for Olimex A20-OLinuXino Lime2 Board with 4GB
eMMC.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2017-04-26 08:46:45 +00:00
32aad38a16 linux: backport patch for Lime2 eMMC support
Backport patch from v4.10 to fix eMMC support on OLinuXino Lime2.
2017-04-26 08:46:45 +00:00
febf35474a u-boot: adjust root for eMMC boot
Adjust the bootscript so that if U-Boot is loaded from the eMMC, then
kernel "root" parameter is set to use eMMC second partition.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2017-04-26 08:46:45 +00:00
54bc239a3f u-boot: add support for eMMC for OLinuXino Lime2
Add support for eMMC for Olimex A20-OLinuXino Lime2 eMMC board by adding the
appropriate defconfig while waiting it is upstreamed in mainline U-Boot.

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
2017-04-26 08:46:45 +00:00
6705d227ad Merge pull request #180 from koenkooi/kernel-config-master
Kernel config changes (usb storage/serial, filesystems as modules)
2017-04-25 23:42:48 +02:00
229b714fdf linux: enable filesystems as modules
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
2017-04-25 07:51:35 +02:00
df1d78041d linux: enable popular USB serial drivers
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
2017-04-25 07:51:35 +02:00
912fe78aa3 linux: enable support for USB storage
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
2017-04-25 07:51:35 +02:00
7249f90834 Merge pull request #176 from fdlg/master
Add support for Orange Pi PC board
2017-04-24 14:37:59 +02:00
dec3faadd9 Bump versions kernel and u-boot versions for orange pi pc 2017-04-19 17:02:16 -07:00
6b0661dff2 Add support for Orange Pi PC board 2017-04-19 13:33:50 -07:00
aaf413d6a7 Merge pull request #166 from xpete/disabletslib
Disable tslib bbappend

Its usefulness is unknown and it's the only recipe that make us depend on meta-oe
2017-04-11 21:32:08 +02:00
679053489c Merge pull request #172 from twoerner/contrib/twoerner/gcc6-uboot-fix
u-boot-sunxi: gcc6 fix
2017-04-10 22:13:12 +02:00
f2db7fb88e Merge pull request #171 from geomatsi/orange-pi-zero-and-misc-updates
bump u-boot, kernel, enable CONFIG_THERMAL_OF, add new orange-pi-zero board
2017-04-10 22:12:50 +02:00
9d34c6f2f6 u-boot-sunxi: gcc6 fix
Fix the following build error when compiling u-boot-sunxi with gcc6:

	linux/compiler-gcc6.h: No such file or directory

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2017-04-09 20:04:00 -04:00
7037d13e6a Add support for Orange Pi Zero board
Add machine description for Orange Pi Zero board. Detailed hardware
overview is available at the following linux-sunxi wiki page:
http://linux-sunxi.org/Orange_Pi_Zero

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-04-09 19:13:15 +03:00
a6d2bb6b9e Bump versions of kernel and u-boot
Bump preferred u-boot release version and kernel git version:
- kernel 4.11.0-rc5
- u-boot 2017.03

Update preferred versions of u-boot and kernel for all the
boards that are using them: nanopi-neo, orange-pi-one, pcduino.

The purpose of this update is to get the latest features for
sun8i cores including SPI support and orange-pi-zero support

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-04-09 19:13:12 +03:00
8eb8602a76 update kernel defconfig: add CONFIG_THERMAL_OF
This enables CONFIG_THERMAL_OF by default for kernel config. It is
required to get Allwinner SoCs' temperature from the GPADC driver.

For detailed description see mainline kernel commit:
11937f69b65b08d3184b1ebc864668be4b6c5427

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
2017-04-09 19:13:09 +03:00
eb6cb19b84 sdcard_image-sunxi: build fix
Signed-off-by: Enrico Butera <ebutera@users.sourceforge.net>
(cherry picked from commit 941171c912)
2017-04-06 23:12:24 +02:00
d47fa32013 linux: update to 4.9.20
Signed-off-by: Enrico Butera <ebutera@users.sourceforge.net>
2017-04-02 23:23:07 +02:00
f5756a588e Merge branch 'morty' 2017-04-02 23:19:32 +02:00
f0efcf45a9 Merge pull request #167 from xpete/updatekernelto49
Adds the lastest longterm kernel version
2017-04-02 23:13:23 +02:00
4b669303a3 Copy a splash.bmp splash screen for u-boot to the SD card VFAT partition if one is found in the deploy dir 2017-03-17 14:40:52 +02:00
6c696b22d3 Adds the lastest longterm kernel version 2017-02-21 16:26:09 +00:00
12a0cffe6a Disables tslib 2017-02-13 09:39:29 +00:00
9bfe3ca1ad fixed recipe name, updated version and A20-SOM support added
(cherry picked from commit 88b2d34302)
2017-02-07 13:27:11 +01:00
ff23db6e55 added a20som support to pyA20
(cherry picked from commit d1593cf467)
2017-02-07 13:27:08 +01:00
106 changed files with 227086 additions and 308 deletions

View File

@ -3,9 +3,9 @@ meta-sunxi
Official sunxi OpenEmbedded layer for Allwinner-based boards. 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. Tested with core-image-base.
@ -14,24 +14,41 @@ Maintainers:
* Nicolas Aguirre <aguirre.nicolas@gmail.com> * Nicolas Aguirre <aguirre.nicolas@gmail.com>
* Enrico Butera <ebutera@users.sourceforge.net> * Enrico Butera <ebutera@users.sourceforge.net>
* Sergey Lapin <slapin@ossfans.org> * Sergey Lapin <slapin@ossfans.org>
* Marek Belisko <marek.belisko@gmail.com>
Kernel / U-Boot Version Kernel / U-Boot Version
=========== ===========
Most Allwinner devices and hardware are supported in mainline kernel and U-Boot, so this layer builds mainline by default. 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. 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: 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 - change the file conf/machine/include/sunxi.inc to include the following block
- edit your conf/local.conf to add the following block - edit your conf/local.conf to add the following block
PREFERRED_PROVIDER_u-boot="u-boot-sunxi" PREFERRED_PROVIDER_u-boot="u-boot-sunxi"
PREFERRED_PROVIDER_virtual/bootloader="u-boot-sunxi" PREFERRED_PROVIDER_virtual/bootloader="u-boot-sunxi"
PREFERRED_PROVIDER_virtual/kernel="linux-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: If you already have built the mainline versions it might be necessary to reset the build directories with:
bitbake -c clean linux u-boot 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 Performance
=========== ===========

View File

@ -7,42 +7,41 @@ inherit image_types
# The disk layout used is: # The disk layout used is:
# #
# 0 -> 8*1024 - reserverd # 0 -> 8*1024 - reserverd
# 8*1024 -> 32*1024 - # 8*1024 -> - arm combined spl/u-boot or aarch64 spl
# 32*1024 -> 2048*1024 - # 40*1024 -> - aarch64 u-boot
# 2048*1024 -> BOOT_SPACE - bootloader and kernel # 2048*1024 -> BOOT_SPACE - bootloader and kernel
# #
# #
# Use an uncompressed ext4 by default as rootfs
SDIMG_ROOTFS_TYPE ?= "ext4"
# This image depends on the rootfs image # This image depends on the rootfs image
IMAGE_TYPEDEP_sunxi-sdimg = "${SDIMG_ROOTFS_TYPE}" IMAGE_TYPEDEP:sunxi-sdimg = "${SDIMG_ROOTFS_TYPE}"
# Boot partition volume id # Boot partition volume id
BOOTDD_VOLUME_ID ?= "${MACHINE}" BOOTDD_VOLUME_ID ?= "boot"
# Boot partition size [in KiB] # Boot partition size [in KiB]
BOOT_SPACE ?= "20480" BOOT_SPACE ?= "40960"
# First partition begin at sector 2048 : 2048*1024 = 2097152 # First partition begin at sector 2048 : 2048*1024 = 2097152
IMAGE_ROOTFS_ALIGNMENT = "2048" IMAGE_ROOTFS_ALIGNMENT = "2048"
# Use an uncompressed ext3 by default as rootfs
SDIMG_ROOTFS_TYPE ?= "ext4"
SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.${SDIMG_ROOTFS_TYPE}" SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.${SDIMG_ROOTFS_TYPE}"
IMAGE_DEPENDS_sunxi-sdimg += " \ do_image_sunxi_sdimg[depends] += " \
parted-native \ parted-native:do_populate_sysroot \
mtools-native \ mtools-native:do_populate_sysroot \
dosfstools-native \ dosfstools-native:do_populate_sysroot \
virtual/kernel \ virtual/kernel:do_deploy \
virtual/bootloader \ virtual/bootloader:do_deploy \
" "
rootfs[depends] += "virtual/kernel:do_deploy"
# SD card image name # SD card image name
SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.sunxi-sdimg" SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.sunxi-sdimg"
IMAGE_CMD_sunxi-sdimg () { IMAGE_CMD:sunxi-sdimg () {
# Align partitions # Align partitions
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1) BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
@ -66,17 +65,23 @@ IMAGE_CMD_sunxi-sdimg () {
rm -f ${WORKDIR}/boot.img rm -f ${WORKDIR}/boot.img
mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS 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 ::uImage mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin ::${KERNEL_IMAGETYPE}
# Copy device tree file # Copy device tree file
if test -n "${KERNEL_DEVICETREE}"; then if test -n "${KERNEL_DEVICETREE}"; then
for DTS_FILE in ${KERNEL_DEVICETREE}; do for DTS_FILE in ${KERNEL_DEVICETREE}; do
DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "." '{print $1}'` DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "." '{print $1}'`
if [ -e ${DEPLOY_DIR_IMAGE}/"${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb" ]; then DTS_DIR_NAME=`dirname ${DTS_FILE}`
if [ -e ${DEPLOY_DIR_IMAGE}/"${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="`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"`" kernel_bin_for_dtb="`readlink ${DEPLOY_DIR_IMAGE}/${DTS_BASE_NAME}.dtb | sed "s,$DTS_BASE_NAME,${KERNEL_IMAGETYPE},g;s,\.dtb$,.bin,g"`"
if [ $kernel_bin = $kernel_bin_for_dtb ]; then if [ $kernel_bin = $kernel_bin_for_dtb ]; then
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb ::/${DTS_BASE_NAME}.dtb mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${DTS_BASE_NAME}.dtb ::/${DTS_FILE}
fi fi
fi fi
done done
@ -90,6 +95,10 @@ IMAGE_CMD_sunxi-sdimg () {
then then
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/boot.scr ::boot.scr mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/boot.scr ::boot.scr
fi fi
if [ -e "${DEPLOY_DIR_IMAGE}/splash.bmp" ]
then
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/splash.bmp ::splash.bmp
fi
# Add stamp file # Add stamp file
@ -106,7 +115,15 @@ IMAGE_CMD_sunxi-sdimg () {
dd if=${SDIMG_ROOTFS} of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync dd if=${SDIMG_ROOTFS} of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
fi fi
#write u-boot and spl at the beginint of sdcard in one shot # write u-boot-spl at the begining of sdcard in one shot
dd if=${DEPLOY_DIR_IMAGE}/u-boot-sunxi-with-spl.bin of=${SDIMG} bs=1024 seek=8 conv=notrunc 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
} }

View File

@ -7,3 +7,11 @@ BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"
BBFILE_COLLECTIONS += "meta-sunxi" BBFILE_COLLECTIONS += "meta-sunxi"
BBFILE_PATTERN_meta-sunxi := "^${LAYERDIR}/" BBFILE_PATTERN_meta-sunxi := "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-sunxi = "10" BBFILE_PRIORITY_meta-sunxi = "10"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_meta-sunxi = "1"
LAYERDEPENDS_meta-sunxi = "core meta-python"
LAYERSERIES_COMPAT_meta-sunxi = "honister kirkstone"

View 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"

View 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"

View 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"

View 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"

View File

@ -1,5 +1,5 @@
require conf/machine/include/sunxi.inc require conf/machine/include/sunxi.inc
require conf/machine/include/sunxi-mali.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" SOC_FAMILY = "sun4i"

View File

@ -0,0 +1,6 @@
require conf/machine/include/sunxi64.inc
DEFAULTTUNE ?= "cortexa53-crypto"
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
SOC_FAMILY = "sun50i"

View File

@ -1,5 +1,5 @@
require conf/machine/include/sunxi.inc require conf/machine/include/sunxi.inc
require conf/machine/include/sunxi-mali.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" SOC_FAMILY = "sun5i"

View File

@ -1,5 +1,5 @@
require conf/machine/include/sunxi.inc require conf/machine/include/sunxi.inc
require conf/machine/include/sunxi-mali.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" SOC_FAMILY = "sun7i"

View File

@ -1,5 +1,5 @@
require conf/machine/include/sunxi.inc require conf/machine/include/sunxi.inc
require conf/machine/include/sunxi-mali.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" SOC_FAMILY = "sun8i"

View 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 \
"

View File

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

View File

@ -1,32 +1,48 @@
SOC_FAMILY ??= "" SOC_FAMILY ??= ""
include conf/machine/include/soc-family.inc include conf/machine/include/soc-family.inc
MACHINEOVERRIDES =. "sunxi:"
# Sub-architecture support # Sub-architecture support
MACHINE_SOCARCH_SUFFIX ?= "" MACHINE_SOCARCH_SUFFIX ?= ""
MACHINE_SOCARCH_SUFFIX_sun4i = "-sun4i" MACHINE_SOCARCH_SUFFIX_sun4i = "-sun4i"
PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg" PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
XSERVER = "xserver-xorg \ XSERVER = "xserver-xorg \
xf86-video-fbturbo \
xf86-input-evdev \ xf86-input-evdev \
xf86-input-mouse \ xf86-input-mouse \
xf86-input-keyboard" xf86-input-keyboard"
PREFERRED_PROVIDER_virtual/kernel ?= "linux" PREFERRED_PROVIDER_virtual/kernel ?= "linux-mainline"
PREFERRED_VERSION_linux-mainline ?= "5.15.%"
PREFERRED_PROVIDER_u-boot ?= "u-boot" PREFERRED_PROVIDER_u-boot ?= "u-boot"
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot"
KERNEL_IMAGETYPE ?= "uImage" KERNEL_IMAGETYPE ?= "uImage"
IMAGE_CLASSES += "sdcard_image-sunxi" IMAGE_CLASSES += "sdcard_image-sunxi"
IMAGE_FSTYPES += "ext3 tar.gz sunxi-sdimg" IMAGE_FSTYPES += "ext3 tar.gz sunxi-sdimg wic.gz wic.bmap"
MACHINE_EXTRA_RRECOMMENDS = "kernel-modules" MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
UBOOT_LOCALVERSION = "-g${@d.getVar('SRCPV', True).partition('+')[2][0:7]}" UBOOT_LOCALVERSION = "-g${@d.getVar('SRCPV', True).partition('+')[2][0:7]}"
UBOOT_ENTRYPOINT ?= "0x40008000" UBOOT_ENTRYPOINT ?= "0x40008000"
UBOOT_LOADADDRESS ?= "0x400080OB00"
SPL_BINARY ?= "u-boot-sunxi-with-spl.bin"
SERIAL_CONSOLE ?= "115200 ttyS0" SERIAL_CONSOLE ?= "115200 ttyS0"
MACHINE_FEATURES ?= "alsa apm keyboard rtc serial screen usbgadget usbhost vfat" 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)}"

View File

@ -0,0 +1,26 @@
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"
MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
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"
SERIAL_CONSOLE ?= "115200 ttyS0"
MACHINE_FEATURES ?= "alsa apm keyboard rtc serial screen usbgadget usbhost vfat"

View 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"

View 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"

View File

@ -0,0 +1,9 @@
#@TYPE: Machine
#@NAME: nanopi-duo2
#@DESCRIPTION: Machine configuration for the FriendlyARM NanoPi Duo2, based on the Allwinner H3 CPU
require conf/machine/include/sun8i.inc
KERNEL_DEVICETREE = "sun8i-h3-nanopi-duo2.dtb"
UBOOT_MACHINE = "nanopi_duo2_defconfig"

View 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"

View 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"

View File

@ -0,0 +1,9 @@
#@TYPE: Machine
#@NAME: nanopi-neo-air
#@DESCRIPTION: Machine configuration for the FriendlyARM NanoPi Neo Air, based
# on the Allwinner H3 CPU.
require conf/machine/include/sun8i.inc
KERNEL_DEVICETREE = "sun8i-h3-nanopi-neo-air.dtb"
UBOOT_MACHINE = "nanopi_neo_air_defconfig"

View File

@ -0,0 +1,10 @@
#@TYPE: Machine
#@NAME: nanopi-neo-plus2
#@DESCRIPTION: Machine configuration for the FriendlyARM NanoPi Neo Plus2, based
# on the Allwinner H5 SoC.
require conf/machine/include/sun50i.inc
require conf/machine/include/hardware/ap6212a.inc
KERNEL_DEVICETREE = "allwinner/sun50i-h5-nanopi-neo-plus2.dtb"
UBOOT_MACHINE = "nanopi_neo_plus2_defconfig"

View File

@ -4,10 +4,6 @@
require conf/machine/include/sun8i.inc require conf/machine/include/sun8i.inc
PREFERRED_VERSION_linux = "4.9.0+git%"
PREFERRED_VERSION_u-boot = "v2016.11%"
KERNEL_DEVICETREE = "sun8i-h3-nanopi-neo.dtb" KERNEL_DEVICETREE = "sun8i-h3-nanopi-neo.dtb"
UBOOT_MACHINE = "nanopi_neo_defconfig" UBOOT_MACHINE = "nanopi_neo_defconfig"
DEFAULTTUNE = "cortexa7hf-neon-vfpv4"

View File

@ -0,0 +1,9 @@
#@TYPE: Machine
#@NAME: nanopi-neo2
#@DESCRIPTION: Machine configuration for the FriendlyARM NanoPi Neo 2, based on
# the Allwinner H5 SoC.
require conf/machine/include/sun50i.inc
KERNEL_DEVICETREE = "allwinner/sun50i-h5-nanopi-neo2.dtb"
UBOOT_MACHINE = "nanopi_neo2_defconfig"

View 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"

View File

@ -0,0 +1,10 @@
#@TYPE: Machine
#@NAME: Olimex A20-OLinuXino Lime2 Board with 4GB eMMC
#@DESCRIPTION: Machine configuration for the Olimex A20-OLinuXino Lime2 Board with 4GB eMMC, based on Allwinner A20 CPU
#https://github.com/OLIMEX/OLINUXINO
require conf/machine/include/sun7i.inc
KERNEL_DEVICETREE = "sun7i-a20-olinuxino-lime2-emmc.dtb"
UBOOT_MACHINE = "A20-OLinuXino-Lime2-eMMC_config"
SUNXI_FEX_FILE = "sys_config/a20/a20-olinuxino_lime2.fex"

View 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"

View 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"

View File

@ -4,10 +4,6 @@
require conf/machine/include/sun8i.inc require conf/machine/include/sun8i.inc
PREFERRED_VERSION_linux = "4.9.0+git%"
PREFERRED_VERSION_u-boot = "v2016.11%"
KERNEL_DEVICETREE = "sun8i-h3-orangepi-one.dtb" KERNEL_DEVICETREE = "sun8i-h3-orangepi-one.dtb"
UBOOT_MACHINE = "orangepi_one_defconfig" UBOOT_MACHINE = "orangepi_one_defconfig"
DEFAULTTUNE = "cortexa7hf-neon-vfpv4"

View File

@ -0,0 +1,9 @@
#@TYPE: Machine
#@NAME: orange-pi-pc-plus
#@DESCRIPTION: Machine configuration for the orange-pi-pc-plus, base on allwinner H3 CPU
require conf/machine/include/sun8i.inc
KERNEL_DEVICETREE = "sun8i-h3-orangepi-pc-plus.dtb"
UBOOT_MACHINE = "orangepi_pc_plus_defconfig"

View File

@ -0,0 +1,9 @@
#@TYPE: Machine
#@NAME: orange-pi-one
#@DESCRIPTION: Machine configuration for the orange-pi-one, base on allwinner H3 CPU
require conf/machine/include/sun8i.inc
KERNEL_DEVICETREE = "sun8i-h3-orangepi-pc.dtb"
UBOOT_MACHINE = "orangepi_pc_defconfig"

View 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"

View 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"

View 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"

View File

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

View File

@ -0,0 +1,9 @@
#@TYPE: Machine
#@NAME: orange-pi-one
#@DESCRIPTION: Machine configuration for the orange-pi-one, base on allwinner H3 CPU
require conf/machine/include/sun8i.inc
KERNEL_DEVICETREE = "sun8i-h2-plus-orangepi-zero.dtb"
UBOOT_MACHINE = "orangepi_zero_defconfig"

View File

@ -0,0 +1,14 @@
#@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.inc
KERNEL_DEVICETREE = "allwinner/sun50i-h616-orangepi-zero2.dtb"
UBOOT_MACHINE = "orangepi_zero2_defconfig"
# as for now neither graphics nor audio is supported
MACHINE_FEATURES:remove = "alsa x11"
MACHINE_FEATURES:append = "bluetooth wifi"
MACHINE_EXTRA_RRECOMMENDS = "uwe5622-firmware"

View File

@ -4,9 +4,6 @@
require conf/machine/include/sun4i.inc require conf/machine/include/sun4i.inc
PREFERRED_VERSION_linux = "4.9.0+git%"
PREFERRED_VERSION_u-boot = "v2016.11%"
KERNEL_DEVICETREE = "sun4i-a10-pcduino.dtb" KERNEL_DEVICETREE = "sun4i-a10-pcduino.dtb"
UBOOT_MACHINE = "Linksprite_pcDuino_defconfig" UBOOT_MACHINE = "Linksprite_pcDuino_defconfig"
SUNXI_FEX_FILE = "sys_config/a10/pcduino.fex" SUNXI_FEX_FILE = "sys_config/a10/pcduino.fex"

View 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"

View 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"

View File

@ -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

View File

@ -0,0 +1,29 @@
DESCRIPTION = "ARM Trusted Firmware Allwinner"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://license.md;md5=829bdeb34c1d9044f393d5a16c068371"
SRC_URI = "git://github.com/apritzel/arm-trusted-firmware;nobranch=1;protocol=https"
SRCREV = "aa75c8da415158a94b82a430b2b40000778e851f"
SRC_URI:append = " file://0001-Use-same-type-as-in-declaration.patch"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
COMPATIBLE_MACHINE = "(sun50i)"
PLATFORM:sun50i = "sun50iw1p1"
LDFLAGS[unexport] = "1"
do_compile() {
oe_runmake -C ${S} BUILD_BASE=${B} \
CROSS_COMPILE=${TARGET_PREFIX} \
PLAT=${PLATFORM} \
bl31 \
all
}
do_install() {
install -D -p -m 0644 ${B}/${PLATFORM}/release/bl31.bin ${DEPLOY_DIR_IMAGE}/bl31.bin
}

View File

@ -9,9 +9,9 @@ PR = "r0"
COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i)" 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 # Increase PV with SRCREV change
SRCREV = "496ef0fbd166cc2395daa76dd3c359357420963d" SRCREV = "af5f938ea14a3614d35ad3d9ab51a5d392117444"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"

View File

@ -0,0 +1,21 @@
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 806d95c1cc..8899cc3a15 100644
--- a/configs/nanopi_neo_air_defconfig
+++ b/configs/nanopi_neo_air_defconfig
@@ -9,3 +9,4 @@ CONFIG_DRAM_CLK=408
CONFIG_CONSOLE_MUX=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
+CONFIG_MMC_SUNXI_SLOT_EXTRA=2

View File

@ -0,0 +1,167 @@
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>
---
arch/arm/dts/Makefile | 1 +
arch/arm/dts/sun8i-h3-nanopi-r1.dts | 102 ++++++++++++++++++++++++++++++++++++
configs/nanopi_r1_defconfig | 22 ++++++++
3 files changed, 125 insertions(+)
create mode 100644 arch/arm/dts/sun8i-h3-nanopi-r1.dts
create mode 100644 configs/nanopi_r1_defconfig
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 9fb3868..6743e32 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -600,6 +600,7 @@ dtb-$(CONFIG_MACH_SUN8I_H3) += \
sun8i-h3-nanopi-m1-plus.dtb \
sun8i-h3-nanopi-neo.dtb \
sun8i-h3-nanopi-neo-air.dtb \
+ sun8i-h3-nanopi-r1.dtb \
sun8i-h3-orangepi-2.dtb \
sun8i-h3-orangepi-lite.dtb \
sun8i-h3-orangepi-one.dtb \
diff --git a/arch/arm/dts/sun8i-h3-nanopi-r1.dts b/arch/arm/dts/sun8i-h3-nanopi-r1.dts
new file mode 100644
index 0000000..9c3c574
--- /dev/null
+++ b/arch/arm/dts/sun8i-h3-nanopi-r1.dts
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2019 Igor Pecovnik <igor@armbian.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "sun8i-h3-nanopi.dtsi"
+
+/ {
+ model = "FriendlyARM NanoPi R1";
+ compatible = "friendlyarm,nanopi-neo", "allwinner,sun8i-h3";
+
+ reg_gmac_3v3: gmac-3v3 {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ regulator-name = "gmac-3v3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ startup-delay-us = <100000>;
+ enable-active-high;
+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
+ };
+
+};
+
+&ehci0 {
+ status = "okay";
+};
+
+&pio {
+ gmac_power_pin_nanopi: gmac_power_pin@0 {
+ pins = "PD6";
+ function = "gpio_out";
+ };
+};
+
+&ohci0 {
+ status = "okay";
+};
+
+&mmc2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc2_8bit_pins>;
+ vmmc-supply = <&reg_vcc3v3>;
+ bus-width = <8>;
+ non-removable;
+ cap-mmc-hw-reset;
+ status = "okay";
+};
+
+&emac {
+ pinctrl-names = "default";
+ pinctrl-0 = <&emac_rgmii_pins>;
+ phy-supply = <&reg_gmac_3v3>;
+ phy-handle = <&ext_rgmii_phy>;
+ phy-mode = "rgmii";
+
+ status = "okay";
+};
+
+&external_mdio {
+ ext_rgmii_phy: ethernet-phy@1 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <7>;
+ };
+};
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

View File

@ -0,0 +1,28 @@
diff --git a/configs/nanopi_duo2_defconfig b/configs/nanopi_duo2_defconfig
new file mode 100644
index 0000000..1e51018
--- /dev/null
+++ b/configs/nanopi_duo2_defconfig
@@ -0,0 +1,21 @@
+CONFIG_ARM=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_SYS_TEXT_BASE=0x4a000000
+CONFIG_SPL_SPI_FLASH_SUPPORT=y
+CONFIG_MACH_SUN8I_H3=y
+CONFIG_DRAM_CLK=408
+CONFIG_DRAM_ZQ=3881979
+CONFIG_DRAM_ODT_EN=y
+# CONFIG_VIDEO_DE2 is not set
+CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-duo2"
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
+CONFIG_CONSOLE_MUX=y
+CONFIG_SPL=y
+CONFIG_SYS_CLK_FREQ=480000000
+# CONFIG_CMD_IMLS is not set
+# CONFIG_CMD_FLASH is not set
+# CONFIG_CMD_FPGA is not set
+CONFIG_SPL_SPI_SUNXI=y
+CONFIG_SUN8I_EMAC=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y

View File

@ -0,0 +1,32 @@
From eb31a4a141bf401f92426bd053a965022e47290d Mon Sep 17 00:00:00 2001
From: Chris Morgan <macromorgan@hotmail.com>
Date: Fri, 7 Jan 2022 11:52:54 -0600
Subject: [PATCH] i2c: mvtwsi: Add compatible string for allwinner,
sun4i-a10-i2c
This adds a compatible string for the Allwinner Sun4i-A10 I2C
controller. Without this, boards based on the R8 and A13 (at a
minimum) fail to boot.
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Acked-by: Akash Gajjar <gajjar04akash@gmail.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
drivers/i2c/mvtwsi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/i2c/mvtwsi.c b/drivers/i2c/mvtwsi.c
index bad4b1484f..f48a4f25aa 100644
--- a/drivers/i2c/mvtwsi.c
+++ b/drivers/i2c/mvtwsi.c
@@ -900,6 +900,7 @@ static const struct dm_i2c_ops mvtwsi_i2c_ops = {
static const struct udevice_id mvtwsi_i2c_ids[] = {
{ .compatible = "marvell,mv64xxx-i2c", },
{ .compatible = "marvell,mv78230-i2c", },
+ { .compatible = "allwinner,sun4i-a10-i2c", },
{ .compatible = "allwinner,sun6i-a31-i2c", },
{ /* sentinel */ }
};
--
2.34.1

View 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=mmcblk1p2
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}

View File

@ -1,4 +1,11 @@
setenv bootargs console=${console} console=tty1 root=/dev/mmcblk0p2 rootwait panic=10 ${extra} # 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=mmcblk1p2
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 ${fdt_addr_r} boot/${fdtfile} load mmc 0:1 ${fdt_addr_r} ${fdtfile} || load mmc 0:1 ${fdt_addr_r} boot/${fdtfile}
load mmc 0:1 ${kernel_addr_r} zImage || load mmc 0:1 ${kernel_addr_r} boot/zImage || load mmc 0:1 ${kernel_addr_r} uImage || load mmc 0:1 ${kernel_addr_r} boot/uImage load mmc 0:1 ${kernel_addr_r} zImage || load mmc 0:1 ${kernel_addr_r} boot/zImage || load mmc 0:1 ${kernel_addr_r} uImage || load mmc 0:1 ${kernel_addr_r} boot/uImage
bootz ${kernel_addr_r} - ${fdt_addr_r} || bootm ${kernel_addr_r} - ${fdt_addr_r} bootz ${kernel_addr_r} - ${fdt_addr_r} || bootm ${kernel_addr_r} - ${fdt_addr_r}

View File

@ -2,7 +2,7 @@ DESCRIPTION = "U-Boot port for sunxi"
require recipes-bsp/u-boot/u-boot.inc 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" LIC_FILES_CHKSUM = "file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
# No patches for other machines yet # No patches for other machines yet
@ -19,8 +19,10 @@ UBOOT_MACHINE_olinuxino-a10s = "A10s-OLinuXino-Micro_config"
UBOOT_MACHINE_meleg = "Mele_A1000G_config" UBOOT_MACHINE_meleg = "Mele_A1000G_config"
SRC_URI = " \ SRC_URI = " \
git://github.com/linux-sunxi/u-boot-sunxi.git;protocol=git;branch=sunxi \ git://github.com/linux-sunxi/u-boot-sunxi.git;protocol=https;branch=sunxi \
file://0002-gcc5-fixes.patch \ file://0001-gcc5-fixes.patch \
file://0002-gcc6-fixes.patch \
file://0003-No-gcc-version-specific-includes.patch \
" "
PE = "1" PE = "1"
@ -34,3 +36,7 @@ S = "${WORKDIR}/git"
PACKAGE_ARCH = "${MACHINE_ARCH}" PACKAGE_ARCH = "${MACHINE_ARCH}"
SPL_BINARY="u-boot-sunxi-with-spl.bin" SPL_BINARY="u-boot-sunxi-with-spl.bin"
do_configure () {
oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE}
}

View File

@ -0,0 +1,69 @@
diff -urN git-ORIG/include/linux/compiler-gcc6.h git/include/linux/compiler-gcc6.h
--- git-ORIG/include/linux/compiler-gcc6.h 1969-12-31 19:00:00.000000000 -0500
+++ git/include/linux/compiler-gcc6.h 2017-04-09 19:50:16.920945874 -0400
@@ -0,0 +1,65 @@
+#ifndef __LINUX_COMPILER_H
+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
+#endif
+
+#define __used __attribute__((__used__))
+#define __must_check __attribute__((warn_unused_result))
+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
+
+/* Mark functions as cold. gcc will assume any path leading to a call
+ to them will be unlikely. This means a lot of manual unlikely()s
+ are unnecessary now for any paths leading to the usual suspects
+ like BUG(), printk(), panic() etc. [but let's keep them for now for
+ older compilers]
+
+ Early snapshots of gcc 4.3 don't support this and we can't detect this
+ in the preprocessor, but we can live with this because they're unreleased.
+ Maketime probing would be overkill here.
+
+ gcc also has a __attribute__((__hot__)) to move hot functions into
+ a special section, but I don't see any sense in this right now in
+ the kernel context */
+#define __cold __attribute__((__cold__))
+
+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
+
+#ifndef __CHECKER__
+# define __compiletime_warning(message) __attribute__((warning(message)))
+# define __compiletime_error(message) __attribute__((error(message)))
+#endif /* __CHECKER__ */
+
+/*
+ * Mark a position in code as unreachable. This can be used to
+ * suppress control flow warnings after asm blocks that transfer
+ * control elsewhere.
+ *
+ * Early snapshots of gcc 4.5 don't support this and we can't detect
+ * this in the preprocessor, but we can live with this because they're
+ * unreleased. Really, we need to have autoconf for the kernel.
+ */
+#define unreachable() __builtin_unreachable()
+
+/* Mark a function definition as prohibited from being cloned. */
+#define __noclone __attribute__((__noclone__))
+
+/*
+ * Tell the optimizer that something else uses this function or variable.
+ */
+#define __visible __attribute__((externally_visible))
+
+/*
+ * GCC 'asm goto' miscompiles certain code sequences:
+ *
+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
+ *
+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
+ *
+ * (asm goto is automatically volatile - the naming reflects this.)
+ */
+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
+
+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
+#define __HAVE_BUILTIN_BSWAP32__
+#define __HAVE_BUILTIN_BSWAP64__
+#define __HAVE_BUILTIN_BSWAP16__
+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */

View File

@ -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

View File

@ -0,0 +1,32 @@
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://0003-Add-nanopi-duo2-board-support.patch \
file://0004-i2c-mvtwsi-Add-compatible-string-for-allwinner-sun4i.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}
}

View File

@ -1,47 +0,0 @@
DESCRIPTION="Upstream's U-boot configured for sunxi devices"
require recipes-bsp/u-boot/u-boot.inc
DEPENDS += "dtc-native"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "\
file://Licenses/Exceptions;md5=338a7cb1e52d0d1951f83e15319a3fe7 \
file://Licenses/bsd-2-clause.txt;md5=6a31f076f5773aabd8ff86191ad6fdd5 \
file://Licenses/bsd-3-clause.txt;md5=4a1190eac56a9db675d58ebe86eaf50c \
file://Licenses/eCos-2.0.txt;md5=b338cb12196b5175acd3aa63b0a0805c \
file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://Licenses/ibm-pibs.txt;md5=c49502a55e35e0a8a1dc271d944d6dba \
file://Licenses/isc.txt;md5=ec65f921308235311f34b79d844587eb \
file://Licenses/lgpl-2.0.txt;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c \
file://Licenses/x11.txt;md5=b46f176c847b8742db02126fb8af92e2 \
"
COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i|sun8i)"
DEFAULT_PREFERENCE_sun4i="1"
DEFAULT_PREFERENCE_sun5i="1"
DEFAULT_PREFERENCE_sun7i="1"
DEFAULT_PREFERENCE_sun8i="1"
SRC_URI = "git://git.denx.de/u-boot.git;branch=master \
file://boot.cmd"
SRCREV = "29e0cfb4f77f7aa369136302cee14a91e22dca71"
PV = "v2016.11+git${SRCPV}"
PE = "2"
S = "${WORKDIR}/git"
SPL_BINARY="u-boot-sunxi-with-spl.bin"
UBOOT_ENV_SUFFIX = "scr"
UBOOT_ENV = "boot"
do_compile_append() {
${B}/tools/mkimage -C none -A arm -T script -d ${WORKDIR}/boot.cmd ${WORKDIR}/${UBOOT_ENV_BINARY}
}

View File

@ -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):

View File

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

View File

@ -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 = "http://pypi.python.org/packages/source/p/pyA20SOM/pyA20SOM-${PV}.tar.gz \
file://setup.py.patch \
file://mapping.h \
"
S = "${WORKDIR}/pyA20SOM-${PV}"
inherit distutils
do_compile_prepend() {
cp ${WORKDIR}/mapping.h ${S}/pyA20SOM/gpio/mapping.h
}
SRC_URI[md5sum] = "a720115ef1d3dffe82f42f2157ca1c56"
SRC_URI[sha256sum] = "1ac1025596cc112964f7caac9a6a523d5da61623c248ccc178c6cbb4bc1b4549"

View File

@ -21,7 +21,7 @@ python __anonymous() {
raise bb.parse.SkipPackage("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv)) raise bb.parse.SkipPackage("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
} }
SRCREV_pn-${PN} = "d343311efc8db166d8371b28494f0f27b6a58724" SRCREV = "d343311efc8db166d8371b28494f0f27b6a58724"
SRC_URI = "gitsm://github.com/linux-sunxi/sunxi-mali.git \ SRC_URI = "gitsm://github.com/linux-sunxi/sunxi-mali.git \
file://0001-Add-EGLSyncKHR-EGLTimeKHR-and-GLChar-definition.patch \ file://0001-Add-EGLSyncKHR-EGLTimeKHR-and-GLChar-definition.patch \
file://0002-Add-missing-GLchar-definition.patch \ file://0002-Add-missing-GLchar-definition.patch \
@ -31,7 +31,7 @@ SRC_URI = "gitsm://github.com/linux-sunxi/sunxi-mali.git \
S = "${WORKDIR}/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 ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
PACKAGECONFIG[wayland] = "EGL_TYPE=framebuffer,,," 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
make libdir=${D}${libdir}/ includedir=${D}${includedir}/ install -C include 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 # 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} # 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 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 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 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 like xf86-video-fbturbo dlopen() libUMP.so, so we do need to ship the .so files in ${PN}
PACKAGES =+ "${PN}-test" PACKAGES =+ "${PN}-test"
RPROVIDES_${PN} += "libGLESv2.so libEGL.so libGLESv2.so libGLESv1_CM.so libMali.so" RPROVIDES:${PN} += "libGLESv2.so libEGL.so libGLESv2.so libGLESv1_CM.so libMali.so"
RDEPENDS_${PN}-test = "${PN}" RDEPENDS:${PN}-test = "${PN}"
FILES_${PN} += "${libdir}/lib*.so" FILES:${PN} += "${libdir}/lib*.so"
FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig/*" FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig/*"
FILES_${PN}-test = "${bindir}/sunximali-test" FILES:${PN}-test = "${bindir}/sunximali-test"
# These are closed binaries generated elsewhere so don't check ldflags & text relocations # These are closed binaries generated elsewhere so don't check ldflags & text relocations
INSANE_SKIP_${PN} = "dev-so ldflags textrel" INSANE_SKIP:${PN} = "dev-so ldflags textrel"
INSANE_SKIP_${PN}-test = "dev-so ldflags textrel" INSANE_SKIP:${PN}-test = "dev-so ldflags textrel"

View File

@ -1,14 +1,14 @@
DESCRIPTION = "Unified Memory Provider userspace API source code needed for xf86-video-mali compilation" 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" LIC_FILES_CHKSUM = "file://debian/copyright;md5=edf7fb6071cae7ec80d537a05ee17198"
inherit autotools inherit autotools
PV = "r4p0-00rel0+git${SRCPV}" 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" S = "${WORKDIR}/git"

View File

@ -0,0 +1 @@
PACKAGECONFIG:class-target = "opengl x11 gallium"

View 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"

View File

@ -1,4 +0,0 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://tslib.patch"

View File

@ -0,0 +1,4 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://tslib.patch"

View File

@ -1,15 +1,15 @@
DESCRIPTION = "Library for the DRI2 extension to the X Window System" DESCRIPTION = "Library for the DRI2 extension to the X Window System"
LICENSE = "MIT-X" LICENSE = "MIT-CMU"
LIC_FILES_CHKSUM = "file://COPYING;md5=827da9afab1f727f2a66574629e0f39c" LIC_FILES_CHKSUM = "file://COPYING;md5=827da9afab1f727f2a66574629e0f39c"
DEPENDS = "libdrm libxext xextproto libxfixes dri2proto" DEPENDS = "libdrm libxext libxfixes xorgproto"
PE = "1" PE = "1"
PV = "1.0.0+git${SRCPV}" PV = "1.0.0+git${SRCPV}"
SRC_URI = "git://github.com/robclark/libdri2.git;protocol=http;branch=master" SRC_URI = "git://github.com/robclark/libdri2.git;protocol=http;branch=master"
SRCREV_pn-${PN} = "4f1eef3183df2b270c3d5cbef07343ee5127a6a4" SRCREV = "4f1eef3183df2b270c3d5cbef07343ee5127a6a4"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"

View File

@ -2,14 +2,14 @@ require recipes-graphics/xorg-driver/xorg-driver-video.inc
DESCRIPTION = "X.Org X server -- A10/A13 display driver" DESCRIPTION = "X.Org X server -- A10/A13 display driver"
LICENSE = "MIT-X" LICENSE = "MIT-CMU"
LIC_FILES_CHKSUM = "file://COPYING;md5=f91dc3ee5ce59eb4b528e67e98a31266" LIC_FILES_CHKSUM = "file://COPYING;md5=f91dc3ee5ce59eb4b528e67e98a31266"
DEPENDS += "sunxi-mali libump xf86driproto" DEPENDS += "sunxi-mali libump xorgproto"
PE = "3" PE = "3"
PV = "0.5.1+git${SRCPV}" 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 \ SRC_URI = "git://github.com/ssvb/xf86-video-fbturbo.git;protocol=http;branch=master \
file://20-fbturbo.conf" file://20-fbturbo.conf"
@ -18,9 +18,9 @@ S = "${WORKDIR}/git"
CFLAGS += " -I${STAGING_INCDIR}/xorg " CFLAGS += " -I${STAGING_INCDIR}/xorg "
do_install_append() { do_install:append() {
install -d ${D}${datadir}/X11/xorg.conf.d install -d ${D}${datadir}/X11/xorg.conf.d
install -m 0644 ${WORKDIR}/20-fbturbo.conf ${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"

View File

@ -1 +1 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"

View File

@ -0,0 +1 @@
DEPENDS += "libxshmfence"

View 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
}

View File

@ -0,0 +1,32 @@
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}"
SRC_URI = "https://www.kernel.org/pub/linux/kernel/v5.x/linux-${PV}.tar.xz \
file://0001-dts-orange-pi-zero-Add-wifi-support.patch \
file://defconfig \
"
SRC_URI:append:use-mailine-graphics = " file://drm.cfg"
SRC_URI:append:bananapi = " file://axp20x.cfg"
SRC_URI:append:cubietruck = " file://axp20x.cfg"
FILES_${KERNEL_PACKAGE_NAME}-base:append = " ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo"

View File

@ -0,0 +1,87 @@
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
index 84cd9c061..917986cce 100644
--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
+++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
@@ -80,13 +80,15 @@
};
};
- reg_vcc_wifi: reg_vcc_wifi {
+ vdd_wifi: vdd_wifi {
compatible = "regulator-fixed";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-name = "vcc-wifi";
- enable-active-high;
+ regulator-name = "wifi";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
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 {
compatible = "mmc-pwrseq-simple";
+ pinctrl-names = "default";
+ pinctrl-0 = <&wifi_rst>;
reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>;
- post-power-on-delay-ms = <200>;
+ post-power-on-delay-ms = <50>;
};
};
@@ -140,9 +144,11 @@
};
&mmc1 {
- vmmc-supply = <&reg_vcc_wifi>;
- mmc-pwrseq = <&wifi_pwrseq>;
+ vmmc-supply = <&reg_vcc3v3>;
+ vqmmc-supply = <&vdd_wifi>;
+ mmc-pwrseq = <&pwrseq_wifi>;
bus-width = <4>;
+ max-frequency = <16000000>;
non-removable;
status = "okay";
@@ -152,6 +158,13 @@
*/
xr819: sdio_wifi@1 {
reg = <1>;
+ compatible = "xradio,xr819";
+ pinctrl-names = "default";
+ pinctrl-0 = <&wifi_wake>;
+ interrupt-parent = <&pio>;
+ interrupts = <6 10 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "host-wake";
+ local-mac-address = [dc 44 6d c0 ff ee];
};
};
@@ -208,3 +221,18 @@
status = "okay";
usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
};
+
+&pio {
+ wifi_wake: wifi_wake {
+ pins = "PG10";
+ function = "gpio_in";
+ };
+};
+
+&r_pio {
+ wifi_rst: wifi_rst {
+ pins = "PL7";
+ function = "gpio_out";
+ };
+};
+

View File

@ -0,0 +1,620 @@
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_AUDIT=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_NUMA_BALANCING=y
CONFIG_MEMCG=y
CONFIG_MEMCG_SWAP=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_HUGETLB=y
CONFIG_CPUSETS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
CONFIG_USER_NS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_ALL=y
# CONFIG_COMPAT_BRK is not set
CONFIG_PROFILING=y
CONFIG_JUMP_LABEL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_ARCH_SUNXI=y
CONFIG_ARCH_ALPINE=y
CONFIG_ARCH_BCM2835=y
CONFIG_ARCH_BCM_IPROC=y
CONFIG_ARCH_BERLIN=y
CONFIG_ARCH_BRCMSTB=y
CONFIG_ARCH_EXYNOS=y
CONFIG_ARCH_LAYERSCAPE=y
CONFIG_ARCH_LG1K=y
CONFIG_ARCH_HISI=y
CONFIG_ARCH_MEDIATEK=y
CONFIG_ARCH_MESON=y
CONFIG_ARCH_MVEBU=y
CONFIG_ARCH_QCOM=y
CONFIG_ARCH_ROCKCHIP=y
CONFIG_ARCH_SEATTLE=y
CONFIG_ARCH_RENESAS=y
CONFIG_ARCH_R8A7795=y
CONFIG_ARCH_R8A7796=y
CONFIG_ARCH_STRATIX10=y
CONFIG_ARCH_TEGRA=y
CONFIG_ARCH_SPRD=y
CONFIG_ARCH_THUNDER=y
CONFIG_ARCH_THUNDER2=y
CONFIG_ARCH_UNIPHIER=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_XGENE=y
CONFIG_ARCH_ZX=y
CONFIG_ARCH_ZYNQMP=y
CONFIG_PCI=y
CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_PCI_IOV=y
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_ACPI=y
CONFIG_PCI_LAYERSCAPE=y
CONFIG_PCI_HISI=y
CONFIG_PCIE_QCOM=y
CONFIG_PCIE_KIRIN=y
CONFIG_PCIE_ARMADA_8K=y
CONFIG_PCI_AARDVARK=y
CONFIG_PCIE_RCAR=y
CONFIG_PCIE_ROCKCHIP=m
CONFIG_PCI_HOST_GENERIC=y
CONFIG_PCI_XGENE=y
CONFIG_ARM64_VA_BITS_48=y
CONFIG_SCHED_MC=y
CONFIG_NUMA=y
CONFIG_PREEMPT=y
CONFIG_KSM=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_CMA=y
CONFIG_SECCOMP=y
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_XEN=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_COMPAT=y
CONFIG_HIBERNATION=y
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
CONFIG_ARM_CPUIDLE=y
CONFIG_CPU_FREQ=y
CONFIG_CPUFREQ_DT=y
CONFIG_ARM_BIG_LITTLE_CPUFREQ=y
CONFIG_ARM_SCPI_CPUFREQ=y
CONFIG_ACPI_CPPC_CPUFREQ=m
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IPV6=m
CONFIG_NETFILTER=y
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_MANGLE=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_BRIDGE=m
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_BPF_JIT=y
CONFIG_BT=m
CONFIG_BT_HIDP=m
# CONFIG_BT_HS is not set
# CONFIG_BT_LE is not set
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
CONFIG_RFKILL=m
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_DMA_CMA=y
CONFIG_MTD=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_M25P80=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_DENALI_DT=y
CONFIG_MTD_SPI_NOR=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_NBD=m
CONFIG_VIRTIO_BLK=y
CONFIG_BLK_DEV_NVME=m
CONFIG_SRAM=y
CONFIG_EEPROM_AT25=m
# CONFIG_SCSI_PROC_FS is not set
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_SAS_ATA=y
CONFIG_SCSI_HISI_SAS=y
CONFIG_SCSI_HISI_SAS_PCI=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=y
CONFIG_AHCI_CEVA=y
CONFIG_AHCI_MVEBU=y
CONFIG_AHCI_XGENE=y
CONFIG_AHCI_QORIQ=y
CONFIG_SATA_SIL24=y
CONFIG_SATA_RCAR=y
CONFIG_PATA_PLATFORM=y
CONFIG_PATA_OF_PLATFORM=y
CONFIG_NETDEVICES=y
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
CONFIG_TUN=y
CONFIG_VETH=m
CONFIG_VIRTIO_NET=y
CONFIG_AMD_XGBE=y
CONFIG_NET_XGENE=y
CONFIG_MACB=y
CONFIG_HNS_DSAF=y
CONFIG_HNS_ENET=y
CONFIG_E1000E=y
CONFIG_IGB=y
CONFIG_IGBVF=y
CONFIG_MVNETA=y
CONFIG_MVPP2=y
CONFIG_SKY2=y
CONFIG_QCOM_EMAC=m
CONFIG_RAVB=y
CONFIG_SMC91X=y
CONFIG_SMSC911X=y
CONFIG_STMMAC_ETH=m
CONFIG_MDIO_BUS_MUX_MMIOREG=y
CONFIG_AT803X_PHY=m
CONFIG_MARVELL_PHY=m
CONFIG_MESON_GXL_PHY=m
CONFIG_MICREL_PHY=y
CONFIG_REALTEK_PHY=m
CONFIG_ROCKCHIP_PHY=y
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_DM9601=m
CONFIG_USB_NET_SR9800=m
CONFIG_USB_NET_SMSC75XX=m
CONFIG_USB_NET_SMSC95XX=m
CONFIG_USB_NET_PLUSB=m
CONFIG_USB_NET_MCS7830=m
CONFIG_BRCMFMAC=m
CONFIG_WL18XX=m
CONFIG_WLCORE_SDIO=m
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_ADC=m
CONFIG_KEYBOARD_CROS_EC=y
CONFIG_KEYBOARD_GPIO=y
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PM8941_PWRKEY=y
CONFIG_INPUT_HISI_POWERKEY=y
# CONFIG_SERIO_SERPORT is not set
CONFIG_SERIO_AMBAKMI=y
CONFIG_LEGACY_PTY_COUNT=16
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_BCM2835AUX=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_8250_MT6577=y
CONFIG_SERIAL_8250_UNIPHIER=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_SERIAL_MESON=y
CONFIG_SERIAL_MESON_CONSOLE=y
CONFIG_SERIAL_SAMSUNG=y
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
CONFIG_SERIAL_TEGRA=y
CONFIG_SERIAL_SH_SCI=y
CONFIG_SERIAL_SH_SCI_NR_UARTS=11
CONFIG_SERIAL_SH_SCI_CONSOLE=y
CONFIG_SERIAL_MSM=y
CONFIG_SERIAL_MSM_CONSOLE=y
CONFIG_SERIAL_XILINX_PS_UART=y
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
CONFIG_SERIAL_MVEBU_UART=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_MUX=y
CONFIG_I2C_MUX_PCA954x=y
CONFIG_I2C_BCM2835=m
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_IMX=y
CONFIG_I2C_MESON=y
CONFIG_I2C_MV64XXX=y
CONFIG_I2C_PXA=y
CONFIG_I2C_QUP=y
CONFIG_I2C_RK3X=y
CONFIG_I2C_SH_MOBILE=y
CONFIG_I2C_TEGRA=y
CONFIG_I2C_UNIPHIER_F=y
CONFIG_I2C_RCAR=y
CONFIG_I2C_CROS_EC_TUNNEL=y
CONFIG_SPI=y
CONFIG_SPI_MESON_SPICC=m
CONFIG_SPI_MESON_SPIFC=m
CONFIG_SPI_BCM2835=m
CONFIG_SPI_BCM2835AUX=m
CONFIG_SPI_ORION=y
CONFIG_SPI_PL022=y
CONFIG_SPI_QUP=y
CONFIG_SPI_ROCKCHIP=y
CONFIG_SPI_S3C64XX=y
CONFIG_SPI_SPIDEV=m
CONFIG_SPMI=y
CONFIG_PINCTRL_IPQ8074=y
CONFIG_PINCTRL_SINGLE=y
CONFIG_PINCTRL_MAX77620=y
CONFIG_PINCTRL_MSM8916=y
CONFIG_PINCTRL_MSM8994=y
CONFIG_PINCTRL_MSM8996=y
CONFIG_PINCTRL_QDF2XXX=y
CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
CONFIG_GPIO_DWAPB=y
CONFIG_GPIO_PL061=y
CONFIG_GPIO_RCAR=y
CONFIG_GPIO_XGENE=y
CONFIG_GPIO_XGENE_SB=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_MAX77620=y
CONFIG_POWER_RESET_MSM=y
CONFIG_POWER_RESET_XGENE=y
CONFIG_POWER_RESET_SYSCON=y
CONFIG_SYSCON_REBOOT_MODE=y
CONFIG_BATTERY_BQ27XXX=y
CONFIG_SENSORS_ARM_SCPI=y
CONFIG_SENSORS_LM90=m
CONFIG_SENSORS_INA2XX=m
CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
CONFIG_CPU_THERMAL=y
CONFIG_THERMAL_EMULATION=y
CONFIG_BRCMSTB_THERMAL=m
CONFIG_EXYNOS_THERMAL=y
CONFIG_ROCKCHIP_THERMAL=m
CONFIG_WATCHDOG=y
CONFIG_S3C2410_WATCHDOG=y
CONFIG_MESON_GXBB_WATCHDOG=m
CONFIG_MESON_WATCHDOG=m
CONFIG_RENESAS_WDT=y
CONFIG_UNIPHIER_WATCHDOG=y
CONFIG_BCM2835_WDT=y
CONFIG_MFD_AXP20X_RSB=y
CONFIG_MFD_CROS_EC=y
CONFIG_MFD_CROS_EC_I2C=y
CONFIG_MFD_CROS_EC_SPI=y
CONFIG_MFD_EXYNOS_LPASS=m
CONFIG_MFD_HI6421_PMIC=y
CONFIG_MFD_HI655X_PMIC=y
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
CONFIG_REGULATOR_GPIO=y
CONFIG_REGULATOR_HI6421V530=y
CONFIG_REGULATOR_HI655X=y
CONFIG_REGULATOR_MAX77620=y
CONFIG_REGULATOR_PWM=y
CONFIG_REGULATOR_QCOM_SMD_RPM=y
CONFIG_REGULATOR_QCOM_SPMI=y
CONFIG_REGULATOR_RK808=y
CONFIG_REGULATOR_S2MPS11=y
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_RC_SUPPORT=y
CONFIG_RC_CORE=m
CONFIG_RC_DEVICES=y
CONFIG_RC_DECODERS=y
CONFIG_IR_MESON=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
# CONFIG_DVB_NET is not set
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m
CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
CONFIG_VIDEO_RENESAS_FCP=m
CONFIG_VIDEO_RENESAS_VSP1=m
CONFIG_DRM=m
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_EXYNOS=m
CONFIG_DRM_EXYNOS5433_DECON=y
CONFIG_DRM_EXYNOS7_DECON=y
CONFIG_DRM_EXYNOS_DSI=y
# CONFIG_DRM_EXYNOS_DP is not set
CONFIG_DRM_EXYNOS_HDMI=y
CONFIG_DRM_EXYNOS_MIC=y
CONFIG_DRM_ROCKCHIP=m
CONFIG_ROCKCHIP_ANALOGIX_DP=y
CONFIG_ROCKCHIP_CDN_DP=y
CONFIG_ROCKCHIP_DW_HDMI=y
CONFIG_ROCKCHIP_DW_MIPI_DSI=y
CONFIG_ROCKCHIP_INNO_HDMI=y
CONFIG_DRM_RCAR_DU=m
CONFIG_DRM_RCAR_LVDS=y
CONFIG_DRM_RCAR_VSP=y
CONFIG_DRM_TEGRA=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_I2C_ADV7511=m
CONFIG_DRM_VC4=m
CONFIG_DRM_HISI_KIRIN=m
CONFIG_DRM_MESON=m
CONFIG_FB=y
CONFIG_FB_ARMCLCD=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_LP855X=m
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_BCM2835_SOC_I2S=m
CONFIG_SND_SOC_SAMSUNG=y
CONFIG_SND_SOC_RCAR=m
CONFIG_SND_SOC_AK4613=m
CONFIG_SND_SIMPLE_CARD=y
CONFIG_USB=y
CONFIG_USB_OTG=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_TEGRA=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_MSM=y
CONFIG_USB_EHCI_EXYNOS=y
CONFIG_USB_EHCI_HCD_PLATFORM=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_EXYNOS=y
CONFIG_USB_OHCI_HCD_PLATFORM=y
CONFIG_USB_RENESAS_USBHS=m
CONFIG_USB_STORAGE=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC2=y
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_UDC=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_ISP1760=y
CONFIG_USB_HSIC_USB3503=y
CONFIG_NOP_USB_XCEIV=y
CONFIG_USB_MSM_OTG=y
CONFIG_USB_QCOM_8X16_PHY=y
CONFIG_USB_ULPI=y
CONFIG_USB_GADGET=y
CONFIG_USB_RENESAS_USBHS_UDC=m
CONFIG_USB_MUSB_HDRC=y
# Restrict to host mode, as it is hard-coded that way in the device tree
# (dr_mode = "host" in the &usb_otg node)
CONFIG_USB_MUSB_HOST=y
CONFIG_USB_MUSB_SUNXI=y
CONFIG_MMC=y
CONFIG_MMC_BLOCK_MINORS=32
CONFIG_MMC_ARMMMCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_ACPI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_OF_ARASAN=y
CONFIG_MMC_SDHCI_OF_ESDHC=y
CONFIG_MMC_SDHCI_CADENCE=y
CONFIG_MMC_SDHCI_TEGRA=y
CONFIG_MMC_MESON_GX=y
CONFIG_MMC_SDHCI_MSM=y
CONFIG_MMC_SPI=y
CONFIG_MMC_SDHI=y
CONFIG_MMC_DW=y
CONFIG_MMC_DW_EXYNOS=y
CONFIG_MMC_DW_K3=y
CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_SUNXI=y
CONFIG_MMC_BCM2835=y
CONFIG_MMC_SDHCI_XENON=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_SYSCON=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_EDAC=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_MAX77686=y
CONFIG_RTC_DRV_RK808=m
CONFIG_RTC_DRV_S5M=y
CONFIG_RTC_DRV_DS3232=y
CONFIG_RTC_DRV_EFI=y
CONFIG_RTC_DRV_S3C=y
CONFIG_RTC_DRV_PL031=y
CONFIG_RTC_DRV_SUN6I=y
CONFIG_RTC_DRV_TEGRA=y
CONFIG_RTC_DRV_XGENE=y
CONFIG_DMADEVICES=y
CONFIG_DMA_BCM2835=m
CONFIG_K3_DMA=y
CONFIG_MV_XOR_V2=y
CONFIG_PL330_DMA=y
CONFIG_TEGRA20_APB_DMA=y
CONFIG_QCOM_BAM_DMA=y
CONFIG_QCOM_HIDMA_MGMT=y
CONFIG_QCOM_HIDMA=y
CONFIG_RCAR_DMAC=y
CONFIG_VFIO=y
CONFIG_VFIO_PCI=y
CONFIG_VIRTIO_PCI=y
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
CONFIG_COMMON_CLK_S2MPS11=y
CONFIG_CLK_QORIQ=y
CONFIG_COMMON_CLK_PWM=y
CONFIG_COMMON_CLK_QCOM=y
CONFIG_QCOM_CLK_SMD_RPM=y
CONFIG_IPQ_GCC_8074=y
CONFIG_MSM_GCC_8916=y
CONFIG_MSM_GCC_8994=y
CONFIG_MSM_MMCC_8996=y
CONFIG_HWSPINLOCK=y
CONFIG_HWSPINLOCK_QCOM=y
CONFIG_ARM_MHU=y
CONFIG_PLATFORM_MHU=y
CONFIG_BCM2835_MBOX=y
CONFIG_HI6220_MBOX=y
CONFIG_ROCKCHIP_IOMMU=y
CONFIG_ARM_SMMU=y
CONFIG_ARM_SMMU_V3=y
CONFIG_RPMSG_QCOM_SMD=y
CONFIG_RASPBERRYPI_POWER=y
CONFIG_QCOM_SMEM=y
CONFIG_QCOM_SMD_RPM=y
CONFIG_QCOM_SMP2P=y
CONFIG_QCOM_SMSM=y
CONFIG_ROCKCHIP_PM_DOMAINS=y
CONFIG_ARCH_TEGRA_132_SOC=y
CONFIG_ARCH_TEGRA_210_SOC=y
CONFIG_ARCH_TEGRA_186_SOC=y
CONFIG_EXTCON_USB_GPIO=y
CONFIG_IIO=y
CONFIG_EXYNOS_ADC=y
CONFIG_ROCKCHIP_SARADC=m
CONFIG_PWM=y
CONFIG_PWM_BCM2835=m
CONFIG_PWM_CROS_EC=m
CONFIG_PWM_MESON=m
CONFIG_PWM_ROCKCHIP=y
CONFIG_PWM_SAMSUNG=y
CONFIG_PWM_TEGRA=m
CONFIG_PHY_RCAR_GEN3_USB2=y
CONFIG_PHY_HI6220_USB=y
CONFIG_PHY_SUN4I_USB=y
CONFIG_PHY_ROCKCHIP_INNO_USB2=y
CONFIG_PHY_ROCKCHIP_EMMC=y
CONFIG_PHY_ROCKCHIP_PCIE=m
CONFIG_PHY_XGENE=y
CONFIG_PHY_TEGRA_XUSB=y
CONFIG_QCOM_L2_PMU=y
CONFIG_QCOM_L3_PMU=y
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_ARM_SCPI_PROTOCOL=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_EFI_CAPSULE_LOADER=y
CONFIG_ACPI=y
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA=y
CONFIG_AUTOFS4_FS=y
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_OVERLAY_FS=m
CONFIG_VFAT_FS=y
CONFIG_HUGETLBFS=y
CONFIG_CONFIGFS_FS=y
CONFIG_EFIVAR_FS=y
CONFIG_SQUASHFS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V4=y
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_ROOT_NFS=y
CONFIG_9P_FS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_FS=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_LOCKUP_DETECTOR=y
# CONFIG_SCHED_DEBUG is not set
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_FTRACE is not set
CONFIG_MEMTEST=y
CONFIG_SECURITY=y
CONFIG_CRYPTO_ECHAINIV=y
CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_ARM64_CRYPTO=y
CONFIG_CRYPTO_SHA256_ARM64=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA1_ARM64_CE=y
CONFIG_CRYPTO_SHA2_ARM64_CE=y
CONFIG_CRYPTO_GHASH_ARM64_CE=y
CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
CONFIG_CRYPTO_CRC32_ARM64_CE=m
CONFIG_CRYPTO_AES_ARM64=m
CONFIG_CRYPTO_AES_ARM64_CE=m
CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
CONFIG_CRYPTO_AES_ARM64_NEON_BLK=m
CONFIG_CRYPTO_CHACHA20_NEON=m
CONFIG_CRYPTO_AES_ARM64_BS=m

View File

@ -485,8 +485,8 @@ CONFIG_CW1200_WLAN_SDIO=m
CONFIG_CW1200_WLAN_SPI=m CONFIG_CW1200_WLAN_SPI=m
CONFIG_RSI_91X=m CONFIG_RSI_91X=m
# CONFIG_INPUT_MOUSEDEV is not set # CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_KEYBOARD is not set CONFIG_INPUT_KEYBOARD=y
# CONFIG_INPUT_MOUSE is not set CONFIG_INPUT_MOUSE=y
CONFIG_INPUT_TOUCHSCREEN=y CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_SUN4I=y CONFIG_TOUCHSCREEN_SUN4I=y
CONFIG_INPUT_MISC=y CONFIG_INPUT_MISC=y
@ -511,6 +511,7 @@ CONFIG_GPIO_SYSFS=y
CONFIG_POWER_SUPPLY=y CONFIG_POWER_SUPPLY=y
CONFIG_POWER_RESET=y CONFIG_POWER_RESET=y
CONFIG_THERMAL=y CONFIG_THERMAL=y
CONFIG_THERMAL_OF=y
CONFIG_CPU_THERMAL=y CONFIG_CPU_THERMAL=y
CONFIG_WATCHDOG=y CONFIG_WATCHDOG=y
CONFIG_SUNXI_WATCHDOG=y CONFIG_SUNXI_WATCHDOG=y
@ -687,6 +688,27 @@ CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_EHCI_HCD_PLATFORM=y
CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_PLATFORM=y CONFIG_USB_OHCI_HCD_PLATFORM=y
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_SIMPLE=m
CONFIG_USB_SERIAL_CP210X=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_SERIAL_KEYSPAN=m
CONFIG_USB_SERIAL_KEYSPAN_MPR=y
CONFIG_USB_SERIAL_KEYSPAN_USA28=y
CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
CONFIG_USB_SERIAL_KEYSPAN_USA19=y
CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_MOS7720=m
CONFIG_USB_SERIAL_MOS7840=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_MMC=y CONFIG_MMC=y
CONFIG_MMC_SUNXI=y CONFIG_MMC_SUNXI=y
CONFIG_LEDS_CLASS=y CONFIG_LEDS_CLASS=y
@ -729,9 +751,23 @@ CONFIG_PWM_SUN4I=y
CONFIG_PHY_SUN4I_USB=y CONFIG_PHY_SUN4I_USB=y
CONFIG_PHY_SUN9I_USB=y CONFIG_PHY_SUN9I_USB=y
CONFIG_EXT4_FS=y CONFIG_EXT4_FS=y
CONFIG_XFS_FS=m
CONFIG_XFS_POSIX_ACL=y
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_FANOTIFY=y CONFIG_FANOTIFY=y
CONFIG_AUTOFS4_FS=m CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m CONFIG_FUSE_FS=m
CONFIG_OVERLAY_FS=m
CONFIG_FSCACHE=m
CONFIG_FSCACHE_STATS=y
CONFIG_FSCACHE_HISTOGRAM=y
CONFIG_CACHEFILES=m
CONFIG_CACHEFILES_HISTOGRAM=y
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=m
CONFIG_VFAT_FS=y CONFIG_VFAT_FS=y
CONFIG_TMPFS=y CONFIG_TMPFS=y
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
@ -747,3 +783,4 @@ CONFIG_CRYPTO_SHA1_ARM_NEON=y
CONFIG_CRYPTO_SHA256_ARM=y CONFIG_CRYPTO_SHA256_ARM=y
CONFIG_CRYPTO_SHA512_ARM_NEON=y CONFIG_CRYPTO_SHA512_ARM_NEON=y
CONFIG_CRYPTO_AES_ARM_BS=y CONFIG_CRYPTO_AES_ARM_BS=y
CONFIG_USB_STORAGE=y

View File

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

View 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

View File

@ -0,0 +1,907 @@
From 4de4213f698a5962f839f671e4dec247baa35d5b Mon Sep 17 00:00:00 2001
From: Patryk Biel <patryk.biel.external@trumpf.com>
Date: Wed, 25 Jan 2023 20:30:15 +0100
Subject: [PATCH] Add device tree from master
---
arch/arm64/boot/dts/allwinner/Makefile | 1 +
.../allwinner/sun50i-h616-orangepi-zero2.dts | 261 ++++++++
.../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 590 ++++++++++++++++++
include/dt-bindings/clock/sun6i-rtc.h | 10 +
4 files changed, 862 insertions(+)
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
create mode 100644 include/dt-bindings/clock/sun6i-rtc.h
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
index a96d9d2d8..471822f5f 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -37,3 +37,4 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64-model-b.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-orangepi-zero2.dtb
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
new file mode 100644
index 000000000..e92055145
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
@@ -0,0 +1,261 @@
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
+/*
+ * Copyright (C) 2020 Arm Ltd.
+ */
+
+/dts-v1/;
+
+#include "sun50i-h616.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+ model = "OrangePi Zero2";
+ compatible = "xunlong,orangepi-zero2", "allwinner,sun50i-h616";
+
+ aliases {
+ ethernet0 = &emac0;
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led-0 {
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&pio 2 12 GPIO_ACTIVE_HIGH>; /* PC12 */
+ default-state = "on";
+ };
+
+ led-1 {
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&pio 2 13 GPIO_ACTIVE_HIGH>; /* PC13 */
+ };
+ };
+
+ reg_vcc5v: vcc5v {
+ /* board wide 5V supply directly from the USB-C socket */
+ compatible = "regulator-fixed";
+ regulator-name = "vcc-5v";
+ regulator-min-microvolt = <5000000>;
+ 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 = <&reg_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 = <&reg_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>;
+ };
+};
+
+&emac0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ext_rgmii_pins>;
+ phy-mode = "rgmii";
+ phy-handle = <&ext_rgmii_phy>;
+ phy-supply = <&reg_dcdce>;
+ allwinner,rx-delay-ps = <3100>;
+ allwinner,tx-delay-ps = <700>;
+ status = "okay";
+};
+
+&mmc1 {
+ vmmc-supply = <&reg_vcc33_wifi>;
+ vqmmc-supply = <&reg_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";
+ };
+};
+
+&mdio0 {
+ ext_rgmii_phy: ethernet-phy@1 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <1>;
+ };
+};
+
+&mmc0 {
+ vmmc-supply = <&reg_dcdce>;
+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
+ bus-width = <4>;
+ status = "okay";
+};
+
+&r_rsb {
+ status = "okay";
+
+ axp305: pmic@745 {
+ compatible = "x-powers,axp305", "x-powers,axp805",
+ "x-powers,axp806";
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ reg = <0x745>;
+
+ x-powers,self-working-mode;
+ vina-supply = <&reg_vcc5v>;
+ vinb-supply = <&reg_vcc5v>;
+ vinc-supply = <&reg_vcc5v>;
+ vind-supply = <&reg_vcc5v>;
+ vine-supply = <&reg_vcc5v>;
+ aldoin-supply = <&reg_vcc5v>;
+ bldoin-supply = <&reg_vcc5v>;
+ cldoin-supply = <&reg_vcc5v>;
+
+ regulators {
+ reg_aldo1: aldo1 {
+ regulator-always-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc-sys";
+ };
+
+ reg_aldo2: aldo2 { /* 3.3V on headers */
+ regulator-always-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc3v3-ext";
+ };
+
+ reg_aldo3: aldo3 { /* 3.3V on headers */
+ regulator-always-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc3v3-ext2";
+ };
+
+ reg_bldo1: bldo1 {
+ regulator-always-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-name = "vcc1v8";
+ };
+
+ bldo2 {
+ /* unused */
+ };
+
+ bldo3 {
+ /* unused */
+ };
+
+ bldo4 {
+ /* unused */
+ };
+
+ cldo1 {
+ /* reserved */
+ };
+
+ cldo2 {
+ /* unused */
+ };
+
+ cldo3 {
+ /* unused */
+ };
+
+ reg_dcdca: dcdca {
+ regulator-always-on;
+ regulator-min-microvolt = <810000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-name = "vdd-cpu";
+ };
+
+ reg_dcdcc: dcdcc {
+ regulator-always-on;
+ regulator-min-microvolt = <810000>;
+ regulator-max-microvolt = <990000>;
+ regulator-name = "vdd-gpu-sys";
+ };
+
+ reg_dcdcd: dcdcd {
+ regulator-always-on;
+ regulator-min-microvolt = <1500000>;
+ regulator-max-microvolt = <1500000>;
+ regulator-name = "vdd-dram";
+ };
+
+ reg_dcdce: dcdce {
+ regulator-always-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc-eth-mmc";
+ };
+
+ sw {
+ /* unused */
+ };
+ };
+ };
+};
+
+&pio {
+ vcc-pc-supply = <&reg_aldo1>;
+ vcc-pf-supply = <&reg_aldo1>;
+ vcc-pg-supply = <&reg_bldo1>;
+ vcc-ph-supply = <&reg_aldo1>;
+ vcc-pi-supply = <&reg_aldo1>;
+};
+
+&spi0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;
+
+ flash@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <40000000>;
+ };
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_ph_pins>;
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
new file mode 100644
index 000000000..ab344ea8a
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
@@ -0,0 +1,590 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+// Copyright (C) 2020 Arm Ltd.
+// based on the H6 dtsi, which is:
+// Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/sun50i-h616-ccu.h>
+#include <dt-bindings/clock/sun50i-h6-r-ccu.h>
+#include <dt-bindings/clock/sun6i-rtc.h>
+#include <dt-bindings/reset/sun50i-h616-ccu.h>
+#include <dt-bindings/reset/sun50i-h6-r-ccu.h>
+
+/ {
+ interrupt-parent = <&gic>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu0: cpu@0 {
+ compatible = "arm,cortex-a53";
+ device_type = "cpu";
+ reg = <0>;
+ enable-method = "psci";
+ clocks = <&ccu CLK_CPUX>;
+ };
+
+ cpu1: cpu@1 {
+ compatible = "arm,cortex-a53";
+ device_type = "cpu";
+ reg = <1>;
+ enable-method = "psci";
+ clocks = <&ccu CLK_CPUX>;
+ };
+
+ cpu2: cpu@2 {
+ compatible = "arm,cortex-a53";
+ device_type = "cpu";
+ reg = <2>;
+ enable-method = "psci";
+ clocks = <&ccu CLK_CPUX>;
+ };
+
+ cpu3: cpu@3 {
+ compatible = "arm,cortex-a53";
+ device_type = "cpu";
+ reg = <3>;
+ enable-method = "psci";
+ clocks = <&ccu CLK_CPUX>;
+ };
+ };
+
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ /*
+ * 256 KiB reserved for Trusted Firmware-A (BL31).
+ * This is added by BL31 itself, but some bootloaders fail
+ * to propagate this into the DTB handed to kernels.
+ */
+ secmon@40000000 {
+ reg = <0x0 0x40000000 0x0 0x40000>;
+ no-map;
+ };
+ };
+
+ osc24M: osc24M-clk {
+ #clock-cells = <0>;
+ compatible = "fixed-clock";
+ clock-frequency = <24000000>;
+ clock-output-names = "osc24M";
+ };
+
+ pmu {
+ compatible = "arm,cortex-a53-pmu";
+ interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+ };
+
+ psci {
+ compatible = "arm,psci-0.2";
+ method = "smc";
+ };
+
+ timer {
+ compatible = "arm,armv8-timer";
+ arm,no-tick-in-suspend;
+ interrupts = <GIC_PPI 13
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
+ <GIC_PPI 14
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
+ <GIC_PPI 11
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
+ <GIC_PPI 10
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+ };
+
+ soc {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x0 0x0 0x0 0x40000000>;
+
+ syscon: syscon@3000000 {
+ compatible = "allwinner,sun50i-h616-system-control";
+ reg = <0x03000000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ sram_c: sram@28000 {
+ compatible = "mmio-sram";
+ reg = <0x00028000 0x30000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0 0x00028000 0x30000>;
+ };
+ };
+
+ ccu: clock@3001000 {
+ compatible = "allwinner,sun50i-h616-ccu";
+ reg = <0x03001000 0x1000>;
+ clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>;
+ clock-names = "hosc", "losc", "iosc";
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ };
+
+ watchdog: watchdog@30090a0 {
+ compatible = "allwinner,sun50i-h616-wdt",
+ "allwinner,sun6i-a31-wdt";
+ reg = <0x030090a0 0x20>;
+ interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&osc24M>;
+ };
+
+ pio: pinctrl@300b000 {
+ compatible = "allwinner,sun50i-h616-pinctrl";
+ reg = <0x0300b000 0x400>;
+ interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc CLK_OSC32K>;
+ clock-names = "apb", "hosc", "losc";
+ gpio-controller;
+ #gpio-cells = <3>;
+ interrupt-controller;
+ #interrupt-cells = <3>;
+
+ ext_rgmii_pins: rgmii-pins {
+ pins = "PI0", "PI1", "PI2", "PI3", "PI4",
+ "PI5", "PI7", "PI8", "PI9", "PI10",
+ "PI11", "PI12", "PI13", "PI14", "PI15",
+ "PI16";
+ function = "emac0";
+ drive-strength = <40>;
+ };
+
+ i2c0_pins: i2c0-pins {
+ pins = "PI6", "PI7";
+ function = "i2c0";
+ };
+
+ i2c3_ph_pins: i2c3-ph-pins {
+ pins = "PH4", "PH5";
+ function = "i2c3";
+ };
+
+ ir_rx_pin: ir-rx-pin {
+ pins = "PH10";
+ function = "ir_rx";
+ };
+
+ mmc0_pins: mmc0-pins {
+ pins = "PF0", "PF1", "PF2", "PF3",
+ "PF4", "PF5";
+ function = "mmc0";
+ drive-strength = <30>;
+ bias-pull-up;
+ };
+
+ /omit-if-no-ref/
+ mmc1_pins: mmc1-pins {
+ pins = "PG0", "PG1", "PG2", "PG3",
+ "PG4", "PG5";
+ function = "mmc1";
+ drive-strength = <30>;
+ bias-pull-up;
+ };
+
+ mmc2_pins: mmc2-pins {
+ pins = "PC0", "PC1", "PC5", "PC6",
+ "PC8", "PC9", "PC10", "PC11",
+ "PC13", "PC14", "PC15", "PC16";
+ function = "mmc2";
+ drive-strength = <30>;
+ bias-pull-up;
+ };
+
+ /omit-if-no-ref/
+ spi0_pins: spi0-pins {
+ pins = "PC0", "PC2", "PC4";
+ function = "spi0";
+ };
+
+ /omit-if-no-ref/
+ spi0_cs0_pin: spi0-cs0-pin {
+ pins = "PC3";
+ function = "spi0";
+ };
+
+ /omit-if-no-ref/
+ spi1_pins: spi1-pins {
+ pins = "PH6", "PH7", "PH8";
+ function = "spi1";
+ };
+
+ /omit-if-no-ref/
+ spi1_cs0_pin: spi1-cs0-pin {
+ pins = "PH5";
+ function = "spi1";
+ };
+
+ uart0_ph_pins: uart0-ph-pins {
+ pins = "PH0", "PH1";
+ function = "uart0";
+ };
+
+ /omit-if-no-ref/
+ uart1_pins: uart1-pins {
+ pins = "PG6", "PG7";
+ function = "uart1";
+ };
+
+ /omit-if-no-ref/
+ uart1_rts_cts_pins: uart1-rts-cts-pins {
+ pins = "PG8", "PG9";
+ function = "uart1";
+ };
+ };
+
+ gic: interrupt-controller@3021000 {
+ compatible = "arm,gic-400";
+ reg = <0x03021000 0x1000>,
+ <0x03022000 0x2000>,
+ <0x03024000 0x2000>,
+ <0x03026000 0x2000>;
+ interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+ interrupt-controller;
+ #interrupt-cells = <3>;
+ };
+
+ mmc0: mmc@4020000 {
+ compatible = "allwinner,sun50i-h616-mmc",
+ "allwinner,sun50i-a100-mmc";
+ reg = <0x04020000 0x1000>;
+ clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
+ clock-names = "ahb", "mmc";
+ resets = <&ccu RST_BUS_MMC0>;
+ reset-names = "ahb";
+ interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc0_pins>;
+ status = "disabled";
+ max-frequency = <150000000>;
+ cap-sd-highspeed;
+ cap-mmc-highspeed;
+ mmc-ddr-3_3v;
+ cap-sdio-irq;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ mmc1: mmc@4021000 {
+ compatible = "allwinner,sun50i-h616-mmc",
+ "allwinner,sun50i-a100-mmc";
+ reg = <0x04021000 0x1000>;
+ clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
+ clock-names = "ahb", "mmc";
+ resets = <&ccu RST_BUS_MMC1>;
+ reset-names = "ahb";
+ interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc1_pins>;
+ status = "disabled";
+ max-frequency = <150000000>;
+ cap-sd-highspeed;
+ cap-mmc-highspeed;
+ mmc-ddr-3_3v;
+ cap-sdio-irq;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ mmc2: mmc@4022000 {
+ compatible = "allwinner,sun50i-h616-emmc",
+ "allwinner,sun50i-a100-emmc";
+ reg = <0x04022000 0x1000>;
+ clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
+ clock-names = "ahb", "mmc";
+ resets = <&ccu RST_BUS_MMC2>;
+ reset-names = "ahb";
+ interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc2_pins>;
+ status = "disabled";
+ max-frequency = <150000000>;
+ cap-sd-highspeed;
+ cap-mmc-highspeed;
+ mmc-ddr-3_3v;
+ cap-sdio-irq;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ uart0: serial@5000000 {
+ compatible = "snps,dw-apb-uart";
+ reg = <0x05000000 0x400>;
+ interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ clocks = <&ccu CLK_BUS_UART0>;
+ resets = <&ccu RST_BUS_UART0>;
+ status = "disabled";
+ };
+
+ uart1: serial@5000400 {
+ compatible = "snps,dw-apb-uart";
+ reg = <0x05000400 0x400>;
+ interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ clocks = <&ccu CLK_BUS_UART1>;
+ resets = <&ccu RST_BUS_UART1>;
+ status = "disabled";
+ };
+
+ uart2: serial@5000800 {
+ compatible = "snps,dw-apb-uart";
+ reg = <0x05000800 0x400>;
+ interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ clocks = <&ccu CLK_BUS_UART2>;
+ resets = <&ccu RST_BUS_UART2>;
+ status = "disabled";
+ };
+
+ uart3: serial@5000c00 {
+ compatible = "snps,dw-apb-uart";
+ reg = <0x05000c00 0x400>;
+ interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ clocks = <&ccu CLK_BUS_UART3>;
+ resets = <&ccu RST_BUS_UART3>;
+ status = "disabled";
+ };
+
+ uart4: serial@5001000 {
+ compatible = "snps,dw-apb-uart";
+ reg = <0x05001000 0x400>;
+ interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ clocks = <&ccu CLK_BUS_UART4>;
+ resets = <&ccu RST_BUS_UART4>;
+ status = "disabled";
+ };
+
+ uart5: serial@5001400 {
+ compatible = "snps,dw-apb-uart";
+ reg = <0x05001400 0x400>;
+ interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ clocks = <&ccu CLK_BUS_UART5>;
+ resets = <&ccu RST_BUS_UART5>;
+ status = "disabled";
+ };
+
+ i2c0: i2c@5002000 {
+ compatible = "allwinner,sun50i-h616-i2c",
+ "allwinner,sun8i-v536-i2c",
+ "allwinner,sun6i-a31-i2c";
+ reg = <0x05002000 0x400>;
+ interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&ccu CLK_BUS_I2C0>;
+ resets = <&ccu RST_BUS_I2C0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c0_pins>;
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c1: i2c@5002400 {
+ compatible = "allwinner,sun50i-h616-i2c",
+ "allwinner,sun8i-v536-i2c",
+ "allwinner,sun6i-a31-i2c";
+ reg = <0x05002400 0x400>;
+ interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&ccu CLK_BUS_I2C1>;
+ resets = <&ccu RST_BUS_I2C1>;
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c2: i2c@5002800 {
+ compatible = "allwinner,sun50i-h616-i2c",
+ "allwinner,sun8i-v536-i2c",
+ "allwinner,sun6i-a31-i2c";
+ reg = <0x05002800 0x400>;
+ interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&ccu CLK_BUS_I2C2>;
+ resets = <&ccu RST_BUS_I2C2>;
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c3: i2c@5002c00 {
+ compatible = "allwinner,sun50i-h616-i2c",
+ "allwinner,sun8i-v536-i2c",
+ "allwinner,sun6i-a31-i2c";
+ reg = <0x05002c00 0x400>;
+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&ccu CLK_BUS_I2C3>;
+ resets = <&ccu RST_BUS_I2C3>;
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c4: i2c@5003000 {
+ compatible = "allwinner,sun50i-h616-i2c",
+ "allwinner,sun8i-v536-i2c",
+ "allwinner,sun6i-a31-i2c";
+ reg = <0x05003000 0x400>;
+ interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&ccu CLK_BUS_I2C4>;
+ resets = <&ccu RST_BUS_I2C4>;
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ spi0: spi@5010000 {
+ compatible = "allwinner,sun50i-h616-spi",
+ "allwinner,sun8i-h3-spi";
+ reg = <0x05010000 0x1000>;
+ interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
+ clock-names = "ahb", "mod";
+ resets = <&ccu RST_BUS_SPI0>;
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ spi1: spi@5011000 {
+ compatible = "allwinner,sun50i-h616-spi",
+ "allwinner,sun8i-h3-spi";
+ reg = <0x05011000 0x1000>;
+ interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
+ clock-names = "ahb", "mod";
+ resets = <&ccu RST_BUS_SPI1>;
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ emac0: ethernet@5020000 {
+ compatible = "allwinner,sun50i-h616-emac0",
+ "allwinner,sun50i-a64-emac";
+ reg = <0x05020000 0x10000>;
+ interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "macirq";
+ clocks = <&ccu CLK_BUS_EMAC0>;
+ clock-names = "stmmaceth";
+ resets = <&ccu RST_BUS_EMAC0>;
+ reset-names = "stmmaceth";
+ syscon = <&syscon>;
+ status = "disabled";
+
+ mdio0: mdio {
+ compatible = "snps,dwmac-mdio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
+ rtc: rtc@7000000 {
+ compatible = "allwinner,sun50i-h616-rtc",
+ "allwinner,sun50i-h6-rtc";
+ reg = <0x07000000 0x400>;
+ interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+ clock-output-names = "osc32k", "osc32k-out", "iosc";
+ #clock-cells = <1>;
+ };
+
+ r_ccu: clock@7010000 {
+ compatible = "allwinner,sun50i-h616-r-ccu";
+ reg = <0x07010000 0x210>;
+ clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>,
+ <&ccu CLK_PLL_PERIPH0>;
+ clock-names = "hosc", "losc", "iosc", "pll-periph";
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ };
+
+ r_pio: pinctrl@7022000 {
+ compatible = "allwinner,sun50i-h616-r-pinctrl";
+ reg = <0x07022000 0x400>;
+ clocks = <&r_ccu CLK_R_APB1>, <&osc24M>,
+ <&rtc CLK_OSC32K>;
+ clock-names = "apb", "hosc", "losc";
+ gpio-controller;
+ #gpio-cells = <3>;
+
+ /omit-if-no-ref/
+ r_i2c_pins: r-i2c-pins {
+ pins = "PL0", "PL1";
+ function = "s_i2c";
+ };
+
+ r_rsb_pins: r-rsb-pins {
+ pins = "PL0", "PL1";
+ function = "s_rsb";
+ };
+ };
+
+ ir: ir@7040000 {
+ compatible = "allwinner,sun50i-h616-ir",
+ "allwinner,sun6i-a31-ir";
+ reg = <0x07040000 0x400>;
+ interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&r_ccu CLK_R_APB1_IR>,
+ <&r_ccu CLK_IR>;
+ clock-names = "apb", "ir";
+ resets = <&r_ccu RST_R_APB1_IR>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&ir_rx_pin>;
+ status = "disabled";
+ };
+
+ r_i2c: i2c@7081400 {
+ compatible = "allwinner,sun50i-h616-i2c",
+ "allwinner,sun8i-v536-i2c",
+ "allwinner,sun6i-a31-i2c";
+ reg = <0x07081400 0x400>;
+ interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&r_ccu CLK_R_APB2_I2C>;
+ resets = <&r_ccu RST_R_APB2_I2C>;
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ r_rsb: rsb@7083000 {
+ compatible = "allwinner,sun50i-h616-rsb",
+ "allwinner,sun8i-a23-rsb";
+ reg = <0x07083000 0x400>;
+ interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&r_ccu CLK_R_APB2_RSB>;
+ clock-frequency = <3000000>;
+ resets = <&r_ccu RST_R_APB2_RSB>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&r_rsb_pins>;
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+};
diff --git a/include/dt-bindings/clock/sun6i-rtc.h b/include/dt-bindings/clock/sun6i-rtc.h
new file mode 100644
index 000000000..c845493e4
--- /dev/null
+++ b/include/dt-bindings/clock/sun6i-rtc.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: (GPL-2.0+ or MIT) */
+
+#ifndef _DT_BINDINGS_CLK_SUN6I_RTC_H_
+#define _DT_BINDINGS_CLK_SUN6I_RTC_H_
+
+#define CLK_OSC32K 0
+#define CLK_OSC32K_FANOUT 1
+#define CLK_IOSC 2
+
+#endif /* _DT_BINDINGS_CLK_SUN6I_RTC_H_ */
--
2.34.1

View File

@ -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

View File

@ -0,0 +1,27 @@
From 9a7776b44588c24d04ffff63194d8a137624f8ac Mon Sep 17 00:00:00 2001
From: Patryk Biel <patryk.biel.external@trumpf.com>
Date: Thu, 26 Jan 2023 09:50:42 +0100
Subject: [PATCH] Add sunxi-info device tree node
---
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
index ab344ea8a..d0b95d43a 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
@@ -586,5 +586,10 @@ r_rsb: rsb@7083000 {
#address-cells = <1>;
#size-cells = <0>;
};
+
+ sunxi-info {
+ compatible = "allwinner,sun50i-h616-sys-info";
+ status = "okay";
+ };
};
};
--
2.34.1

View File

@ -0,0 +1,32 @@
From 706dc6ed092e4a1b9d84893cb4186fbd354bb1c8 Mon Sep 17 00:00:00 2001
From: Patryk Biel <patryk.biel.external@trumpf.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

View File

@ -0,0 +1,613 @@
From 29cfa9437eaa2ff862ab0f06852383b181b60743 Mon Sep 17 00:00:00 2001
From: afaulkner420 <afaulkner420@gmail.com>
Date: Fri, 25 Mar 2022 20:18:18 +0000
Subject: [PATCH 04/11] Add sunxi-addr driver - Used to fix uwe5622 bluetooth
MAC addresses
---
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 24cb809ae..52843042f 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -494,4 +494,5 @@ source "drivers/misc/cardreader/Kconfig"
source "drivers/misc/habanalabs/Kconfig"
source "drivers/misc/uacce/Kconfig"
source "drivers/misc/pvpanic/Kconfig"
+source "drivers/misc/sunxi-addr/Kconfig"
endmenu
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index f3eaa577a..0f9280509 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -60,3 +60,4 @@ obj-$(CONFIG_XILINX_SDFEC) += xilinx_sdfec.o
obj-$(CONFIG_HISI_HIKEY_USB) += hisi_hikey_usb.o
obj-$(CONFIG_HI6421V600_IRQ) += hi6421v600-irq.o
obj-$(CONFIG_MODEM_POWER) += modem-power.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.25.1

View File

@ -0,0 +1,28 @@
From 70a0c21f9bc1eed754cce584fe382883dc412db0 Mon Sep 17 00:00:00 2001
From: afaulkner420 <afaulkner420@gmail.com>
Date: Fri, 25 Mar 2022 20:31:26 +0000
Subject: [PATCH 08/11] uwe5622: bluetooth: Fix firmware init fail
---
net/bluetooth/hci_core.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index c67390367..b2ee9b6a8 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -932,7 +932,11 @@ static int __hci_init(struct hci_dev *hdev)
err = __hci_req_sync(hdev, hci_init3_req, 0, HCI_INIT_TIMEOUT, NULL);
if (err < 0)
+#if defined(CONFIG_RK_WIFI_DEVICE_UWE5621) || defined(CONFIG_AW_WIFI_DEVICE_UWE5622)
+ ;
+#else
return err;
+#endif
err = __hci_req_sync(hdev, hci_init4_req, 0, HCI_INIT_TIMEOUT, NULL);
if (err < 0)
--
2.25.1

View File

@ -0,0 +1,45 @@
From bb564341bb6c64003abbf24fd5d5ef254060b040 Mon Sep 17 00:00:00 2001
From: Patryk Biel <patryk.biel.external@trumpf.com>
Date: Thu, 19 Jan 2023 10:46:28 +0100
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 b62652f63..ae6e1e25a 100644
--- a/drivers/net/wireless/uwe5622/unisocwcn/Makefile
+++ b/drivers/net/wireless/uwe5622/unisocwcn/Makefile
@@ -119,9 +119,9 @@ ccflags-y += -DCONFIG_WCN_UTILS
#### include path ######
ccflags-y += -I$(src)/../tty-sdio
-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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
require linux-mainline.inc
DESCRIPTION = "Mainline Longterm Linux kernel"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
SRC_URI[md5sum] = "0751179f60de73eb2cd93f161fa52fcf"
SRC_URI[sha256sum] = "3b84e13abae26af17ebccc4d7212f5843a991127a73a320848d5c6942ef781a2"

View File

@ -0,0 +1,21 @@
require linux-mainline.inc
DESCRIPTION = "Mainline Longterm Linux kernel"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
SRC_URI[sha256sum] = "0a1a5ae2f30eb2b38215e59077f045aabd7f4e2857a881482f02ea48186105d8"
# opi-zero-2 support added only for 5.15 kernel so add it to this recipe not to inc file
SRC_URI:append:orange-pi-zero2 = " \
file://0001-dts-add-h616-and-orangepizero2.patch \
file://0002-drv-add-dump_reg-and-sunxi-sysinfo-drivers.patch \
file://0003-drv-add-sunxi_get_soc_chipid-and-sunxi_get_serial.patch \
file://0004-dts-add-sunxi-info-device-tree-node.patch \
file://0005-dts-add-addr_mgt-device-tree-node.patch \
file://0006-drv-modem-power-Power-manager-for-modems.patch \
file://0007-drv-add-sunxi-addr-driver-used-to-fix-uwe5622-bluetooth-.patch \
file://0008-drv-wireless-add-uwe5622-driver.patch \
file://0009-drv-uwe5622-bluetooth-fix-firmware-init-fail.patch \
file://0010-drv-fix-incldue-path-for-unisocwcn.patch \
"

View File

@ -0,0 +1,8 @@
require linux-mainline.inc
DESCRIPTION = "Mainline Longterm Linux kernel"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
SRC_URI[md5sum] = "98c8187b801f006ba203db0669e307a5"
SRC_URI[sha256sum] = "a8b31d716b397303a183e42ad525ff2871024a43e3ea530d0fdf73b7f9d27da7"

View File

@ -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

View 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

View File

@ -3,27 +3,30 @@ require linux.inc
DESCRIPTION = "Linux kernel for Allwinner a10/a20 processors" DESCRIPTION = "Linux kernel for Allwinner a10/a20 processors"
COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i)" COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i)"
RDEPENDS_${PN} += "sunxi-board-fex" RDEPENDS:${PN} += "sunxi-board-fex"
PV = "3.4.104" PV = "3.4.104"
PR = "r1" 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://0001-compiler-gcc-integrate-the-various-compiler-gcc-345-.patch \
file://0002-use-static-inline-in-ARM-ftrace.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 \ file://defconfig \
" "
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"
#fix QA issue "Files/directories were installed but not shipped: /usr/src/debug" #fix QA issue "Files/directories were installed but not shipped: /usr/src/debug"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1" INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
do_configure_prepend() { do_configure:prepend() {
#fix arch QA issues ("Architecture did not match") #fix arch QA issues ("Architecture did not match")
rm -f ${S}/drivers/net/wireless/rtxx7x/tools/bin2h 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 rm -f ${S}/modules/wifi/ar6302/AR6K_SDK_ISC.build_3.1_RC.329/host/lib/wac/wac

View File

@ -1,11 +1,10 @@
DESCRIPTION = "Linux Kernel" DESCRIPTION = "Linux Kernel"
SECTION = "kernel" SECTION = "kernel"
LICENSE = "GPLv2" LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
INC_PR = "r0" INC_PR = "r0"
inherit kernel siteinfo inherit kernel kernel-yocto siteinfo
# Enable OABI compat for people stuck with obsolete userspace # Enable OABI compat for people stuck with obsolete userspace
ARM_KEEP_OABI ?= "0" ARM_KEEP_OABI ?= "0"
@ -16,12 +15,14 @@ CMDLINE_DEBUG ?= "loglevel=3"
# Kernel bootlogo is distro-specific (default is OE logo). # Kernel bootlogo is distro-specific (default is OE logo).
# Logo resolution (qvga, vga, ...) is machine-specific. # Logo resolution (qvga, vga, ...) is machine-specific.
LOGO_SIZE ?= '${@base_conditional("MACHINE_GUI_CLASS", "bigscreen", "vga", "qvga", d)}' LOGO_SIZE ?= '${@oe.utils.conditional("MACHINE_GUI_CLASS", "bigscreen", "vga", "qvga", d)}'
# To use this, add file://${LOGO_SIZE}/logo_linux_clut224.ppm.bz2 or similar # To use this, add file://${LOGO_SIZE}/logo_linux_clut224.ppm.bz2 or similar
# to your kernel recipe, and then structure your logos for each resolution # to your kernel recipe, and then structure your logos for each resolution
# accordingly. # accordingly.
LOCALVERSION ?= "" LOCALVERSION ?= ""
KCONFIG_MODE ?= "alldefconfig"
KMACHINE ?= "${MACHINE}"
#kernel_conf_variable CMDLINE "\"${CMDLINE} ${CMDLINE_DEBUG}\"" #kernel_conf_variable CMDLINE "\"${CMDLINE} ${CMDLINE_DEBUG}\""
kernel_conf_variable() { kernel_conf_variable() {
@ -34,8 +35,11 @@ kernel_conf_variable() {
fi fi
} }
do_configure_prepend() { do_kernel_configme[depends] += "virtual/${TARGET_PREFIX}binutils:do_populate_sysroot"
echo "" > ${B}/.config do_kernel_configme[depends] += "virtual/${TARGET_PREFIX}gcc:do_populate_sysroot"
do_kernel_configme[depends] += "bc-native:do_populate_sysroot bison-native:do_populate_sysroot"
do_configure:prepend() {
CONF_SED_SCRIPT="" CONF_SED_SCRIPT=""
# #
@ -111,21 +115,12 @@ do_configure_prepend() {
kernel_conf_variable CMDLINE \"${CMDLINE_NFSROOT_USB} ${CMDLINE_DEBUG}\" kernel_conf_variable CMDLINE \"${CMDLINE_NFSROOT_USB} ${CMDLINE_DEBUG}\"
fi fi
sed -e "${CONF_SED_SCRIPT}" \
< '${WORKDIR}/defconfig' >>'${B}/.config'
yes '' | oe_runmake -C ${S} O=${B} oldconfig yes '' | oe_runmake -C ${S} O=${B} oldconfig
} }
do_configure_append() { do_configure:append() {
if test -e scripts/Makefile.fwinst ; then if test -e scripts/Makefile.fwinst ; then
sed -i -e "s:-m0644:-m 0644:g" scripts/Makefile.fwinst sed -i -e "s:-m0644:-m 0644:g" scripts/Makefile.fwinst
fi fi
} }
do_install_append() {
oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix}/src/linux-${KERNEL_VERSION} ARCH=$ARCH
}
PACKAGES =+ "kernel-headers"
FILES_kernel-headers = "${exec_prefix}/src/linux*"

View File

@ -1,24 +0,0 @@
SECTION = "kernel"
DESCRIPTION = "Mainline Linux kernel"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i)"
inherit kernel
require recipes-kernel/linux/linux-dtb.inc
require linux.inc
# Pull in the devicetree files into the rootfs
RDEPENDS_kernel-base += "kernel-devicetree"
KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
S = "${WORKDIR}/linux-${PV}"
SRC_URI[md5sum] = "2944984c89c272115649c4a08b43f8d0"
SRC_URI[sha256sum] = "c4bc5ed6e73ed7393cc1b3714b822664224ab866db114eed663de1315718a4e1"
SRC_URI = "https://www.kernel.org/pub/linux/kernel/v4.x/linux-${PV}.tar.xz \
file://defconfig \
"

View File

@ -1,28 +0,0 @@
SECTION = "kernel"
DESCRIPTION = "Mainline Linux kernel"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i|sun8i)"
inherit kernel
require recipes-kernel/linux/linux-dtb.inc
require linux.inc
# Pull in the devicetree files into the rootfs
RDEPENDS_kernel-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}"
# 4.9.0
PV = "4.9.0+git${SRCPV}"
SRCREV_pn-${PN} = "69973b830859bc6529a7a0468ba0d80ee5117826"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git;protocol=git;branch=master \
file://defconfig \
"
S = "${WORKDIR}/git"

Binary file not shown.

View File

@ -0,0 +1,177 @@
[Section 1: Version]
Major = 2
Minor = 2
[Section 2: Board Config]
Calib_Bypass = 11758
TxChain_Mask = 2
RxChain_Mask = 2
[Section 3: Board Config TPC]
DPD_LUT_idx = 0x33,0x33,0x0,0x11,0x22,0x33,0x33,0x33
TPC_Goal_Chain0 = 0,0,0,0,0,0,0,0
TPC_Goal_Chain1 = 159,167,162,152,159,167,162,152
[Section 4: TPC-LUT]
Chain0_LUT_0 = 6,0,40,0
Chain0_LUT_1 = 6,1,24,0
Chain0_LUT_2 = 6,2,8,0
Chain0_LUT_3 = 10,2,0,0
Chain0_LUT_4 = 14,2,0,0
Chain0_LUT_5 = 18,2,0,0
Chain0_LUT_6 = 22,2,0,0
Chain0_LUT_7 = 26,2,0,0
Chain1_LUT_0 = 6,0,40,0
Chain1_LUT_1 = 6,1,24,0
Chain1_LUT_2 = 6,2,8,0
Chain1_LUT_3 = 10,2,0,0
Chain1_LUT_4 = 14,2,0,0
Chain1_LUT_5 = 18,2,0,0
Chain1_LUT_6 = 22,2,0,0
Chain1_LUT_7 = 26,2,0,0
[Section 5: Board Config Frequency Compensation]
2G_Channel_Chain0 = 6,6,6,6,7,7,7,7,7,7,7,7,7,7
2G_Channel_Chain1 = 6,6,6,6,7,7,7,7,7,7,7,7,7,7
5G_Channel_Chain0 = 11,11,11,11,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9
5G_Channel_Chain1 = 11,11,11,11,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9
[Section 6: Rate To Power with BW 20M]
11b_Power = 20,20,20,20
11ag_Power = 28,32,36,44,28,32,36,48
11n_Power = 34,38,38,40,40,44,44,48,32,36,36,40,40,44,44,54,48
11ac_Power = 32,36,36,40,40,44,44,48,50,66,32,36,36,40,40,44,44,48,50,66
[Section 7: Power Backoff]
Green_WIFI_offset = 0
HT40_Power_offset = 0
VHT40_Power_offset = 0
VHT80_Power_offset = 0
SAR_Power_offset = 0
Mean_Power_offset = 36
[Section 8: Reg Domain]
reg_domain1 = 0x00000001
reg_domain2 = 0x00000002
[Section 9: Band Edge Power offset (MKK, FCC, ETSI)]
BW20M = 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41
BW40M = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21
BW80M = 6,5,4,3,2,1
[Section 10: TX Scale]
Chain0_1 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
Chain1_1 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
Chain0_2 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17
Chain1_2 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17
Chain0_3 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,18
Chain1_3 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,18
Chain0_4 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,19
Chain1_4 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,19
Chain0_5 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,20
Chain1_5 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,20
Chain0_6 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,21
Chain1_6 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,21
Chain0_7 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,22
Chain1_7 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,22
Chain0_8 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,23
Chain1_8 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,23
Chain0_9 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,24
Chain1_9 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,24
Chain0_10 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,25
Chain1_10 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,25
Chain0_11 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,26
Chain1_11 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,26
Chain0_12 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,27
Chain1_12 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,27
Chain0_13 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,28
Chain1_13 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,28
Chain0_14 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,29
Chain1_14 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,29
Chain0_36 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,30
Chain1_36 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,30
Chain0_40 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,31
Chain1_40 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,31
Chain0_44 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,32
Chain1_44 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,32
Chain0_48 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,33
Chain1_48 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,33
Chain0_52 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,34
Chain1_52 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,34
Chain0_56 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,35
Chain1_56 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,35
Chain0_60 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,36
Chain1_60 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,36
Chain0_64 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,37
Chain1_64 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,37
Chain0_100 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,38
Chain1_100 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,38
Chain0_104 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,39
Chain1_104 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,39
Chain0_108 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,40
Chain1_108 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,40
Chain0_112 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,41
Chain1_112 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,41
Chain0_116 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,42
Chain1_116 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,42
Chain0_120 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,43
Chain1_120 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,43
Chain0_124 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,44
Chain1_124 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,44
Chain0_128 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,45
Chain1_128 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,45
Chain0_132 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,46
Chain1_132 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,46
Chain0_136 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,47
Chain1_136 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,47
Chain0_140 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,48
Chain1_140 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,48
Chain0_144 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,49
Chain1_144 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,49
Chain0_149 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,50
Chain1_149 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,50
Chain0_153 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,51
Chain1_153 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,51
Chain0_157 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,52
Chain1_157 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,52
Chain0_161 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,53
Chain1_161 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,53
Chain0_165 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,54
Chain1_165 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,54
[Section 11: misc]
DFS_switch = 1
power_save_switch = 2
ex-Fem_and_ex-LNA_param_setup = 3
rssi_report_diff = 4
[Section 12: debug reg]
address = 0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x10,0x11,0x12,0x13,0x14,0x15,0x16
value = 0x16,0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x30,0x31
[Section 13: coex_config]
bt_performance_cfg0 = 0x01010101
bt_performance_cfg1 = 0x01000000
wifi_performance_cfg0 = 0x01050A01
wifi_performance_cfg2 = 0x00000000
strategy_cfg0 = 0x01010100
strategy_cfg1 = 0x03000000
strategy_cfg2 = 0x08020000
compatibility_cfg0 = 0x04040000
compatibility_cfg1 = 0x0
ant_cfg0 = 0x0
ant_cfg1 = 0x0
isolation_cfg0 = 0x0505
isolation_cfg1 = 0x0
reserved_cfg0 = 0x0
reserved_cfg1 = 0x0
reserved_cfg2 = 0x0
reserved_cfg3 = 0x0
reserved_cfg4 = 0x0
reserved_cfg5 = 0x0
reserved_cfg6 = 0x0
reserved_cfg7 = 0x0
[Section 14: rf_tlv_config]
rf_config = 0xAA,0x55,0x00,0xFF,0x8,0xA,0x0,0x5,0x0,0x0,0x0,0x0,0x0,0x0

View File

@ -0,0 +1,20 @@
DESCRIPTION = "UWE5622 Wifi firmware"
LICENSE = "CC0-1.0"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=0ceb3372c9595f0a8067e55da801e4a1"
S = "${WORKDIR}"
COMPATIBLE_MACHINE = "orange-pi-zero2"
SRC_URI += "file://wcnmodem.bin"
SRC_URI += "file://wifi_2355b001_1ant.ini"
do_install() {
install -d ${D}${base_libdir}/firmware
install -m 0644 ${S}/wcnmodem.bin ${D}${base_libdir}/firmware/wcnmodem.bin
install -m 0644 ${S}/wifi_2355b001_1ant.ini ${D}${base_libdir}/firmware/wifi_2355b001_1ant.ini
}
FILES:${PN} = "${base_libdir}/*"
PACKAGES = "${PN}"

Some files were not shown because too many files have changed in this diff Show More