ILD

ipq5018路由器支持
作者:Yuan Jianpeng 邮箱:yuanjp89@163.com
发布时间:2022-6-13 站点:Inside Linux Development


Qualcomm Innovation Center维护的仓库已经从codeaurora迁移到codelinaro。2022年3月31日起codeaurora不接受任何更新,且将在2023年3月31日删除。

https://git.codelinaro.org/explore/


1 QSDK版本

下载12.1 release note

80-33890-2_aa_qca_networking_2022.spf.12.1_es_release_notes.pdf


This release is:QCA_Networking_2022.SPF.12.1 ES
The release version is:

IPQ9574.ILQ.12.1.r3-00051-P-1

IPQ5018.ILQ.12.1.r3-00051-LM512-1

The open-source label (CLO_TAG) that corresponds to this release is:AU_LINUX_QSDK_NHSS.QSDK.12.1.R3_TARGET_ALL.12.1.03.841.039.xml
Qualcomm ChipCode™ distribution tag (Use this tag to check out the code from git repository):r12.1.r1_00001.8


下载chipcode私有spf 12.1代码:

git clone -b r12.1.r1_00001.8 --depth 1 https://chipmaster2.qti.qualcomm.com/home2/git/xiaomi-inc/qca-networking-2022-spf-12-1_qca_oem.git


下载codeauroa开源代码

$ manifest=AU_LINUX_QSDK_NHSS.QSDK.12.1.R3_TARGET_ALL.12.1.03.841.039.xml

$ repo init -u https://git.codelinaro.org/clo/qsdk/releases/manifest/qstak.git \

    -b release -m $manifest

$ repo sync -j8 --no-tags -c


组装代码


2 ATH11版本

下载ath 11.4 release note

80-yc735-8_aa_ath11k_11.4.0_csu1_upstream_release_notes.pdf


This release is:ATH11K 11.4.0 CSu1
The release version is:

PQ5018.ATH.11.4.0-00186-O-1

IPQ6018.ATH.11.4.0-00186-O-1

IPQ8074.ATH.11.4.0-00186-O-1

The Linux Foundation hosted open source label (the CAF_TAG) that corresponds to this release is:caf_AU_LINUX_QSDK_NHSS.QSDK.11.4.0.5_TARGET_ALL.11.4.0.5.7411.xml
Qualcomm ChipCode distribution tag (Use this tag to check out the code from git repository):r00186.1


下载chipcode:ipq5018-ath-11-4-0_qca_oem

$ git clone -b r00186.1 --depth 1 https://chipmaster2.qti.qualcomm.com/home2/git/xiaomi-inc/ipq5018-ath-11-4-0_qca_oem.git


下载codeaurora

$ manifest=caf_AU_LINUX_QSDK_NHSS.QSDK.11.4.0.5_TARGET_ALL.11.4.0.5.7411.xml

$ repo init -u git://codeaurora.org/quic/qsdk/releases/manifest/qstak -b release -m $manifest

$ repo sync -j8 --no-tags -c


组装代码



3 5.15内核支持

qsdk 12.1的内核版本是5.4。这里的工作是主要是参考qsdk的改动,移植到5.15内核。5.15内核是longterm内核版本。


首先我们下载linux仓库,方便做对比。使用codeaurora北京的linux镜像。

$ git remote -v
origin  git://kernel.source.codeaurora.cn/pub/scm/linux/kernel/git/torvalds/linux.git (fetch)
origin  git://kernel.source.codeaurora.cn/pub/scm/linux/kernel/git/torvalds/linux.git (push)
stable  git://kernel.source.codeaurora.cn/pub/scm/linux/kernel/git/stable/linux.git (fetch)
stable  git://kernel.source.codeaurora.cn/pub/scm/linux/kernel/git/stable/linux.git (push)


$ git branch -vv
* linux-5.4.y 01565c91b789 [stable/linux-5.4.y] Linux 5.4.193
  master      4634129ad9fd [origin/master] Merge tag 'soc-fixes-5.16-4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc


查看qsdk 12.1的manifests。

<project name="clo/qsdk/oss/kernel/linux-ipq-5.4" path="qsdk/qca/src/linux-5.4" revision="c2f73a5387280d0fa225223ea517e6620d35f7e7" upstream="NHSS.QSDK.12.1.r3"/>

