diff --git a/README.md b/README.md index f61e8fbf4..d2b204c59 100644 --- a/README.md +++ b/README.md @@ -1,159 +1,52 @@ -# How do I submit patches to Android Common Kernels +# Orange Pi 5 Ultra — Kernel Source -1. BEST: Make all of your changes to upstream Linux. If appropriate, backport to the stable releases. - These patches will be merged automatically in the corresponding common kernels. If the patch is already - in upstream Linux, post a backport of the patch that conforms to the patch requirements below. - - Do not send patches upstream that contain only symbol exports. To be considered for upstream Linux, -additions of `EXPORT_SYMBOL_GPL()` require an in-tree modular driver that uses the symbol -- so include -the new driver or changes to an existing driver in the same patchset as the export. - - When sending patches upstream, the commit message must contain a clear case for why the patch -is needed and beneficial to the community. Enabling out-of-tree drivers or functionality is not -a persuasive case. +Source kernel for the Orange Pi 5 Ultra (Rockchip RK3588). Forked from +[dvab-sarma/android_kernel_rk_opi](https://github.com/dvab-sarma/android_kernel_rk_opi) +(`android-16.0-hwaccel-testing` branch). -2. LESS GOOD: Develop your patches out-of-tree (from an upstream Linux point-of-view). Unless these are - fixing an Android-specific bug, these are very unlikely to be accepted unless they have been - coordinated with kernel-team@android.com. If you want to proceed, post a patch that conforms to the - patch requirements below. +Based on mainline Linux 6.15 with Rockchip DRM patches and Android kernel features +(binder, memfd, cgroups, SELinux, etc.). -# Common Kernel patch requirements +## Device Tree -- All patches must conform to the Linux kernel coding standards and pass `scripts/checkpatch.pl` -- Patches shall not break gki_defconfig or allmodconfig builds for arm, arm64, x86, x86_64 architectures -(see https://source.android.com/setup/build/building-kernels) -- If the patch is not merged from an upstream branch, the subject must be tagged with the type of patch: -`UPSTREAM:`, `BACKPORT:`, `FROMGIT:`, `FROMLIST:`, or `ANDROID:`. -- All patches must have a `Change-Id:` tag (see https://gerrit-review.googlesource.com/Documentation/user-changeid.html) -- If an Android bug has been assigned, there must be a `Bug:` tag. -- All patches must have a `Signed-off-by:` tag by the author and the submitter +WiFi (brcmfmac SDIO) and Bluetooth (hci_uart BCM serdev) are enabled in the +`rk3588-orangepi-5-compact.dtsi` shared DT include. PIN mappings follow +`jimmyhon/linux` `max-wifi` branch: -Additional requirements are listed below based on patch type +| Function | Pin | +|----------|-----| +| WIFI_REG_ON | GPIO2 PC5 | +| BT_REG_ON (shutdown) | GPIO4 PC4 | +| BT device wake | GPIO4 PC5 | +| BT host wake | GPIO0 PA0 | +| WiFi host wake | GPIO0 PB0 | +| SDIO | sdiom0_pins | +| BT UART | uart7m0_xfer + ctsn/rtsn | -## Requirements for backports from mainline Linux: `UPSTREAM:`, `BACKPORT:` +## Building + +Built via LineageOS's `TARGET_KERNEL_SOURCE` mechanism. The kernel is compiled +by AOSP clang during `mka`: -- If the patch is a cherry-pick from Linux mainline with no changes at all - - tag the patch subject with `UPSTREAM:`. - - add upstream commit information with a `(cherry picked from commit ...)` line - - if applicable, prefer to cherry-pick the commit from the corresponding LTS branch. - - append new signature tags (e.g. `Bug:`, `Change-Id:`, etc.) at the end to keep the - chronological order. - - Example: - - if the upstream commit message is ``` - important patch from upstream - - This is the detailed description of the important patch - - Signed-off-by: Fred Jones -``` ->- then Joe Smith would upload the patch for the common kernel as -``` - UPSTREAM: important patch from upstream - - This is the detailed description of the important patch - - Signed-off-by: Fred Jones - - Bug: 135791357 - Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01 - (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1) - Signed-off-by: Joe Smith +TARGET_KERNEL_SOURCE := kernel/rockchip/tart +TARGET_KERNEL_CONFIG := tart_defconfig ``` -- If the patch requires any changes from the upstream version, tag the patch with `BACKPORT:` -instead of `UPSTREAM:`. - - use the same tags as `UPSTREAM:` - - add comments about the changes under the `(cherry picked from commit ...)` line - - Example: -``` - BACKPORT: important patch from upstream +Output: `Image` + `rk3588-orangepi-5-ultra.dtb` at +`$(KERNEL_OUT)/arch/arm64/boot/`. - This is the detailed description of the important patch +## Defconfig - Signed-off-by: Fred Jones +`tart_defconfig` is based on `android_orangepi5_defconfig` with the same driver +set. Key options: - Bug: 135791357 - Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01 - (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1) - [joe: Resolved minor conflict in drivers/foo/bar.c ] - Signed-off-by: Joe Smith -``` +- `CONFIG_DRM_PANFROST` — Mali-G610 GPU (Panfrost) +- `CONFIG_BRCMFMAC_SDIO` — AP6611S WiFi +- `CONFIG_BT_HCIUART_BCM` — SYN43711 Bluetooth +- `CONFIG_R8169` — RTL8125BG 2.5GbE Ethernet +- `CONFIG_SND_SOC_ES8388` — Audio codec -## Requirements for other backports: `FROMGIT:`, `FROMLIST:`, - -- If the patch has been merged into an upstream maintainer tree, but has not yet -been merged into Linux mainline - - tag the patch subject with `FROMGIT:` - - add info on where the patch came from as `(cherry picked from commit )`. This -must be a stable maintainer branch (not rebased, so don't use `linux-next` for example). - - if changes were required, use `BACKPORT: FROMGIT:` - - Example: - - if the commit message in the maintainer tree is -``` - important patch from upstream - - This is the detailed description of the important patch - - Signed-off-by: Fred Jones -``` ->- then Joe Smith would upload the patch for the common kernel as -``` - FROMGIT: important patch from upstream - - This is the detailed description of the important patch - - Signed-off-by: Fred Jones - - Bug: 135791357 - (cherry picked from commit 878a2fd9de10b03d11d2f622250285c7e63deace - https://git.kernel.org/pub/scm/linux/kernel/git/foo/bar.git test-branch) - Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01 - Signed-off-by: Joe Smith -``` - - -- If the patch has been submitted to LKML, but not accepted into any maintainer tree - - tag the patch subject with `FROMLIST:` - - add a `Link:` tag with a link to the submittal on lore.kernel.org - - add a `Bug:` tag with the Android bug (required for patches not accepted into -a maintainer tree) - - if changes were required, use `BACKPORT: FROMLIST:` - - Example: -``` - FROMLIST: important patch from upstream - - This is the detailed description of the important patch - - Signed-off-by: Fred Jones - - Bug: 135791357 - Link: https://lore.kernel.org/lkml/20190619171517.GA17557@someone.com/ - Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01 - Signed-off-by: Joe Smith -``` - -- If a patch has been submitted to the community, but rejected, do NOT use the - `FROMLIST:` tag to try to hide this fact. Use the `ANDROID:` tag as - described below as this must be considered as an Android-specific submission, - not an upstream submission as the community will not accept these changes - as-is. - -## Requirements for Android-specific patches: `ANDROID:` - -- If the patch is fixing a bug to Android-specific code - - tag the patch subject with `ANDROID:` - - add a `Fixes:` tag that cites the patch with the bug - - Example: -``` - ANDROID: fix android-specific bug in foobar.c - - This is the detailed description of the important fix - - Fixes: 1234abcd2468 ("foobar: add cool feature") - Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01 - Signed-off-by: Joe Smith -``` - -- If the patch is a new feature - - tag the patch subject with `ANDROID:` - - add a `Bug:` tag with the Android bug (required for android-specific features) +## Branch +`lineage-23.2` — for use with LineageOS 23.2 (Android 16).