[PATCH V4 0/7] imx: blk-ctrl: Add interconnect for i.MX8MP

Tim Harvey tharvey at gateworks.com
Wed Oct 26 10:22:23 PDT 2022


On Mon, Oct 17, 2022 at 11:53 AM Tim Harvey <tharvey at gateworks.com> wrote:
>
> On Thu, Oct 13, 2022 at 2:49 PM Lucas Stach <l.stach at pengutronix.de> wrote:
> >
> > Hi Tim,
> >
> > Am Donnerstag, dem 13.10.2022 um 11:23 -0700 schrieb Tim Harvey:
> > > On Wed, Oct 12, 2022 at 11:46 AM Tim Harvey <tharvey at gateworks.com> wrote:
> > > >
> > > > On Tue, Oct 11, 2022 at 4:13 PM Marek Vasut <marex at denx.de> wrote:
> > > > >
> > > > > On 10/11/22 22:10, Tim Harvey wrote:
> > > > > > On Fri, Jul 8, 2022 at 1:57 AM Peng Fan (OSS) <peng.fan at oss.nxp.com> wrote:
> > > > > > >
> > > > > > > From: Peng Fan <peng.fan at nxp.com>
> > > > > > >
> > > > > > > V4:
> > > > > > >   Because the header is not included when adding NoC node, the fsl,imx8mp.h
> > > > > > >   needs be included in this patchset. So include it in patch 6
> > > > > > >
> > > > > > > V3:
> > > > > > >   Move adding NoC node patch to i.MX8MP ICC driver patchset
> > > > > > >   Per Lucas's comments, warn once when icc bulk get not return probe defer and continue.
> > > > > > >
> > > > > > > V2:
> > > > > > >   Use a low bandwidth value instead INT_MAX
> > > > > > >   Minor fix to move fsl,imx8mp.h out to dts patch, not driver patch
> > > > > > >   Add A-b tag from DT maintainer
> > > > > > >
> > > > > > > i.MX8MP NoC settings is invalid after related power domain up. So
> > > > > > > need to set valid values after power domain up.
> > > > > > >
> > > > > > > This patchset is to bind interconnect for each entry in blk ctrl.
> > > > > > >
> > > > > > > This patchset is not include DVFS DDRC feature.
> > > > > > >
> > > > > > > Peng Fan (7):
> > > > > > >    dt-bindings: soc: imx: add interconnect property for i.MX8MP media blk
> > > > > > >      ctrl
> > > > > > >    dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi blk
> > > > > > >      ctrl
> > > > > > >    dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio blk
> > > > > > >      ctrl
> > > > > > >    soc: imx: add icc paths for i.MX8MP media blk ctrl
> > > > > > >    soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl
> > > > > > >    arm64: dts: imx8mp: add interconnects for media blk ctrl
> > > > > > >    arm64: dts: imx8mp: add interconnect for hsio blk ctrl
> > > > > > >
> > > > > > >   .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml     |  9 +++++
> > > > > > >   .../soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml     | 10 +++++
> > > > > > >   .../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml    | 14 +++++++
> > > > > > >   arch/arm64/boot/dts/freescale/imx8mp.dtsi     | 18 +++++++++
> > > > > > >   drivers/soc/imx/imx8m-blk-ctrl.c              | 39 +++++++++++++++++++
> > > > > > >   drivers/soc/imx/imx8mp-blk-ctrl.c             | 35 +++++++++++++++++
> > > > > > >   6 files changed, 125 insertions(+)
> > > > > > >
> > > > > > > --
> > > > > > > 2.25.1
> > > > > > >
> > > > > >
> > > > > > Hi Peng,
> > > > > >
> > > > > > I built origin/master from commit 041bc24d867a today for an imx8mp
> > > > > > board and am running into errors that appear to be introduced by this
> > > > > > series:
> > > > > > [   15.177372] platform 381f0040.usb-phy: deferred probe pending
> > > > > > [   15.183155] platform 382f0040.usb-phy: deferred probe pending
> > > > > > [   15.188928] platform 33800000.pcie: deferred probe pending
> > > > > > [   15.194439] platform 32ec0000.blk-ctrl: deferred probe pending
> > > > > > [   15.200287] platform 38330000.blk-ctrl: deferred probe pending
> > > > > > [   15.206129] platform 32f10000.blk-ctrl: deferred probe pending
> > > > > > [   15.211974] platform 32f10100.usb: deferred probe pending
> > > > > > [   15.217382] platform 32f10108.usb: deferred probe pending
> > > > > > [   15.222791] platform cpufreq-dt: deferred probe pending
> > > > > > # cat /sys/kernel/debug/devices_deferred
> > > > > > 381f0040.usb-phy        platform: supplier 32f10000.blk-ctrl not ready
> > > > > > 382f0040.usb-phy        platform: supplier 32f10000.blk-ctrl not ready
> > > > > > 33800000.pcie   platform: supplier 32f10000.blk-ctrl not ready
> > > > > > 32ec0000.blk-ctrl       imx8m-blk-ctrl: failed to get noc entries
> > > > > > 38330000.blk-ctrl       imx8m-blk-ctrl: failed to get noc entries
> > > > > > 32f10000.blk-ctrl       imx8mp-blk-ctrl: failed to get noc entries
> > > > > > 32f10100.usb    platform: supplier 32f10000.blk-ctrl not ready
> > > > > > 32f10108.usb    platform: supplier 32f10000.blk-ctrl not ready
> > > > > > cpufreq-dt
> > > > > >
> > > > > > Is there a driver I'm perhaps missing that is needed now or are there
> > > > > > some patches that come from a different unmerged tree needed?
> > > > >
> > > > > Do you have these enabled ?
> > > > >
> > > > > CONFIG_INTERCONNECT_IMX8MM=y
> > > > > CONFIG_INTERCONNECT_IMX8MN=y
> > > > > CONFIG_INTERCONNECT_IMX8MQ=y
> > > > > CONFIG_INTERCONNECT_IMX8MP=y
> > > >
> > > > Marek,
> > > >
> > > > Yes, I have those as well as CONFIG_ARCH_NXP which appears new for 6.1 enabled.
> > > >
> > > > Best Regards,
> > > >
> > > > Tim
> > >
> > > I see this issue on origin/master 1440f5760228 using
> > > arch/arm64/configs/defconfig.
> > >
> > > It seems to me that the imx8m*_blk_ctrl_probe will all defer now until
> > > perhaps all the drivers using interconnects can probe, such as
> > > g1/lcdif etc?
> > >
> > > Some added debugging shows me:
> > > [   14.951371] of_icc_bulk_get path lcdif-rd err=-517
> > > [   14.956205] devm_of_icc_bulk_get ret=-517
> > > [   14.960562] imx8m_blk_ctrl_probe failed -517
> > > [   14.967191] of_icc_bulk_get path g1 err=-517
> > > [   14.971487] devm_of_icc_bulk_get ret=-517
> > > [   14.975614] imx8m_blk_ctrl_probe failed -517
> > > [   14.982200] of_icc_bulk_get path usb1 err=-517
> > > [   14.986680] devm_of_icc_bulk_get ret=-517
> > > [   14.990709] imx8mp_blk_ctrl_probe 0:usb1
> > > [   14.994641] imx8mp_blk_ctrl_probe 1:usb2
> > > [   15.002086] platform 381f0040.usb-phy: deferred probe pending
> > > [   15.007875] platform 382f0040.usb-phy: deferred probe pending
> > > [   15.013636] platform 32f00000.pcie-phy: deferred probe pending
> > > [   15.019480] platform 33800000.pcie: deferred probe pending
> > > [   15.024975] platform 32ec0000.blk-ctrl: deferred probe pending
> > > [   15.030819] platform 38330000.blk-ctrl: deferred probe pending
> > > [   15.036662] platform 32f10000.blk-ctrl: deferred probe pending
> > > [   15.042503] platform 32f10100.usb: deferred probe pending
> > > [   15.047912] platform 32f10108.usb: deferred probe pending
> > >
> > Do you have CONFIG_ARM_IMX_BUS_DEVFREQ enabled? This one will actually
> > instantiate the interconnect devices for the interconnect drivers to
> > hang onto. Once the interconnect is probed the blk-ctrl drivers should
> > probe. There is no dependency into leaf peripheral devices.
> >
> > Regards,
> > Lucas
> >
>
> Lucas,
>
> That's configured as a module in arch/arm64/configs/defconfig - making
> it static still does not help. I am booting a static kernel with no
> modules here so there must be something else required that is
> configured as a module that wasn't needed before this series?
>
> I haven't had much time to look into this. I'm simply using
> arch/arm64/configs/defconfig and CONFIG_INITRAMFS_SOURCE set to a
> rootfs I use for quick testing. If there is indeed now one or more
> modules required before USB and PCIe are available I wonder if they
> should be made static in arch/arm64/configs/defconfig? If not then I
> don't know what the point in having the PCI and USB drivers static is.
>

Lucas,

Sorry, I misspoke - I did not have CONFIG_ARM_IMX_BUS_DEVFREQ and that
was indeed my issue.

Question: Should the intention of arch/arm64/configs/defconfig be to
provide static bus support for PCIe/USB which can be boot devices?

Prior to the interconnect drivers (and even following those drivers
for imx8mm/imx8mn) PCIe/USB are available without module support with
arch/arm64/configs/defconfig but now the following would need to be
changed to make PCIe/USB available with defconfig and no modules:
CONFIG_INTERCONNECT_IMX8MM=y
CONFIG_INTERCONNECT_IMX8MN=y
CONFIG_INTERCONNECT_IMX8MQ=y
CONFIG_INTERCONNECT_IMX8MP=y
CONFIG_ARM_IMX_BUS_DEVFREQ=y

Without this change one would need an initrd to boot off PCIe/NVMe or
USB boot devices. I'm simply not clear what the intended use case is
for the defconfig with regards to modules vs static drivers.

Best Regards,

Tim



More information about the linux-arm-kernel mailing list