确定其分支是 NHSS.QSDK.12.1.r3,commit 是 c2f73a53.


然后下载quic维护的5.4内核仓库

$ git remote -v
origin  https://git.codelinaro.org/clo/qsdk/oss/kernel/linux-ipq-5.4.git (fetch)
origin  https://git.codelinaro.org/clo/qsdk/oss/kernel/linux-ipq-5.4.git (push)


$ git branch -vv
* NHSS.QSDK.12.1.r3 c2f73a5387280 [origin/NHSS.QSDK.12.1.r3] dts: ipq9574: Add IPQ9754 and QCN9224 Wifi nodes for AL02-C6
  clo/main          4426e6017f73b [origin/clo/main] Linux 5.4.191


可以看到12.1.r3分支的HEAD就是c2f7。


linux官方的5.4.y分支的HEAD是5.4.193 tag。

查看 NHSS.QSDK.12.1.r3的git log发现它最近的tag是

e3c95128def1c (tag: v5.4.164) Linux 5.4.164


查看linux的5.4.164 tag

e3c95128def1 (tag: v5.4.164) Linux 5.4.164


他们的commit相同。也就是说,quic的所有提交都rebase到了5.4.164. 这样做应该也是为了更好的merge新的5.4.x版本。


这样就很好办了。直接在linux-ipq-5.4比较head和v5.4.164就可以了。


首先查看改动的文件

$ git diff --name-only v5.4.164 HEAD

有1300多个改动的文件,涉及Documentation, arch/arm, arch/arm64, arch/mips, block, drivers, fs, include, init, ipc, kernel, lib, mm, net, samples, scripts, security, sound, tools, usr, virt, Makfile.等目录的改动。找出涉及IPQ5018的改动,合入。


使用git log查看从tag到head一个文件或目录的改动,比如主Makefile.有改动

$ git log -p --stat --full-diff v5.4.164...HEAD Makefile


3.1 arch改动

主要是arch/arm arch/amr64涉及的改动。

commit 2fc4a5e53116cfabe5a00696973a1ba45fce9ee0                                                                   
Author: Manoharan Vijaya Raghavan <mraghava@codeaurora.org>  
Date:   Mon May 27 19:44:54 2019 +0530                                                                            
                            
    ipq807x: arm: Text offset fix for 256M profile     

 arch/arm/Makefile               | 1 +
 arch/arm/boot/compressed/head.S | 3 ++-
 arch/arm/kernel/head.S          | 7 ++++---
 arch/arm/mach-qcom/Kconfig      | 6 ++++++
 include/linux/memblock.h        | 1 +
 mm/memblock.c                   | 3 ++-
 6 files changed, 16 insertions(+), 5 deletions(-)



commit e09e0034811ae7007b533cc89c4c81d8e47bff77
Author: Kathiravan T <kathirav@codeaurora.org>
Date:   Tue Mar 16 13:35:57 2021 +0530

    arm: qcom: enable ARM_GIC_V2M if PCI is defined
    
    Enable ARM_GIC_V2M if PCI is enabled in ARCH_QCOM.
    
    Signed-off-by: Kathiravan T <kathirav@codeaurora.org>
    Change-Id: I18789ec868d4dfd58cf90f933fe71edc44bdafb4
---
 arch/arm/mach-qcom/Kconfig | 1 +


commit 13f4de4d817224bf1bdffd39d62045be2163fa32
Author: Kathiravan T <kathirav@codeaurora.org>
Date:   Wed Mar 2 14:46:12 2016 +0530

    ARM: qcom: ipq807x: Add SMP support for IPQ807x
    
    Implement support for the IPQ807x secondary CPU
    release sequence.
    
    Signed-off-by: Amandeep Singh <aosaha@codeaurora.org>
    (cherry picked from commit c0486a64c7180faf126fbef39a944ab0baf7a30b)
    Signed-off-by: Kathiravan T <kathirav@codeaurora.org>
    
    Change-Id: I4f20405884e7be7990871ba2a7a8eba5520d625c
---
 arch/arm/mach-qcom/platsmp.c | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 100 insertions(+), 1 deletion(-)


合入ipq5018的device tree。


