Adding OpenWrt support for Xiaomi AX3600 (Part 1)

Hm, it looks like something is really messed up.
I tried printing the names, but there is a check whether passed clock structure exists and if not return NULL.
So I added prints there and boom, all of the clocks return NULL and there are no names printed.

[    0.000000] clk_core_get_parent_by_index is NULL
[    0.000000] clk_core_get_parent_by_index is NULL
1 Like

I saw the same issue with the upstream PCIE clock patch, it needed the parent_name fields populating :

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/clk/qcom/gcc-ipq8074.c?h=v5.9.3&id=f0cfcf1ade201dcfd3365f231efc90e846fa46df

vs

EDIT : That was with the older kernel + backporting

1 Like

Hm, you are right.
PCIE clocks they upstreamed have no parent_names, but rather parent_hws

That may or may not be correct

1 Like

At least all of the other clk_branch structs that are defined in gcc for this platform have that field populated :confused:

1 Like

Hm, it may be actually correct as IPQ6018 driver is full of parent_hws and no parent_names.
Hm, its throwing that clk index 0 has no clk structure?

That makes no sense:

[    0.000000] clk_core_get_parent_by_index 0 is NULL
[    0.000000] clk_core_get_parent_by_index 0 is NULL
1 Like

Not sure if it makes a difference that all of the clock parents on IPQ6018 also have parent_hws and on 8074 they have parent_names.

gpll0_main for example

1 Like

Tried commenting the PCI-E clocks out, and it still has exactly the same error.

1 Like

Dam :frowning: At lunch ill build from your tree and confirm the issue on my device as well

1 Like

What is really strange is that with 5.4 the router booted and was running. Am I wrong? We had patches that fixed the gcc driver? Anyway i checked if there were pending patch for gcc driver and they there are only patch about adding pcie support.

Its probably more odd that the RAX120 booted ok

No, I added no GCC patches to my 5.4 branch and it booted fine.
It sometimes threw a warning for clock related stuff but It worked.

Random... I found this https://github.com/torvalds/linux/commit/ffe37ede0a9eb524162c683f48da8558d5323ddb#diff-97a7e6fbe9fcb4a2ca59db57afb8e459562aa731c89ebbaf3410d01fa4ad0d5c
Could be related?
From the commit desc

Return NULL in the cases where the clk_hw is not registered with the
clock provider, but the clock consumer still requests for a clock id.

Could be that a clock consumer try to use a clk that is not registered? (missing nodes in the dts or shitty driver that handles the error badly? (check for old error pointer instead of null))

1 Like

Hm, so I could potentially be on a wild goose chase?

The stack is pointing to clk_core_fill_parent_index as the culprit here.
It gets executed literally for every clock and it fails on parent 1 but there are only 0 and 1 and they are used for everything

1 Like

Since it's a minimal change, i would first try to undo this change and check if something change. Also that commit shipped from 5.5 and would match the fact that the router worked with 5.4

There is this https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/clk/qcom/clk-rcg2.c?h=v5.9.3&id=908b050114d8fefdddc57ec9fbc213c3690e7f5f

Would change how things like __clk_core_init, but also indicates that clk_hw_get_parent_by_index may have other issues ?

1 Like

