summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-14toradex_defconfig: remove cma configurationtoradex_5.15-2.0.x-imxAndrejs Cainikovs
Verdin boards rely on CMA configuration in device tree instead. Upstream-Status: Inappropriate [downstream specific] Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
2022-11-14arm64: dts: imx8m{m,p}-verdin: set cmaAndrejs Cainikovs
Bring back CMA in device tree and set its size to 512MB for entire Verdin family. Upstream-Status: Inappropriate [downstream specific] Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
2022-11-08toradex_imx_v8.config: Disable dspPhilippe Schenker
This commit disables the DSP on Verdin iMX8M Plus since it is anyway not used on our reference images. This removes the errormessage in dmesg: [ 0.816509] of_reserved_mem_lookup() returned NULL Upstream-Status: Inappropriate [Configuration] Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2022-11-03Revert "arm64: dts: imx8mp-verdin: limit sdio wi-fi frequency to 100 mhz"Marcel Ziswiler
This reverts commit 9f04e0d3d5603fee7648dfac6713a29478686932. As we found the real instability having been due to a contention between the async SDIO interrupt and the auto-tuning, no longer limit the SDIO frequency to 100 MHz. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Upstream-status: Inappropriate [NXP downstream SDIO stack]
2022-11-03arm64: dts: imx8mp-verdin: fix sdio wifi instabilityMarcel Ziswiler
Fix SDIO Wi-Fi instability by adding fsl,sdio-async-interrupt-enabled device tree property to the usdhc1 instance connected to the on-module AW-CM276NF Wi-Fi. From Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml: Recommend for SDIO cards that enables SDIO async interrupt for SDR104 and SDR50 operating modes. SDIO async interrupt uses DAT[1] to signal the card's interrupt. uSDHC tuning mechanism must use DAT[0] and CMD signals to avoid a possible conflict and incorrect delay line calculated by the uSDHC auto tuning mechanism. Enabling this device tree property is only recommended for layouts that are matching the SD interface length. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Upstream-status: Inappropriate [NXP downstream SDIO stack]
2022-11-03arm64: dts: imx8mm-verdin: fix sdio wifi instabilityMarcel Ziswiler
Fix SDIO Wi-Fi instability by adding fsl,sdio-async-interrupt-enabled device tree property to the usdhc3 instance connected to the on-module AW-CM276NF Wi-Fi. From Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml: Recommend for SDIO cards that enables SDIO async interrupt for SDR104 and SDR50 operating modes. SDIO async interrupt uses DAT[1] to signal the card's interrupt. uSDHC tuning mechanism must use DAT[0] and CMD signals to avoid a possible conflict and incorrect delay line calculated by the uSDHC auto tuning mechanism. Enabling this device tree property is only recommended for layouts that are matching the SD interface length. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Upstream-status: Inappropriate [NXP downstream SDIO stack]
2022-11-02arm64: dts: verdin-imx8mp: dahlia: mark usb_2 permanently attachedMarcel Ziswiler
As both Dahlia and the Verdin Development Board have on-carrier permanently attached USB hubs mark Verdin USB_2 as such. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20221102131203.35648-1-marcel@ziswiler.com/]
2022-11-02arm64: dts: verdin-imx8mp: add gpio usb-b connectorMarcel Ziswiler
Add GPIO USB-B connector (gpio-usb-b-connector) functionality using Verdin USB_1_ID. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20221102131203.35648-1-marcel@ziswiler.com/]
2022-11-02arm64: dts: verdin-imx8mp: disable usb port power controlMarcel Ziswiler
Disable port power control on Verdin USB_1/2 as we use regular fixed-regulators with Verdin USB_1/2_EN as enable GPIOs. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20221102131203.35648-1-marcel@ziswiler.com/]
2022-11-02arm64: dts: verdin-imx8mp: add usb_1 over-current detectionMarcel Ziswiler
Add Verdin USB_1 over-current detection functionality via Verdin USB_1_OC# (SODIMM 157) being active-low and removing its previous gpio_hog3 mapping. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20221102131203.35648-1-marcel@ziswiler.com/]
2022-11-02arm64: dts: verdin-imx8mp: remove usb_2 over-current detection disablingMarcel Ziswiler
The disable-over-current property is only applicable for the ci-hdrc-usb2 and dwc2 drivers while the i.MX 8M Plus integrates dwc3 IP. Therefore remove this property which does not really serve any purpose here. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20221102131203.35648-1-marcel@ziswiler.com/]
2022-11-02arm64: dts: verdin-imx8mp: improve pinctrl for vbus-suppliesMarcel Ziswiler
As we are using two fixed regulators for Verdin USB_1_EN (SODIMM 155) and Verdin USB_2_EN (SODIMM 185), those should be muxed as GPIOs rather than OTG_PWR. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20221102131203.35648-1-marcel@ziswiler.com/]
2022-11-02arm64: dts: imx8mp: Add memory for USB3 glue layer to usb3 nodesAlexander Stein
The USB3 glue layer has 2 areas in the register set, see RM Rev.1 section 11.2.5.2.1 GLUE_usb3 memory map: * USB3 control/status * PHY control/status Provide the memory area to the usb3 nodes for accessing the features in the USB3 control area. Reviewed-by: Li Jun <jun.li@nxp.com> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Link: https://lore.kernel.org/r/20220218152707.2198357-5-alexander.stein@ew.tq-group.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Upstream-status: Backport [290918c72a2973ffc876d8efb4da304bf7aaea8f]
2022-11-02usb: dwc3: imx8mp: Add support for setting SOC specific flagsAlexander Stein
The i.MX8MP glue layer has support for the following flags: * over-current polarity * PWR pad polarity * controlling PPC flag in HCCPARAMS register * permanent port attach for usb2 & usb3 port Allow setting these flags by supporting specific flags in the glue node. In order to get this to work an additional IORESOURCE_MEM and clock is necessary. For backward compatibility this is purely optional. Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Link: https://lore.kernel.org/r/20220218152707.2198357-4-alexander.stein@ew.tq-group.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Upstream-status: Backport [9d52107185b646d449b682e10e95e6b3037b79cf]
2022-11-02dt-bindings: usb: dwc3-imx8mp: Add imx8mp specific flagsAlexander Stein
This adds bindings for features in the USB glue block. They allow setting polarity of PWR and OC as well as disabling port power control. Also permanently attached can be annotated as well. Additional IO address and clock are needed. Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Link: https://lore.kernel.org/r/20220218152707.2198357-3-alexander.stein@ew.tq-group.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Upstream-status: Backport [d600d31e37dc50c4a99f3e73f8b467ea33f1475f]
2022-11-02usb: dwc3: imx8mp: rename iomem base pointerAlexander Stein
Until now the iomem used is not USB glue as the name suggests, but HSIO BLK_CTL. Rename the struct member accordingly. This is a preparing patch for when USB glue is actually used. Reviewed-by: Li Jun <jun.li@nxp.com> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Link: https://lore.kernel.org/r/20220218152707.2198357-2-alexander.stein@ew.tq-group.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Upstream-status: Backport [81915384b5d127c67bfb4d19a62ec193e12eaaef]
2022-11-02usb: dwc3: drd: Add support for usb-conn-gpio based usb-role-switchAlexander Stein
usb-conn-gpio devices are a subnode of the USB interface controller, which needs to be populated. This allows having a non-type-c connector providing dual-role. Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Link: https://lore.kernel.org/r/20220105071407.2240302-1-alexander.stein@ew.tq-group.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Upstream-status: Backport [a102f07e4edf0f1cf06bf9825ab10e26a29dd945]
2022-10-11toradex_defconfig: Add systemd required kernel configFrancesco Dolcini
Add standard systemd requirements [0] to imx8 kernel config. [0] https://github.com/systemd/systemd/blob/main/README Upstream-status: Inappropriate [defconfig change] Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2022-10-05drm/panel-simple: fix mapping variable used uninitializedMax Krummenacher
If a panel-dpi node does not have the data-mapping property defined an uninitalized pointer is used with strcmp resulting in a kernel crash during boot. (backtrace from upstream 6.0 kernel) [ 6.509726] 8<--- cut here --- [ 6.513351] Unable to handle kernel NULL pointer dereference at virtual address 00000013 [ 6.522189] [00000013] *pgd=00000000 [ 6.526111] Internal error: Oops: 5 [#1] SMP ARM [ 6.530833] Modules linked in: [ 6.533983] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.0.0-6.0.0-devel+git.4fe89d07dcc2 #1 [ 6.542483] Hardware name: Freescale i.MX6 Ultralite (Device Tree) [ 6.548768] PC is at strcmp+0x0/0x34 [ 6.552449] LR is at panel_dpi_probe+0xc4/0x1f0 [ 6.557092] pc : [<c0640e50>] lr : [<c0760dc4>] psr: 60000013 [ 6.563470] sp : f083dcc0 ip : 00000001 fp : c15004d0 [ 6.568791] r10: 00000000 r9 : ef7f4d08 r8 : c2178000 [ 6.574115] r7 : c230b740 r6 : c256d100 r5 : 00000013 r4 : c256b4c0 [ 6.580757] r3 : 00000000 r2 : c2178000 r1 : c12bd7f0 r0 : 00000013 [ 6.587399] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 6.594659] Control: 10c5387d Table: 8000406a DAC: 00000051 [ 6.600507] Register r0 information: non-paged memory [ 6.605676] Register r1 information: non-slab/vmalloc memory [ 6.611457] Register r2 information: slab task_struct start c2178000 pointer offset 0 [ 6.619488] Register r3 information: NULL pointer [ 6.624296] Register r4 information: slab kmalloc-128 start c256b480 pointer offset 64 size 128 [ 6.633208] Register r5 information: non-paged memory [ 6.638367] Register r6 information: slab kmalloc-192 start c256d0c0 pointer offset 64 size 192 [ 6.647278] Register r7 information: slab kmalloc-256 start c230b700 pointer offset 64 size 256 [ 6.656191] Register r8 information: slab task_struct start c2178000 pointer offset 0 [ 6.664207] Register r9 information: non-slab/vmalloc memory [ 6.669981] Register r10 information: NULL pointer [ 6.674876] Register r11 information: non-slab/vmalloc memory [ 6.680738] Register r12 information: non-paged memory [ 6.685987] Process swapper/0 (pid: 1, stack limit = 0xaf192ddd) [ 6.692202] Stack: (0xf083dcc0 to 0xf083e000) [ 6.696672] dcc0: 00000000 c0e2f724 00000000 c12b606c 00000013 c0a01820 f083dd08 00000001 [ 6.705001] dce0: 00000000 c2178000 c17eea20 c0a06930 c230b7f4 c2178000 00000000 9fb7a78a [ 6.713328] dd00: c230b740 c2112810 c1e74008 c2178000 00000000 c13c9e68 c1802000 c076116c [ 6.721654] dd20: c21787a0 9fb7a78a c2178000 c2178000 c156455c f083dd50 2e266000 c1799dd4 [ 6.729980] dd40: 00000000 60000093 00000000 c018a198 00000001 00000080 00000000 00000001 [ 6.738303] dd60: c21787c0 c0e236f8 c2178000 c21787c0 00000001 c0181cac c2178000 c1799dd4 [ 6.746629] dd80: c2178000 c156455c c0e2f724 c17de9e0 a0000013 c0186f08 c0a0167c 00000001 [ 6.754952] dda0: 00000001 c2178000 c156a29c c021e0e8 a0000013 c1799dc4 a0000013 c1799dc4 [ 6.763277] ddc0: c0f7e79c c0e2f724 c0f7e860 9fb7a78a c0f7e79c 00000000 c2112810 c1766a80 [ 6.771602] dde0: 00000000 c17eea20 c13c9e68 c1802000 c15004d0 c079113c 00000000 c2112810 [ 6.779927] de00: c1766a80 00000000 c17eea20 c078e168 c21129bc c079e2c0 c2112810 c1766a80 [ 6.788250] de20: c2112810 00000000 c256b358 c078e534 c0f7e79c 9fb7a78a c0f7e860 c1e76200 [ 6.796577] de40: c2112810 c2112810 00000000 c256b358 c13c9e68 c078e6d4 c2112854 c2112810 [ 6.804900] de60: c1766a80 c2178000 c256b358 c078eedc 00000000 c1766a80 c078ee30 c2178000 [ 6.813226] de80: c256b358 c078c094 c20a98e4 c20a98b0 c2242054 9fb7a78a c20a98e4 c1766a80 [ 6.821550] dea0: c256b300 00000000 c1767dd8 c078d50c c12be0c8 c0e2f660 00000000 c1766a80 [ 6.829875] dec0: 00000000 c17ddb00 c1608fcc 00000000 c13c9e68 c078fe98 c2178000 c1532458 [ 6.838198] dee0: c17ddb00 c1532468 c2178000 c01022a4 c21f6067 c21f605a c21f6059 c014be00 [ 6.846523] df00: c2001300 c21f6000 00000129 c12f2658 c15004d0 00000000 c2178000 00000006 [ 6.854846] df20: 00000006 00000000 c2178000 c17ddb00 c1608fcc c1549870 c1549854 9fb7a78a [ 6.863171] df40: c15638d4 00000007 c21f6000 c1549874 c1549854 c13c9e68 c1802000 c1501328 [ 6.871494] df60: 00000006 00000006 00000000 c15004d0 00000000 00000129 00000000 c1608f80 [ 6.879820] df80: c0e24474 00000000 00000000 00000000 00000000 00000000 00000000 c0e24488 [ 6.888142] dfa0: 00000000 c0e24474 00000000 c0100128 00000000 00000000 00000000 00000000 [ 6.896465] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 6.904788] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000 [ 6.913110] strcmp from panel_dpi_probe+0xc4/0x1f0 [ 6.918132] panel_dpi_probe from panel_simple_probe+0x27c/0x604 [ 6.924279] panel_simple_probe from platform_probe+0x58/0xbc [ 6.930162] platform_probe from really_probe+0xd8/0x410 Fixes: f7336b9a2f05 ("Revert "drm/panel-simple: drop use of data-mapping property"") Upstream-Status: denied [data-mapping is denied in the first place] https://lore.kernel.org/all/20220628181838.2031-1-max.oss.09@gmail.com/ Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-10-05media: mxc mipi csi: fix device tree node order dependencyMarcel Ziswiler
Explicitly get endpoint 1 being the sensor one as using overlays may reverse node order in the final device tree blob. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Conflicts: drivers/media/platform/mxc/capture/mxc_mipi_csi.c Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com> (cherry picked from commit ad9b05bd70583805170e27ba98015502fe5517e0) Upstream-status: Inappropriate [NXP downstream camera stack]
2022-09-29mwifiex: Add SD8997 SDIO-UART firmwareAndrejs Cainikovs
With a recent change now it is possible to detect the strapping option on SD8997, which allows to pick up a correct firmware for either SDIO-SDIO or SDIO-UART. This commit enables SDIO-UART firmware on SD8997. Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20220422090313.125857-3-andrejs.cainikovs@toradex.com Upstream-Status: Backport [562354ab9f0aa4fcd8f2184506dcb9c18a792182]
2022-09-29mwifiex: Select firmware based on strappingAndrejs Cainikovs
Some WiFi/Bluetooth modules might have different host connection options, allowing to either use SDIO for both WiFi and Bluetooth, or SDIO for WiFi and UART for Bluetooth. It is possible to detect whether a module has SDIO-SDIO or SDIO-UART connection by reading its host strap register. This change introduces a way to automatically select appropriate firmware depending of the connection method, and removes a need of symlinking or overwriting the original firmware file with a required one. Host strap register used in this commit comes from the NXP driver [1] hosted at Code Aurora. [1] https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_sdio_mmc.c?h=rel_imx_5.4.70_2.3.2&id=688b67b2c7220b01521ffe560da7eee33042c7bd#n1274 Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com> Reviewed-by: Alvin Šipraga <alsi@bang-olufsen.dk> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20220422090313.125857-2-andrejs.cainikovs@toradex.com Upstream-Status: Backport [255ca28a659d3cfb069f73c7644853ed93aecdb0]
2022-09-22drm/bridge: lt8912b: clarify lvds output statusFrancesco Dolcini
Add comments on the lt8912_write_lvds_config() config to document the current settings and to make it clear that this is a hardcoded configuration not relevant for the HDMI output (could be removed without affecting the HDMI port). No changes on the actual register writes. Upstream-Status: Submitted [https://lore.kernel.org/all/20220922124306.34729-5-dev@pschenker.ch/] Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2022-09-22drm/bridge: lt8912b: fix corrupted image outputFrancesco Dolcini
Correct I2C address for the register list in lt8912_write_lvds_config(), these registers are on the first I2C address (0x48), the current function is just writing garbage to the wrong registers and this creates multiple issues (artifacts and output completely corrupted) on some HDMI displays. Correct I2C address comes from Lontium documentation and it is the one used on other out-of-tree LT8912B drivers [1]. [1] https://github.com/boundarydevices/linux/blob/boundary-imx_5.10.x_2.0.0/drivers/video/lt8912.c#L296 Upstream-Status: Submitted [https://lore.kernel.org/all/20220922124306.34729-4-dev@pschenker.ch/] Fixes: 30e2ae943c26 ("drm/bridge: Introduce LT8912B DSI to HDMI bridge") Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2022-09-22drm/bridge: lt8912b: set hdmi or dvi modePhilippe Schenker
The Lontium LT8912 does have a setting for DVI or HDMI. This patch reads from EDID what the display needs and sets it accordingly. Upstream-Status: Submitted [https://lore.kernel.org/all/20220922124306.34729-3-dev@pschenker.ch/] Fixes: 30e2ae943c26 ("drm/bridge: Introduce LT8912B DSI to HDMI bridge") Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2022-09-22drm/bridge: lt8912b: add vsync hsyncPhilippe Schenker
Currently the bridge driver does not take care whether or not the display needs positive/negative vertical/horizontal syncs. Pass these two flags to the bridge from the EDID that was read out from the display. Upstream-Status: Submitted [https://lore.kernel.org/all/20220922124306.34729-2-dev@pschenker.ch/] Fixes: 30e2ae943c26 ("drm/bridge: Introduce LT8912B DSI to HDMI bridge") Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2022-09-22arm64: dts: imx8mp-verdin: fix ctrl_sleep_mociMax Krummenacher
The GPIO signaling ctrl_sleep_moci is currently handled as a gpio hog. But the gpio-hog node is made a child of the wrong gpio controller. Move it to the node representing gpio4 so that it actually works. Without this carrier board components jumpered to use the signal are unconditionally switched off. Fixes: 1d8df9c74bff ("arm64: dts: freescale: add initial support for verdin imx8m plus") Upstream-status: Submitted [https://lore.kernel.org/all/20220922162925.2368577-2-marcel@ziswiler.com/] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-09-21arm64: dts: imx8mp-verdin: add pcie functionalityMax Krummenacher
Enable the PCIe and PCIe PHY. Upstream-status: Pending [mainline does not support PCIe yet] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-09-06Revert "drm/panel-simple: drop use of data-mapping property"Max Krummenacher
This reverts commit d021d751c14752a0266865700f6f212fab40a18c. Re-enable the data-mapping property which was already used in the 5.4-2.3.0 downstream kernel. In addition to the revert set bpc from the data-mapping value as a WARN_ON is printed if missing. Upstream-Status: denied [Alternative solution being discused] https://lore.kernel.org/all/20220628181838.2031-1-max.oss.09@gmail.com/ Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-09-05Revert "arm64: dts: imx8mp-verdin: prevent emmc crash"Max Krummenacher
This reverts commit 96084b8822418f30ff0b941bfe7222d7e941090d. The kernel panic was due to U-Boot not (yet) setting the DDR RAM size dynamically depending on the SKU but setting it to the maximum of 8GB. The kernel crashes when it first tries to access not existing RAM addresses. Upstream-status: Inappropriate [reverting not upstreamed commit] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-09-05toradex_defconfig: verdin-imx8mp: fix concurrent use of dsi and native hdmiMax Krummenacher
With native HDMI being a kernel built in and the DSI adapters being a module, concurrent use of the two leads to a not booting kernel. When DRM tries to bring up native HDMI it also tries to bring up the bridge to DSI which then returns EAGAIN as the DSI to HDMI/LVDS kernel modules cannot be loaded yet. This results in a never ending loop rather than continuing to init and trying again. Compiling the bridge to DSI as a module fixes the issue. Upstream-status: Inappropriate [defconfig change] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-09-05toradex_defconfig: remove unused graphic driversMax Krummenacher
These are not used on our SoM, remove them. Upstream-status: Inappropriate [defconfig change] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-09-01arm64: dts: imx8mm-verdin: extend pmic voltagesPhilippe Schenker
Currently, we limited the voltages from the PMIC very strictly. This causes an issue with one Toradex SKU that uses a consumer-grade chip that is capable of going up to 1.8GHz at 1.00V. Extend the ranges to min/max values of the SoC operating ranges (table 10) in the datasheet. Detailed explanation as follows: BUCK2: - As already described above, the SKU with the consumer-grade chip needs a voltage of at least 1.00V. 1.05V is chosen now as this is listed as the maximum. Both industrial and consumer-grade chips have an absolute maximum rating of 1.15V which makes it still safe to put 1.05V - Lower the regulator-min value to the smallest value allowed from the Quad-A53, 1.2GHz version of the SoC BUCK3: - This regulator is used for SoC input voltages VDD_GPU, VDD_VPU and VDD_DRAM. - Use the smallest value of these three inputs as the regulator-min - Use the largest value of these three inputs as the regulator-max LDO2: - This LDO is used for VDD_SNVS_0P8 SoC input voltage. As this has a single nominal input voltage just put this in the middle of 0.8V. Fixes: commit 6a57f224f734 ("arm64: dts: freescale: add initial support for verdin imx8m mini") Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20220901100151.1378709-5-marcel@ziswiler.com/]
2022-09-01arm64: dts: imx8mp-verdin: board regulators: add always-onMax Krummenacher
These regulators are switched on by HW during power up and can not be influenced by SW. Set the always-on property. Upstream-status: Submitted [https://lore.kernel.org/all/20220901110422.1859621-1-max.oss.09@gmail.com/] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-09-01arm64: dts: imx8mp-verdin: prevent emmc crashMax Krummenacher
Heavy bandwidth use of the eMMC leads to a unrecoverable kernel crash. Fix this by limiting the maximum frequency used. `hdparm -t /dev/mmcblk2` or `cat /dev/mmcblk2 > /dev/null` produce the following kernel debug output: | root@verdin-imx8mp-06775464:~# uname -a | Linux verdin-imx8mp-06775464 5.15.40-05907-ga69fc9b0472d #2 SMP PREEMPT Wed Aug 31 18:51:37 CEST 2022 aarch64 aarch64 aarch64 GNU/Linux | root@verdin-imx8mp-06775464:~# hdparm -t /dev/mmcblk2 | | /dev/mmcblk2: | Timing buffered disk reads: 688 MB in 3.01 seconds = 228.81 MB/sec [ 96.899831] audit: type=1701 audit(1661965049.536:4): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=917 comm="hdparm" exe="/sbin/hdparm.hdparm" sig=4 res=1 [ 96.900136] Unable to handle kernel paging request at virtual address 00746f6e20746f6c [ 96.900724] Unable to handle kernel paging request at virtual address 00746f6e20746f6c [ 96.900729] Mem abort info: [ 96.900731] ESR = 0x96000004 [ 96.900734] EC = 0x25: DABT (current EL), IL = 32 bits [ 96.900737] SET = 0, FnV = 0 [ 96.900739] EA = 0, S1PTW = 0 [ 96.900741] FSC = 0x04: level 0 translation fault [ 96.900743] Data abort info: [ 96.900745] ISV = 0, ISS = 0x00000004 [ 96.900747] CM = 0, WnR = 0 [ 96.900749] [00746f6e20746f6c] address between user and kernel address ranges [ 96.900753] Internal error: Oops: 96000004 [#1] PREEMPT SMP [ 96.900757] Modules linked in: bluetooth mwifiex_sdio snd_soc_fsl_sai crct10dif_ce mwifiex cfg80211 rfkill imx_sdma snd_soc_nau8822 ina2xx lm75 flexcan caam can_dev secvio error panel_lvds fuse [ 96.900797] CPU: 1 PID: 239 Comm: systemd-journal Not tainted 5.15.40-05907-ga69fc9b0472d #2 [ 96.900802] Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) [ 96.900806] pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 96.900811] pc : lock_page_memcg+0x38/0xc0 [ 96.900825] lr : lock_page_memcg+0x2c/0xc0 [ 96.900830] sp : ffff80000a30b980 [ 96.900832] x29: ffff80000a30b980 x28: ffff80000a30bb88 x27: 0000ffff8661a000 [ 96.900840] x26: 0000ffff86619000 x25: ffff0000c617dc00 x24: 0000000000000000 [ 96.900847] x23: fffffc0000041a80 x22: ffff80000a30bab8 x21: 20746f6e207465ac [ 96.900854] x20: fffffc0000041a80 x19: 20746f6e2074616c x18: 00000000fffffffc [ 96.900861] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000002 [ 96.900868] x14: 0000000000000000 x13: 000000000012a558 x12: ffff0000c75dd005 [ 96.900875] x11: 0000000000000000 x10: ffff8001f576c000 x9 : 0000000000000003 [ 96.900883] x8 : fffffc0003138788 x7 : ffff8001f576c000 x6 : 0000000000000000 [ 96.900889] x5 : 000000000004106a x4 : 00000000ffffffff x3 : ffff0000c617dc00 [ 96.900896] x2 : 0000000000000000 x1 : ffff0000c0740e00 x0 : 20746f6e207465ac [ 96.900904] Call trace: [ 96.900907] lock_page_memcg+0x38/0xc0 [ 96.900912] page_remove_rmap+0x20/0x3c0 [ 96.900919] unmap_page_range+0x558/0x87c [ 96.900925] unmap_vmas+0x9c/0x15c [ 96.900930] exit_mmap+0x68/0x1a4 [ 96.900936] __mmput+0x38/0x14c [ 96.900943] mmput+0x48/0x54 [ 96.900947] do_exit+0x2c0/0x970 [ 96.900952] do_group_exit+0x3c/0xa0 [ 96.900956] get_signal+0x144/0x760 [ 96.900962] do_notify_resume+0x224/0x130c [ 96.900969] el0_undef+0x48/0x60 [ 96.900978] el0t_64_sync_handler+0x130/0x1b0 [ 96.900983] el0t_64_sync+0x1a0/0x1a4 [ 96.900990] Code: 97fa3cde d503201f f90013f5 1400000f (b94e0261) [ 96.900995] ---[ end trace f024570fb29b7f38 ]--- [ 96.900998] note: systemd-journal[239] exited with preempt_count 1 [ 96.901001] Fixing recursive fault but reboot is needed! [ 96.901004] ------------[ cut here ]------------ [ 96.901006] Voluntary context switch within RCU read-side critical section! [ 96.901021] WARNING: CPU: 1 PID: 239 at kernel/rcu/tree_plugin.h:316 rcu_note_context_switch+0x34c/0x3a4 [ 96.901030] Modules linked in: bluetooth mwifiex_sdio snd_soc_fsl_sai crct10dif_ce mwifiex cfg80211 rfkill imx_sdma snd_soc_nau8822 ina2xx lm75 flexcan caam can_dev secvio error panel_lvds fuse [ 96.901058] CPU: 1 PID: 239 Comm: systemd-journal Tainted: G D 5.15.40-05907-ga69fc9b0472d #2 [ 96.901063] Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) [ 96.901065] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 96.901070] pc : rcu_note_context_switch+0x34c/0x3a4 [ 96.901074] lr : rcu_note_context_switch+0x34c/0x3a4 [ 96.901079] sp : ffff80000a30b530 [ 96.901081] x29: ffff80000a30b530 x28: ffff80000a30b6f3 x27: ffff8000094a2cb8 [ 96.901089] x26: 0000000000000001 x25: ffff0000c0740e00 x24: ffff800009c0c000 [ 96.901096] x23: 0000000000000000 x22: ffff0000c0740e00 x21: ffff0001fef492c0 [ 96.901103] x20: ffff8000097ddfc0 x19: ffff0001fef49fc0 x18: fffffffffffe9148 [ 96.901110] x17: 65676e6172207373 x16: 000000000000002d x15: 0000000000000048 [ 96.901117] x14: 0000000000000000 x13: 216e6f6974636573 x12: 206c616369746972 [ 96.901124] x11: 6320656469732d64 x10: 6165722055435220 x9 : 206e696874697720 [ 96.901131] x8 : ffff800009a71eb0 x7 : ffff80000a30b330 x6 : 00000000fffff220 [ 96.901138] x5 : ffff0001fef429d0 x4 : 0000000000000000 x3 : 0000000000000027 [ 96.901145] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0000c0740e00 [ 96.901152] Call trace: [ 96.901153] rcu_note_context_switch+0x34c/0x3a4 [ 96.901158] __schedule+0xb8/0x754 [ 96.901163] schedule+0x74/0x10c [ 96.901167] do_exit+0x968/0x970 [ 96.901171] die+0x1f4/0x230 [ 96.901175] die_kernel_fault+0x64/0x7c [ 96.901181] __do_kernel_fault+0x90/0x190 [ 96.901186] do_translation_fault+0x5c/0xcc [ 96.901191] do_mem_abort+0x44/0xbc [ 96.901195] el1_abort+0x40/0x6c [ 96.901199] el1h_64_sync_handler+0xb4/0xd0 [ 96.901202] el1h_64_sync+0x78/0x7c [ 96.901206] lock_page_memcg+0x38/0xc0 [ 96.901211] page_remove_rmap+0x20/0x3c0 [ 96.901215] unmap_page_range+0x558/0x87c [ 96.901220] unmap_vmas+0x9c/0x15c [ 96.901224] exit_mmap+0x68/0x1a4 [ 96.901229] __mmput+0x38/0x14c [ 96.901233] mmput+0x48/0x54 [ 96.901238] do_exit+0x2c0/0x970 [ 96.901241] do_group_exit+0x3c/0xa0 [ 96.901246] get_signal+0x144/0x760 [ 96.901250] do_notify_resume+0x224/0x130c [ 96.901255] el0_undef+0x48/0x60 [ 96.901261] el0t_64_sync_handler+0x130/0x1b0 [ 96.901265] el0t_64_sync+0x1a0/0x1a4 [ 96.901269] ---[ end trace f024570fb29b7f39 ]--- [ 96.903683] Unable to handle kernel paging request at virtual address 00746f6e20746f6c [ 96.903688] Mem abort info: [ 96.903690] ESR = 0x96000004 [ 96.903692] EC = 0x25: DABT (current EL), IL = 32 bits [ 96.903695] SET = 0, FnV = 0 [ 96.903697] EA = 0, S1PTW = 0 [ 96.903699] FSC = 0x04: level 0 translation fault [ 96.903702] Data abort info: [ 96.903703] ISV = 0, ISS = 0x00000004 [ 96.903705] CM = 0, WnR = 0 [ 96.903707] [00746f6e20746f6c] address between user and kernel address ranges [ 96.903710] Internal error: Oops: 96000004 [#2] PREEMPT SMP [ 96.903713] Modules linked in: bluetooth mwifiex_sdio snd_soc_fsl_sai crct10dif_ce mwifiex cfg80211 rfkill imx_sdma snd_soc_nau8822 ina2xx lm75 flexcan caam can_dev secvio error panel_lvds fuse [ 96.903742] CPU: 1 PID: 619 Comm: klogd Tainted: G D W 5.15.40-05907-ga69fc9b0472d #2 [ 96.903746] Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) [ 96.903749] pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 96.903754] pc : lock_page_memcg+0x38/0xc0 [ 96.903760] lr : lock_page_memcg+0x2c/0xc0 [ 96.903764] sp : ffff80000a5db980 [ 96.903766] x29: ffff80000a5db980 x28: ffff80000a5dbb88 x27: 0000ffff820b4000 [ 96.903774] x26: 0000ffff820b3000 x25: ffff0000c1bb7240 x24: 0000000000000000 [ 96.903781] x23: fffffc0000041a80 x22: ffff80000a5dbab8 x21: 20746f6e207465ac [ 96.903788] x20: fffffc0000041a80 x19: 20746f6e2074616c x18: 00000000fffffffc [ 96.903795] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000002 [ 96.903801] x14: 0000000000000000 x13: 000000000012a558 x12: ffff0000c75dd005 [ 96.903808] x11: 0000000000000000 x10: 000000000000002e x9 : 0000000000000000 [ 96.903816] x8 : 0000000000000000 x7 : ffff8001f576c000 x6 : 0000000000000000 [ 96.903822] x5 : 000000000004106a x4 : 00000000ffffffff x3 : ffff0000c1bb7240 [ 96.903829] x2 : 0000000000000000 x1 : ffff0000c6c14600 x0 : 20746f6e207465ac [ 96.903836] Call trace: [ 96.903838] lock_page_memcg+0x38/0xc0 [ 96.903843] page_remove_rmap+0x20/0x3c0 [ 96.903847] unmap_page_range+0x558/0x87c [ 96.903851] unmap_vmas+0x9c/0x15c [ 96.903856] exit_mmap+0x68/0x1a4 [ 96.903861] __mmput+0x38/0x14c [ 96.903866] mmput+0x48/0x54 [ 96.903870] do_exit+0x2c0/0x970 [ 96.903874] do_group_exit+0x3c/0xa0 [ 96.903878] get_signal+0x144/0x760 [ 96.903882] do_notify_resume+0x224/0x130c [ 96.903888] el0_undef+0x48/0x60 [ 96.903893] el0t_64_sync_handler+0x130/0x1b0 [ 96.903897] el0t_64_sync+0x1a0/0x1a4 [ 96.903903] Code: 97fa3cde d503201f f90013f5 1400000f (b94e0261) [ 96.903907] ---[ end trace f024570fb29b7f3a ]--- [ 96.903909] note: klogd[619] exited with preempt_count 1 [ 96.903912] Fixing recursive fault but reboot is needed! [ 96.913892] audit: type=1701 audit(1661965049.536:5): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=239 comm="systemd-journal" exe="/lib/systemd/systemd-journald" sig=4 res=1 [ 96.913901] audit: type=1701 audit(1661965049.536:6): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=619 comm="klogd" exe="/bin/busybox.nosuid" sig=4 res=1 [ 97.701098] Mem abort info: [ 97.703895] ESR = 0x96000004 [ 97.706947] EC = 0x25: DABT (current EL), IL = 32 bits [ 97.712262] SET = 0, FnV = 0 [ 97.715313] EA = 0, S1PTW = 0 [ 97.718457] FSC = 0x04: level 0 translation fault [ 97.723337] Data abort info: [ 97.726218] ISV = 0, ISS = 0x00000004 [ 97.730056] CM = 0, WnR = 0 [ 97.733026] [00746f6e20746f6c] address between user and kernel address ranges [ 97.740163] Internal error: Oops: 96000004 [#3] PREEMPT SMP [ 97.745733] Modules linked in: bluetooth mwifiex_sdio snd_soc_fsl_sai crct10dif_ce mwifiex cfg80211 rfkill imx_sdma snd_soc_nau8822 ina2xx lm75 flexcan caam can_dev secvio error panel_lvds fuse [ 97.762966] CPU: 3 PID: 917 Comm: hdparm Tainted: G D W 5.15.40-05907-ga69fc9b0472d #2 [ 97.772009] Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) [ 97.780094] pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 97.787054] pc : lock_page_memcg+0x38/0xc0 [ 97.791151] lr : lock_page_memcg+0x2c/0xc0 [ 97.795246] sp : ffff80001b6ab980 [ 97.798556] x29: ffff80001b6ab980 x28: ffff80001b6abb88 x27: 0000ffff811f7000 [ 97.805693] x26: 0000ffff811f6000 x25: ffff0000cab943c0 x24: 0000000000000000 [ 97.812829] x23: fffffc0000041a80 x22: ffff80001b6abab8 x21: 20746f6e207465ac [ 97.819966] x20: fffffc0000041a80 x19: 20746f6e2074616c x18: 00000000fffffffc [ 97.827101] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000002 [ 97.834237] x14: 0000000000000000 x13: 000000000012a558 x12: ffff0000c6639405 [ 97.841374] x11: 0000000000000000 x10: 000000000000002e x9 : 0000000000000000 [ 97.848509] x8 : 0000000000000000 x7 : ffff8001f5794000 x6 : ffffffffffffffff [ 97.855645] x5 : 000000000004106a x4 : 00000000ffffffff x3 : ffff0000cab943c0 [ 97.862781] x2 : 0000000000000000 x1 : ffff0000c0716200 x0 : 20746f6e207465ac [ 97.869917] Call trace: [ 97.872362] lock_page_memcg+0x38/0xc0 [ 97.876111] page_remove_rmap+0x20/0x3c0 [ 97.880032] unmap_page_range+0x558/0x87c [ 97.884040] unmap_vmas+0x9c/0x15c [ 97.887440] exit_mmap+0x68/0x1a4 [ 97.890756] __mmput+0x38/0x14c [ 97.893897] mmput+0x48/0x54 [ 97.896776] do_exit+0x2c0/0x970 [ 97.900002] do_group_exit+0x3c/0xa0 [ 97.903576] get_signal+0x144/0x760 [ 97.907063] do_notify_resume+0x224/0x130c [ 97.911158] el0_undef+0x48/0x60 [ 97.914386] el0t_64_sync_handler+0x130/0x1b0 [ 97.918741] el0t_64_sync+0x1a0/0x1a4 [ 97.922403] Code: 97fa3cde d503201f f90013f5 1400000f (b94e0261) [ 97.928495] ---[ end trace f024570fb29b7f3b ]--- [ 97.933121] note: hdparm[917] exited with preempt_count 1 [ 97.938759] Fixing recursive fault but reboot is needed! [ 98.846252] Unable to handle kernel paging request at virtual address 006140011e602020 [ 98.846279] audit: type=1701 audit(1661965051.480:7): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=930 comm="systemd" exe="/lib/systemd/systemd" sig=7 res=1 [ 98.854511] Mem abort info: [ 98.871475] audit: type=1701 audit(1661965051.480:8): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=931 comm="systemd" exe="/lib/systemd/systemd" sig=11 res=1 [ 98.871802] ESR = 0x96000004 [ 98.888857] audit: type=1701 audit(1661965051.480:9): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=933 comm="systemd" exe="/lib/systemd/systemd" sig=11 res=1 [ 98.888947] EC = 0x25: DABT (current EL), IL = 32 bits [ 98.907393] audit: type=1701 audit(1661965051.488:10): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=934 comm="systemd" exe="/lib/systemd/systemd" sig=11 res=1 [ 98.908588] SET = 0, FnV = 0 [ 98.922807] audit: type=1701 audit(1661965051.488:11): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=935 comm="systemd" exe="/lib/systemd/systemd" sig=11 res=1 [ 98.925870] EA = 0, S1PTW = 0 [ 98.940229] audit: type=1701 audit(1661965051.488:12): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=936 comm="systemd" exe="/lib/systemd/systemd" sig=11 res=1 [ 98.943354] FSC = 0x04: level 0 translation fault [ 98.960004] audit: type=1701 audit(1661965051.488:13): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=939 comm="systemd" exe="/lib/systemd/systemd" sig=11 res=1 [ 98.963297] Data abort info: [ 98.979852] ISV = 0, ISS = 0x00000004 [ 98.983892] CM = 0, WnR = 0 [ 98.987544] [006140011e602020] address between user and kernel address ranges [ 98.994927] Internal error: Oops: 96000004 [#4] PREEMPT SMP [ 99.000509] Modules linked in: bluetooth mwifiex_sdio snd_soc_fsl_sai crct10dif_ce mwifiex cfg80211 rfkill imx_sdma snd_soc_nau8822 ina2xx lm75 flexcan caam can_dev secvio error panel_lvds fuse [ 99.017755] CPU: 0 PID: 930 Comm: systemd Tainted: G D W 5.15.40-05907-ga69fc9b0472d #2 [ 99.026888] Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) [ 99.034976] pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 99.041938] pc : __d_lookup+0x60/0x170 [ 99.045697] lr : __d_lookup+0x44/0x170 [ 99.049449] sp : ffff80001b84ba10 [ 99.052762] x29: ffff80001b84ba10 x28: 0000000000000000 x27: 0000000000000000 [ 99.059901] x26: ffff800009c56b38 x25: ffffffffffffffff x24: ffff80001b84bb68 [ 99.067040] x23: ffff0000c24b06c0 x22: ffff0000c24b06c0 x21: 00000000b953fdd3 [ 99.074178] x20: ffff0001f6600000 x19: 1e6140011e602008 x18: 00000000fffffffc [ 99.081315] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000020 [ 99.088453] x14: ffffffffffffffff x13: ffff0000c6639480 x12: ffff0000c6639405 [ 99.095591] x11: 0000000000000000 x10: 000000000000002e x9 : ffff800009a6fb50 [ 99.102728] x8 : 0101010101010101 x7 : d0a3a0b1bdffb6d0 x6 : 00000000000000b8 [ 99.109866] x5 : 0000000000000001 x4 : 0000000000000000 x3 : ffff80001b84bb68 [ 99.117004] x2 : ffff800009a5b000 x1 : ffff0000c1869c00 x0 : 0000000000000001 [ 99.124143] Call trace: [ 99.126589] __d_lookup+0x60/0x170 [ 99.129995] d_lookup+0x44/0x70 [ 99.133137] lookup_dcache+0x24/0x84 [ 99.136712] __lookup_hash+0x24/0xd0 [ 99.140286] do_unlinkat+0x134/0x270 [ 99.143860] do_coredump+0xbf4/0x1410 [ 99.147522] get_signal+0x380/0x760 [ 99.151011] do_notify_resume+0x16c/0x130c [ 99.155110] el0_svc+0x4c/0x60 [ 99.158169] el0t_64_sync_handler+0x1a8/0x1b0 [ 99.162526] el0t_64_sync+0x1a0/0x1a4 [ 99.166190] Code: 54000081 14000011 f9400273 b40001f3 (b9401a62) [ 99.172283] ---[ end trace f024570fb29b7f3c ]--- [ 99.217876] ------------[ cut here ]------------ [ 99.219715] Unable to handle kernel NULL pointer dereference at virtual address 00000000000001a7 [ 99.222507] WARNING: CPU: 2 PID: 37 at mm/slub.c:4529 __ksize+0xc8/0xd0 [ 99.231325] Mem abort info: [ 99.237896] Modules linked in: bluetooth mwifiex_sdio snd_soc_fsl_sai crct10dif_ce mwifiex [ 99.240696] ESR = 0x96000004 [ 99.240697] cfg80211 rfkill [ 99.248964] EC = 0x25: DABT (current EL), IL = 32 bits [ 99.252004] imx_sdma snd_soc_nau8822 ina2xx lm75 [ 99.254883] SET = 0, FnV = 0 [ 99.260189] flexcan caam can_dev secvio [ 99.264895] EA = 0, S1PTW = 0 [ 99.267940] error panel_lvds fuse [ 99.271865] FSC = 0x04: level 0 translation fault [ 99.274997] CPU: 2 PID: 37 Comm: kauditd Tainted: G D W 5.15.40-05907-ga69fc9b0472d #2 [ 99.278407] Data abort info: [ 99.283262] Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) [ 99.283265] pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 99.292310] ISV = 0, ISS = 0x00000004 [ 99.295180] pc : __ksize+0xc8/0xd0 [ 99.303283] CM = 0, WnR = 0 [ 99.310218] lr : ksize+0x1c/0x30 [ 99.310224] sp : ffff80000a203ca0 [ 99.314070] user pgtable: 4k pages, 48-bit VAs, pgdp=00000001019fc000 [ 99.317449] x29: ffff80000a203ca0 x28: ffff0000f90f6800 x27: 0000000000000000 [ 99.320421] [00000000000001a7] pgd=0000000000000000 [ 99.323638] [ 99.323641] x26: 0000000000000001 x25: 0000000000000000 [ 99.326951] , p4d=0000000000000000 [ 99.333385] x24: 00000000ffffffff [ 99.333388] x23: 0000000000000cc0 x22: ffff0000c0200400 [ 99.340522] [ 99.345389] x21: 0000000000000000 [ 99.345392] x20: ffff0000c13c7800 x19: ffff0000f861bc00 x18: 00000000fffffffb [ 99.345399] x17: 000000040044ffff [ 99.346885] Internal error: Oops: 96000004 [#5] PREEMPT SMP [ 99.352103] x16: 00400032b5503510 [ 99.355498] Modules linked in: [ 99.358894] x15: 0000000000000000 [ 99.364113] bluetooth [ 99.365599] [ 99.368994] mwifiex_sdio [ 99.376122] x14: ffff0000c00d5400 [ 99.379431] snd_soc_fsl_sai [ 99.384997] x13: ffff8001f5780000 [ 99.388392] crct10dif_ce [ 99.391441] x12: 0000000034d4d91d [ 99.394836] mwifiex [ 99.397190] [ 99.398676] cfg80211 [ 99.401292] x11: 0000000000000000 [ 99.404601] rfkill [ 99.407476] x10: 00000000000009c0 [ 99.410871] imx_sdma [ 99.413486] x9 : ffff80000a203d40 [ 99.416882] snd_soc_nau8822 [ 99.419062] [ 99.420547] ina2xx [ 99.422814] x8 : ffff0000c021de20 [ 99.426123] lm75 [ 99.428217] x7 : ffff0001fef5d340 [ 99.431613] flexcan [ 99.433880] x6 : ffff800009aeb4d0 [ 99.437275] caam [ 99.440150] [ 99.441636] can_dev [ 99.443729] x5 : 0000000000000000 [ 99.447038] secvio [ 99.448957] x4 : ffff80000a203c50 [ 99.452353] error [ 99.454534] x3 : 0000000000000001 [ 99.457929] panel_lvds [ 99.459849] [ 99.461335] fuse [ 99.463515] x2 : 0000000000000000 [ 99.466823] [ 99.468917] x1 : fffffc000304f1c0 [ 99.472313] CPU: 1 PID: 1 Comm: systemd Tainted: G D W 5.15.40-05907-ga69fc9b0472d #2 [ 99.474320] x0 : 0000000000000000 [ 99.477715] Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) [ 99.480156] [ 99.481642] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 99.483563] Call trace: [ 99.486871] pc : kmem_cache_alloc+0xdc/0x294 [ 99.488360] __ksize+0xc8/0xd0 [ 99.491753] lr : kmem_cache_alloc+0x80/0x294 [ 99.500704] __alloc_skb+0xa0/0x1fc [ 99.504099] sp : ffff800009cdba80 [ 99.512183] skb_copy+0x44/0xb0 [ 99.513668] x29: ffff800009cdba80 [ 99.520622] kauditd_send_multicast_skb+0x74/0xc0 [ 99.523063] x28: ffff0000c17579c0 [ 99.527327] kauditd_send_queue+0x68/0x1b0 [ 99.530375] x27: 0000000000000000 [ 99.534639] kauditd_thread+0x29c/0x320 [ 99.538121] [ 99.541430] kthread+0x154/0x160 [ 99.544565] x26: ffff0000c17579c0 [ 99.547874] ret_from_fork+0x10/0x20 [ 99.552572] x25: ffff800009a58000 [ 99.555968] ---[ end trace f024570fb29b7f3d ]--- [ 99.560057] x24: ffff0000c1757a38 [ 99.563502] ------------[ cut here ]------------ [ 99.567282] [ 99.567283] x23: ffff0000c0078000 [ 99.568769] WARNING: CPU: 3 PID: 37 at mm/slub.c:4529 __ksize+0xc8/0xd0 [ 99.571991] x22: 0000000000002800 [ 99.575300] Modules linked in: [ 99.578869] x21: 0000000000000000 [ 99.582265] bluetooth [ 99.586876] [ 99.590272] mwifiex_sdio [ 99.594883] x20: ffff800008224004 [ 99.596369] snd_soc_fsl_sai [ 99.599678] x19: ffff0000c0005700 [ 99.606285] crct10dif_ce [ 99.609681] x18: 0000000000000000 [ 99.612729] mwifiex [ 99.616125] [ 99.618479] cfg80211 [ 99.619965] x17: 0000000000000000 [ 99.622579] rfkill [ 99.625888] x16: 0000000000000000 [ 99.628763] imx_sdma [ 99.632158] x15: ffff0000c183a108 [ 99.634773] snd_soc_nau8822 [ 99.638169] [ 99.640349] ina2xx [ 99.641834] x14: ffff0000c1839290 [ 99.644101] lm75 [ 99.647410] x13: ffff0000c183a108 [ 99.649504] flexcan [ 99.652899] x12: ffff0000c1839290 [ 99.655166] caam [ 99.658562] [ 99.661437] can_dev [ 99.662922] x11: 0000000000000000 [ 99.665016] secvio [ 99.668325] x10: 0000000000000000 [ 99.670244] error [ 99.673640] x9 : 0000000000000000 [ 99.675821] panel_lvds [ 99.679216] [ 99.681135] fuse [ 99.682621] x8 : ffff0000c183b500 [ 99.684801] [ 99.688110] x7 : 0000000000000016 [ 99.690204] CPU: 3 PID: 37 Comm: kauditd Tainted: G D W 5.15.40-05907-ga69fc9b0472d #2 [ 99.693599] x6 : ffff80000909e708 [ 99.695606] Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) [ 99.699002] [ 99.701443] pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 99.702928] x5 : ffff0000f9f4a240 [ 99.704848] pc : __ksize+0xc8/0xd0 [ 99.708157] x4 : ffff800009cdbb80 [ 99.709643] lr : ksize+0x1c/0x30 [ 99.713038] x3 : 0000000000000001 [ 99.722076] sp : ffff80000a203ca0 [ 99.725472] [ 99.733555] x29: ffff80000a203ca0 [ 99.735041] x2 : 0000000000000020 [ 99.741996] x28: ffff0000f90f6800 [ 99.745305] x1 : 0000000000738601 [ 99.748701] x27: 0000000000000000 [ 99.752097] x0 : 0000000000000187 [ 99.755319] [ 99.758714] [ 99.762023] x26: 0000000000000001 [ 99.763508] Call trace: [ 99.766816] x25: 0000000000000000 [ 99.770126] kmem_cache_alloc+0xdc/0x294 [ 99.773521] x24: 00000000ffffffff [ 99.776916] anon_vma_clone+0x70/0x1dc [ 99.780311] [ 99.783707] anon_vma_fork+0x30/0x1b0 [ 99.785193] x23: 0000000000000cc0 [ 99.786678] dup_mm+0x39c/0x544 [ 99.789986] x22: ffff0000c0200400 [ 99.792427] copy_process+0x1210/0x1524 [ 99.795822] x21: 0000000000000000 [ 99.799739] kernel_clone+0x5c/0x3c0 [ 99.803134] [ 99.806878] __do_sys_clone+0x54/0x80 [ 99.808363] x20: ffff0000c13c7800 [ 99.812019] __arm64_sys_clone+0x24/0x30 [ 99.815328] x19: ffff0000f861bc00 [ 99.818463] invoke_syscall+0x48/0x114 [ 99.821858] x18: 00000000fffffffb [ 99.825688] el0_svc_common.constprop.0+0x44/0xec [ 99.829084] [ 99.832655] do_el0_svc+0x28/0x90 [ 99.834140] x17: 000000040044ffff [ 99.837796] el0_svc+0x20/0x60 [ 99.841105] x16: 00400032b5503510 [ 99.845022] el0t_64_sync_handler+0x1a8/0x1b0 [ 99.848417] x15: 0000000000000000 [ 99.852160] el0t_64_sync+0x1a0/0x1a4 [ 99.855555] [ 99.860256] Code: 54000d40 b9402a62 b9400ae3 11000463 (f862681a) [ 99.861739] x14: ffff0000c00d5400 [ 99.865052] ---[ end trace f024570fb29b7f3e ]--- [ 99.868357] x13: ffff8001f5780000 [ 99.871424] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b [ 99.874800] x12: 0000000034d4d91d [ 99.879152] SMP: stopping secondary CPUs [ 99.882547] [ 99.921538] x11: 0000000000000000 x10: 00000000000009c0 x9 : ffff80000a203d40 [ 99.928674] x8 : ffff0000c021de20 x7 : ffff0001fef5d340 x6 : ffff800009aeb4d0 [ 99.935810] x5 : 0000000000000000 x4 : ffff80000a203c50 x3 : 0000000000000001 [ 99.942946] x2 : 0000000000000000 x1 : fffffc000304f1c0 x0 : 0000000000000000 [ 99.950081] Call trace: [ 99.952524] __ksize+0xc8/0xd0 [ 99.955577] __alloc_skb+0xe0/0x1fc [ 99.959066] skb_copy+0x44/0xb0 [ 99.962206] kauditd_send_multicast_skb+0x74/0xc0 [ 99.966910] kauditd_send_queue+0x68/0x1b0 [ 99.971005] kauditd_thread+0x29c/0x320 [ 99.974839] kthread+0x154/0x160 [ 99.978066] ret_from_fork+0x10/0x20 [ 99.981640] ---[ end trace f024570fb29b7f3f ]--- [ 99.986264] Kernel Offset: disabled [ 99.989748] CPU features: 0x00002001,20000846 [ 99.994102] Memory Limit: none [ 99.997158] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]--- It happens also on vanilla 6.0-rc3. It does seem to work on imx8mp-evk with an unchanged NXP BSP | root@imx8mpevk:~# uname -a | Linux imx8mpevk 5.15.32-lts-next+gfa6c3168595c #1 SMP PREEMPT Tue Jun 7 02:34:46 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux | root@imx8mpevk:~# cat /dev/mmcblk2 > /dev/null | root@imx8mpevk:~# Upstream-Status: Pending [Not yet the solution] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-09-01arm64: dts: imx8mp-verdin: add native lvds functionalityMax Krummenacher
The LVDS signals generated from the LDB can be accessed on the Verdin Development Board mezzanine connector. Add a panel and ldb node in the device tree and allow for enabling it in a overlay. Upstream-status: Pending [mainline does not support LDB yet] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-09-01arm64: dts: imx8mp-verdin: enable the vpu related nodesMax Krummenacher
Enable the Video Processing Unit nodes as the VPU could be used for image processing even in a headless system. Upstream-status: Pending [mainline does not support VPU yet] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-09-01arm64: dts: imx8mp-verdin: add dsi to lvds functionalityMax Krummenacher
Add a panel-lvds node and use the correct dsi to lvds chip name. Both to be later extended in a dt overlay according to the exact board HW configuration. Upstream-status: Submitted [https://lore.kernel.org/lkml/20220901154051.1885509-2-max.oss.09@gmail.com/T/#u] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-09-01arm64: dts: imx8mp-verdin: add dsi to hdmi functionalityMax Krummenacher
Add the hdmi connector present on the dsi to hdmi adapter now required by the upstream lontium bridge driver. The dsi to hdmi adapter is enabled in an device tree overlay. Upstream-status: Submitted [https://lore.kernel.org/lkml/20220901154051.1885509-1-max.oss.09@gmail.com/T/#t] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-08-30Revert "drm/panel: panel-simple: use working pixelclock"Aishwarya Kothari
The change was supposed to workaround a SOC limitation, but changing the generic panel timing is not the correct solution. To fix this we will provide different timing using an overlay. This reverts commit from d294890957d315a4a3b94818e1398c06f48b27ea. Signed-off-by: Aishwarya Kothari <aishwarya.kothari@toradex.com>
2022-08-29arm64: imx8mm-verdin: introduce hdmi-connectorPhilippe Schenker
Upstream-Status: Pending The lontium lt8912b driver needs an hdmi connector to be connected to port 1. Introduce this connector to be enabled in overlays. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2022-08-26arm64: dts: verdin-imx8mm: add lvds panel nodeMarcel Ziswiler
Add an LVDS panel node to be extended by a device tree overlay. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2022-08-26arm64: dts: verdin-imx8mm: rename sn65dsi83 to sn65dsi84Marcel Ziswiler
Rename sn65dsi83 to sn65dsi84 as that is the exact chip used on the Verdin DSI to LVDS Adapter. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2022-08-26drm/panel: panel-simple: use working pixelclockMax Krummenacher
At least when combined with a Texas Instruments SN65DSI84 DSI to LVDS bridge the previous pixelclock did not produce a working configuration. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2022-08-26drm/panel: panel-simple: set bpc for logictechno lt161010 and lt170410Max Krummenacher
Set bits per component (BPC) for LOGIC Technologies, Inc LT161010 and LT170410 to avoid the following warning: [ 1.780308] panel-simple panel-lvds: supply power not found, using dummy regulator [ 1.793608] ------------[ cut here ]------------ [ 1.803632] WARNING: CPU: 1 PID: 8 at drivers/gpu/drm/panel/ panel-simple.c:748 panel_simple_probe+0x2e4/0x4d0 Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-08-25sec_mipi_dsim-imx: properly clean up if probe failsPhilippe Schenker
It is possible that component_add() does return -EPROBE_DEFER if something else is not ready. At that stage of the probe sec_dsim_of_parse_resets() has already been called so the resets need to be cleaned up to leave it in a clean state for the next try. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2022-08-24arm64: dts: imx8mp-verdin: add analog audioMax Krummenacher
Add the audio codec NAU8824 present on the Development Carrier Board and the WM8904 present on the Dahlia Carrier Board. Upstream-status: Pending [mainline does not support SAI yet] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-08-24arm64: dts: imx8mp-verdin: add native hdmi-audio nodeMax Krummenacher
Add a disabled node related to hdmi-audio. This allows to enable hdmi-audio together with hdmi for the native hdmi hardware present on the SoM. Upstream-status: Pending [mainline does not support SAI yet] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-08-24arm64: dts: imx8mp-verdin: add cpu-supplyMax Krummenacher
Add the cpu-supply property to all CPU nodes to enable the cpufreq driver. Upstream-status: Submitted [https://lore.kernel.org/all/20220822075342.2611279-1-max.oss.09@gmail.com/] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2022-08-24arm64: dts: imx8mp-verdin: delete unneeded reserved-memory nodesMax Krummenacher
We don't use the tuning tool, whatever that is. So remove the reserved-memory region dedicated to the ISP and make another 256MB of memory available. Upstream-status: Innapropriate [ISP doesn't reserve memory in upstream] Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>