commit e33d977f4187272f5f73739f47a734ee6dd47941
Author: Kathiravan T <kathirav@codeaurora.org>
Date:   Thu Jun 3 21:16:50 2021 +0530

    arm64: dts: ipq5018: add MP02.1 board support
    
    Add snapshot of MP02.1 DTS file from win.linuxopenwrt.1.0 branch as of commit
    bb7f270e45e3 ("ipq5018: MP02.1: Disable WPS button")
    
    Change-Id: Ib6e961cce17bd5bc4cc28c62d4b952c417eaf424
    Signed-off-by: Kathiravan T <kathirav@codeaurora.org>

 arch/arm/boot/dts/Makefile                  |   2 +
 arch/arm/boot/dts/ipq5018-mp02.1.dts        |  23 +++
 arch/arm64/boot/dts/qcom/Makefile           |   1 +
 arch/arm64/boot/dts/qcom/ipq5018-mp02.1.dts | 636 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/arm64/boot/dts/qcom/ipq5018.dtsi       |   1 +
 5 files changed, 663 insertions(+)


另外一个是就是关键驱动的改动

drivers/clk/qcom

drivers/pinctrl/qcom

include/dt-bindings/clock

include/dt-bindings/reset

include/linux/clk-provider.h


commit 7e749f3431ef60a4fef77f93b2d510810ad4343b
Author: Rajkumar Ayyasamy <quic_arajkuma@quicinc.com>
Date:   Thu Dec 23 23:34:18 2021 +0530

    clk: gcc: ipq8074: add audio_pll_main
    
    Change-Id: I4c3527685fe4e7c9252a8ffe79e93d6382819668
    Signed-off-by: Rajkumar Ayyasamy <quic_arajkuma@quicinc.com>
---
 drivers/clk/qcom/clk-alpha-pll.c             | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/clk/qcom/clk-alpha-pll.h             |  1 +
 drivers/clk/qcom/gcc-ipq8074.c               | 47 +++++++++++++++++++++++++++++++++++
 include/dt-bindings/clock/qcom,gcc-ipq8074.h |  2 ++


commit a0f27a75b3a8cde26435df2631b881ae4a082834
Author: Kathiravan T <quic_kathirav@quicinc.com>
Date:   Thu Dec 16 16:42:18 2021 +0530

    clk: qcom: ipq5018: remove clk_ignore_unused from bootargs
    
    Align the GCC driver with linux-4.4 to remove the clk_ignore_unused
    from the bootargs.
    
    Change-Id: Ic976621e14012e59cf70f1254acd32e0be665525
    Signed-off-by: Kathiravan T <quic_kathirav@quicinc.com>
---
 arch/arm64/boot/dts/qcom/ipq5018-mp03.1-c2.dts |  2 +-
 arch/arm64/boot/dts/qcom/ipq5018-mp03.1.dts    |  2 +-
 arch/arm64/boot/dts/qcom/ipq5018-mp03.3.dts    |  2 +-
 arch/arm64/boot/dts/qcom/ipq5018-mp03.5-c1.dts |  2 +-
 arch/arm64/boot/dts/qcom/ipq5018-mp03.6-c1.dts |  2 +-
 drivers/clk/qcom/gcc-ipq5018.c                 | 88 ++++++++++++++++++++++++++++++++++++++++++------------------
 include/dt-bindings/clock/qcom,gcc-ipq5018.h   |  2 ++


commit 2c5ff3cf58910fa0b87957f37d032babc3d34b9b
Author: Manikanta Mylavarapu <mmanikan@codeaurora.org>
Date:   Wed Jun 2 22:37:48 2021 +0530

    ipq5018: Add apss clock driver support
    
    Signed-off-by: Manikanta Mylavarapu <mmanikan@codeaurora.org>
    Change-Id: Ied1738f11a6726d4006ccd8ab6dc50656cb13cba
---
 arch/arm64/boot/dts/qcom/ipq5018.dtsi        |  42 +++++++++++-
 drivers/clk/qcom/Kconfig                     |   8 +++
 drivers/clk/qcom/Makefile                    |   1 +
 drivers/clk/qcom/apss-ipq5018.c              | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/cpufreq/cpufreq-dt-platdev.c         |   2 +
 drivers/mailbox/qcom-apcs-ipc-mailbox.c      |   5 ++
 include/dt-bindings/clock/qca,apss-ipq5018.h |  25 +++++++
 7 files changed, 307 insertions(+), 3 deletions(-)


Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.