Re: [PATCH 0/5] MSM8996 eMMC boot fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 23/12/2022 02:54, Konrad Dybcio wrote:


On 23.12.2022 01:19, Dmitry Baryshkov wrote:
On 10/12/2022 22:03, Konrad Dybcio wrote:
In a very unfortunate turn of events, enabling interconnect on non-UFS
devices (or more precisely devices-with-UFS-clocks-disabled-from-
bootloader) crashes the device, as a memory read to an unlocked peripheral
is attempted. This series tries to fix that with the least amount of
casualties..

Just to note. I had occasional boot issues with UFS on msm8996 even after these patches being applied. It seems I was able to fix them by enabling interconnect support in the UFS-qcom driver.

To be fair, we may be missing some more things (I have no concrete
evidence, maybe things go south just because my ports of icc drivers
all turn out to be garbage..):

- icc is not aware of what hardware is on from the bootloader
and if we don't add interconnects= *everywhere*, *including* where
downstream made (in their case) educated assumptions, things start
falling apart real quick, as random bits of hw may stop working if
they get a zero vote

I think most if not all drivers unvote their resources without picking up bootloader configuration. This includes icc, clocks, power-domains, etc.

   - on other platforms, this is even a bigger mess, because
     some hardware *"unvotes"* on reset, such as MDSS or PCIe..

- if some but not all connections are described, requested bus
rate may be lower than expected, with effects ranging from subpar
performance to things simply not working because of too much traffic

- it's really hard to test smd rpm icc drivers other than dumping
reg writes and comparing them with downstream, sometimes things
"work" by luck, other times it breaks booting..

Yeah, I have been debugging 8996 boot issue for quite some time...


Konrad

Konrad Dybcio (5):
    dt-bindings: interconnect: Add UFS clocks to MSM8996 A2NoC
    interconnect: qcom: msm8996: Provide UFS clocks to A2NoC
    interconnect: qcom: msm8996: Fix regmap max_register values
    interconnect: qcom: rpm: Use _optional func for provider clocks
    arm64: dts: qcom: msm8996: Add additional A2NoC clocks

   .../bindings/interconnect/qcom,rpm.yaml       | 24 ++++++++++++++++++-
   arch/arm64/boot/dts/qcom/msm8996.dtsi         |  6 +++--
   drivers/interconnect/qcom/icc-rpm.c           |  2 +-
   drivers/interconnect/qcom/msm8996.c           | 19 +++++++++++----
   4 files changed, 42 insertions(+), 9 deletions(-)



--
With best wishes
Dmitry




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux