Compare commits

...

74 Commits

Author SHA1 Message Date
coderabbitai[bot]
9852b3afcf CodeRabbit Generated Unit Tests: Add test_apa.bats and test_distro_specific.bats test files 2025-06-22 11:34:08 +00:00
Igor Pecovnik
3844ef919f Main: adjust broken patches on Meson and Rockchip64 2025-06-21 19:37:37 +02:00
retro98boy
fc8fef06b2 CAINIAO CNIoT-CORE: use ALSA UCM instead of asound.state 2025-06-19 15:05:33 +02:00
retro98boy
99d23b8190 CAINIAO CNIoT-CORE: change sound card name and update DAI links 2025-06-19 15:05:33 +02:00
CaWeissWz
923dc8d7e8 Update linux-bcm2711-legacy.config
Added missing I2C designware slave functionality
2025-06-19 09:52:10 +02:00
CaWeissWz
8062795c00 Update linux-bcm2711-edge.config
Added missing I2C designware slave functionality.
2025-06-19 09:52:10 +02:00
CaWeissWz
057681b37d Update linux-bcm2711-current.config
Remove leading "+" sign on config variable, as this seems to be a typo
2025-06-19 09:52:10 +02:00
Werner
4d953d0b83 Update config/kernel/linux-bcm2711-current.config
reasonable

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-06-19 09:52:10 +02:00
CwWeissWz
6eb849b60e Build Synopsis DesignWare I2C adapter as module in all rpi kernel configurations. 2025-06-19 09:52:10 +02:00
dependabot[bot]
a1168c2635 build(deps): bump tj-actions/changed-files
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 4140eb99d2cced9bfd78375c2088371853262f79 to d52d20fa3f981cb852b861fd8f55308b5fe29637.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](4140eb99d2...d52d20fa3f)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-version: d52d20fa3f981cb852b861fd8f55308b5fe29637
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-19 09:32:03 +02:00
Patrick Yavitz
989f25533a BananaPi BPI-CM4: Waveshare CM4-IO-BASE-B: Fixups
This is cosmetic. Cleaning up my mess if you will.

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-06-16 06:22:20 +02:00
igorpecovnik
ae9c66bc0d Automatic board configs status synchronise 2025-06-16 06:19:11 +02:00
Werner
a4551ec75d orangepi5-ultra: adjust description (#8304) 2025-06-16 05:40:12 +02:00
Patrick Yavitz
ce02695915 Rockchip64: Defconfig: CONFIG_RTC_DRV_HYM8563=m
Change from "y" to "m"

Before
[    2.423992] rtc-hym8563 1-0051: no valid clock/calendar values available
[    2.424718] rtc-hym8563 1-0051: registered as rtc0
[    2.425770] rtc-hym8563 1-0051: no valid clock/calendar values available
[    2.425789] rtc-hym8563 1-0051: hctosys: unable to read the hardware clock
[    3.817166] rk808-rtc rk808-rtc.5.auto: registered as rtc1

After
[    3.790107] rk808-rtc rk808-rtc.5.auto: registered as rtc0
[    3.801742] rk808-rtc rk808-rtc.5.auto: setting system clock to 2017-08-05T09:48:13 UTC (1501926493)
[    3.919628] rtc-hym8563 1-0051: registered as rtc1

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-06-15 14:11:00 -04:00
Patrick Yavitz
4f69047bcd Add board NanoPi R3S LTS U-Boot Support
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-06-15 14:11:00 -04:00
Patrick Yavitz
5921322e6a Add board NanoPi R3S LTS
The LTS variant has an HDMI port.

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-06-15 14:11:00 -04:00
Werner
e9b20c3ed5 AE for cloud, add description for vendor (#8299)
* AE for cloud, add description for vendor

* fixes
2025-06-15 04:40:07 +00:00
igorpecovnik
b39b03b5a5 Automatic board configs status synchronise 2025-06-14 19:32:01 +02:00
Your Name
d5fb671349 rpi4b: bump edge to 6.15.y 2025-06-14 16:32:05 +02:00
Ayush
bc6e97caa9 config: kernel: linux-k3-beagle-edge: PocketBeagle 2 config improvements and move to supported (#8295)
Enables kernel options that are important for making armbian viable for use on PocketBeagle 2.

Can now run all examples present in the beagle examples repo: https://github.com/beagleboard/vsx-examples

Signed-off-by: Ayush Singh <ayush@beagleboard.org> Andrei Aldea <andrei@beagleboard.org>
2025-06-13 10:29:34 -05:00
Werner
15407330c6 Preparation for http proxy caching (#8281)
* always use http for apt repos

* pass possible proxy arguments to docker

* populate lower-case env variables with upper-case ones if not set otherwise
2025-06-13 10:31:24 +02:00
igorpecovnik
0e388bb514 Automatic board configs status synchronise 2025-06-13 00:30:38 +02:00
Jack Huang
214e3ec224 remove imb3588 dts patch
imb3588 dts has been added to linux-rockchip repo

Signed-off-by: Jack Huang <jackhuang021@gmail.com>
2025-06-12 21:45:46 +02:00
Jack Huang
998542060f fix imb3588 board hardware description format
Signed-off-by: Jack Huang <jackhuang021@gmail.com>
2025-06-12 21:45:46 +02:00
Jack Huang
a4f8def161 config: boards/imb3588: add maintainer email
Signed-off-by: Jack Huang <jackhuang021@gmail.com>
2025-06-12 21:45:46 +02:00
Jack Huang
609110ac10 add imb3588 board support
imb3588 board info link:
https://www.sunshine-tek.com/productinfo/1989232.html

Signed-off-by: Jack Huang <jackhuang021@gmail.com>
2025-06-12 21:45:46 +02:00
Ryzer58
0aed5abe02 Sunxi overlays - fix dts peripheral aliases (#8290)
* correct system patch used for aliasing on Allwinner A10, A13 and A20 to ensure consistent allocation of device IDs

* Re-introduce spi overlays for each bus so that when used in conjuction with a device driver overlay, the pins are correctly muxed into SPI mode

* Ensure SPI overlay patches are applied

* Fix typo in patch name

* Move alias patches further down series.conf to ensure they are only called after the intial overlay creation

* Rephrase subject heading to improve clarity

* Fix interface aliases on Allwinner A10 for I2C, SPI and UART

* Fix interface aliases on Allwinner A13 for I2C and UART

* Fix interface aliases on Allwinner A20 for I2C, SPI and UART

* Fix SPI 2 pin names in line with latest revision of the Allwinner A10 device tree

* Fix SPI 2 pin names in line with latest revision of the Allwinner A20 device tree

* Create overlays for each bus on the Allwinner A20 so that the corresponding pins can be set into spi mode

* Create overlays for each bus on the Allwinner A10 so that the corresponding pins can be set into spi mode

* Condense alias path corrections into the intial overlay creation patch instead of applying a further patch on topof it to enact these corrections

* Remove references to our no longer needed addtional overlays

* rename to include 'arm-dts..' for consistency with other dts related patches

* Fix mistake in SPI overlay patches naming which leads to build failure

* Fix typo in application of spi2 overlay that was leading to compilation failure

* Amend the assigned aliases in overlay creation so that the kernel correctly maps the bus/port number to match the physical hardware numbering

* Update pin labels for SPI 2 to use current names as defined in sun4i-a10.dtsi and sun7i-a20.dtsi. fixed typo in sun5i-a13-spi-spidev as compatibility field should be sun5i-a13

* Re-introduce compilation of spi bus overlays on Allwinner A10 and A20 SOCs which are necessary to ensure that the pins are correctly muxed into spi mode
2025-06-11 23:54:06 +02:00
igorpecovnik
c9bbbbb0c6 Automatic board configs status synchronise 2025-06-11 20:19:45 +02:00
The-going
3188743b1a sunxi-6.15: Fix compilation errors caused by patch migration
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
2025-06-11 19:40:28 +02:00
The-going
65af1b843b sunxi-6.15: Switching EDGE to v6.15 2025-06-11 19:40:28 +02:00
The-going
6a60311cb1 sunxi-6.15: Add armbian patches 2025-06-11 19:40:28 +02:00
The-going
f2f71b9588 sunxi-6.15: Add drm, media patches 2025-06-11 19:40:28 +02:00
The-going
d08fea5232 sunxi-6.15: remove unused megous patches 2025-06-11 19:40:28 +02:00
The-going
32aeb71980 sunxi-6.15: Add megous patches 2025-06-11 19:40:28 +02:00
Martin Schmiedel
8cfd540d0d MBa8MPxL-RAS314: fix sd-card regulator error
fixes a problem which unpredictable switch of the sd-card voltage

Signed-off-by: Martin Schmiedel <martin.schmiedel@tq-group.com>
2025-06-11 19:30:11 +02:00
Martin Schmiedel
b743487194 IMX8: update uboot to v2024.04
- add patch to reanable binman

Signed-off-by: Martin Schmiedel <Martin.Schmiedel@tq-group.com>
2025-06-11 19:30:11 +02:00
Martin Schmiedel
ddfe4f4106 IMX8: fix build error
- fixes: unrecognized option '-Wl,--no-warn-rwx-segment'
- add a patch to atf that removes the unrecognized linker options

Signed-off-by: Martin Schmiedel <Martin.Schmiedel@tq-group.com>
2025-06-11 19:30:11 +02:00
Igor Pecovnik
18ddabe25f Revert "build(deps): bump oras from 0.2.33 to 0.2.34"
This reverts commit f29414a0ea.
2025-06-10 10:44:22 +02:00
igorpecovnik
7968bd4a43 Automatic board configs status synchronise 2025-06-10 06:44:51 +02:00
djurny
0a001ec1d1 Update boot-mvebu.cmd after review
Remove the 10 sec delay in case "critical error" raised.
2025-06-09 21:18:08 +02:00
djurny
13536bf932 Update boot-mvebu.cmd after review
Follow conventional `if-then-else-fi` constructions by not having `else` followed by semicolon. Hush is accepting, but other commonly used shells do not accept this.
2025-06-09 21:18:08 +02:00
Tom Urlings
abe8102669 mvebu: bootscript load address calculation a.o. 2025-06-09 21:18:08 +02:00
Andy Yan
93a09536aa coolpi-genbook: Add Support for vendor branch
Signed-off-by: Andy Yan <andyshrk@163.com>
2025-06-09 21:17:34 +02:00
igorpecovnik
a7785c8ab7 Automatic board configs status synchronise 2025-06-09 21:17:15 +02:00
dependabot[bot]
f29414a0ea build(deps): bump oras from 0.2.33 to 0.2.34
Bumps [oras](https://github.com/oras-project/oras-py) from 0.2.33 to 0.2.34.
- [Release notes](https://github.com/oras-project/oras-py/releases)
- [Changelog](https://github.com/oras-project/oras-py/blob/main/CHANGELOG.md)
- [Commits](https://github.com/oras-project/oras-py/compare/0.2.33...0.2.34)

---
updated-dependencies:
- dependency-name: oras
  dependency-version: 0.2.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 21:17:04 +02:00
dependabot[bot]
06b32ab619 build(deps): bump tj-actions/changed-files
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 115870536a85eaf050e369291c7895748ff12aea to 4140eb99d2cced9bfd78375c2088371853262f79.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](115870536a...4140eb99d2)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-version: 4140eb99d2cced9bfd78375c2088371853262f79
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 21:16:39 +02:00
Ayush Singh
2151ca5d7f boards: pocketbeagle2: Rename config
Since the image is now fixed, enable pocketbeagle2 support

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-06-09 17:58:26 +02:00
Ayush Singh
4a4e0e262b boards: pocketbeagle2: Fix boot failure
- UUID boot does not seem to work on PocketBeagle 2.
- So specify the block device path instead.
- Also without rootwait, the boot will fail.

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-06-09 17:58:26 +02:00
Ayush Singh
c0ac2574ac boards: pocketbeagle2: Update kernel and u-boot
- Contains fixes for the boot failure issue due to a broken driver.

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-06-09 17:58:26 +02:00
Ayush Singh
189c0ad2ec boards: pocketbeagle2: Fix build
Build fails without OPTEE_PLATFORM defined

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-06-09 17:58:26 +02:00
retro98boy
c66fbec4e2 CAINIAO CNIoT-CORE: switch USB 2.0 access from the Type-C port to the four contacts on the side of the host 2025-06-09 17:34:50 +02:00
retro98boy
22b0414b91 CAINIAO CNIoT-CORE: add internal speaker support 2025-06-09 17:34:50 +02:00
retro98boy
f1354108fb CAINIAO CNIoT-CORE: add spidev to control WS2812 LEDs in user space 2025-06-09 17:34:50 +02:00
retro98boy
fb8f189130 add CAINIAO CNIoT-CORE initial support 2025-06-09 17:34:50 +02:00
retro98boy
66cc1f04d4 pinctrl: meson-g12a: add more pwm_d options 2025-06-09 17:34:50 +02:00
Igor Pecovnik
aa5526a918 Signing key: keep a link to previous location
armbian-config still uses old location and as we don't control keys via package, we need to apply this workaround for newly created images
2025-06-09 09:33:46 +02:00
Ayush Singh
c0da65087a compilation: armbian-kernel: Do not make built-in drivers modules
The current script can overwrite drivers which are set as built-in in
the board-specific config. This is not desirable.

Add a check to ensure we do not convert built-in stuff into modules.

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-06-08 18:08:33 +02:00
Igor Pecovnik
54dbbe2785 Trixie: drop non-existing packages 2025-06-08 18:05:07 +02:00
Julian Sikorski
7282020937 Update odroidxu4-current to 6.6.93 2025-06-08 18:04:39 +02:00
The-going
b571ceb46f sunxi: xradio: Switching from del_timer_sync to timer_delete_sync
This was introduced in 6.2 but was removed from the kernel code
in 6.15.
We are currently building cores for sunxi starting from 6.6.
Therefore, a simple replacement without conditions.
2025-06-08 18:04:25 +02:00
The-going
8762476502 patch: misc: uwe5622: fix timer api changes for 6.15 (only sunxi) 2025-06-08 18:04:25 +02:00
The-going
699816ddf2 config-prepare: Initialize an empty KERNEL_DRIVERS_SKIP array unless it exists
If the array exists in this location, initializing an empty array
will destroy all the data that was stored in it.
Do not initialize an empty KERNEL_DRIVERS_SKIP array if it exists.

This allows us to create an array anywhere in the script,
including the user configuration, in a secure way.
2025-06-08 18:04:25 +02:00
Patrick Yavitz
c2d1479fa6 SpacemiT: current: Update to linux-6.6.93
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-06-06 13:29:50 -04:00
hyx0329
28ae76b468 tinkerboard-2: u-boot: bump to v2025.04
This is tested on a tinkerboard 2s.

The u-boot dts for tb2 contains other fixes, and the major ones are:
- add missing basic gpio-fan node
- usb-c altmode fix, dts part
2025-06-04 20:34:12 +02:00
igorpecovnik
e03b1b543c Automatic board configs status synchronise 2025-06-03 09:58:38 +02:00
Ricardo Pardini
c8baf1c888 runners.sh: introduce chroot_sdcard_custom_with_apt_logic() for reuse
- we've too much logic in `chroot_sdcard_apt_get()` we need to re-use
  for eg debfoster or any extensions that need to manipulate the apt
  cache (which is handled via mounts in that function)
- `chroot_sdcard_apt_get()` now accepts a `chroot_command` env var,
  defaulting to `apt-get`
- `chroot_sdcard_custom_with_apt_logic()` splits the params and calls
  `chroot_command=... chroot_sdcard_apt_get ...` allowing for custom
  calls
2025-06-03 09:57:19 +02:00
djurny
0f4303651f Rework after review prepare-host.sh
Use all parameters to display_alert()
```
[🐳|🌱] Running in container [ Adding provisions for container building ]
[🐳|🌱] Adding package to 'host_dependencies' [ python3-setuptools ]
[🐳|🌱] Python2 not available on host release 'noble' [ ancient u-boot versions might/will fail to build ]
```
2025-06-03 09:56:09 +02:00
Tom Urlings
826309f7bc rockchip64/rk3328: U-Boot v2022.04/07 add setexpr
- aimed at nanopi-r2s and nanopineo3
- impacts:
  - boards (re)using 'nanopi-r2s-rk3328_defconfig' (rk3328)
  and:
  - boards using U-Boot v2022.04 or
  - boards using U-Boot v2022.07
- added explicit dependency on python3-setuptools as (at least) U-Boot
  v2022.04 and v2022.07 fail building due to missing 'distutils' for
  boards that use U-Boot v2022.04 or v2022.07
2025-06-03 09:56:09 +02:00
Paolo Sabatino
cc4cb72d40 bump rockchip 32 bit edge kernel to 6.15 2025-06-03 09:53:37 +02:00
Tom Urlings
cdf71df4b8 fix/netplan-dhcp-all-lan-wan-interfaces
- apply dhcp to all interfaces that are renamed to either
  'lanX' or 'wanX' by udev.
- applies to a.o. nanopi-r1, nanopi-r2s.
2025-06-03 09:49:13 +02:00
dependabot[bot]
08c19c021f build(deps): bump setuptools from 80.8.0 to 80.9.0
Bumps [setuptools](https://github.com/pypa/setuptools) from 80.8.0 to 80.9.0.
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/setuptools/compare/v80.8.0...v80.9.0)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 80.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-03 09:48:33 +02:00
dependabot[bot]
acc79288f4 build(deps): bump oras from 0.2.31 to 0.2.33
Bumps [oras](https://github.com/oras-project/oras-py) from 0.2.31 to 0.2.33.
- [Release notes](https://github.com/oras-project/oras-py/releases)
- [Changelog](https://github.com/oras-project/oras-py/blob/main/CHANGELOG.md)
- [Commits](https://github.com/oras-project/oras-py/compare/0.2.31...0.2.33)

---
updated-dependencies:
- dependency-name: oras
  dependency-version: 0.2.33
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-03 09:48:24 +02:00
dependabot[bot]
217149cb01 build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.4.1 to 2.4.2.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](https://github.com/ossf/scorecard-action/compare/v2.4.1...v2.4.2)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-version: 2.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-03 09:48:12 +02:00
dependabot[bot]
dcc9d91b94 build(deps): bump tj-actions/changed-files
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from c6634ca281a9fc05b03bee224ba00910cb78ab6e to 115870536a85eaf050e369291c7895748ff12aea.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](c6634ca281...115870536a)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-version: 115870536a85eaf050e369291c7895748ff12aea
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-03 09:48:01 +02:00
678 changed files with 190217 additions and 2267 deletions

24
.github/CODEOWNERS vendored
View File

@@ -55,6 +55,7 @@ config/boards/helios4.conf @Heisath
config/boards/helios64.conf @prahal
config/boards/hinlink-h28k.csc @sputnik2019
config/boards/hinlink-ht2.csc @hoochiwetech
config/boards/imb3588.conf @JackHuang021
config/boards/indiedroid-nova.csc @lanefu
config/boards/inovato-quadra.conf @NicoD-SBC
config/boards/jethubj100.conf @adeepn
@@ -86,6 +87,7 @@ config/boards/mkspi.csc @redrathnure
config/boards/nanopct6-lts.conf @SuperKali @Tonymac32
config/boards/nanopct6.conf @SuperKali @Tonymac32
config/boards/nanopi-m6.conf @efectn
config/boards/nanopi-r3s-lts.conf @pyavitz
config/boards/nanopi-r5s.csc @utlark
config/boards/nanopi-r6c.csc @ColorfulRhino
config/boards/nanopi-r6s.conf @efectn
@@ -121,7 +123,7 @@ config/boards/orangepizeroplus.csc @schwar3kat
config/boards/phytiumpi.conf @chainsx
config/boards/pine64.conf @PanderMusubi
config/boards/pinebook-pro.csc @TRSx80 @ahoneybun
config/boards/pocketbeagle2.csc @Grippy98
config/boards/pocketbeagle2.conf @Grippy98
config/boards/pocketchip-sd.csc @TheSnowfield
config/boards/qcom-robotics-rb5.conf @FantasyGmm
config/boards/qemu-uboot-arm64.csc @rpardini
@@ -188,9 +190,9 @@ config/kernel/linux-meson64-*.config @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @
config/kernel/linux-mvebu-*.config @Heisath
config/kernel/linux-odroidxu4-*.config @joekhoobyar
config/kernel/linux-phytium-embedded-*.config @chainsx
config/kernel/linux-rk35xx-*.config @CodeChenL @ColorfulRhino @HeyMeco @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @vamzii
config/kernel/linux-rk35xx-*.config @CodeChenL @ColorfulRhino @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @andyshrk @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @vamzii
config/kernel/linux-rockchip-*.config @paolosabatino
config/kernel/linux-rockchip64-*.config @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @SuperKali @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @clee @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @redrathnure @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
config/kernel/linux-rockchip64-*.config @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @SuperKali @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @clee @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @pyavitz @redrathnure @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
config/kernel/linux-sm8250-*.config @FantasyGmm @amazingfate
config/kernel/linux-sm8550-*.config @FantasyGmm
config/kernel/linux-spacemit-*.config @pyavitz
@@ -207,11 +209,11 @@ config/kernel/linux-wsl2-x86-*.config @rpardini
patch/atf/atf-arm64/ @PeterChrz @rpardini
patch/atf/atf-bcm2711/ @PanderMusubi @teknoid
patch/atf/atf-genio/ @HeyMeco
patch/atf/atf-imx8m/ @schmiedelm
patch/atf/atf-imx8/ @schmiedelm
patch/atf/atf-k3-beagle/ @Grippy98
patch/atf/atf-k3/ @Grippy98 @glneo
patch/atf/atf-phytium-embedded/ @chainsx
patch/atf/atf-rockchip64/ @ColorfulRhino @TRSx80 @ahoneybun @andyshrk @clee @joekhoobyar @paolosabatino @prahal
patch/atf/atf-rockchip64/ @ColorfulRhino @SuperKali @TRSx80 @Tonymac32 @ahoneybun @andyshrk @clee @joekhoobyar @paolosabatino @prahal
patch/atf/atf-sm8250/ @FantasyGmm @amazingfate
patch/atf/atf-sm8550/ @FantasyGmm
patch/atf/atf-spacemit/ @pyavitz
@@ -228,7 +230,7 @@ patch/kernel/archive/meson64-*/ @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @clee
patch/kernel/archive/mvebu-*/ @Heisath
patch/kernel/archive/odroidxu4-*/ @joekhoobyar
patch/kernel/archive/rockchip-*/ @paolosabatino
patch/kernel/archive/rockchip64-*/ @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @SuperKali @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @clee @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @redrathnure @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
patch/kernel/archive/rockchip64-*/ @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @SuperKali @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @clee @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @pyavitz @redrathnure @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
patch/kernel/archive/sm8250-*/ @FantasyGmm @amazingfate
patch/kernel/archive/sm8550-*/ @FantasyGmm
patch/kernel/archive/spacemit-*/ @pyavitz
@@ -239,7 +241,7 @@ patch/kernel/archive/wsl2-arm64-*/ @rpardini
patch/kernel/archive/wsl2-x86-*/ @rpardini
patch/kernel/genio-1200-*/ @HeyMeco
patch/kernel/phytium-embedded-*/ @chainsx
patch/kernel/rk35xx-vendor-*/ @CodeChenL @ColorfulRhino @HeyMeco @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @vamzii
patch/kernel/rk35xx-vendor-*/ @CodeChenL @ColorfulRhino @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @andyshrk @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @vamzii
patch/kernel/starfive2-*/ @libiunc
patch/kernel/sun55iw3-syterkit-*/ @chainsx
patch/kernel/thead-*/ @chainsx
@@ -248,7 +250,7 @@ patch/u-boot/legacy/ @chainsx @joekhoobyar @juanlufont @lanefu
patch/u-boot/legacy/u-boot-clearfog/ @Heisath
patch/u-boot/legacy/u-boot-helios4/ @Heisath
patch/u-boot/legacy/u-boot-khadas-edge2-rk3588/ @efectn
patch/u-boot/legacy/u-boot-radxa-rk35xx/ @CodeChenL @HeyMeco @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @tdleiyao @vamzii
patch/u-boot/legacy/u-boot-radxa-rk35xx/ @CodeChenL @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @tdleiyao @vamzii
patch/u-boot/legacy/u-boot-spacemit-k1/ @pyavitz
patch/u-boot/u-boot-beagle/ @Grippy98
patch/u-boot/u-boot-k3-beagle/ @Grippy98
@@ -280,7 +282,7 @@ patch/u-boot/v2025-sunxi/ @The-going
patch/u-boot/v2025.01-rc3-coolpi-cm5/ @andyshrk
patch/u-boot/v2025.01/ @ColorfulRhino @efectn @jeanrhum @joekhoobyar @paolosabatino @pyavitz @rpardini @torte71
patch/u-boot/v2025.01/board_h96-tvbox-3566/ @hqnicolas
patch/u-boot/v2025.04/ @IsMrX @NicoD-SBC @SuperKali @TheSnowfield @Tonymac32 @ZazaBR @amazingfate @andyshrk @catalinii @igorpecovnik @mlegenovic @rpardini @vamzii
patch/u-boot/v2025.04/ @IsMrX @NicoD-SBC @SuperKali @TheSnowfield @Tonymac32 @ZazaBR @amazingfate @andyshrk @catalinii @igorpecovnik @mlegenovic @pyavitz @rpardini @vamzii
sources/families/bcm2711.conf @PanderMusubi @teknoid
sources/families/genio.conf @HeyMeco
sources/families/imx8m.conf @schmiedelm
@@ -297,8 +299,8 @@ sources/families/meson8b.conf @hzyitc @juanlufont
sources/families/mvebu.conf @Heisath
sources/families/odroidxu4.conf @joekhoobyar
sources/families/phytium-embedded.conf @chainsx
sources/families/rk35xx.conf @CodeChenL @ZazaBR @amazingfate @andyshrk @catalinii @hoochiwetech @hqnicolas @krachlatte @mattx433 @sputnik2019 @tdleiyao @vamzii
sources/families/rockchip-rk3588.conf @ColorfulRhino @HeyMeco @SeeleVolleri @SuperKali @Tonymac32 @alexl83 @amazingfate @andyshrk @chainsx @efectn @fridtjof @ginkage @lanefu @linhz0hz @mahdichi @monkaBlyat @prahal @rpardini @schwar3kat
sources/families/rk35xx.conf @CodeChenL @ZazaBR @amazingfate @andyshrk @catalinii @hoochiwetech @hqnicolas @krachlatte @mattx433 @pyavitz @sputnik2019 @tdleiyao @vamzii
sources/families/rockchip-rk3588.conf @ColorfulRhino @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @alexl83 @amazingfate @andyshrk @chainsx @efectn @fridtjof @ginkage @lanefu @linhz0hz @mahdichi @monkaBlyat @prahal @rpardini @schwar3kat
sources/families/rockchip.conf @paolosabatino
sources/families/rockchip64.conf @150balbes @JohnTheCoolingFan @TRSx80 @TheSnowfield @Tonymac32 @ahoneybun @andyshrk @brentr @clee @hqnicolas @igorpecovnik @joekhoobyar @mlegenovic @paolosabatino @prahal @redrathnure @rpardini @sicXnull @torte71 @utlark
sources/families/sm8250.conf @FantasyGmm @amazingfate

View File

@@ -34,7 +34,7 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@c6634ca281a9fc05b03bee224ba00910cb78ab6e # v46.0.3
uses: tj-actions/changed-files@d52d20fa3f981cb852b861fd8f55308b5fe29637 # v46.0.3
- name: Checkout repository
uses: actions/checkout@v4

View File

@@ -30,7 +30,7 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@c6634ca281a9fc05b03bee224ba00910cb78ab6e # v46.0.3
uses: tj-actions/changed-files@d52d20fa3f981cb852b861fd8f55308b5fe29637 # v46.0.3
- name: List all changed files
run: |

View File

@@ -33,7 +33,7 @@ jobs:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@v2.4.1
uses: ossf/scorecard-action@v2.4.2
with:
results_file: results.sarif
results_format: sarif

View File

@@ -0,0 +1,107 @@
# Amlogic A311D 2GB RAM 16GB eMMC GBE USB3 RTL8822CS WiFi/BT
BOARD_NAME="CAINIAO CNIoT-CORE"
BOARDFAMILY="meson-g12b"
BOARD_MAINTAINER=""
BOOTCONFIG="cainiao-cniot-core_defconfig"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
MODULES_BLACKLIST="simpledrm" # SimpleDRM conflicts with Panfrost on the CAINIAO CNIoT-CORE
FULL_DESKTOP="yes"
SERIALCON="ttyAML0"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="amlogic/meson-g12b-a311d-cainiao-cniot-core.dtb"
PACKAGE_LIST_BOARD="alsa-ucm-conf" # Contain ALSA UCM top-level configuration file
BOOTBRANCH_BOARD="tag:v2025.04"
BOOTPATCHDIR="v2025.04" # This has a patch that adds support for CAINIAO CNIoT-CORE.
function post_family_config__use_repacked_fip() {
declare -g UBOOT_TARGET_MAP="u-boot.bin"
unset write_uboot_platform
function write_uboot_platform() {
dd if="$1/u-boot.bin" of="$2" bs=512 seek=1 conv=fsync 2>&1
}
}
function fetch_sources_tools__get_vendor_fip_and_gxlimg_source() {
fetch_from_repo "https://github.com/retro98boy/cainiao-cniot-core-linux.git" "cainiao-cniot-core-linux" "commit:30273c25aeabf75f609cff2c4fa7264335c295a8"
fetch_from_repo "https://github.com/repk/gxlimg.git" "gxlimg" "commit:0d0e5ba9cf396d1338067e8dc37a8bcd2e6874f1"
}
function build_host_tools__install_gxlimg() {
# Compile and install only if git commit hash changed
cd "${SRC}/cache/sources/gxlimg" || exit
# need to check if /usr/local/bin/gxlimg to detect new Docker containers with old cached sources
if [[ ! -f .commit_id || $(git rev-parse @ 2> /dev/null) != $(< .commit_id) || ! -f /usr/local/bin/gxlimg ]]; then
display_alert "Compiling" "gxlimg" "info"
run_host_command_logged make distclean
run_host_command_logged make
install -Dm0755 gxlimg /usr/local/bin/gxlimg
git rev-parse @ 2> /dev/null > .commit_id
fi
}
function post_uboot_custom_postprocess__repack_vendor_fip_with_mainline_uboot() {
display_alert "${BOARD}" "Repacking vendor FIP with mainline u-boot.bin" "info"
BLOBS_DIR="${SRC}/cache/sources/cainiao-cniot-core-linux"
EXTRACT_DIR="${BLOBS_DIR}/extract"
AML_ENCRYPT="${SRC}/cache/sources/amlogic-boot-fip/khadas-vim3/aml_encrypt_g12b"
if [ ! -f "$AML_ENCRYPT" ]; then
display_alert "${BOARD}" "amlogic-boot-fip/khadas-vim3/aml_encrypt_g12b not exist" "err"
exit 1
fi
mv u-boot.bin raw-u-boot.bin
rm -f "${EXTRACT_DIR}/bl33.enc"
# The current version of gxlimg has a problem with the handling of bl3x,
# which may cause the produced fip to fail to boot.
# see https://github.com/repk/gxlimg/issues/19
# run_host_command_logged gxlimg -t bl3x -s raw-u-boot.bin "${EXTRACT_DIR}/bl33.enc"
run_host_x86_binary_logged "$AML_ENCRYPT" --bl3sig \
--input raw-u-boot.bin \
--output "${EXTRACT_DIR}/bl33.enc" \
--level v3 --type bl33
run_host_command_logged gxlimg \
-t fip \
--bl2 "${EXTRACT_DIR}/bl2.sign" \
--ddrfw "${EXTRACT_DIR}/ddr4_1d.fw" \
--ddrfw "${EXTRACT_DIR}/ddr4_2d.fw" \
--ddrfw "${EXTRACT_DIR}/ddr3_1d.fw" \
--ddrfw "${EXTRACT_DIR}/piei.fw" \
--ddrfw "${EXTRACT_DIR}/lpddr4_1d.fw" \
--ddrfw "${EXTRACT_DIR}/lpddr4_2d.fw" \
--ddrfw "${EXTRACT_DIR}/diag_lpddr4.fw" \
--ddrfw "${EXTRACT_DIR}/aml_ddr.fw" \
--ddrfw "${EXTRACT_DIR}/lpddr3_1d.fw" \
--bl30 "${EXTRACT_DIR}/bl30.enc" \
--bl31 "${EXTRACT_DIR}/bl31.enc" \
--bl33 "${EXTRACT_DIR}/bl33.enc" \
--rev v3 u-boot.bin
if [ ! -s u-boot.bin ]; then
display_alert "${BOARD}" "FIP repack produced empty u-boot.bin" "err"
exit 1
fi
}
function post_family_tweaks_bsp__cainiao-cniot-core() {
display_alert "${BOARD}" "Installing ALSA UCM configuration files" "info"
# Use ALSA UCM via GUI: Install a desktop environment such as GNOME, PipeWire, and WirePlumber.
# Use ALSA UCM via CLI: alsactl init && alsaucm set _verb "HiFi" set _enadev "HDMI" set _enadev "Speaker"
# playback via HDMI: aplay -D plughw:cainiaocniotcor,0 /usr/share/sounds/alsa/Front_Center.wav
# playback via internal speaker: aplay -D plughw:cainiaocniotcor,1 /usr/share/sounds/alsa/Front_Center.wav
install -Dm644 "${SRC}/packages/bsp/cainiao-cniot-core/cainiao-cniot-core-HiFi.conf" "${destination}/usr/share/alsa/ucm2/Amlogic/axg-sound-card/cainiao-cniot-core-HiFi.conf"
install -Dm644 "${SRC}/packages/bsp/cainiao-cniot-core/cainiao-cniot-core.conf" "${destination}/usr/share/alsa/ucm2/Amlogic/axg-sound-card/cainiao-cniot-core.conf"
if [ ! -d "${destination}/usr/share/alsa/ucm2/conf.d/axg-sound-card" ]; then
mkdir -p "${destination}/usr/share/alsa/ucm2/conf.d/axg-sound-card"
fi
ln -sfv /usr/share/alsa/ucm2/Amlogic/axg-sound-card/cainiao-cniot-core.conf \
"${destination}/usr/share/alsa/ucm2/conf.d/axg-sound-card/cainiao-cniot-core.conf"
}

View File

@@ -5,7 +5,7 @@ BOARD_MAINTAINER="andyshrk"
BOARD_FIRMWARE_INSTALL="-full"
BOOT_SOC="rk3588"
BOOTCONFIG="coolpi-cm5-genbook-rk3588_defconfig"
KERNEL_TARGET="edge"
KERNEL_TARGET="edge,vendor"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3588-coolpi-cm5-genbook.dtb"
@@ -15,13 +15,13 @@ BOOT_SPI_RKSPI_LOADER="yes"
IMAGE_PARTITION_TABLE="gpt"
# Mainline U-Boot
function post_family_config_branch_edge__coolpi-genbook_use_mainline_uboot() {
function post_family_config__coolpi-genbook_use_mainline_uboot() {
display_alert "$BOARD" "mainline (next branch) u-boot overrides for $BOARD / $BRANCH" "info"
declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git" # Mainline U-Boot
unset BOOTBRANCH
declare -g BOOTPATCHDIR="v2025.01-rc3-coolpi-cm5"
declare -g BOOTBRANCH_BOARD="tag:v2025.01"
declare -g BOOTBRANCH_BOARD="tag:v2025.04"
declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin u-boot-rockchip-spi.bin"
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd # disable stuff from rockchip64_common; we're using binman here which does all the work already

View File

@@ -0,0 +1,14 @@
# Rockchip RK3588 SoC with 4/8/16GB RAM, 16GBB/32GB/64GB/128GB EMMC, m.2 SATA, USB3, USB2, 2xGbE, WIFI6, BT5.1, LCDS, MIPI, eDP, HDMI
BOARD_NAME="IMB3588"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER="JackHuang021"
BOOTCONFIG="imb3588_defconfig"
BOOT_SOC="rk3588"
KERNEL_TARGET="vendor"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3588-yx-imb3588.dtb"
BOOT_SCENARIO="spl-blobs"
BOOT_SUPPORT_SPI="yes"
BOOT_SPI_RKSPI_LOADER="yes"
IMAGE_PARTITION_TABLE="gpt"

View File

@@ -0,0 +1,30 @@
# Rockchip RK3566 quad core 2GB RAM eMMC 2x GbE USB3 HDMI
BOARD_NAME="NanoPi R3S LTS"
BOARDFAMILY="rk35xx"
BOARD_MAINTAINER="pyavitz"
BOOTCONFIG="nanopi-r3s-lts-rk3566_defconfig"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current,edge"
BOOT_FDT_FILE="rockchip/rk3566-nanopi-r3s-lts.dtb"
IMAGE_PARTITION_TABLE="gpt"
BOOT_SCENARIO="spl-blobs"
function post_family_config__use_mainline_uboot() {
if [[ "$BRANCH" != "current" && "$BRANCH" != "edge" ]]; then
return 0
fi
unset BOOTFS_TYPE # mainline u-boot can boot ext4 directly
BOOTCONFIG="nanopi-r3s-lts-rk3566_defconfig"
BOOTSOURCE="https://github.com/u-boot/u-boot"
BOOTBRANCH="tag:v2025.04"
BOOTPATCHDIR="v2025.04"
UBOOT_TARGET_MAP="BL31=$RKBIN_DIR/$BL31_BLOB ROCKCHIP_TPL=$RKBIN_DIR/$DDR_BLOB;;u-boot-rockchip.bin"
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd
function write_uboot_platform() {
dd if=$1/u-boot-rockchip.bin of=$2 seek=64 conv=notrunc status=none
}
}

View File

@@ -1,4 +1,4 @@
# Rockchip RK3588 octa core whatever fixme
# Rockchip RK3588 octa core 4/8/16GB RAM SoC SPI NVMe 2x USB2 2x USB3 HDMI HDMI-in
BOARD_NAME="Orange Pi 5 Ultra"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER=""

View File

@@ -13,8 +13,9 @@ KERNEL_TEST_TARGET="edge"
SERIALCON="ttyS2"
ATF_BOARD="lite"
SRC_EXTLINUX="yes"
SRC_CMDLINE="console=ttyS2,115200n8"
SRC_CMDLINE="root=/dev/mmcblk1p2 rootwait console=ttyS2,115200n8"
BOOT_FDT_FILE="ti/k3-am6232-pocketbeagle2.dtb"
OPTEE_PLATFORM="k3-am62x"
#Until PB2 goes upstream, use this branch
function post_family_config_branch_edge__pocketbeagle2_use_beagle_kernel_uboot() {
@@ -22,9 +23,9 @@ function post_family_config_branch_edge__pocketbeagle2_use_beagle_kernel_uboot()
declare -g KERNELSOURCE="https://github.com/beagleboard/linux" # BeagleBoard kernel
declare -g KERNEL_MAJOR_MINOR="6.12"
declare -g KERNELBRANCH="branch:v6.12.13-ti-arm64-r24"
declare -g KERNELBRANCH="branch:v6.12.24-ti-arm64-r42"
declare -g LINUXFAMILY="k3-beagle" # Separate kernel package from the regular `k3` family
declare -g BOOTSOURCE="https://github.com/beagleboard/u-boot" # BeagleBoard u-boot
declare -g BOOTBRANCH="branch:v2025.01-pocketbeagle2"
declare -g BOOTBRANCH="branch:v2025.04-pocketbeagle2"
}

View File

@@ -9,8 +9,8 @@ FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3399-tinker-2.dtb"
SERIALCON="ttyS2"
BOOT_SCENARIO="spl-blobs" # 'blobless' also works; but some RAM issues found; see rk33/rk3399_ddr_800MHz_v1.27.bin in rockchip64_common.inc
BOOT_SCENARIO="binman" # 'blobless' also works; but some RAM issues found; see rk33/rk3399_ddr_800MHz_v1.27.bin in rockchip64_common.inc
BOARD_FIRMWARE_INSTALL="-full" # Install full firmware, for rtl8822ce firmware and others
BOOTBRANCH="tag:v2021.07" # v2021.07 ...
BOOTBRANCH="tag:v2025.04" # v2025.04 ...
BOOTPATCHDIR='legacy/u-boot-tinkerboard2' # ... with _only_ the patches we need for TB2, not the default rockchip64
DDR_BLOB="rk33/rk3399_ddr_800MHz_v1.27.bin" # Different blob for TB2

View File

@@ -3,187 +3,539 @@
# Please edit /boot/armbianEnv.txt to set supported parameters
#
# NOTE
# If you intend to use 'outside' of 'global' variables from U-Boot, make sure that you do not change them!
# The boot logic will attempt a list of 'boot_targets' that all might rely on (environment) variables that
# have been set by U-Boot, either compile-time or as part of U-Boot's default 'bootcmd'.
# Any variable that this bootscript uses needs to be set explicitly and not conflict with any pre-set variables.
# Variables that we might change will be saved in preset_x and variables we use will be copied into l_x.
# default environment variables
setenv align_overlap_oboe_avoidance "on"
setenv align_to "0x00001000"
setenv console "both"
setenv docker_optimizations "on"
setenv earlycon "off"
setenv emmc_fix "off"
setenv eth1addr "00:50:43:25:fb:84"
setenv eth2addr "00:50:43:84:25:2f"
setenv eth3addr "00:50:43:0d:19:18"
setenv ethaddr "00:50:43:84:fb:2f"
setenv exit_on_critical_errors "on"
setenv fdt_extrasize "0x00010000"
setenv kver
setenv load_addr_calc
setenv overlay_error "false"
setenv preset_fdtdir "${fdtdir}"
setenv preset_fdtfile "${fdtfile}"
setenv preset_kernel_comp_addr_r "${kernel_comp_addr_r}"
setenv preset_kernel_comp_size "${kernel_comp_size}"
setenv rootdev "/dev/mmcblk${devnum}p${distro_bootpart}"
setenv rootfstype "ext4"
setenv spi_workaround "off"
setenv vendor "marvell"
setenv verbosity "1"
# load addresses
setenv load_addr "0x00300000"
setenv fdt_addr_r "0x02040000" # max size 256 KiB (=dtb+dto+fdt_extrasize)
setenv kernel_addr_r "0x02080000" # max size 16 MiB
setenv ramdisk_addr_r "0x03080000"
# default values
setenv overlay_error "false"
setenv rootdev "/dev/mmcblk0p1"
setenv rootfstype "ext4"
setenv verbosity "1"
setenv emmc_fix "off"
setenv spi_workaround "off"
setenv ethaddr "00:50:43:84:fb:2f"
setenv eth1addr "00:50:43:25:fb:84"
setenv eth2addr "00:50:43:84:25:2f"
setenv eth3addr "00:50:43:0d:19:18"
setenv exit_on_critical_errors "on"
setenv fdt_extrasize "0x00010000"
setenv align_to "0x00001000"
setenv align_overlap_oboe_avoidance "on"
setenv align_addr_next 'if test "${align_overlap_oboe_avoidance}" = "on" ; then setexpr addr_next ${addr_next} + 1 ; fi ; setexpr modulo ${addr_next} % ${align_to} ; if itest ${modulo} -gt 0 ; then setexpr addr_next ${addr_next} / ${align_to} ; setexpr addr_next ${addr_next} + 1 ; setexpr addr_next ${addr_next} * ${align_to} ; fi'
if setexpr setexpr 1 + 1 ; then
setenv setexpr "available"
else
echo "** Command `setexpr` not available - using configured load addresses"
fi
echo "Boot script loaded from ${devtype}"
setenv something "environment ${prefix}armbianEnv.txt from ${devtype} to ${load_addr}"
echo "Loading ${something} ..."
if load ${devtype} ${devnum} ${load_addr} ${prefix}armbianEnv.txt; then
env import -t ${load_addr} ${filesize}
else
echo "** Could not load ${something} - using default environment"
fi
setenv bootargs "console=ttyS0,115200 root=${rootdev} rootwait rootfstype=${rootfstype} ubootdev=${devtype} scandelay loglevel=${verbosity} usb-storage.quirks=${usbstoragequirks} ${extraargs}"
setenv something "DT ${prefix}dtb/${fdtfile} from ${devtype} to ${fdt_addr_r}"
echo "Loading ${something} ..."
if load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile} ; then
else
echo "!! CRITICAL - Could not load ${something}"
# environment run variables
setenv func_align_addr_next '
test "${align_overlap_oboe_avoidance}" = "on" && setexpr l_addr_next ${l_addr_next} + 1 ;
setexpr modulo ${l_addr_next} % ${align_to} ;
if itest ${modulo} -gt 0 ; then
setexpr l_addr_next ${l_addr_next} / ${align_to} ;
setexpr l_addr_next ${l_addr_next} + 1 ;
setexpr l_addr_next ${l_addr_next} * ${align_to} ;
fi'
setenv func_inform 'test "${verbosity}" = "" || itest ${verbosity} -gt 0 && echo "${l_message}"'
setenv func_warn 'echo "** WARNING: ${l_message}"'
setenv func_critical_error '
echo "!! CRITICAL: ${l_message}" ;
if test "${exit_on_critical_errors}" = "on" ; then
exit
false ;
else
true ;
fi'
# set some defaults in case there are no pre-sets
if test "${envfile}" = "" ; then
setenv l_envfile 'armbianEnv.txt'
else
setenv l_envfile "${envfile}"
fi
echo "Boot script loaded from ${devtype} ${devnum}:${distro_bootpart}."
# load (merge) on-disk environment
setenv l_file "${prefix}${l_envfile}"
if test -e ${devtype} ${devnum}:${distro_bootpart} ${l_file} ; then
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${l_file} ; then
if env import -t ${load_addr} ${filesize} ; then
setenv l_message "Loaded/imported environment ${l_file} to/from ${load_addr}."
run func_inform
else
setenv l_message "Could not import environment ${l_file} - using default environment!"
run func_warn
fi
else
setenv l_message "Could not load environment ${l_file} - using default environment!"
run func_warn
fi
fi
setenv fdt_filesize ${filesize}
fdt addr ${fdt_addr_r}
fdt resize ${fdt_extrasize}
# compose kernel commandline options (bootargs)
setenv consoleargs
if test "${console}" = "display" || test "${console}" = "both" ; then
setenv consoleargs "console=tty1"
fi
if test "${console}" = "serial" || test "${console}" = "both" ; then
setenv consoleargs "console=ttyS0,115200 ${consoleargs}"
fi
if test "${earlycon}" = "on" ; then
setenv consoleargs "earlycon ${consoleargs}"
fi
if test "${bootlogo}" = "true" ; then
setenv consoleargs "splash plymouth.ignore-serial-consoles ${consoleargs}"
else
setenv consoleargs "splash=verbose ${consoleargs}"
fi
for overlay_file in ${overlays}; do
setenv something "kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo from ${devtype} to ${load_addr}"
echo "Loading ${something} ..."
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
fdt apply ${load_addr} || setenv overlay_error "true"
else
echo "** Could not load ${something}"
part uuid ${devtype} ${devnum}:${distro_bootpart} l_ubootpart
setenv bootargs "root=${rootdev} rootfstype=${rootfstype} rootwait ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${l_ubootpart} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
if test "${docker_optimizations}" = "on" ; then
setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory"
fi
if test "${vendor}" = "allwinner" ; then
if test "${disp_mem_reserves}" = "off" ; then
setenv bootargs "${bootargs} sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16"
fi
done
fi
if test "${vendor}" = "marvell" ; then
# nothing here yet
fi
if test "${vendor}" = "rockchip" ; then
# nothing here yet
fi
for overlay_file in ${user_overlays}; do
setenv something "user provided DT overlay ${overlay_file}.dtbo from ${devtype} to ${load_addr}"
echo "Loading ${something}"
if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
fdt apply ${load_addr} || setenv overlay_error "true"
# check if we are requested (or are able to) use load address calculation
if test "${load_addr_calc}" = "" ; then
if setexpr load_addr_calc 1 + 1 ; then
setenv load_addr_calc 'on'
else
echo "** Could not load ${something}"
setenv load_addr_calc 'off'
fi
done
fi
if test "${load_addr_calc}" != "on" ; then
setenv load_addr_calc 'off'
if test "${overlay_error}" = "true"; then
echo "** Error applying DT overlays"
setenv something "original DT ${prefix}dtb/${fdtfile} from ${devtype} to ${fdt_addr_r}"
echo "Restoring ${something} ..."
if load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile} ; then
setenv l_message "Using fixed load addresses."
run func_inform
setenv l_message " fdt_addr_r: ${fdt_addr_r}"
run func_inform
setenv l_message " kernel_addr_r: ${kernel_addr_r}"
run func_inform
setenv l_message " ramdisk_addr_r: ${ramdisk_addr_r}"
run func_inform
fi
if test "${kver}" != "" ; then
setenv l_message "Using version override ${kver} for image loading."
run func_inform
fi
# set a default kernel image type in case 'setexpr' not available
if test "${cpu}" = "armv8" ; then
# aarch64 uses a flat kernel image
setenv l_kernel_image_type "flat"
setenv l_bootfile "Image${kver}"
else
if test "${cpu}" = "armv7" ; then
# aarch32 mostly uses compressed kernel image
setenv l_kernel_image_type "compressed"
setenv l_bootfile "zImage${kver}"
else
# per default use compressed kernel image
setenv l_kernel_image_type "compressed"
setenv l_bootfile "zImage${kver}"
fi
fi
setenv l_ramdiskfile "uInitrd${kver}"
# $fdtdir:
# some boards use "${prefix}dtb/" others use "${prefix}dtb/${vendor}/" as base location for the DT files
# user can also override by specifying an fdtdir=... in armbianEnv.txt
# try any U-Boot built-in (or pre-set) fdtdir as last resort
# $fdtfile:
# some boards use a "filename.dts" others use "${vendor}/filename.dts"
# user can also override by specifying an fdtfile=... in armbianEnv.txt
# strip any leading path components and try any U-Boot built-in (or pre-set) fdtfile as last resort
setenv l_fdtfile_basename
setexpr l_fdtfile_basename sub ".*/" "" "${fdtfile}"
if test "${l_fdtfile_basename}" = "" ; then
setenv l_fdtfile_basename "${fdtfile}"
fi
setenv l_fdtdir "${fdtdir}"
setenv l_fdtfile "${l_fdtfile_basename}"
if test -e ${devtype} ${devnum}:${distro_bootpart} "${l_fdtdir}/${l_fdtfile}" ; then
true
else
setenv l_fdtdir "${prefix}dtb${kver}/${vendor}"
setenv l_fdtfile "${l_fdtfile_basename}"
if test -e ${devtype} ${devnum}:${distro_bootpart} "${l_fdtdir}/${l_fdtfile}" ; then
true
else
setenv l_fdtdir "${prefix}dtb${kver}"
setenv l_fdtfile "${l_fdtfile_basename}"
if test -e ${devtype} ${devnum}:${distro_bootpart} "${l_fdtdir}/${l_fdtfile}" ; then
true
else
setenv l_fdtdir "${fdtdir}"
setenv l_fdtfile "${fdtfile}"
if test -e ${devtype} ${devnum}:${distro_bootpart} "${l_fdtdir}/${l_fdtfile}" ; then
true
else
setenv l_fdtdir "${preset_fdtdir}"
setenv l_fdtfile "${preset_fdtfile}"
if test -e ${devtype} ${devnum}:${distro_bootpart} "${l_fdtdir}/${l_fdtfile}" ; then
true
else
false
fi
fi
fi
fi
fi
if itest $? -ne 0 ; then
setenv l_message "Cannot find DT!"
run func_critical_error || exit
fi
# load the device tree blob
setenv l_file "${l_fdtdir}/${l_fdtfile}"
if load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${l_file} ; then
setenv l_message "Loaded DT ${l_file} to ${fdt_addr_r}."
run func_inform
setenv l_fdt_filesize ${filesize}
fdt addr ${fdt_addr_r}
fdt resize ${fdt_extrasize}
else
setenv l_message "Could not load DT ${l_file}!"
run func_critical_error || exit
fi
# process "overlays=..." from $l_envfile
if test "${overlays}" != "" ; then
setenv l_message "Loading kernel provided DT overlay(s) from ${l_fdtdir}/overlay to ${load_addr} .."
run func_inform
# as some families offer overlays with different (or no) prefixes, try to guess the most commonly seen ones
# just changing overlay_prefix= will not work for all available overlays, as some have prefixes and some do not
setenv each_overlay
for each_overlay in ${overlays} ; do
setenv l_overlay_prefix "${overlay_prefix}"
setenv l_file "${l_fdtdir}/overlay/${l_overlay_prefix}-${each_overlay}.dtbo"
if test -e ${devtype} ${devnum}:${distro_bootpart} ${l_file} ; then
true
else
setenv l_overlay_prefix "${vendor}"
setenv l_file "${l_fdtdir}/overlay/${l_overlay_prefix}-${each_overlay}.dtbo"
if test -e ${devtype} ${devnum}:${distro_bootpart} ${l_file} ; then
setenv l_message "Found DT overlay ${l_overlay_prefix}-${each_overlay} instead of ${overlay_prefix}-${each_overlay} in ${l_fdtdir}/overlay!"
run func_warn
setenv l_message "Consider setting overlay_prefix=${l_overlay_prefix} in your ${l_envfile}."
run func_inform
true
else
setenv l_overlay_prefix "${vendor}-${soc}"
setenv l_file "${l_fdtdir}/overlay/${l_overlay_prefix}-${each_overlay}.dtbo"
if test -e ${devtype} ${devnum}:${distro_bootpart} ${l_file} ; then
setenv l_message "Found DT overlay ${l_overlay_prefix}-${each_overlay} instead of ${overlay_prefix}-${each_overlay} in ${l_fdtdir}/overlay!"
run func_warn
setenv l_message "Consider setting overlay_prefix=${l_overlay_prefix} in your ${l_envfile}."
run func_inform
true
else
false
fi
fi
fi
if itest $? -eq 0 ; then
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${l_file} ; then
if fdt apply ${load_addr} ; then
setenv l_message "Applied DT overlay ${each_overlay} (${l_file})."
run func_inform
else
setenv overlay_error "true"
setenv l_message "Could NOT apply DT overlay ${each_overlay} (${l_file})!"
run func_warn
fi
else
setenv l_message "Could NOT load DT overlay ${each_overlay} (${l_file})!"
run func_warn
fi
else
setenv l_message "Could NOT find DT overlay ${each_overlay}!"
run func_warn
fi
done
fi
# process "user_overlays=..." from $l_envfile
if test "${user_overlays}" != "" ; then
setenv l_message "Loading user provided DT overlay(s) from ${prefix}overlay-user to ${load_addr} .."
run func_inform
setenv each_user_overlay
for each_user_overlay in ${user_overlays} ; do
setenv l_file "${prefix}overlay-user/${each_user_overlay}.dtbo"
if test -e ${devtype} ${devnum}:${distro_bootpart} ${l_file} ; then
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${l_file} ; then
if fdt apply ${load_addr} ; then
setenv l_message "Applied user DT overlay ${each_user_overlay} (${l_file})."
run func_inform
else
setenv overlay_error "true"
setenv l_message "Could NOT apply user DT overlay ${each_user_overlay} (${l_file})!"
run func_warn
fi
else
setenv l_message "Could NOT load user DT overlay ${each_user_overlay} (${l_file})!"
run func_warn
fi
else
setenv l_message "Could NOT find user DT overlay ${each_user_overlay} (${l_file})!"
run func_warn
fi
done
fi
if test "${overlay_error}" = "true" ; then
setenv l_message "Could not apply DT overlays!"
run func_warn
setenv l_file "${l_fdtdir}/${l_fdtfile}"
if load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${l_file} ; then
setenv l_message "Loaded original DT ${l_file} to ${fdt_addr_r}."
run func_inform
setenv l_fdt_filesize ${filesize}
fdt addr ${fdt_addr_r}
fdt resize ${fdt_extrasize}
else
echo "!! CRITICAL - Could not restore ${something}"
if test "${exit_on_critical_errors}" = "on" ; then
exit
fi
setenv l_message "Could not load original DT ${l_file}!"
run func_critical_error || exit
fi
else
if test -e ${devtype} ${devnum} ${prefix}dtb/overlay/${overlay_prefix}-fixup.scr; then
setenv something "kernel provided DT fixup script (${overlay_prefix}-fixup.scr) from ${devtype} to ${load_addr}"
echo "Loading ${something} ..."
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-fixup.scr ; then
source ${load_addr}
else
echo "** Could not load ${something}"
# process any available DT fixup scripts
setenv l_fixup_scripts "${prefix}fixup.scr"
if test "${overlay_prefix}" != "" ; then
setenv l_fixup_scripts "${l_fdtdir}/overlay/${overlay_prefix}-fixup.scr ${l_fixup_scripts}"
fi
if test "${vendor}" != "" ; then
if test "${vendor}" != "${overlay_prefix}" ; then
setenv l_fixup_scripts "${l_fdtdir}/overlay/${vendor}-fixup.scr ${l_fixup_scripts}"
fi
fi
if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
setenv something "user provided fixup script (fixup.scr) from ${devtype} to ${load_addr}"
echo "Loading ${something} ..."
if load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr ; then
source ${load_addr}
else
echo "** Could not load ${something}"
setenv each_fixup_script
for each_fixup_script in ${l_fixup_scripts} ; do
if test -e ${devtype} ${devnum}:${distro_bootpart} ${each_fixup_script} ; then
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${each_fixup_script} ; then
if source ${load_addr} ; then
setenv l_message "Loaded/sourced fixup script ${each_fixup_script} to/at ${load_addr}."
run func_inform
else
setenv l_message "Fixup script ${each_fixup_script} returned an error!"
run func_warn
fi
else
setenv l_message "Could not load fixup script ${each_fixup_script}!"
run func_warn
fi
fi
fi
done
fi
# eMMC fix
if test "${emmc_fix}" = "on"; then
echo "Applying eMMC compatibility fix to the DT"
echo "Applying eMMC compatibility fix to the DT."
fdt rm /soc/internal-regs/sdhci@d8000/ cd-gpios
fdt set /soc/internal-regs/sdhci@d8000/ non-removable
fi
# SPI - SATA workaround
if test "${spi_workaround}" = "on"; then
echo "Applying SPI workaround to the DT"
echo "Applying SPI workaround to the DT."
fdt set /soc/internal-regs/sata@e0000 status "disabled"
fdt set /soc/internal-regs/sata@a8000 status "disabled"
fdt set /soc/spi@10680 status "okay"
fdt set /soc/spi@10680/spi-flash@0 status "okay"
fi
echo "Trimming DT ..."
# resize (trim) device tree after all overlays have been applied and fixup scripts have been run
fdt resize
if test "${setexpr}" = "available" ; then
fdt header get fdt_totalsize totalsize
if test "${fdt_totalsize}" = "" ; then
echo "** Command `fdt header` does not support `get <var> <member>` - calculating DT size"
# determine the load address for the kernel image
if test "${load_addr_calc}" = "on" ; then
# get the total size of the DT
setenv l_fdt_totalsize
fdt header get l_fdt_totalsize totalsize
if test "${l_fdt_totalsize}" = "" ; then
# could not get the total size of the DT so calculate it instead
setenv l_message "Calculating DT size."
run func_inform
# 'fdt resize' will align upwards to 4k address boundary
setexpr fdt_totalsize ${fdt_filesize} / 0x1000
setexpr fdt_totalsize ${fdt_totalsize} + 1
setexpr fdt_totalsize ${fdt_totalsize} * 0x1000
setexpr l_fdt_totalsize ${l_fdt_filesize} / 0x1000
setexpr l_fdt_totalsize ${l_fdt_totalsize} + 1
setexpr l_fdt_totalsize ${l_fdt_totalsize} * 0x1000
if test "${fdt_extrasize}" != "" ; then
# add 'extrasize' before aligning
setexpr fdt_totalsize ${fdt_totalsize} + ${fdt_extrasize}
setexpr l_fdt_totalsize ${l_fdt_totalsize} + ${fdt_extrasize}
fi
fi
setexpr addr_next ${fdt_addr_r} + ${fdt_totalsize}
run align_addr_next
setenv kernel_addr_r ${addr_next}
setexpr l_addr_next ${fdt_addr_r} + ${l_fdt_totalsize}
run func_align_addr_next
setenv l_kernel_addr_r ${l_addr_next}
else
setenv l_kernel_addr_r ${kernel_addr_r}
fi
setenv something "kernel ${prefix}zImage from ${devtype} to ${kernel_addr_r}"
echo "Loading ${something} ..."
if load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}zImage ; then
setenv l_file "${prefix}${l_bootfile}"
if load ${devtype} ${devnum}:${distro_bootpart} ${l_kernel_addr_r} ${l_file} ; then
if test "${load_addr_calc}" = "on" ; then
setenv kernel_comp_size ${filesize}
fi
setenv l_message "Loaded ${l_kernel_image_type} kernel image ${l_file} to ${l_kernel_addr_r}."
run func_inform
else
echo "!! CRITICAL - Could not load ${something}"
if test "${exit_on_critical_errors}" = "on" ; then
exit
if test "${load_addr_calc}" = "on" ; then
setenv kernel_comp_addr_r "${preset_kernel_comp_addr_r}"
setenv kernel_comp_size "${preset_kernel_comp_size}"
fi
setenv l_message "Could not load ${l_kernel_image_type} kernel image ${l_file}!"
run func_critical_error || exit
fi
# determine the load address for the initial ramdisk
if test "${load_addr_calc}" = "on" ; then
# vmlinux image + 0x38 contain magic (le-double) 'ARMd'
setexpr l_ptr ${l_kernel_addr_r} + 0x00000038
setexpr.w l_magic_lsw *${l_ptr}
setexpr l_ptr ${l_kernel_addr_r} + 0x0000003a
setexpr.w l_magic_msw *${l_ptr}
if test "${l_magic_msw}${l_magic_lsw}" != "" && itest "${l_magic_msw}${l_magic_lsw}" -eq 0x644d5241 ; then
setenv l_kernel_image_type "flat"
else
setenv l_kernel_image_type "compressed"
fi
if test "${l_kernel_image_type}" = "flat" ; then
# vmlinux image + 0x10 contains image_size
setexpr l_ptr ${l_kernel_addr_r} + 0x00000010
setexpr.l l_image_size *${l_ptr}
setenv l_message "Using ${l_kernel_image_type} kernel image image_size 0x${l_image_size} bytes to calculate initial ramdisk load address."
run func_inform
# vmlinux image + 0x08 contains text_offset
setexpr l_ptr ${l_kernel_addr_r} + 0x00000008
setexpr.l l_text_offset *${l_ptr}
setenv l_message "Using ${l_kernel_image_type} kernel image text_offset 0x${l_text_offset} bytes to offset initial ramdisk load address."
run func_inform
setexpr l_addr_next ${l_kernel_addr_r} + ${l_image_size}
run func_align_addr_next
# take into account that U-Boot's booti_setup() might relocate the kernel image
setexpr l_addr_next ${l_addr_next} + ${l_text_offset}
else
setexpr l_addr_next ${l_kernel_addr_r} + ${filesize}
run func_align_addr_next
setenv l_message "Using ${l_kernel_image_type} kernel image filesize 0x${filesize} bytes to calculate initial ramdisk load address."
run func_inform
fi
setenv l_ramdisk_addr_r ${l_addr_next}
else
setenv l_ramdisk_addr_r ${ramdisk_addr_r}
fi
setenv l_file "${prefix}${l_ramdiskfile}"
if load ${devtype} ${devnum}:${distro_bootpart} ${l_ramdisk_addr_r} ${l_file} ; then
if test "${load_addr_calc}" = "on" ; then
setexpr l_addr_next ${l_ramdisk_addr_r} + ${filesize}
run func_align_addr_next
setenv kernel_comp_addr_r ${l_addr_next}
fi
setenv l_message "Loaded initial ramdisk ${l_file} to ${l_ramdisk_addr_r}."
run func_inform
else
if test "${load_addr_calc}" = "on" ; then
setenv kernel_comp_addr_r "${preset_kernel_comp_addr_r}"
setenv kernel_comp_size "${preset_kernel_comp_size}"
fi
setenv l_message "Could not load initial ramdisk ${l_file}!"
run func_critical_error || exit
fi
# attempt to prepare for kernel address space randomization
if kaslrseed ; then
else
setenv l_message "Not able to prepare for KASLR."
run func_inform
fi
setenv l_message "Kernel commandline arguments:"
run func_inform
setenv each_bootarg
for each_bootarg in ${bootargs} ; do
setenv l_message " ${each_bootarg}"
run func_inform
done
if test "${l_kernel_image_type}" = "flat" ; then
booti ${l_kernel_addr_r} ${l_ramdisk_addr_r} ${fdt_addr_r}
else
if test "${l_kernel_image_type}" = "compressed" ; then
bootz ${l_kernel_addr_r} ${l_ramdisk_addr_r} ${fdt_addr_r}
else
# default booting command
bootz ${l_kernel_addr_r} ${l_ramdisk_addr_r} ${fdt_addr_r}
fi
fi
if test "${setexpr}" = "available" ; then
setexpr addr_next ${kernel_addr_r} + ${filesize}
run align_addr_next
setenv ramdisk_addr_r ${addr_next}
# booting failed, restore environment variables that are not unique
# to this bootmeth
if test "${load_addr_calc}" = "on" ; then
# restore original presets
setenv kernel_comp_addr_r "${preset_kernel_comp_addr_r}"
setenv kernel_comp_size "${preset_kernel_comp_size}"
fi
setenv something "initial ramdisk ${prefix}uInitrd from ${devtype} to ${ramdisk_addr_r}"
echo "Loading ${something} ..."
if load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd ; then
else
echo "!! CRITICAL - Could not load ${something}"
if test "${exit_on_critical_errors}" = "on" ; then
exit
fi
fi
setenv something "kernel from ${kernel_addr_r}"
echo "Booting ${something} ..."
if bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r} ; then
else
echo "!! CRITICAL - Could not boot ${something}"
if test "${exit_on_critical_errors}" = "on" ; then
exit
fi
fi
setenv l_message "Could not boot kernel!"
run func_critical_error || exit
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

View File

@@ -78,8 +78,6 @@ openprinting-ppds
p7zip-full
pamix
pasystray
pavucontrol
pavumeter
polkitd
pkexec
#printer-driver-all

View File

@@ -65,8 +65,6 @@ orca
p7zip-full
pamix
pasystray
pavucontrol
pavumeter
polkitd
pkexec
#printer-driver-all

View File

@@ -871,9 +871,12 @@ CONFIG_I2C_MUX_PINCTRL=m
CONFIG_I2C_BCM2708=m
CONFIG_I2C_BCM2835=m
CONFIG_I2C_BRCMSTB=m
CONFIG_I2C_DESIGNWARE_CORE=m
CONFIG_I2C_GPIO=m
CONFIG_I2C_ROBOTFUZZ_OSIF=m
CONFIG_I2C_TINY_USB=m
CONFIG_I2C_SLAVE=y
CONFIG_I2C_DESIGNWARE_SLAVE=y
CONFIG_SPI=y
CONFIG_SPI_BCM2835=m
CONFIG_SPI_BCM2835AUX=m

View File

@@ -856,10 +856,13 @@ CONFIG_I2C_MUX_PINCTRL=m
CONFIG_I2C_BCM2708=m
CONFIG_I2C_BCM2835=m
CONFIG_I2C_BRCMSTB=m
CONFIG_I2C_DESIGNWARE_CORE=m
CONFIG_I2C_GPIO=m
CONFIG_I2C_CP2615=m
CONFIG_I2C_ROBOTFUZZ_OSIF=m
CONFIG_I2C_TINY_USB=m
CONFIG_I2C_SLAVE=y
CONFIG_I2C_DESIGNWARE_SLAVE=y
CONFIG_I2C_VIRTIO=m
CONFIG_SPI=y
CONFIG_SPI_BCM2835=m

View File

@@ -814,10 +814,13 @@ CONFIG_I2C_CHARDEV=m
CONFIG_I2C_MUX_GPMUX=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
CONFIG_I2C_DESIGNWARE_CORE=m
CONFIG_I2C_GPIO=m
CONFIG_I2C_CP2615=m
CONFIG_I2C_ROBOTFUZZ_OSIF=m
CONFIG_I2C_TINY_USB=m
CONFIG_I2C_SLAVE=y
CONFIG_I2C_DESIGNWARE_SLAVE=y
CONFIG_I2C_VIRTIO=m
CONFIG_SPI=y
CONFIG_SPI_DESIGNWARE=m

View File

@@ -1,7 +1,6 @@
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_AUDIT=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
@@ -17,6 +16,8 @@ CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_HUGETLB=y
@@ -25,6 +26,8 @@ CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_BPF=y
CONFIG_NAMESPACES=y
CONFIG_USER_NS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
@@ -89,7 +92,10 @@ CONFIG_JUMP_LABEL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_ZSWAP=y
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# CONFIG_COMPAT_BRK is not set
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTREMOVE=y
@@ -101,33 +107,69 @@ CONFIG_CMA_AREAS=20
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_XFRM_USER=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_INET_ESP=m
CONFIG_IPV6=m
CONFIG_NETFILTER=y
CONFIG_BRIDGE_NETFILTER=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK=y
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_ZONES=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CONNTRACK_LABELS=y
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_TABLES=y
CONFIG_NF_TABLES_INET=y
CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NAT=m
CONFIG_NFT_TUNNEL=m
CONFIG_NFT_QUOTA=m
CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_TPROXY=m
CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NETFILTER_XT_MARK=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
CONFIG_NETFILTER_XT_MATCH_BPF=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_IPVS=m
CONFIG_IP_VS=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_NFCT=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_SECURITY=y
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_BRIDGE=m
@@ -149,6 +191,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_MQPRIO=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_FLOWER=m
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_GACT=m
@@ -156,6 +199,7 @@ CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_GATE=m
CONFIG_QRTR_SMD=m
CONFIG_QRTR_TUN=m
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CAN=m
CONFIG_BT=m
CONFIG_BT_HIDP=m
@@ -195,12 +239,10 @@ CONFIG_FW_LOADER_USER_HELPER=y
CONFIG_MHI_BUS_PCI_GENERIC=m
CONFIG_ARM_SCMI_PROTOCOL=y
CONFIG_IMX_SCMI_BBM_EXT=y
CONFIG_IMX_SCMI_MISC_EXT=y
CONFIG_GOOGLE_FIRMWARE=y
CONFIG_GOOGLE_CBMEM=m
CONFIG_GOOGLE_COREBOOT_TABLE=m
CONFIG_EFI_CAPSULE_LOADER=y
CONFIG_IMX_SCMI_MISC_DRV=y
CONFIG_GNSS=m
CONFIG_GNSS_MTK_SERIAL=m
CONFIG_MTD=y
@@ -219,6 +261,10 @@ CONFIG_MTD_SPI_NOR=y
CONFIG_MTD_UBI=m
CONFIG_MTD_HYPERBUS=m
CONFIG_HBMC_AM654=m
CONFIG_OF_OVERLAY=y
CONFIG_ZRAM=m
CONFIG_ZRAM_WRITEBACK=y
CONFIG_ZRAM_MEMORY_TRACKING=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_NBD=m
CONFIG_VIRTIO_BLK=y
@@ -245,11 +291,15 @@ CONFIG_BLK_DEV_DM=m
CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
CONFIG_TUN=y
CONFIG_VETH=m
CONFIG_VIRTIO_NET=y
CONFIG_NETKIT=y
CONFIG_MHI_NET=m
# CONFIG_NET_VENDOR_ALACRITECH is not set
# CONFIG_NET_VENDOR_AMAZON is not set
@@ -347,6 +397,7 @@ CONFIG_IWLMVM=m
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_SDIO=m
CONFIG_MWIFIEX_PCIE=m
CONFIG_MT7601U=m
CONFIG_MT7921E=m
CONFIG_RSI_91X=m
CONFIG_WL18XX=m
@@ -355,6 +406,7 @@ CONFIG_WWAN=m
CONFIG_MHI_WWAN_CTRL=m
CONFIG_MHI_WWAN_MBIM=m
CONFIG_INPUT_MATRIXKMAP=y
CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_ADC=m
CONFIG_KEYBOARD_GPIO=y
@@ -417,6 +469,7 @@ CONFIG_SPI_OMAP24XX=m
CONFIG_SPI_SPIDEV=m
CONFIG_PINCTRL=y
CONFIG_PINCTRL_DA9062=m
CONFIG_PINCTRL_MCP23S08=m
CONFIG_PINCTRL_RK805=m
CONFIG_PINCTRL_SINGLE=y
CONFIG_GPIO_SYSFS=y
@@ -522,6 +575,8 @@ CONFIG_VIDEO_IMX219=m
CONFIG_VIDEO_IMX412=m
CONFIG_VIDEO_OV5640=m
CONFIG_VIDEO_OV5645=m
CONFIG_AUXDISPLAY=y
CONFIG_SEG_LED_GPIO=m
CONFIG_DRM=m
CONFIG_DRM_I2C_CH7006=m
CONFIG_DRM_I2C_SIL164=m
@@ -698,6 +753,7 @@ CONFIG_LEDS_PCA9532=m
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_SYSCON=y
CONFIG_LEDS_PWM_MULTICOLOR=m
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
@@ -772,6 +828,8 @@ CONFIG_EXTCON_PTN5150=m
CONFIG_EXTCON_USB_GPIO=y
CONFIG_MEMORY=y
CONFIG_IIO=y
CONFIG_MMA8452=m
CONFIG_AD7291=m
CONFIG_MAX9611=m
CONFIG_TI_ADS1015=m
CONFIG_TI_AM335X_ADC=m
@@ -782,6 +840,7 @@ CONFIG_IIO_ST_MAGN_3AXIS=m
CONFIG_MPL3115=m
CONFIG_PWM=y
CONFIG_PWM_ADP5585=m
CONFIG_PWM_GPIO=m
CONFIG_PWM_TIECAP=m
CONFIG_PWM_TIEHRPWM=m
CONFIG_RESET_CONTROLLER=y
@@ -822,7 +881,7 @@ CONFIG_HTE=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
@@ -847,10 +906,13 @@ CONFIG_NFS_V4_2=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_PERSISTENT_KEYRINGS=y
CONFIG_ENCRYPTED_KEYS=y
CONFIG_KEY_DH_OPERATIONS=y
CONFIG_SECURITY=y
CONFIG_SECURITY_APPARMOR=y
CONFIG_CRYPTO_USER=y
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_DH=m
CONFIG_CRYPTO_CURVE25519=m
CONFIG_CRYPTO_ECHAINIV=y
CONFIG_CRYPTO_ANSI_CPRNG=y

View File

@@ -86,7 +86,6 @@ CONFIG_ZSWAP=y
CONFIG_ZSWAP_DEFAULT_ON=y
CONFIG_ZSWAP_SHRINKER_DEFAULT_ON=y
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# CONFIG_COMPAT_BRK is not set
CONFIG_KSM=y
CONFIG_CMA=y
@@ -777,10 +776,11 @@ CONFIG_RTL8XXXU=m
CONFIG_RTW88=m
CONFIG_RTW88_8822BU=m
CONFIG_RTW88_8822CU=m
CONFIG_RTW88_8723DS=m
CONFIG_RTW88_8723CS=m
CONFIG_RTW88_8723DU=m
CONFIG_RTW88_8821CU=m
CONFIG_RTW89=m
CONFIG_RTL8723DS=m
CONFIG_RTL8192EU=m
CONFIG_RTL8189ES=m
CONFIG_ZD1211RW=m
@@ -1245,11 +1245,6 @@ CONFIG_HID_ICADE=m
CONFIG_HID_TWINHAN=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_LCPOWER=m
CONFIG_HID_LOGITECH=m
CONFIG_HID_LOGITECH_DJ=m
CONFIG_LOGITECH_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
CONFIG_HID_MAGICMOUSE=m
CONFIG_HID_MALTRON=m
CONFIG_HID_MICROSOFT=m
@@ -1535,7 +1530,6 @@ CONFIG_FB_TFT_TLS8204=m
CONFIG_FB_TFT_UC1611=m
CONFIG_FB_TFT_UC1701=m
CONFIG_FB_TFT_UPD161704=m
CONFIG_RTL8723CS=m
CONFIG_COMMON_CLK_MAX9485=m
CONFIG_COMMON_CLK_RK808=y
CONFIG_COMMON_CLK_SCMI=m
@@ -1692,7 +1686,6 @@ CONFIG_SQUASHFS_EMBEDDED=y
CONFIG_PSTORE=y
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_RAM=y
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
# CONFIG_EROFS_FS_ZIP is not set
@@ -1726,7 +1719,6 @@ CONFIG_CIFS_POSIX=y
CONFIG_CIFS_FSCACHE=y
CONFIG_CIFS_COMPRESSION=y
CONFIG_SMB_SERVER=m
CONFIG_SMB_SERVER_KERBEROS5=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
@@ -1799,8 +1791,6 @@ CONFIG_CRYPTO_DEV_ROCKCHIP_DEBUG=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_SAFEXCEL=m
CONFIG_CRYPTO_DEV_CCREE=m
CONFIG_CRC4=m
CONFIG_CRC7=m
CONFIG_DMA_CMA=y
CONFIG_IRQ_POLL=y
CONFIG_PRINTK_TIME=y
@@ -1812,7 +1802,6 @@ CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0
# CONFIG_SLUB_DEBUG is not set
CONFIG_DETECT_HUNG_TASK=y
CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
# CONFIG_SCHED_DEBUG is not set
CONFIG_SCHEDSTATS=y
CONFIG_STACKTRACE=y
CONFIG_RCU_CPU_STALL_TIMEOUT=60

View File

@@ -2694,7 +2694,7 @@ CONFIG_RTC_CLASS=y
CONFIG_RTC_LIB_KUNIT_TEST=m
CONFIG_RTC_DRV_AS3722=m
CONFIG_RTC_DRV_DS1307=y
CONFIG_RTC_DRV_HYM8563=y
CONFIG_RTC_DRV_HYM8563=m
CONFIG_RTC_DRV_MAX77686=y
CONFIG_RTC_DRV_RK808=m
CONFIG_RTC_DRV_ISL12026=m

View File

@@ -2696,7 +2696,7 @@ CONFIG_RTC_CLASS=y
CONFIG_RTC_LIB_KUNIT_TEST=m
CONFIG_RTC_DRV_AS3722=m
CONFIG_RTC_DRV_DS1307=y
CONFIG_RTC_DRV_HYM8563=y
CONFIG_RTC_DRV_HYM8563=m
CONFIG_RTC_DRV_MAX77686=y
CONFIG_RTC_DRV_RK808=m
CONFIG_RTC_DRV_ISL12026=m

View File

@@ -37,8 +37,8 @@ case "${BRANCH}" in
edge)
declare -g EXTRAWIFI="no"
declare -g KERNELSOURCE='https://github.com/raspberrypi/linux'
declare -g KERNEL_MAJOR_MINOR="6.14" # Major and minor versions of this kernel. For mainline caching.
declare -g KERNELBRANCH="branch:rpi-6.14.y"
declare -g KERNEL_MAJOR_MINOR="6.15" # Major and minor versions of this kernel. For mainline caching.
declare -g KERNELBRANCH="branch:rpi-6.15.y"
;;
esac

View File

@@ -23,7 +23,7 @@ case $BOARD in
ATFSOURCE='https://github.com/tq-systems/atf' # required for ram
ATFBRANCH="branch:TQM-lf_v2.10"
BOOTSOURCE='https://github.com/tq-systems/u-boot-tqmaxx.git' # u-boot mainlining is hard and has low-priority
BOOTBRANCH='branch:TQMa8-v2020.04_imx_5.4.70_2.3.0'
BOOTBRANCH='commit:90aea55d842b6c3c978530532e16110123995002'
BOOTPATCHDIR="u-boot-tqma" # could be removed when distro boot patches are integrated
;;
esac

View File

@@ -11,11 +11,12 @@ ARCH="arm64"
KERNEL_IMAGE_TYPE="Image"
OVERLAY_DIR="/boot/dtb/freescale/overlay"
SRC_EXTLINUX="yes" # use extlinux as default
IMX_FIRMWARE="${IMX_FIRMWARE:-"firmware-imx-8.12"}"
IMX_FIRMWARE="${IMX_FIRMWARE:-"firmware-imx-8.26-d4c33ab"}"
# ATF_PLAT musst set in board
# ATF_UART_BASE musst set in board
# MAP = target_make,target_patchdir,target_files
# use xxx:xxx to rename files after build
ATFPATCHDIR='atf-imx8'
ATF_TARGET_MAP="PLAT=${ATF_PLAT} IMX_BOOT_UART_BASE=${ATF_UART_BASE} bl31;;build/imx8mp/release/bl31.bin"
UBOOT_TARGET_MAP="flash.bin;;flash.bin"

View File

@@ -35,8 +35,8 @@ case $BRANCH in
;;
edge)
declare -g KERNEL_MAJOR_MINOR="6.14" # Major and minor versions of this kernel.
declare -g KERNELBRANCH="tag:v6.14.8"
declare -g KERNEL_MAJOR_MINOR="6.15" # Major and minor versions of this kernel.
declare -g KERNELBRANCH="tag:v6.15"
;;
esac

View File

@@ -36,8 +36,8 @@ case $BRANCH in
;;
edge)
declare -g KERNEL_MAJOR_MINOR="6.14" # Major and minor versions of this kernel.
declare -g KERNELBRANCH="tag:v6.14.8"
declare -g KERNEL_MAJOR_MINOR="6.15" # Major and minor versions of this kernel.
declare -g KERNELBRANCH="tag:v6.15"
;;
esac

View File

@@ -21,8 +21,8 @@ function uboot_custom_postprocess() {
elif [[ $BOARD == odroidn2* ]]; then
# FIP trees 'odroid-n2-plus' and 'odroid-n2' are identical.
uboot_g12_postprocess "$SRC"/cache/sources/amlogic-boot-fip/odroid-n2 g12b
elif [[ $BOARD == khadas-vim3 ]]; then
# do nothing. VIM3 has its own post_uboot_custom_postprocess hook, directly in the board file.
elif [[ $BOARD == khadas-vim3 ]] || [[ $BOARD == cainiao-cniot-core ]]; then
# do nothing. These boards have their own post_uboot_custom_postprocess hook, directly in the board file.
:
elif [[ $BOARD == radxa-zero2 ]]; then
uboot_g12_postprocess "$SRC"/cache/sources/amlogic-boot-fip/radxa-zero2 g12b

View File

@@ -56,7 +56,7 @@ case $BRANCH in
edge)
declare -g KERNEL_MAJOR_MINOR="6.14" # Major and minor versions of this kernel.
declare -g KERNEL_MAJOR_MINOR="6.15" # Major and minor versions of this kernel.
;;
esac

View File

@@ -5,7 +5,7 @@ function extension_prepare_config__apa() {
}
function custom_apt_repo__add_apa() {
run_host_command_logged echo "deb [signed-by=${APT_SIGNING_KEY_FILE}] https://github.armbian.com/apa current main" "|" tee "${SDCARD}"/etc/apt/sources.list.d/armbian-apa.list
run_host_command_logged echo "deb [signed-by=${APT_SIGNING_KEY_FILE}] http://github.armbian.com/apa current main" "|" tee "${SDCARD}"/etc/apt/sources.list.d/armbian-apa.list
}
function post_armbian_repo_customize_image__install_from_apa() {

View File

@@ -5,7 +5,7 @@
function custom_apt_repo__add_armbian-github-repo() {
cat <<- EOF > "${SDCARD}"/etc/apt/sources.list.d/armbian-config.sources
Types: deb
URIs: https://github.armbian.com/configng
URIs: http://github.armbian.com/configng
Suites: stable
Components: main
Signed-By: ${APT_SIGNING_KEY_FILE}

View File

@@ -14,3 +14,15 @@ network:
dhcp4: yes
dhcp6: yes
ipv6-privacy: yes # Enabled by default on most current systems, but networkd currently doesn't enable IPv6 privacy by default, see https://man.archlinux.org/man/systemd.network.5
all-lan-interfaces: # include interfaces that are renamed to 'lanX' by udev, e.g. nanopi-r2s
match:
name: "lan[0-9]*"
dhcp4: yes
dhcp6: yes
ipv6-privacy: yes # Enabled by default on most current systems, but networkd currently doesn't enable IPv6 privacy by default, see https://man.archlinux.org/man/systemd.network.5
all-wan-interfaces: # include interfaces that are renamed to 'wanX' by udev, e.g. nanopi-r1
match:
name: "wan[0-9]*"
dhcp4: yes
dhcp6: yes
ipv6-privacy: yes # Enabled by default on most current systems, but networkd currently doesn't enable IPv6 privacy by default, see https://man.archlinux.org/man/systemd.network.5

View File

@@ -367,8 +367,14 @@ function armbian_kernel_config__restore_enable_gpio_sysfs() {
#
function kernel_config_set_m() {
declare module="$1"
display_alert "Enabling kernel module" "${module}=m" "debug"
run_host_command_logged ./scripts/config --module "$module"
state=$(./scripts/config --state "$module")
if [ "$state" == "y" ]; then
display_alert "${module} is already enabled as built-in"
else
display_alert "Enabling kernel module" "${module}=m" "debug"
run_host_command_logged ./scripts/config --module "$module"
fi
}
function kernel_config_set_y() {

View File

@@ -245,6 +245,8 @@ driver_xradio_xr819() {
>> "$kerneldir/drivers/net/wireless/Makefile"
sed -i '/source "drivers\/net\/wireless\/ti\/Kconfig"/a source "drivers\/net\/wireless\/xradio\/Kconfig"' \
"$kerneldir/drivers/net/wireless/Kconfig"
process_patch_file "${SRC}/patch/misc/xradio-Switching-from-del_timer_sync-to-timer_delete_sync.patch" "applying"
fi
}
@@ -525,7 +527,11 @@ driver_uwe5622() {
fi
if linux-version compare "${version}" ge 6.15; then
process_patch_file "${SRC}/patch/misc/wireless-uwe5622/uwe5622-v6.15-timer-api-changes.patch" "applying"
if [[ "$LINUXFAMILY" == sunxi* ]]; then
process_patch_file "${SRC}/patch/misc/wireless-uwe5622/uwe5622-fix-timer-api-changes-for-6.15-only-sunxi.patch" "applying"
else
process_patch_file "${SRC}/patch/misc/wireless-uwe5622/uwe5622-v6.15-timer-api-changes.patch" "applying"
fi
fi
fi
}

View File

@@ -233,14 +233,17 @@ function interactive_config_ask_branch() {
description="Recommended. Usually an LTS kernel"
;;
legacy)
description="Old stable / Legacy / Vendor kernel"
description="Old stable / Legacy kernel"
;;
edge)
description="Bleeding edge / latest possible"
;;
cloud)
description="Cloud optimised minimal LTS kernel"
description="Cloud optimized minimal LTS kernel"
;;
vendor)
description="Vendor BSP kernel"
;;
*)
description="Experimental ${one_kernel_target} kernel / for Developers"
;;

View File

@@ -409,6 +409,13 @@ function docker_cli_prepare_launch() {
"--env" "GITHUB_SHA=${GITHUB_SHA}"
"--env" "GITHUB_WORKFLOW=${GITHUB_WORKFLOW}"
"--env" "GITHUB_WORKSPACE=${GITHUB_WORKSPACE}"
# Pass proxy args
"--env" "http_proxy=${http_proxy:-${HTTP_PROXY}}"
"--env" "https_proxy=${https_proxy:-${HTTPS_PROXY}}"
"--env" "HTTP_PROXY=${HTTP_PROXY}"
"--env" "HTTPS_PROXY=${HTTPS_PROXY}"
"--env" "APT_PROXY_ADDR=${APT_PROXY_ADDR}"
)
# This env var is used super early (in entrypoint.sh), so set it as an env to current value.

View File

@@ -203,7 +203,7 @@ function adaptative_prepare_host_dependencies() {
udev # causes initramfs rebuild, but is usually pre-installed.
uuid-dev
zlib1g-dev
gcc-arm-linux-gnueabi # necessary for rockchip64 (and maybe other too) ATF compilation
gcc-arm-linux-gnueabi # necessary for rockchip64 (and maybe other too) ATF compilation
# by-category below
file tree expect # logging utilities; expect is needed for 'unbuffer' command
@@ -228,6 +228,12 @@ function adaptative_prepare_host_dependencies() {
# Needed for some u-boot's, lest "tools/mkeficapsule.c:21:10: fatal error: gnutls/gnutls.h"
host_dependencies+=("libgnutls28-dev")
# Some versions of U-Boot do not require/import 'python3-setuptools' properly, so add them explicitly.
if [[ 'tag:v2022.04' == "${BOOTBRANCH:-}" || 'tag:v2022.07' == "${BOOTBRANCH:-}" ]]; then
display_alert "Adding package to 'host_dependencies'" "python3-setuptools" "info"
host_dependencies+=("python3-setuptools")
fi
### Python2 -- required for some older u-boot builds
# Debian newer than 'bookworm' and Ubuntu newer than 'lunar'/'mantic' does not carry python2 anymore; in this case some u-boot's might fail to build.
# Last versions to support python2 were Debian 'bullseye' and Ubuntu 'jammy'

View File

@@ -37,8 +37,15 @@ function chroot_sdcard_apt_get_remove() {
DONT_MAINTAIN_APT_CACHE="yes" chroot_sdcard_apt_get remove "$@"
}
function chroot_sdcard_custom_with_apt_logic() {
declare command="${1}"
shift
chroot_command="${command}" chroot_sdcard_apt_get "$@"
}
function chroot_sdcard_apt_get() {
acng_check_status_or_restart # make sure apt-cacher-ng is running OK.
declare apt_get_command="${chroot_command:-"apt-get"}"
declare default_apt_logging="-qq"
if [[ "${SHOW_DEBUG}" == "yes" ]]; then
default_apt_logging=""
@@ -83,7 +90,7 @@ function chroot_sdcard_apt_get() {
prelude_clean_env=("env" "-i")
fi
local_apt_deb_cache_prepare "before 'apt-get $*'" # sets LOCAL_APT_CACHE_INFO
local_apt_deb_cache_prepare "before '${apt_get_command} $*'" # sets LOCAL_APT_CACHE_INFO
if [[ "${LOCAL_APT_CACHE_INFO[USE]}" == "yes" ]]; then
# prepare and mount apt cache dir at /var/cache/apt/archives in the SDCARD.
skip_error_info="yes" run_host_command_logged mkdir -pv "${LOCAL_APT_CACHE_INFO[SDCARD_DEBS_DIR]}" "${LOCAL_APT_CACHE_INFO[SDCARD_LISTS_DIR]}"
@@ -104,9 +111,14 @@ function chroot_sdcard_apt_get() {
display_alert "Extra envs for apt:" "${extra_envs[*]@Q}" "debug"
local chroot_apt_result=1
chroot_sdcard "${prelude_clean_env[@]}" "${extra_envs[@]}" apt-get "${apt_params[@]}" "$@" && chroot_apt_result=0
if [[ "${apt_get_command}" == "apt-get" ]]; then
chroot_sdcard "${prelude_clean_env[@]}" "${extra_envs[@]}" apt-get "${apt_params[@]}" "$@" && chroot_apt_result=0
else
# custom case: does not pass the apt parameters; but envs are passed normally.
chroot_sdcard "${prelude_clean_env[@]}" "${extra_envs[@]}" "${apt_get_command}" "$@" && chroot_apt_result=0
fi
local_apt_deb_cache_prepare "after 'apt-get $*'" # sets LOCAL_APT_CACHE_INFO
local_apt_deb_cache_prepare "after '${apt_get_command} $*'" # sets LOCAL_APT_CACHE_INFO
if [[ "${LOCAL_APT_CACHE_INFO[USE]}" == "yes" ]]; then
display_alert "Unmounting apt deb cache dir" "${LOCAL_APT_CACHE_INFO[SDCARD_DEBS_DIR]}" "debug"
run_host_command_logged umount "${LOCAL_APT_CACHE_INFO[SDCARD_DEBS_DIR]}"

View File

@@ -166,7 +166,11 @@ function config_early_init() {
display_alert "Starting single build process" "${BOARD:-"no BOARD set"}" "info"
declare -g -a KERNEL_DRIVERS_SKIP=() # Prepare array to be filled in by board/family/extensions
# Do not initialize an empty array if it exists.
if [ "${KERNEL_DRIVERS_SKIP[*]}" == "" ]; then
# Prepare array to be filled in by board/family/extensions
declare -g -a KERNEL_DRIVERS_SKIP=()
fi
silent="yes" track_general_config_variables "after config_early_init" # don't log anything, just init the change tracking

View File

@@ -164,6 +164,10 @@ function create_sources_list_and_deploy_repo_key() {
APT_SIGNING_KEY_FILE="/usr/share/keyrings/armbian-archive-keyring.gpg"
gpg --dearmor < "${SRC}"/config/armbian.key > "${basedir}${APT_SIGNING_KEY_FILE}"
# lets link to the old file as armbian-config uses it and we can't set there to new file
# we user force linking as some old caches still exists
chroot "${basedir}" /bin/bash -c "ln -fs armbian-archive-keyring.gpg /usr/share/keyrings/armbian.gpg"
# lets keep old way for old distributions
if [[ "${RELEASE}" =~ (focal|bullseye) ]]; then
cp "${SRC}"/config/armbian.key "${basedir}"
@@ -192,7 +196,7 @@ function create_sources_list_and_deploy_repo_key() {
fi
cat <<- EOF > "${basedir}"/etc/apt/sources.list.d/armbian.sources
Types: deb
URIs: https://${armbian_mirror}
URIs: http://${armbian_mirror}
Suites: $RELEASE
Components: ${components[*]}
Signed-By: ${APT_SIGNING_KEY_FILE}

View File

@@ -0,0 +1,61 @@
SectionVerb {
Value {
TQ "HiFi"
}
# Note that if some audio paths are not pre-configured here,
# allowing audio streams to be input to the device without returning errors,
# it will cause PipeWire to fail in parsing ALSA UCM.
EnableSequence [
# FRDDR_A -> TDMOUT_A -> TOHDMITX -> HDMI
cset "name='FRDDR_A SINK 1 SEL' 'OUT 0'"
cset "name='FRDDR_A SRC 1 EN Switch' on"
cset "name='TDMOUT_A SRC SEL' 'IN 0'"
cset "name='TOHDMITX Switch' off" # Disable output
cset "name='TOHDMITX I2S SRC' 'I2S A'"
# FRDDR_B -> TDMOUT_B -> TOACODEC -> ACODEC -> Internal Speaker
cset "name='FRDDR_B SINK 1 SEL' 'OUT 1'"
cset "name='FRDDR_B SRC 1 EN Switch' on"
cset "name='TDMOUT_B SRC SEL' 'IN 1'"
cset "name='TOACODEC Lane Select' 0"
cset "name='TOACODEC OUT EN Switch' off" # Disable output
cset "name='TOACODEC SRC' 'I2S B'"
cset "name='ACODEC Playback Volume' 255"
]
}
SectionDevice."HDMI" {
Comment "HDMI"
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId},0" # plughw won't work
}
EnableSequence [
cset "name='TOHDMITX Switch' on"
]
DisableSequence [
cset "name='TOHDMITX Switch' off"
]
}
SectionDevice."Speaker" {
Comment "Internal Speaker"
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId},1" # plughw won't work
PlaybackMixerElem "ACODEC"
}
EnableSequence [
cset "name='TOACODEC OUT EN Switch' on"
]
DisableSequence [
cset "name='TOACODEC OUT EN Switch' off"
]
}

View File

@@ -0,0 +1,56 @@
Syntax 4
Comment "CAINIAO CNIoT-CORE Sound"
SectionUseCase."HiFi" {
File "/Amlogic/axg-sound-card/cainiao-cniot-core-HiFi.conf"
Comment "Play HiFi quality music"
}
BootSequence [
# Reset to default
cset "name='ACODEC Playback Volume' 0"
cset "name='ACODEC Left DAC Sel' 'Left'"
cset "name='ACODEC Mute Ramp Switch' off"
cset "name='ACODEC Playback Channel Mode' 'Stereo'"
cset "name='ACODEC Ramp Rate' 'Fast'"
cset "name='ACODEC Right DAC Sel' 'Right'"
cset "name='ACODEC Unmute Ramp Switch' off"
cset "name='ACODEC Volume Ramp Switch' off"
cset "name='FRDDR_A SINK 1 SEL' 'OUT 0'"
cset "name='FRDDR_A SINK 2 SEL' 'OUT 0'"
cset "name='FRDDR_A SINK 3 SEL' 'OUT 0'"
cset "name='FRDDR_A SRC 1 EN Switch' off"
cset "name='FRDDR_A SRC 2 EN Switch' off"
cset "name='FRDDR_A SRC 3 EN Switch' off"
cset "name='FRDDR_B SINK 1 SEL' 'OUT 0'"
cset "name='FRDDR_B SINK 2 SEL' 'OUT 0'"
cset "name='FRDDR_B SINK 3 SEL' 'OUT 0'"
cset "name='FRDDR_B SRC 1 EN Switch' off"
cset "name='FRDDR_B SRC 2 EN Switch' off"
cset "name='FRDDR_B SRC 3 EN Switch' off"
cset "name='FRDDR_C SINK 1 SEL' 'OUT 0'"
cset "name='FRDDR_C SINK 2 SEL' 'OUT 0'"
cset "name='FRDDR_C SINK 3 SEL' 'OUT 0'"
cset "name='FRDDR_C SRC 1 EN Switch' off"
cset "name='FRDDR_C SRC 2 EN Switch' off"
cset "name='FRDDR_C SRC 3 EN Switch' off"
cset "name='TDMOUT_A Gain Enable Switch' off"
cset "name='TDMOUT_A Lane 0 Volume' 0"
cset "name='TDMOUT_A Lane 1 Volume' 0"
cset "name='TDMOUT_A Lane 2 Volume' 0"
cset "name='TDMOUT_A Lane 3 Volume' 0"
cset "name='TDMOUT_A SRC SEL' 'IN 0'"
cset "name='TDMOUT_B Gain Enable Switch' off"
cset "name='TDMOUT_B Lane 0 Volume' 0"
cset "name='TDMOUT_B Lane 1 Volume' 0"
cset "name='TDMOUT_B Lane 2 Volume' 0"
cset "name='TDMOUT_B Lane 3 Volume' 0"
cset "name='TDMOUT_B SRC SEL' 'IN 0'"
cset "name='TOACODEC Lane Select' 0"
cset "name='TOACODEC OUT EN Switch' off"
cset "name='TOACODEC SRC' 'I2S A'"
cset "name='TOHDMITX Switch' off"
cset "name='TOHDMITX I2S SRC' 'I2S A'"
cset "name='TOHDMITX SPDIF SRC' 'SPDIF A'"
]

View File

@@ -0,0 +1,30 @@
From 230e25fbcd0a36dfaaa8f3b9f0ad7d9cd0500736 Mon Sep 17 00:00:00 2001
From: Martin Schmiedel <Martin.Schmiedel@tq-group.com>
Date: Wed, 28 May 2025 14:02:39 +0200
Subject: [PATCH] fix needed by armbian build system
remove possibly contained gcc linker flags
Signed-off-by: Martin Schmiedel <Martin.Schmiedel@tq-group.com>
---
Makefile | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Makefile b/Makefile
index ea5701347..7a4ff1244 100644
--- a/Makefile
+++ b/Makefile
@@ -343,6 +343,10 @@ GCC_V_OUTPUT := $(shell $(CC) -v 2>&1)
TF_LDFLAGS += -z noexecstack
+# remove possibly contained gcc linker flags we use the linker directly
+gcc_linker_flags = -Wl,--no-warn-rwx-segment
+TF_LDFLAGS := $(filter-out $(gcc_linker_flags), $(TF_LDFLAGS))
+
# LD = armlink
ifneq ($(findstring armlink,$(notdir $(LD))),)
TF_LDFLAGS += --diag_error=warning --lto_level=O1
--
2.43.0

View File

@@ -0,0 +1,259 @@
From 17f6e064d93013f2aaca40e9f44bf2c5b45652eb Mon Sep 17 00:00:00 2001
From: Martin Schmiedel <martin.schmiedel@tq-group.com>
Date: Thu, 5 Jun 2025 13:11:40 +0200
Subject: [PATCH] TQMa8MPXL LDO5 Fix
Signed-off-by: Martin Schmiedel <martin.schmiedel@tq-group.com>
Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
---
.../imx8mp-tqma8mpql-mba8mp-ras314.dts | 13 ++---
.../freescale/imx8mp-tqma8mpql-mba8mpxl.dts | 13 ++---
.../boot/dts/freescale/imx8mp-tqma8mpql.dtsi | 48 +++++++++++++++----
3 files changed, 53 insertions(+), 21 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts
index d7fd9d36f824..f7346b3d35fe 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts
@@ -467,6 +467,10 @@ &pwm4 {
status = "okay";
};
+&reg_usdhc2_vqmmc {
+ status = "okay";
+};
+
&sai5 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai5>;
@@ -876,8 +880,7 @@ pinctrl_usdhc2: usdhc2grp {
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d2>,
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d2>,
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d2>,
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d2>,
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0>;
+ <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d2>;
};
pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
@@ -886,8 +889,7 @@ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4>,
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4>,
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4>,
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>,
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0>;
+ <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>;
};
pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
@@ -896,8 +898,7 @@ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4>,
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4>,
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4>,
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>,
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0>;
+ <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>;
};
pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
index ae64731266f3..e7c16a7ee6c2 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
@@ -603,6 +603,10 @@ &pwm3 {
status = "okay";
};
+&reg_usdhc2_vqmmc {
+ status = "okay";
+};
+
&sai3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>;
@@ -982,8 +986,7 @@ pinctrl_usdhc2: usdhc2grp {
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d2>,
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d2>,
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d2>,
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d2>,
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0>;
+ <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d2>;
};
pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
@@ -992,8 +995,7 @@ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4>,
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4>,
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4>,
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>,
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0>;
+ <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>;
};
pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
@@ -1002,8 +1004,7 @@ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4>,
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4>,
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4>,
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>,
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0>;
+ <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>;
};
pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql.dtsi
index 3ddc5aaa7c5f..05a518209b59 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql.dtsi
@@ -16,13 +16,26 @@ memory@40000000 {
reg = <0x0 0x40000000 0 0x80000000>;
};
- /* identical to buck4_reg, but should never change */
- reg_vcc3v3: regulator-vcc3v3 {
- compatible = "regulator-fixed";
- regulator-name = "VCC3V3";
- regulator-min-microvolt = <3300000>;
+ reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc {
+ compatible = "regulator-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_reg_usdhc2_vqmmc>;
+ regulator-name = "V_SD2";
+ regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
- regulator-always-on;
+ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+ states = <1800000 0x1>,
+ <3300000 0x0>;
+ vin-supply = <&ldo5_reg>;
+ status = "disabled";
+ };
+
+ reg_5v_in: regulator-5v-in {
+ compatible = "regulator-fixed";
+ regulator-name = "V_5V_IN";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-boot-on;
};
};
@@ -80,6 +93,7 @@ buck1_reg: BUCK1 {
regulator-name = "BUCK1";
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <950000>;
+ vin-supply = <&reg_5v_in>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <3125>;
@@ -90,6 +104,7 @@ buck2_reg: BUCK2 {
regulator-name = "BUCK2";
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <1000000>;
+ vin-supply = <&reg_5v_in>;
regulator-boot-on;
regulator-always-on;
nxp,dvs-run-voltage = <950000>;
@@ -102,6 +117,7 @@ buck4_reg: BUCK4 {
regulator-name = "BUCK4";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
+ vin-supply = <&reg_5v_in>;
regulator-boot-on;
regulator-always-on;
};
@@ -111,6 +127,7 @@ buck5_reg: BUCK5 {
regulator-name = "BUCK5";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ vin-supply = <&reg_5v_in>;
regulator-boot-on;
regulator-always-on;
};
@@ -120,6 +137,7 @@ buck6_reg: BUCK6 {
regulator-name = "BUCK6";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
+ vin-supply = <&reg_5v_in>;
regulator-boot-on;
regulator-always-on;
};
@@ -129,6 +147,7 @@ ldo1_reg: LDO1 {
regulator-name = "LDO1";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ vin-supply = <&reg_5v_in>;
regulator-boot-on;
regulator-always-on;
};
@@ -138,6 +157,7 @@ ldo3_reg: LDO3 {
regulator-name = "LDO3";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ vin-supply = <&reg_5v_in>;
regulator-boot-on;
regulator-always-on;
};
@@ -147,6 +167,7 @@ ldo4_reg: LDO4 {
regulator-name = "LDO4";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>;
+ vin-supply = <&reg_5v_in>;
};
/* VCC SD IO - switched using SD2 VSELECT */
@@ -154,6 +175,7 @@ ldo5_reg: LDO5 {
regulator-name = "LDO5";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
+ vin-supply = <&reg_5v_in>;
};
};
};
@@ -168,17 +190,21 @@ at24c02: eeprom@53 {
read-only;
reg = <0x53>;
pagesize = <16>;
- vcc-supply = <&reg_vcc3v3>;
+ vcc-supply = <&buck4_reg>;
};
m24c64: eeprom@57 {
compatible = "atmel,24c64";
reg = <0x57>;
pagesize = <32>;
- vcc-supply = <&reg_vcc3v3>;
+ vcc-supply = <&buck4_reg>;
};
};
+&usdhc2 {
+ vqmmc-supply = <&reg_usdhc2_vqmmc>;
+};
+
&usdhc3 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc3>;
@@ -188,7 +214,7 @@ &usdhc3 {
non-removable;
no-sd;
no-sdio;
- vmmc-supply = <&reg_vcc3v3>;
+ vmmc-supply = <&buck4_reg>;
vqmmc-supply = <&buck5_reg>;
status = "okay";
};
@@ -228,6 +254,10 @@ pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
fsl,pins = <MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19 0x10>;
};
+ pinctrl_reg_usdhc2_vqmmc: regusdhc2vqmmcgrp {
+ fsl,pins = <MX8MP_IOMUXC_GPIO1_IO04__GPIO1_IO04 0xc0>;
+ };
+
pinctrl_usdhc3: usdhc3grp {
fsl,pins = <MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x194>,
<MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d4>,
--
2.43.0

View File

@@ -43,7 +43,7 @@ index 111111111111..222222222222 100644
+ */
{
.limits = {
.max_hdmi_phy_freq = 1650000,
.max_hdmi_phy_freq = 1650000000,
},
.attrs = (const struct soc_device_attribute []) {
{ .soc_id = "GXL (S805*)", },

View File

@@ -0,0 +1,600 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2019 BayLibre, SAS
* Author: Neil Armstrong <narmstrong@baylibre.com>
* Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
* Copyright (c) 2025 retro98boy <retro98boy@qq.com>
*/
/dts-v1/;
#include "meson-g12b-a311d.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/sound/meson-g12a-toacodec.h>
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
/ {
compatible = "CAINIAO,CNIoT-CORE", "amlogic,a311d", "amlogic,g12b";
model = "CAINIAO CNIoT-CORE";
aliases {
serial0 = &uart_AO;
ethernet0 = &ethmac;
rtc99 = &vrtc;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x80000000>;
};
fan0: pwm-fan {
compatible = "pwm-fan";
#cooling-cells = <2>;
cooling-levels = <0 120 170 220>;
pwms = <&pwm_cd 1 40000 1>;
tach-gpio = <&gpio GPIOA_4 GPIO_ACTIVE_HIGH>;
};
gpio-keys-polled {
compatible = "gpio-keys-polled";
poll-interval = <100>;
pwr-btn {
label = "pwr-btn";
linux,code = <KEY_POWER>;
gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>;
};
};
adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 2>;
io-channel-names = "buttons";
keyup-threshold-microvolt = <1710000>;
poll-interval = <100>;
button-recovery {
label = "Recovery";
linux,code = <KEY_VENDOR>;
press-threshold-microvolt = <10000>;
};
};
emmc_pwrseq: emmc-pwrseq {
compatible = "mmc-pwrseq-emmc";
reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; /* In the vendor DTS, this is BOOT_10, but the actual test result is BOOT_12. */
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_connector_in: endpoint {
remote-endpoint = <&hdmi_tx_tmds_out>;
};
};
};
ht6872: ht6872 {
compatible = "simple-audio-amplifier";
enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
VCC-supply = <&vdd_amp>;
sound-name-prefix = "HT6872";
status = "okay";
};
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
clocks = <&wifi32k>;
clock-names = "ext_clock";
};
wifi32k: wifi32k {
compatible = "pwm-clock";
#clock-cells = <0>;
clock-frequency = <32768>;
pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
};
dc_in: regulator-dc-in {
compatible = "regulator-fixed";
regulator-name = "dc_in";
regulator-always-on;
regulator-boot-on;
};
/* important to usb hub */
amp_power: regulator-amp-power {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio GPIOH_8 GPIO_ACTIVE_HIGH>;
regulator-name = "amp_power";
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_in>;
};
vddao_1v8: regulator-vddao-1v8 {
compatible = "regulator-fixed";
regulator-name = "vddao_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_in>;
};
vddcpu_a: regulator-vddcpu-a {
compatible = "pwm-regulator";
regulator-name = "VDDCPU_A";
regulator-min-microvolt = <690000>;
regulator-max-microvolt = <1050000>;
pwm-supply = <&dc_in>;
pwms = <&pwm_ab 0 1250 0>;
pwm-dutycycle-range = <100 0>;
regulator-boot-on;
regulator-always-on;
};
vddcpu_b: regulator-vddcpu-b {
compatible = "pwm-regulator";
regulator-name = "VDDCPU_B";
regulator-min-microvolt = <690000>;
regulator-max-microvolt = <1050000>;
pwm-supply = <&dc_in>;
pwms = <&pwm_AO_cd 1 1250 0>;
pwm-dutycycle-range = <100 0>;
regulator-boot-on;
regulator-always-on;
};
vsys_3v3: regulator-vsys-3v3 {
compatible = "regulator-fixed";
regulator-name = "vsys_3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_in>;
};
usb_pwr: regulator-usb-pwr {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>; /* always keep usb hub reset pin high */
regulator-name = "usb_pwr";
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_in>;
};
/*
* The Type-C port on the host is switched with the four USB contacts on the side of the host via GPIOA_14.
* Since the Type-C port on the host is either used for power supply or blocked by the dock,
* switching USB 2.0 access to the four contacts on the side of the host is a better choice.
* To use the Type-C port for data transmission,
* you only need to set GPIOA_14 in the node below to a high level.
*/
usb_switch: regulator-usb-switch {
compatible = "regulator-fixed";
enable-active-low;
gpio = <&gpio GPIOA_14 GPIO_ACTIVE_LOW>;
regulator-name = "usb_switch";
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_in>;
};
vdd_amp: regulator-vdd-amp {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio GPIOH_7 GPIO_ACTIVE_HIGH>;
regulator-name = "vdd_amp";
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_in>;
};
sound {
compatible = "amlogic,axg-sound-card";
model = "cainiao-cniot-core";
audio-widgets = "Speaker", "Internal Speaker";
audio-aux-devs = <&tdmout_a>, <&tdmout_b>, <&ht6872>;
audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
"TDMOUT_A IN 1", "FRDDR_B OUT 0",
"TDMOUT_A IN 2", "FRDDR_C OUT 0",
"TDM_A Playback", "TDMOUT_A OUT",
"TDMOUT_B IN 0", "FRDDR_A OUT 1",
"TDMOUT_B IN 1", "FRDDR_B OUT 1",
"TDMOUT_B IN 2", "FRDDR_C OUT 1",
"TDM_B Playback", "TDMOUT_B OUT",
"HT6872 INL", "ACODEC LOLP",
"HT6872 INR", "ACODEC LORP",
"Internal Speaker", "HT6872 OUTL",
"Internal Speaker", "HT6872 OUTR";
clocks = <&clkc CLKID_MPLL2>,
<&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>;
assigned-clocks = <&clkc CLKID_MPLL2>,
<&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>;
assigned-clock-parents = <0>, <0>, <0>;
assigned-clock-rates = <294912000>,
<270950400>,
<393216000>;
dai-link-0 {
sound-dai = <&frddr_a>;
};
dai-link-1 {
sound-dai = <&frddr_b>;
};
dai-link-2 {
sound-dai = <&frddr_c>;
};
/* 8ch hdmi interface */
dai-link-3 {
sound-dai = <&tdmif_a>;
dai-format = "i2s";
dai-tdm-slot-tx-mask-0 = <1 1>;
dai-tdm-slot-tx-mask-1 = <1 1>;
dai-tdm-slot-tx-mask-2 = <1 1>;
dai-tdm-slot-tx-mask-3 = <1 1>;
mclk-fs = <256>;
codec-0 {
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
};
codec-1 {
sound-dai = <&toacodec TOACODEC_IN_A>;
};
};
/* 8ch hdmi interface */
dai-link-4 {
sound-dai = <&tdmif_b>;
dai-format = "i2s";
dai-tdm-slot-tx-mask-0 = <1 1>;
dai-tdm-slot-tx-mask-1 = <1 1>;
dai-tdm-slot-tx-mask-2 = <1 1>;
dai-tdm-slot-tx-mask-3 = <1 1>;
mclk-fs = <256>;
codec-0 {
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
};
codec-1 {
sound-dai = <&toacodec TOACODEC_IN_B>;
};
};
/* hdmi glue */
dai-link-5 {
sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
codec {
sound-dai = <&hdmi_tx>;
};
};
/* acodec glue */
dai-link-6 {
sound-dai = <&toacodec TOACODEC_OUT>;
codec {
sound-dai = <&acodec>;
};
};
};
};
&acodec {
AVDD-supply = <&vddao_1v8>;
status = "okay";
};
&arb {
status = "okay";
};
&clkc_audio {
status = "okay";
};
&cecb_AO {
pinctrl-0 = <&cec_ao_b_h_pins>;
pinctrl-names = "default";
status = "okay";
hdmi-phandle = <&hdmi_tx>;
};
&cpu0 {
cpu-supply = <&vddcpu_b>;
operating-points-v2 = <&cpu_opp_table_0>;
clocks = <&clkc CLKID_CPU_CLK>;
clock-latency = <50000>;
};
&cpu1 {
cpu-supply = <&vddcpu_b>;
operating-points-v2 = <&cpu_opp_table_0>;
clocks = <&clkc CLKID_CPU_CLK>;
clock-latency = <50000>;
};
&cpu100 {
cpu-supply = <&vddcpu_a>;
operating-points-v2 = <&cpub_opp_table_1>;
clocks = <&clkc CLKID_CPUB_CLK>;
clock-latency = <50000>;
};
&cpu101 {
cpu-supply = <&vddcpu_a>;
operating-points-v2 = <&cpub_opp_table_1>;
clocks = <&clkc CLKID_CPUB_CLK>;
clock-latency = <50000>;
};
&cpu102 {
cpu-supply = <&vddcpu_a>;
operating-points-v2 = <&cpub_opp_table_1>;
clocks = <&clkc CLKID_CPUB_CLK>;
clock-latency = <50000>;
};
&cpu103 {
cpu-supply = <&vddcpu_a>;
operating-points-v2 = <&cpub_opp_table_1>;
clocks = <&clkc CLKID_CPUB_CLK>;
clock-latency = <50000>;
};
&cpu_thermal {
trips {
cpu_active: cpu-active {
temperature = <60000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
};
cooling-maps {
map2 {
trip = <&cpu_active>;
cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&ethmac {
pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
pinctrl-names = "default";
status = "okay";
phy-mode = "rgmii";
phy-handle = <&rtl8211f>;
amlogic,tx-delay-ns = <2>;
};
&ext_mdio {
rtl8211f: rtl8211f@0 {
reg = <0>;
max-speed = <1000>;
reset-assert-us = <10000>;
reset-deassert-us = <80000>;
reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
interrupt-parent = <&gpio_intc>;
/* MAC_INTR on GPIOZ_14 */
interrupts = <IRQID_GPIOZ_14 IRQ_TYPE_LEVEL_LOW>; /* tested by voltmeter */
};
};
&frddr_a {
status = "okay";
};
&frddr_b {
status = "okay";
};
&frddr_c {
status = "okay";
};
&hdmi_tx {
status = "okay";
pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
pinctrl-names = "default";
};
&hdmi_tx_tmds_port {
hdmi_tx_tmds_out: endpoint {
remote-endpoint = <&hdmi_connector_in>;
};
};
&npu {
status = "okay";
};
&pwm_ab {
status = "okay";
pinctrl-0 = <&pwm_a_e_pins>;
pinctrl-names = "default";
clocks = <&xtal>;
clock-names = "clkin0";
};
&pwm_cd {
status = "okay";
pinctrl-0 = <&pwm_d_a_pins>;
pinctrl-names = "default";
};
&pwm_ef {
status = "okay";
pinctrl-0 = <&pwm_e_pins>;
pinctrl-names = "default";
};
&pwm_AO_cd {
pinctrl-0 = <&pwm_ao_d_e_pins>;
pinctrl-names = "default";
clocks = <&xtal>;
clock-names = "clkin1";
status = "okay";
};
&saradc {
status = "okay";
vref-supply = <&vddao_1v8>;
};
&sd_emmc_a {
status = "okay";
pinctrl-0 = <&sdio_pins>;
pinctrl-1 = <&sdio_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
#address-cells = <1>;
#size-cells = <0>;
bus-width = <4>;
max-frequency = <100000000>;
cap-sdio-irq;
cap-sd-highspeed;
non-removable;
/* WiFi firmware requires power in suspend */
keep-power-in-suspend;
mmc-pwrseq = <&sdio_pwrseq>;
vmmc-supply = <&vsys_3v3>;
vqmmc-supply = <&vddao_1v8>;
rtl8822cs: wifi@1 {
reg = <1>;
/*
* tested by voltmeter
* WL_REG_ON GPIOX_6
* WL_WAKE_HOST GPIOX_5
*/
};
};
&sd_emmc_c {
status = "okay";
pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
max-frequency = <200000000>;
bus-width = <8>;
cap-mmc-highspeed;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
non-removable;
mmc-pwrseq = <&emmc_pwrseq>;
vmmc-supply = <&vsys_3v3>;
vqmmc-supply = <&vddao_1v8>;
};
/*
* GPIOH_4 is connected to 6 WS2812 LEDs.
* Reusing GPIOH_4 as SPI MOSI to control the WS2812 offers superior performance compared to the GPIO method.
*/
&spicc1_pins {
mux {
groups = "spi1_mosi";
};
};
/* Controlling WS2812 LEDs via spidev in user space. */
&spicc1 {
status = "okay";
pinctrl-0 = <&spicc1_pins>;
pinctrl-names = "default";
spidev@0 {
compatible = "rohm,dh2228fv";
reg = <0>;
spi-max-frequency = <3340000>;
};
};
&tdmif_a {
status = "okay";
};
&tdmif_b {
status = "okay";
};
&tdmout_a {
status = "okay";
};
&tdmout_b {
status = "okay";
};
&toacodec {
status = "okay";
};
&tohdmitx {
status = "okay";
};
&uart_A {
status = "okay";
pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
pinctrl-names = "default";
uart-has-rtscts;
bluetooth {
compatible = "realtek,rtl8822cs-bt";
enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; /* tested by voltmeter */
host-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>; /* tested by voltmeter */
device-wake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>; /* tested by voltmeter */
};
};
&uart_AO {
status = "okay";
pinctrl-0 = <&uart_ao_a_pins>;
pinctrl-names = "default";
};
&usb2_phy0 {
phy-supply = <&amp_power>;
};
&usb2_phy1 {
phy-supply = <&usb_switch>;
};
&usb3_pcie_phy {
phy-supply = <&usb_pwr>;
};
&usb {
status = "okay";
dr_mode = "host";
};

View File

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2024 Patrick Yavitz <pyavitz@xxxxx.com>
* Copyright (c) 2024 Patrick Yavitz <pyavitz@gmail.com>
*/
/dts-v1/;
@@ -16,21 +16,6 @@
};
};
&i2c1 {
rtc: rtc@51 {
compatible = "nxp,pcf85063a";
reg = <0x51>;
wakeup-source;
};
fanctrl: emc2305@2f {
compatible = "smsc,emc2305";
reg = <0x2f>;
#cooling-cells = <0x02>;
wakeup-source;
};
};
&cpu_thermal {
trips {
fanmid0: fanmid0 {
@@ -59,6 +44,21 @@
};
};
&i2c1 {
rtc: rtc@51 {
compatible = "nxp,pcf85063a";
reg = <0x51>;
wakeup-source;
};
fanctrl: emc2305@2f {
compatible = "smsc,emc2305";
reg = <0x2f>;
#cooling-cells = <0x02>;
wakeup-source;
};
};
&usb {
dr_mode = "host";
};

View File

@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From e1e66c32b7a9ce7cf52922fe073c4bff40054599 Mon Sep 17 00:00:00 2001
From: Yuntian Zhang <yt@radxa.com>
Date: Thu, 13 Jan 2022 21:34:10 +0800
Subject: pinctrl: meson: Add several missing pinmux for pwm functions
Subject: [PATCH] pinctrl: meson: Add several missing pinmux for pwm functions
The following pin definitions are mentioned in A311D Quick
Reference Manual and S922X Public Datasheet, but not in S905Y2
@@ -11,15 +11,15 @@ They are currently exposed in Radxa Zero 2's GPIO header.
Signed-off-by: Yuntian Zhang <yt@radxa.com>
---
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 34 ++++++++++
drivers/pinctrl/meson/pinctrl-meson-g12a.c | 14 +++-
2 files changed, 45 insertions(+), 3 deletions(-)
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 42 +++++++++++++++++++++
drivers/pinctrl/meson/pinctrl-meson-g12a.c | 16 ++++++--
2 files changed, 55 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
index 111111111111..222222222222 100644
index 86e6ceb31..b2f9a09b2 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
@@ -149,3 +149,37 @@ &pmu {
@@ -149,3 +149,45 @@ &pmu {
&npu {
power-domains = <&pwrc PWRC_G12A_NNA_ID>;
};
@@ -56,12 +56,20 @@ index 111111111111..222222222222 100644
+ bias-disable;
+ };
+ };
+
+ pwm_d_a_pins: pwm-d-a {
+ mux {
+ groups = "pwm_d_a";
+ function = "pwm_d";
+ bias-disable;
+ };
+ };
+};
diff --git a/drivers/pinctrl/meson/pinctrl-meson-g12a.c b/drivers/pinctrl/meson/pinctrl-meson-g12a.c
index 111111111111..222222222222 100644
index e2788bfc5..c94360afc 100644
--- a/drivers/pinctrl/meson/pinctrl-meson-g12a.c
+++ b/drivers/pinctrl/meson/pinctrl-meson-g12a.c
@@ -271,17 +271,21 @@ static const unsigned int eth_act_led_pins[] = { GPIOZ_15 };
@@ -268,17 +268,22 @@ static const unsigned int eth_act_led_pins[] = { GPIOZ_15 };
static const unsigned int pwm_a_pins[] = { GPIOX_6 };
/* pwm_b */
@@ -80,20 +88,22 @@ index 111111111111..222222222222 100644
static const unsigned int pwm_d_x3_pins[] = { GPIOX_3 };
static const unsigned int pwm_d_x6_pins[] = { GPIOX_6 };
+static const unsigned int pwm_d_z_pins[] = { GPIOZ_2 };
+static const unsigned int pwm_d_a_pins[] = { GPIOA_4 };
/* pwm_e */
static const unsigned int pwm_e_pins[] = { GPIOX_16 };
@@ -594,6 +598,9 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
@@ -591,6 +596,10 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
GROUP(bt565_a_din5, 2),
GROUP(bt565_a_din6, 2),
GROUP(bt565_a_din7, 2),
+ GROUP(pwm_b_z, 5),
+ GROUP(pwm_c_z, 5),
+ GROUP(pwm_d_z, 2),
+ GROUP(pwm_d_a, 3),
GROUP(tsin_b_valid_z, 3),
GROUP(tsin_b_sop_z, 3),
GROUP(tsin_b_din0_z, 3),
@@ -726,6 +733,7 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
@@ -723,6 +732,7 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
GROUP(uart_c_rts, 2),
GROUP(iso7816_clk_h, 1),
GROUP(iso7816_data_h, 1),
@@ -101,7 +111,7 @@ index 111111111111..222222222222 100644
GROUP(pwm_f_h, 4),
GROUP(cec_ao_a_h, 4),
GROUP(cec_ao_b_h, 5),
@@ -1066,15 +1074,15 @@ static const char * const pwm_a_groups[] = {
@@ -1058,15 +1068,15 @@ static const char * const pwm_a_groups[] = {
};
static const char * const pwm_b_groups[] = {
@@ -116,10 +126,10 @@ index 111111111111..222222222222 100644
static const char * const pwm_d_groups[] = {
- "pwm_d_x3", "pwm_d_x6",
+ "pwm_d_x3", "pwm_d_x6", "pwm_d_z",
+ "pwm_d_x3", "pwm_d_x6", "pwm_d_z", "pwm_d_a",
};
static const char * const pwm_e_groups[] = {
--
Armbian
2.49.0

View File

@@ -0,0 +1,600 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2019 BayLibre, SAS
* Author: Neil Armstrong <narmstrong@baylibre.com>
* Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
* Copyright (c) 2025 retro98boy <retro98boy@qq.com>
*/
/dts-v1/;
#include "meson-g12b-a311d.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/sound/meson-g12a-toacodec.h>
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
/ {
compatible = "CAINIAO,CNIoT-CORE", "amlogic,a311d", "amlogic,g12b";
model = "CAINIAO CNIoT-CORE";
aliases {
serial0 = &uart_AO;
ethernet0 = &ethmac;
rtc99 = &vrtc;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x80000000>;
};
fan0: pwm-fan {
compatible = "pwm-fan";
#cooling-cells = <2>;
cooling-levels = <0 120 170 220>;
pwms = <&pwm_cd 1 40000 1>;
tach-gpio = <&gpio GPIOA_4 GPIO_ACTIVE_HIGH>;
};
gpio-keys-polled {
compatible = "gpio-keys-polled";
poll-interval = <100>;
pwr-btn {
label = "pwr-btn";
linux,code = <KEY_POWER>;
gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>;
};
};
adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 2>;
io-channel-names = "buttons";
keyup-threshold-microvolt = <1710000>;
poll-interval = <100>;
button-recovery {
label = "Recovery";
linux,code = <KEY_VENDOR>;
press-threshold-microvolt = <10000>;
};
};
emmc_pwrseq: emmc-pwrseq {
compatible = "mmc-pwrseq-emmc";
reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; /* In the vendor DTS, this is BOOT_10, but the actual test result is BOOT_12. */
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_connector_in: endpoint {
remote-endpoint = <&hdmi_tx_tmds_out>;
};
};
};
ht6872: ht6872 {
compatible = "simple-audio-amplifier";
enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
VCC-supply = <&vdd_amp>;
sound-name-prefix = "HT6872";
status = "okay";
};
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
clocks = <&wifi32k>;
clock-names = "ext_clock";
};
wifi32k: wifi32k {
compatible = "pwm-clock";
#clock-cells = <0>;
clock-frequency = <32768>;
pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
};
dc_in: regulator-dc-in {
compatible = "regulator-fixed";
regulator-name = "dc_in";
regulator-always-on;
regulator-boot-on;
};
/* important to usb hub */
amp_power: regulator-amp-power {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio GPIOH_8 GPIO_ACTIVE_HIGH>;
regulator-name = "amp_power";
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_in>;
};
vddao_1v8: regulator-vddao-1v8 {
compatible = "regulator-fixed";
regulator-name = "vddao_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_in>;
};
vddcpu_a: regulator-vddcpu-a {
compatible = "pwm-regulator";
regulator-name = "VDDCPU_A";
regulator-min-microvolt = <690000>;
regulator-max-microvolt = <1050000>;
pwm-supply = <&dc_in>;
pwms = <&pwm_ab 0 1250 0>;
pwm-dutycycle-range = <100 0>;
regulator-boot-on;
regulator-always-on;
};
vddcpu_b: regulator-vddcpu-b {
compatible = "pwm-regulator";
regulator-name = "VDDCPU_B";
regulator-min-microvolt = <690000>;
regulator-max-microvolt = <1050000>;
pwm-supply = <&dc_in>;
pwms = <&pwm_AO_cd 1 1250 0>;
pwm-dutycycle-range = <100 0>;
regulator-boot-on;
regulator-always-on;
};
vsys_3v3: regulator-vsys-3v3 {
compatible = "regulator-fixed";
regulator-name = "vsys_3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_in>;
};
usb_pwr: regulator-usb-pwr {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>; /* always keep usb hub reset pin high */
regulator-name = "usb_pwr";
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_in>;
};
/*
* The Type-C port on the host is switched with the four USB contacts on the side of the host via GPIOA_14.
* Since the Type-C port on the host is either used for power supply or blocked by the dock,
* switching USB 2.0 access to the four contacts on the side of the host is a better choice.
* To use the Type-C port for data transmission,
* you only need to set GPIOA_14 in the node below to a high level.
*/
usb_switch: regulator-usb-switch {
compatible = "regulator-fixed";
enable-active-low;
gpio = <&gpio GPIOA_14 GPIO_ACTIVE_LOW>;
regulator-name = "usb_switch";
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_in>;
};
vdd_amp: regulator-vdd-amp {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio GPIOH_7 GPIO_ACTIVE_HIGH>;
regulator-name = "vdd_amp";
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_in>;
};
sound {
compatible = "amlogic,axg-sound-card";
model = "cainiao-cniot-core";
audio-widgets = "Speaker", "Internal Speaker";
audio-aux-devs = <&tdmout_a>, <&tdmout_b>, <&ht6872>;
audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
"TDMOUT_A IN 1", "FRDDR_B OUT 0",
"TDMOUT_A IN 2", "FRDDR_C OUT 0",
"TDM_A Playback", "TDMOUT_A OUT",
"TDMOUT_B IN 0", "FRDDR_A OUT 1",
"TDMOUT_B IN 1", "FRDDR_B OUT 1",
"TDMOUT_B IN 2", "FRDDR_C OUT 1",
"TDM_B Playback", "TDMOUT_B OUT",
"HT6872 INL", "ACODEC LOLP",
"HT6872 INR", "ACODEC LORP",
"Internal Speaker", "HT6872 OUTL",
"Internal Speaker", "HT6872 OUTR";
clocks = <&clkc CLKID_MPLL2>,
<&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>;
assigned-clocks = <&clkc CLKID_MPLL2>,
<&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>;
assigned-clock-parents = <0>, <0>, <0>;
assigned-clock-rates = <294912000>,
<270950400>,
<393216000>;
dai-link-0 {
sound-dai = <&frddr_a>;
};
dai-link-1 {
sound-dai = <&frddr_b>;
};
dai-link-2 {
sound-dai = <&frddr_c>;
};
/* 8ch hdmi interface */
dai-link-3 {
sound-dai = <&tdmif_a>;
dai-format = "i2s";
dai-tdm-slot-tx-mask-0 = <1 1>;
dai-tdm-slot-tx-mask-1 = <1 1>;
dai-tdm-slot-tx-mask-2 = <1 1>;
dai-tdm-slot-tx-mask-3 = <1 1>;
mclk-fs = <256>;
codec-0 {
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
};
codec-1 {
sound-dai = <&toacodec TOACODEC_IN_A>;
};
};
/* 8ch hdmi interface */
dai-link-4 {
sound-dai = <&tdmif_b>;
dai-format = "i2s";
dai-tdm-slot-tx-mask-0 = <1 1>;
dai-tdm-slot-tx-mask-1 = <1 1>;
dai-tdm-slot-tx-mask-2 = <1 1>;
dai-tdm-slot-tx-mask-3 = <1 1>;
mclk-fs = <256>;
codec-0 {
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
};
codec-1 {
sound-dai = <&toacodec TOACODEC_IN_B>;
};
};
/* hdmi glue */
dai-link-5 {
sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
codec {
sound-dai = <&hdmi_tx>;
};
};
/* acodec glue */
dai-link-6 {
sound-dai = <&toacodec TOACODEC_OUT>;
codec {
sound-dai = <&acodec>;
};
};
};
};
&acodec {
AVDD-supply = <&vddao_1v8>;
status = "okay";
};
&arb {
status = "okay";
};
&clkc_audio {
status = "okay";
};
&cecb_AO {
pinctrl-0 = <&cec_ao_b_h_pins>;
pinctrl-names = "default";
status = "okay";
hdmi-phandle = <&hdmi_tx>;
};
&cpu0 {
cpu-supply = <&vddcpu_b>;
operating-points-v2 = <&cpu_opp_table_0>;
clocks = <&clkc CLKID_CPU_CLK>;
clock-latency = <50000>;
};
&cpu1 {
cpu-supply = <&vddcpu_b>;
operating-points-v2 = <&cpu_opp_table_0>;
clocks = <&clkc CLKID_CPU_CLK>;
clock-latency = <50000>;
};
&cpu100 {
cpu-supply = <&vddcpu_a>;
operating-points-v2 = <&cpub_opp_table_1>;
clocks = <&clkc CLKID_CPUB_CLK>;
clock-latency = <50000>;
};
&cpu101 {
cpu-supply = <&vddcpu_a>;
operating-points-v2 = <&cpub_opp_table_1>;
clocks = <&clkc CLKID_CPUB_CLK>;
clock-latency = <50000>;
};
&cpu102 {
cpu-supply = <&vddcpu_a>;
operating-points-v2 = <&cpub_opp_table_1>;
clocks = <&clkc CLKID_CPUB_CLK>;
clock-latency = <50000>;
};
&cpu103 {
cpu-supply = <&vddcpu_a>;
operating-points-v2 = <&cpub_opp_table_1>;
clocks = <&clkc CLKID_CPUB_CLK>;
clock-latency = <50000>;
};
&cpu_thermal {
trips {
cpu_active: cpu-active {
temperature = <60000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
};
cooling-maps {
map2 {
trip = <&cpu_active>;
cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&ethmac {
pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
pinctrl-names = "default";
status = "okay";
phy-mode = "rgmii";
phy-handle = <&rtl8211f>;
amlogic,tx-delay-ns = <2>;
};
&ext_mdio {
rtl8211f: rtl8211f@0 {
reg = <0>;
max-speed = <1000>;
reset-assert-us = <10000>;
reset-deassert-us = <80000>;
reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
interrupt-parent = <&gpio_intc>;
/* MAC_INTR on GPIOZ_14 */
interrupts = <IRQID_GPIOZ_14 IRQ_TYPE_LEVEL_LOW>; /* tested by voltmeter */
};
};
&frddr_a {
status = "okay";
};
&frddr_b {
status = "okay";
};
&frddr_c {
status = "okay";
};
&hdmi_tx {
status = "okay";
pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
pinctrl-names = "default";
};
&hdmi_tx_tmds_port {
hdmi_tx_tmds_out: endpoint {
remote-endpoint = <&hdmi_connector_in>;
};
};
&npu {
status = "okay";
};
&pwm_ab {
status = "okay";
pinctrl-0 = <&pwm_a_e_pins>;
pinctrl-names = "default";
clocks = <&xtal>;
clock-names = "clkin0";
};
&pwm_cd {
status = "okay";
pinctrl-0 = <&pwm_d_a_pins>;
pinctrl-names = "default";
};
&pwm_ef {
status = "okay";
pinctrl-0 = <&pwm_e_pins>;
pinctrl-names = "default";
};
&pwm_AO_cd {
pinctrl-0 = <&pwm_ao_d_e_pins>;
pinctrl-names = "default";
clocks = <&xtal>;
clock-names = "clkin1";
status = "okay";
};
&saradc {
status = "okay";
vref-supply = <&vddao_1v8>;
};
&sd_emmc_a {
status = "okay";
pinctrl-0 = <&sdio_pins>;
pinctrl-1 = <&sdio_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
#address-cells = <1>;
#size-cells = <0>;
bus-width = <4>;
max-frequency = <100000000>;
cap-sdio-irq;
cap-sd-highspeed;
non-removable;
/* WiFi firmware requires power in suspend */
keep-power-in-suspend;
mmc-pwrseq = <&sdio_pwrseq>;
vmmc-supply = <&vsys_3v3>;
vqmmc-supply = <&vddao_1v8>;
rtl8822cs: wifi@1 {
reg = <1>;
/*
* tested by voltmeter
* WL_REG_ON GPIOX_6
* WL_WAKE_HOST GPIOX_5
*/
};
};
&sd_emmc_c {
status = "okay";
pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
max-frequency = <200000000>;
bus-width = <8>;
cap-mmc-highspeed;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
non-removable;
mmc-pwrseq = <&emmc_pwrseq>;
vmmc-supply = <&vsys_3v3>;
vqmmc-supply = <&vddao_1v8>;
};
/*
* GPIOH_4 is connected to 6 WS2812 LEDs.
* Reusing GPIOH_4 as SPI MOSI to control the WS2812 offers superior performance compared to the GPIO method.
*/
&spicc1_pins {
mux {
groups = "spi1_mosi";
};
};
/* Controlling WS2812 LEDs via spidev in user space. */
&spicc1 {
status = "okay";
pinctrl-0 = <&spicc1_pins>;
pinctrl-names = "default";
spidev@0 {
compatible = "rohm,dh2228fv";
reg = <0>;
spi-max-frequency = <3340000>;
};
};
&tdmif_a {
status = "okay";
};
&tdmif_b {
status = "okay";
};
&tdmout_a {
status = "okay";
};
&tdmout_b {
status = "okay";
};
&toacodec {
status = "okay";
};
&tohdmitx {
status = "okay";
};
&uart_A {
status = "okay";
pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
pinctrl-names = "default";
uart-has-rtscts;
bluetooth {
compatible = "realtek,rtl8822cs-bt";
enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; /* tested by voltmeter */
host-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>; /* tested by voltmeter */
device-wake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>; /* tested by voltmeter */
};
};
&uart_AO {
status = "okay";
pinctrl-0 = <&uart_ao_a_pins>;
pinctrl-names = "default";
};
&usb2_phy0 {
phy-supply = <&amp_power>;
};
&usb2_phy1 {
phy-supply = <&usb_switch>;
};
&usb3_pcie_phy {
phy-supply = <&usb_pwr>;
};
&usb {
status = "okay";
dr_mode = "host";
};

View File

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2024 Patrick Yavitz <pyavitz@xxxxx.com>
* Copyright (c) 2024 Patrick Yavitz <pyavitz@gmail.com>
*/
/dts-v1/;
@@ -16,21 +16,6 @@
};
};
&i2c1 {
rtc: rtc@51 {
compatible = "nxp,pcf85063a";
reg = <0x51>;
wakeup-source;
};
fanctrl: emc2305@2f {
compatible = "smsc,emc2305";
reg = <0x2f>;
#cooling-cells = <0x02>;
wakeup-source;
};
};
&cpu_thermal {
trips {
fanmid0: fanmid0 {
@@ -59,6 +44,21 @@
};
};
&i2c1 {
rtc: rtc@51 {
compatible = "nxp,pcf85063a";
reg = <0x51>;
wakeup-source;
};
fanctrl: emc2305@2f {
compatible = "smsc,emc2305";
reg = <0x2f>;
#cooling-cells = <0x02>;
wakeup-source;
};
};
&usb {
dr_mode = "host";
};

View File

@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From e1e66c32b7a9ce7cf52922fe073c4bff40054599 Mon Sep 17 00:00:00 2001
From: Yuntian Zhang <yt@radxa.com>
Date: Thu, 13 Jan 2022 21:34:10 +0800
Subject: pinctrl: meson: Add several missing pinmux for pwm functions
Subject: [PATCH] pinctrl: meson: Add several missing pinmux for pwm functions
The following pin definitions are mentioned in A311D Quick
Reference Manual and S922X Public Datasheet, but not in S905Y2
@@ -11,15 +11,15 @@ They are currently exposed in Radxa Zero 2's GPIO header.
Signed-off-by: Yuntian Zhang <yt@radxa.com>
---
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 34 ++++++++++
drivers/pinctrl/meson/pinctrl-meson-g12a.c | 14 +++-
2 files changed, 45 insertions(+), 3 deletions(-)
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 42 +++++++++++++++++++++
drivers/pinctrl/meson/pinctrl-meson-g12a.c | 16 ++++++--
2 files changed, 55 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
index 111111111111..222222222222 100644
index 86e6ceb31..b2f9a09b2 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
@@ -149,3 +149,37 @@ &pmu {
@@ -149,3 +149,45 @@ &pmu {
&npu {
power-domains = <&pwrc PWRC_G12A_NNA_ID>;
};
@@ -56,12 +56,20 @@ index 111111111111..222222222222 100644
+ bias-disable;
+ };
+ };
+
+ pwm_d_a_pins: pwm-d-a {
+ mux {
+ groups = "pwm_d_a";
+ function = "pwm_d";
+ bias-disable;
+ };
+ };
+};
diff --git a/drivers/pinctrl/meson/pinctrl-meson-g12a.c b/drivers/pinctrl/meson/pinctrl-meson-g12a.c
index 111111111111..222222222222 100644
index e2788bfc5..c94360afc 100644
--- a/drivers/pinctrl/meson/pinctrl-meson-g12a.c
+++ b/drivers/pinctrl/meson/pinctrl-meson-g12a.c
@@ -271,17 +271,21 @@ static const unsigned int eth_act_led_pins[] = { GPIOZ_15 };
@@ -268,17 +268,22 @@ static const unsigned int eth_act_led_pins[] = { GPIOZ_15 };
static const unsigned int pwm_a_pins[] = { GPIOX_6 };
/* pwm_b */
@@ -80,20 +88,22 @@ index 111111111111..222222222222 100644
static const unsigned int pwm_d_x3_pins[] = { GPIOX_3 };
static const unsigned int pwm_d_x6_pins[] = { GPIOX_6 };
+static const unsigned int pwm_d_z_pins[] = { GPIOZ_2 };
+static const unsigned int pwm_d_a_pins[] = { GPIOA_4 };
/* pwm_e */
static const unsigned int pwm_e_pins[] = { GPIOX_16 };
@@ -594,6 +598,9 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
@@ -591,6 +596,10 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
GROUP(bt565_a_din5, 2),
GROUP(bt565_a_din6, 2),
GROUP(bt565_a_din7, 2),
+ GROUP(pwm_b_z, 5),
+ GROUP(pwm_c_z, 5),
+ GROUP(pwm_d_z, 2),
+ GROUP(pwm_d_a, 3),
GROUP(tsin_b_valid_z, 3),
GROUP(tsin_b_sop_z, 3),
GROUP(tsin_b_din0_z, 3),
@@ -726,6 +733,7 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
@@ -723,6 +732,7 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
GROUP(uart_c_rts, 2),
GROUP(iso7816_clk_h, 1),
GROUP(iso7816_data_h, 1),
@@ -101,7 +111,7 @@ index 111111111111..222222222222 100644
GROUP(pwm_f_h, 4),
GROUP(cec_ao_a_h, 4),
GROUP(cec_ao_b_h, 5),
@@ -1066,15 +1074,15 @@ static const char * const pwm_a_groups[] = {
@@ -1058,15 +1068,15 @@ static const char * const pwm_a_groups[] = {
};
static const char * const pwm_b_groups[] = {
@@ -116,10 +126,10 @@ index 111111111111..222222222222 100644
static const char * const pwm_d_groups[] = {
- "pwm_d_x3", "pwm_d_x6",
+ "pwm_d_x3", "pwm_d_x6", "pwm_d_z",
+ "pwm_d_x3", "pwm_d_x6", "pwm_d_z", "pwm_d_a",
};
static const char * const pwm_e_groups[] = {
--
Armbian
2.49.0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,10 @@
config:
# Just some info stuff; not used by the patching scripts
name: rockchip-6.14
name: rockchip-6.15
kind: kernel
type: mainline # or: vendor
branch: linux-6.14.y
last-known-good-tag: v6.14
branch: linux-6.15.y
last-known-good-tag: v6.15.0
maintainers:
- { github: paolo.sabatino, name: Paolo Sabatino, email: paolo.sabatino@gmail.com, armbian-forum: jock }

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