(sorry for ot buy seriously who approved this change... It doesn't make sense... As you can see qcom_cc_clk_hw_get is used only in qcom_cc_really_probe...
They changed one error to return NULL but not the other one (up 2 line), also I can't find if devm_of_clk_add_hw_provider expects an error pointer if clk_hw_get fails or NULL...)

1 Like

i can't understand if it's just your RAX120 that has V1 (early sample device, maybe?) or if it's a true choice from Netgear to use a "unsupported" version.

Right now on Ali AX3600 with delivery from EU are avalaible here: https://www.aliexpress.com/item/4001176548945.html

I am playing a bit more with my CP01 IPQ6018 board.
This thing has some wild memory issues:

## Loading kernel from FIT Image at 44000000 ...
   Using 'config@cp01-c1' configuration
   Trying 'kernel@1' kernel subimage
     Description:  ARM64 Gentoo Linux-5.10.y
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x440000e4
     Data Size:    5519328 Bytes = 5.3 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x41000000
     Entry Point:  0x41000000
     Hash algo:    crc32
     Hash value:   609565fd
     Hash algo:    sha1
     Hash value:   f7e71d41db18f2169e4e7991bbf07baf888a2987
   Verifying Hash Integrity ... crc32+ sha1+ OK
## Loading fdt from FIT Image at 44000000 ...
   Using 'config@cp01-c1' configuration
   Trying 'fdt@1' fdt subimage
     Description:  ARM64 Gentoo Qualcomm CP01-C1 device tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x44543a04
     Data Size:    10083 Bytes = 9.8 KiB
     Architecture: AArch64
     Hash algo:    crc32
     Hash value:   f824b735
     Hash algo:    sha1
     Hash value:   24354acddae983a2fe7c19683cb4dcae5abe981e
   Verifying Hash Integrity ... crc32+ sha1+ OK
   Booting using the fdt blob at 0x44543a04
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 484fa000, end 484ff762 ... OK
mtdids not defined, no default present
Using machid 0x8030000 from environment

Starting kernel ...

Jumping to AARCH64 kernel via monitor
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x51af8014]
[    0.000000] Linux version 5.10.0-rc2-33445-g1e53d950ed3d-dirty (robimarko@localhost.localdomain) (aarch64-linux-gcc.br_real (Buildroot 2020.08.1) 10.2.0, GNU ld (GNU Binutils) 2.34) #362 SMP PREEMPT Mon Nov 2 17:51:16 CET 2020
[    0.000000] Machine model: Qualcomm Technologies, Inc. IPQ6018/AP-CP01-C1
[    0.000000] earlycon: msm_serial_dm0 at MMIO 0x00000000078b1000 (options '')
[    0.000000] printk: bootconsole [msm_serial_dm0] enabled
[    0.000000] cma: Reserved 32 MiB at 0x000000007e000000
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000041000000-0x000000007fffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000041000000-0x0000000049afffff]
[    0.000000]   node   0: [mem 0x0000000050200000-0x000000007fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000041000000-0x000000007fffffff]
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003de4a018
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000047
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000047
[    0.000000]   CM = 0, WnR = 1
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003de4a018] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Unable to handle kernel paging request at virtual address ffff00003dffa000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000007
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000007
[    0.000000]   CM = 0, WnR = 0
[    0.000000] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041a85000
[    0.000000] [ffff00003dffa000] pgd=000000007dffa003, p4d=000000007dffa003
[    0.000000] Insufficient stack space to handle exception!
[    0.000000] ESR: 0x96000007 -- DABT (current EL)
[    0.000000] FAR: 0xffff00003dffa000
[    0.000000] Task stack:     [0xffff800010c00000..0xffff800010c04000]
[    0.000000] IRQ stack:      [0x0000000000000000..0x0000000000004000]
[    0.000000] Overflow stack: [0xffff800010aee090..0xffff800010aef090]
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.10.0-rc2-33445-g1e53d950ed3d-dirty #362
[    0.000000] Hardware name: Qualcomm Technologies, Inc. IPQ6018/AP-CP01-C1 (DT)
[    0.000000] pstate: 80000085 (Nzcv daIf -PAN -UAO -TCO BTYPE=--)
[    0.000000] pc : show_pte+0x18c/0x228
[    0.000000] lr : show_pte+0x15c/0x228
[    0.000000] sp : ffff800010c00000
[    0.000000] x29: ffff800010c00000 x28: ffff800010c0fe80 
[    0.000000] x27: 0000000000041000 x26: ffff80001099f900 
[    0.000000] x25: ffff8000109ce730 x24: ffff800010af7040 
[    0.000000] x23: 0000000080000085 x22: ffff800010a0c000 
[    0.000000] x21: 0000000000000000 x20: ffff00003dffa000 
[    0.000000] x19: ffff00003dffa000 x18: fffffffffffe3978 
[    0.000000] x17: 0000000000001800 x16: 0000000000000000 
[    0.000000] x15: ffffffffffffffff x14: ffff800010c102d0 
[    0.000000] x13: ffff800010d0ce40 x12: ffff800010c1d098 
[    0.000000] x11: 000000000000013b x10: 0000000000000058 
[    0.000000] x9 : 00000000ffffefff x8 : ffff800010c75098 
[    0.000000] x7 : 0000000000017fe8 x6 : 000000000000013b 
[    0.000000] x5 : 0000000000000000 x4 : 0000000000000000 
[    0.000000] x3 : 00000000ffffffff x2 : 0000000000000000 
[    0.000000] x1 : 0000000040000000 x0 : ffff800010990d70 
[    0.000000] Kernel panic - not syncing: kernel stack overflow
[    0.000000] ---[ end Kernel panic - not syncing: kernel stack overflow ]---

If I dont set all of the reserved memory nodes it will stop booting after PSCI, but when I set them correctly it will start throwing every imaginable paging error.

Todays really not my day as I cant get anything working.
Even worse, I have no idea how to debug the clk_core_get_parent_by_index.

I have tried checking whether pointer to core does not exists, that does not seem to be the case.
I then added a print for the name of each core structure passed, and just before the oops the last one is: pcie0_rchng_clk_src

And a breakthrough, @Apache14 was right.
Adding the parent_names to main pcie clock gets us booting.

Pushed the update to my tree so that it boots for all of you.
Now onto interesting stuff.

4 Likes