93333 Commits

Author SHA1 Message Date
Heinrich Schuchardt
4735d03a97 acpi: rename aslc_id, aslc_revision
The fields Creator ID and Creator Revision contain information about the
tool that created an ACPI table. This may be the ASL compiler for some
tables but it is not for others. Naming these fields aslc_id and
aslc_revision is misleading.

It is usual to see diverse values of Creator ID. On a laptop I saw these:
'AMD ', 'INTL, 'MSFT', 'PTEC'. Obviously not all relate to the Intel
ASL compiler.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-03-27 09:15:39 +01:00
Roger Quadros
ba291718d7 configs/am62x_beagleplay_a53_defconfig: enable DM_ETH_PHY
Reset GPIO handling is done in ETH PHY Class driver.
Enable DM_ETH_PHY.

We don't use Fixed PHY so disable PHY_FIXED.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
2024-03-26 19:58:26 -04:00
Roger Quadros
052bff838b net: mdio-uclass: Bind and probe generic Ethernet PHY driver
If DM_ETH_PHY is enabled then try to bind and probe the
generic Ethernet PHY driver for each child of MDIO bus.

This is to ensure that GPIO reset handling is done if available
before MDIO bus driver scans for the PHYs.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
2024-03-26 19:58:26 -04:00
Marek Vasut
e99a6efa80 net: phy: Factor out PHY GPIO reset code
Pull the PHY GPIO reset code into separate function, since
this is and will be reused multiple times. Set up default
reset assert and deassert timing to generous 20ms and 1ms
for maximum compatibility in case those DT properties are
missing.

Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-03-26 19:58:26 -04:00
Marjolaine Amate
85d44e424a e1000: add support for i225-IT
This patch adds support for i225-IT in e1000 driver.
Add e1000_phy_igc.

Signed-off-by: Marjolaine Amate <marjolaine.amate@odyssee-systemes.fr>
2024-03-26 19:58:26 -04:00
Jacky Chou
cc09160f30 net: phy: ncsi: reslove the unaligned access issue
From the ethernet header is not on aligned, because the length
of the ethernet header is 14 bytes.
Therefore, unaligned access must be done here.

Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
2024-03-26 19:58:26 -04:00
Jacky Chou
60d77b6f91 net: phy: ncsi: Correct the endian of the checksum
There is no need to perform the endian twice here.

Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
2024-03-26 19:58:26 -04:00
Yang Xiwen
0eedd1e564 net: hifemac: make some functions static
They are not required to be global, make them static.

Signed-off-by: Yang Xiwen <forbidden405@outlook.com>
2024-03-26 19:58:26 -04:00
Yang Xiwen
abcb26cb1f net: hifemac: implement net stats needed ops
3 operations needed by `net stats` are implemented. New `net stats`
output some useful info.

Signed-off-by: Yang Xiwen <forbidden405@outlook.com>
2024-03-26 19:58:26 -04:00
Yang Xiwen
561856ec5e net: hifemac: register MDIO bus device for subnode
register internal MDIO bus device if it is a subnode.

Signed-off-by: Yang Xiwen <forbidden405@outlook.com>
2024-03-26 19:58:26 -04:00
Yang Xiwen
a91263c321 net: hifemac: fix log reporting
shrink the first argument of log_msg_ret(), add dev_xxx() functions for
error reporting.

Fixes: 9d8f78a2a79f7 ("net: add hifemac Ethernet driver for HiSilicon platform")

Signed-off-by: Yang Xiwen <forbidden405@outlook.com>
2024-03-26 19:58:26 -04:00
Yang Xiwen
3724ec4e5c net: hifemac_mdio: use log_msg_ret() correctly, report error by dev_err()
The initial commit used log_msg_ret() wrongly. Fix that by moving error
report to a separate dev_err() call and shrink the first argument of
log_msg_ret() to no more than 4 chars.

Fixes: 6b5c8d98e204 ("net: add hifemac_mdio MDIO bus driver for HiSilicon platform")

Signed-off-by: Yang Xiwen <forbidden405@outlook.com>
2024-03-26 19:58:26 -04:00
Jacky Chou
f146c446e5 net: phy: the NC-SI phy device do not require mdio bus
As with fixed-link phy device, the NC-SI phy devive does not
require an mdio bus. So, a condition is added to check the
NC-SI phy id to avoid accessing the bus pointer that is NULL.

Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
2024-03-26 19:58:26 -04:00
Eugeniu Rosca
f5dbfc82a9 net: phy: Fix signed shift overflow
Booting R-Car Gen3 arm64 U-Boot with CONFIG_UBSAN=y resulted in:

 =====================================================================
 UBSAN: Undefined behaviour in drivers/net/phy/phy.c:728:19
 left shift of 1 by 31 places cannot be represented in type 'int'
 =====================================================================

Fix it by appending the UL suffix to the numeric literal. While at it,
convert the type of "addr" variable from signed to unsigned, to protect
against shifting the numeric literal by a negative value (which would
lead to yet another undefined behavior).

Fixes: 1adb406b0141 ("phy: add phy_find_by_mask/phy_connect_dev")
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>

* Using U-suffix for integer is sufficient.
* ffs() of non-zero value cannot be 0. But addr being unsigned is
* preferable.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-03-26 19:58:26 -04:00
Marek Vasut
388cb2d321 net: phy: broadcom: Configure LEDs on BCM54210E
Configure LEDs on BCM54210E so they would blink on activity
and indicate link speed. Without this the LEDs are always on
if cable is plugged in.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-03-26 19:58:26 -04:00
Jacky Chou
22f314e01c net: phy: ncsi: fixed not nullify the pointers after free
The issue occurs the UAF (use-after-free) to cause double free
when do the realloc function for the pointers during the
reinitialization NC-SI process, and it will cause the memory
management occurs error.
So, nullify these pointers after free.

Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
2024-03-26 19:58:26 -04:00
Tom Rini
a5ec56aea1 Merge https://source.denx.de/u-boot/custodians/u-boot-riscv
- Fix RISC-V falcon mode booting issue
2024-03-26 10:00:21 -04:00
Sam Protsenko
1751ba9a3b clk: exynos: Add CMU_CORE and CMU_HSI for Exynos850
CMU_CORE generates clocks needed for eMMC enablement, and CMU_HSI
provides clocks for SD card and USB. Most of the code is copied from the
Linux kernel counterpart driver.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-03-26 18:56:55 +09:00
Sam Protsenko
f77780b0ee clk: exynos: Fix incorrect clock lookup for non-top CMUs
Samsung clock drivers usually define the clock indices that are unique
per one CMU, but are not unique across all CMUs. That is, clock indices
start from 1 for each CMU, as provided in CMU bindings header. The way
the clock lookup via clk_get_by_index() works at the moment is by using
clk_of_xlate_default(), which returns globally non-unique clock ids for
for clocks registered with Samsung CCF API, which leads to incorrect
clocks being obtained. One way to fix that would be to make all clock
ids defined in the bindings header unique, but it'd make it incompatible
with Linux kernel bindings header. A better way to solve this issue is
to calculate the global clock id and use it when registering a clock
with clk_dm() and when obtaining it, in a custom .of_xlate function.

This patch adds an API for such mapping calculation, introducing the
necessary modifications to CMU registering functions in Samsung CCF.
Exynos850 clock driver (the only driver that uses Samsung CCF at the
moment) is modified accordingly, as it uses the changed API. So the
clock lookup with clk-exynos850.c driver is also fixed here.

The global clock id is calculated from CMU id and local clock id in
SAMSUNG_TO_CLK_ID() macro like this:

    clk_id_global = cmu_id * 256 + clk_id_local

leaving a range of up to 256 clocks for each CMU. Then this mapping
macro is used in clk_dm() to register clocks using their global ids, and
in .of_xlate() to lookup the clock by its local id correctly. Because
.of_xlate() operation has a separate function for each CMU, it "knows"
the correct way of finding the correct clk_id_global by provided
clk_id_local.

Fixes: ff3e8b8c6c22 ("clk: exynos: Add Samsung clock framework")
Fixes: a36cc5e3ef4d ("clk: exynos: Add Exynos850 clock driver")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-03-26 18:56:55 +09:00
Sam Protsenko
f4675601a2 clk: exynos: Don't expose prototypes for not used functions
Samsung CCF is meant to be used from the clock drivers by calling the
CMU registration API, i.e.:
  - samsung_cmu_register_one() -- for top-level CMU
  - samsung_register_cmu() -- for the rest of CMUs

Functions for registering separate clocks is probably not going to be
very useful, and isn't used at the moment. Remove prototypes of those
functions to make the Samsung CCF interface more compact and clear.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-03-26 18:56:55 +09:00
Sam Protsenko
757242bccf clk: exynos: Re-arrange clocks in Exynos850 CMU_TOP
Group CMU_TOP clocks to make it easier to add the support for more CMUs.
No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-03-26 18:56:55 +09:00
Randolph
0cfe1bc6ed spl: riscv: opensbi: fix check of PAYLOAD_ARGS_ADDR
When Falcon Mode is enabled on RISC-V, use CONFIG_VAL
to check PAYLOAD_ARGS_ADDR, not CONFIG_IS_ENABLED.

Fixes: 10c4ab898c25 ("spl: riscv: falcon: move fdt blob to specified address")
Signed-off-by: Randolph <randolph@andestech.com>
Tested-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-03-26 17:31:24 +08:00
Tom Rini
ab8d9ca304 Prepare v2024.04-rc5
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCgAdFiEEGjx/cOCPqxcHgJu/FHw5/5Y0tywFAmYCK3wACgkQFHw5/5Y0
 tyzV9wwAo6JN9dVBBivLFROeDb24t3TmgT7e0AEql6Vjfj1x9xzW/L7ki0cdbGjW
 sNmqPR9ObnONv5hxMV1nlUE6lRYOj/eRaWZsz1N8e02VFhegePNgd/ZDeaPZyO10
 mDhKdGh5yr0AaIer1Yj21b7QKxrriAN9ct/qR4sw2j1AlxF959PSw0qOzb6wjpDp
 I3QCbUkmKt6ATwyYzZnM0mifs0fb1u4M6C91V50SsyBBC30veEL8Bpgd83rTtZl+
 gm1ruekfKXhmT6V92Ok3maFNU+odF6X/R1YcM2n3DTso+MugPHFYTj5VZy5qZN3+
 4x6wHTQLDr81vPz7hx4gDTK42nVplFnIHp8p9WBSH6Zs7gCYPyZAfCPmF4EzBVfo
 bjpixpGuhmM8yQweD5nFWpvnXK/e5nbfxW2vt85G+cjjNbw0OZ182UJH8PEAUam6
 786p5y1YyS9pFgJgLSHrQ041E6EQ4QjMpNbVF+7MUpe49emA0l/V7VLSNGWpeKzg
 tcuO1ycK
 =4m/d
 -----END PGP SIGNATURE-----

Merge tag 'v2024.04-rc5' into next

Prepare v2024.04-rc5
2024-03-25 22:15:47 -04:00
Tom Rini
dde373bde3 Prepare v2024.04-rc5
Signed-off-by: Tom Rini <trini@konsulko.com>
v2024.04-rc5
2024-03-25 21:56:50 -04:00
Vishal Sagar
8e462bf3bd arm64: zynqmp: Describe DisplayPort connector for Kria
Add a device tree node to describe the DisplayPort connector, and
connect it to the DPSUB output.

The patch was tested on kv260-revB/rev2 and also kr260-revB.

Signed-off-by: Vishal Sagar <vishal.sagar@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/c8738cb9951c73c6c00a4ce8d0025fb372372346.1711036494.git.michal.simek@amd.com
2024-03-25 15:21:10 +01:00
Manikanta Guntupalli
9df352222e arm64: zynqmp: dts: Add required properties for rs485 support for KD240
Add "rts-gpios" and "linux,rs485-enabled-at-boot-time" properties
to uartps node to support RS485 on KD240.

Signed-off-by: Manikanta Guntupalli <manikanta.guntupalli@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/56e4e135ad796afd1370c3dfa2643c143ba758ee.1710847646.git.michal.simek@amd.com
2024-03-25 15:18:00 +01:00
Tejas Bhumkar
427120681a arm64: zynqmp: Disable Tri-state for SDIO
Since the zynqmp pinctrl driver now includes support for the
tri-state registers, ensure that the pins needing output-enable
are correctly configured for SOMs.

Currently, there is an issue with the detection of the MMC for
the SOM kv260, resulting in the following error:
ZynqMP> mmc dev 1
Card did not respond to voltage select! : -110

To address this problem, configure the SDIO pins for output-enable
to enable MMC detection.

Signed-off-by: Tejas Bhumkar <tejas.arvind.bhumkar@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20240321085220.2920792-2-tejas.arvind.bhumkar@amd.com
2024-03-25 15:16:57 +01:00
Shubhangi Shrikrushna Mahalle
28d9777f40 arm64: zynqmp: Add bootcmd_usb4 variable
Add "bootcmd_usb4" variable to boot through usb4 device.

Signed-off-by: Shubhangi Shrikrushna Mahalle <shubhangi.shrikrushna-mahalle@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/cb36fe6bd1fef540441e1d8c32636ae6f80357b4.1710933852.git.michal.simek@amd.com
2024-03-25 15:16:12 +01:00
Michal Simek
d8821736d5 arm64: zynqmp: Also support JTAG as alternative boot mode
if (reg >> BOOT_MODE_ALT_SHIFT) condition rules out alternative jtag boot
mode which is 0. When 0 was used origin(HW) boot mode was used instead.
That's why directly fill reg variable with requested boot mode and don't
let code to read value back. "else" part of code remain unchanged.

Reviewed-by: Sean Anderson <sean.anderson@linux.dev>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/ed51a9d51948ab939a53e0b9dc6c2d2546f97a4f.1710933505.git.michal.simek@amd.com
2024-03-25 15:15:15 +01:00
Tom Rini
8ef8dcc54a First set of u-boot-at91 features for the 2024.07 cycle
-----BEGIN PGP SIGNATURE-----
 
 iQFQBAABCgA6FiEEqxhEmNJ6d7ZdeFLIHrMeAg6sL8gFAmX8JnYcHGV1Z2VuLmhy
 aXN0ZXZAY29sbGFib3JhLmNvbQAKCRAesx4CDqwvyFfPB/4g0YTnWiI0ENLumM+Q
 RwcfIZJZ9YS49QPGil04i8+3TKH9b/vJZc6oyeKBQ1ZYis/kgcUHFFeMjZek8Ou5
 yKd/zj861sRmRSBPD5WCSPx4YX1V6xln64vlYTvjeWs1auRuj16sPOcacxlpR6J/
 p95DMt0EF5kUzCPD1WbZC6fIMhyXJT7OD1NiIJXCQT6w1hnkS2pC3Y5fiPsyR9yz
 7R7yQ+hJyWBp/KsYNcgDpINSQqDSis5dd4RD/2felQ6kKGvZfuDW5pK2LyL0xAt0
 Q+jNoaMw8nJQ/RxH7WbbVd0lKX0S94t/PRlCLVQkZRoWsioQ9puT38ToKTRq3yvS
 2Omr
 =GQJV
 -----END PGP SIGNATURE-----

Merge tag 'u-boot-at91-2024.07-a' of https://source.denx.de/u-boot/custodians/u-boot-at91 into next

First set of u-boot-at91 features for the 2024.07 cycle:
- This feature set includes a new board named sama7g54 Curiosity.
2024-03-25 08:19:04 -04:00
Tom Rini
34f0452e0e - fix Ethernet and random MAC's on WeTek Hub/Play2
- fix buffer overflow in serial, mac & usid read
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPVPGJshWBf4d9CyLd9zb2sjISdEFAmYBR1oACgkQd9zb2sjI
 SdFmAQ//ahsfne7jPZjuPg9+6s4HrhHbYtwxwldtvithepmuOArOiMl3C48TrFDF
 MdvfBGb2dBXhWCIn3Sx3h1dHF3w0ItBluRvTmrLHJYRG6f17o5LFXV0zindfBPyi
 J/Pyg3QaCyyf2/r1vwrqkzH0qXgqE4XuhwM6VzLn9INGpEaAhlKAGxOF1Zi4YwKM
 CAvSSHFHb4NL7qRf/SVjnrKc4DhSIiNcHeUIGjMFNM8pnq9JtHdAiJ+Egc4VlTpj
 oDJSS9Ka1PGyLvYVcCOxBoO20h2J2WJptEnONSmq47fWq90k1LfrEZLzMSLanIgM
 XqM4X5qu9Fq6WWkb51oC14caLVAqZ2Snip4k3f/6W8k1fA6+fWWntTL8epYWvwnP
 X6PnGWi2oKniFCu1mJIxUTeq2Stm5OIPNNCP6cnK7EW9FpzfzX++39KP0OWACD66
 OQCbk8eIMhp1ce4kZ+bP520uNkZVrjLzt7+UeOiWhvTbtNmRQKX0FxY92shIf+0u
 GCrKpqJkOU8W8sBQuNvQUuooqg3FXESY9IpL5fHCAsYy+IRrM8PXLR9c2No2O573
 4SoVW90c5k2Dle7RzINegXd8uLUeetU5DnR+s8D04BHpyzlY7ttA2sO2Sq5nUnLF
 V2yF6rzxCNltAEBF5kBAuy89PCPWDjKFjoICqntfKc2G/x3gqcM=
 =kJ8c
 -----END PGP SIGNATURE-----

Merge tag 'u-boot-amlogic-fixes-20240325' of https://source.denx.de/u-boot/custodians/u-boot-amlogic

- fix Ethernet and random MAC's on WeTek Hub/Play2
- fix buffer overflow in serial, mac & usid read
2024-03-25 08:18:53 -04:00
Neil Armstrong
d54f87f09a board: amlogic: fix buffler overflow in seria, mac & usid read
While meson_sm_read_efuse() doesn't overflow, the string is not
zero terminated and env_set*() will buffer overflow and add random
characters to environment.

Acked-by: Viacheslav Bocharov <adeep@lexina.in>
Link: https://lore.kernel.org/r/20240320-u-boot-fix-p200-serial-v2-1-972be646a301@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-03-25 09:16:19 +01:00
Christian Hewitt
65d5c367b0 board: amlogic: add meson_generate_serial_ethaddr fallback to p200
Add a fall-back method to generate ethaddr from CPU serial on p200 boards
if the MAC cannot be read from efuse. This prevents random MAC addresses
on the WeTek Hub/Play2 boards.

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
Link: https://lore.kernel.org/r/20240324151905.3817732-3-christianshewitt@gmail.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-03-25 09:14:36 +01:00
Christian Hewitt
cac77418d6 ARM: dts: fix Ethernet on WeTek Hub/Play2
Placing the snps,reset content needed for Ethernet to probe in a common
uboot.dtsi results in the content not being used and broken Ethernet. Fix
this by creating two board specific dtsi files with the right content.

Fixes: 67d5128df950 ("ARM: dts: add support for WeTek Hub and WeTek Play2")
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
Link: https://lore.kernel.org/r/20240324151905.3817732-2-christianshewitt@gmail.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-03-25 09:14:36 +01:00
Tom Rini
0cfdc7d223 Merge tag 'u-boot-imx-next-20240324' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
- Add ahab_commit command support.
- Add USB support for the imx93-phyboard-segin board.
- Add i.MX8MP PCIe support.
- Fix netboot environment on phycore_imx8mp.
2024-03-24 17:49:42 -04:00
Yannic Moog
9d27e441bb board: phytec: phycore_imx8mp.env fix netboot issues
The "run netargs" command should come later in the "netboot" command
order when using dhcp since it sets the server and client ip addresses.
The previous order led to misconfigured kernel boot params and thus
kernel panic when serverip was not manually set.
Further, following Linux FHS 3.0, change the nfsroot default directory
to /srv/nfs.

Fixes: 60f64bec414e ("board: phytec: phycore_imx8mp: Add fec support")
Signed-off-by: Yannic Moog <y.moog@phytec.de>
2024-03-24 13:42:10 -03:00
Mathieu Othacehe
f4b6c3ad25 configs: imx93-phyboard-segin: Add fastboot support
Enable the `fastboot` command.

Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2024-03-24 13:41:40 -03:00
Mathieu Othacehe
6d5425d6e1 configs: imx93-phyboard-segin: Add USB support
Add USB support by enabling `usb` command and required USB drivers.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2024-03-24 13:41:40 -03:00
Mathieu Othacehe
1be8b6a24d arm: dts: imx93-phyboard-segin: Add USB support
Enable both usbotg1 and usbotg2 ports. Disable over-current as OC pins are
not connected to the SoC.

This addition to imx93-phyboard-segin-u-boot.dtsi is temporary,
until USB support is added to imx93-phyboard-segin.dts in Linux.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-03-24 13:41:40 -03:00
Mathieu Othacehe
6bb745844c imx: ele_ahab: Add ahab_commit command support
This message is used to commit into the fuses any new SRK revocation and
FW version information that have been found into the NXP (ELE FW) and
OEM containers.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2024-03-24 13:36:00 -03:00
Sumit Garg
c20e449225 MAINTAINERS: Add entry for PCIe DWC IMX driver
Add myself as maintainer for PCIe DWC IMX driver support.

Acked-by: Marek Vasut <marex@denx.de>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2024-03-24 13:36:00 -03:00
Tim Harvey
8e19cc6bc9 imx8mp_venice_defconfig: Enable PCIe/NVMe support
Enable PCIe/NVMe support. Also, enable the reset, regmap and syscon
drivers which are a prerequisite for PCIe support.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
[SG: rebased to next branch tip]
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2024-03-24 13:35:59 -03:00
Sumit Garg
950e74f60f verdin-imx8mp_defconfig: Enable PCIe/NVMe support
Enable PCIe/NVMe support. Also, enable the reset driver which
is a prerequisite for PCIe support.

Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2024-03-24 13:35:59 -03:00
Sumit Garg
4b73ac9674 pcie_imx: Update header to describe it as a legacy driver
Since now we have the modern pcie_dw_imx.c driver for iMX SoCs,
encourage people to switch to that for any further new iMX SoC support
or even for the older iMX6 SoCs too.

Suggested-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-03-24 13:35:59 -03:00
Sumit Garg
d56d49370f pci: Add DW PCIe controller support for iMX8MP SoC
pcie_imx doesn't seem to share any useful code for iMX8 SoC and it is
tied to quite old port of pcie_designware driver from Linux which
suffices only iMX6 specific needs.

But currently we have the common DWC specific bits which alligns pretty
well with DW PCIe controller on iMX8MP SoC. So lets reuse those common
bits instead as a new driver for iMX8 SoCs. It should be fairly easy to
add support for other iMX8 variants to this driver.

iMX8MP SoC also comes up with standalone PCIe PHY support, so hence we
can reuse the generic PHY infrastructure to power on PCIe PHY.

Tested-by: Tim Harvey <tharvey@gateworks.com> #imx8mp-venice*
Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon-kit
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2024-03-24 13:35:59 -03:00
Sumit Garg
c214ebce09 phy: phy-imx8m-pcie: Add support for i.MX8M{M/P} PCIe PHY
Add initial support for i.MX8M{M/P} PCIe PHY. On i.MX8M{M/P} SoCs PCIe
PHY initialization moved to this standalone PHY driver.

Inspired from counterpart Linux kernel v6.8-rc3 driver:
drivers/phy/freescale/phy-fsl-imx8m-pcie.c. Use last Linux kernel driver
reference commit 7559e7572c03 ("phy: Explicitly include correct DT
includes").

Tested-by: Tim Harvey <tharvey@gateworks.com> #imx8mp-venice*
Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon-kit
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2024-03-24 13:35:59 -03:00
Sumit Garg
0d588cb7cc imx8mp: power-domain: Expose high performance PLL clock
Expose the high performance PLL as clock framework clock, so the
PCIe PHY can use it when there is no external refclock provided.

Inspired from counterpart Linux kernel v6.8-rc3 driver:
drivers/pmdomain/imx/imx8mp-blk-ctrl.c. Use last Linux kernel driver
reference commit 7476ddfd36ac ("pmdomain: imx8mp-blk-ctrl: Convert to
platform remove callback returning void").

Tested-by: Tim Harvey <tharvey@gateworks.com> #imx8mp-venice*
Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon-kit
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2024-03-24 13:35:59 -03:00
Sumit Garg
c7ab1442ba imx8mp: power-domain: Add PCIe support
Add support for GPCv2 power domains and clock handling for PCIe and
PCIe PHY.

Tested-by: Tim Harvey <tharvey@gateworks.com> #imx8mp-venice*
Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon-kit
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2024-03-24 13:35:59 -03:00
Sumit Garg
a295bd86be reset: imx: Add support for i.MX8MP reset controller
Add support for i.MX8MP reset controller, it has same reset IP inside
as the other iMX7 and iMX8M variants but with different module layout.

Inspired from counterpart Linux kernel v6.8-rc3 driver:
drivers/reset/reset-imx7.c. Use last Linux kernel driver reference
commit bad8a8afe19f ("reset: Explicitly include correct DT includes").

Tested-by: Tim Harvey <tharvey@gateworks.com> #imx8mp-venice*
Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon-kit
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2024-03-24 13:35:59 -03:00
Sumit Garg
78d7c9d481 reset: imx: Refactor driver to simplify function names
imx7_reset_{deassert/assert}_imx* are a bit more confusing when compared
with imx*_reset_{deassert/assert}. So refactor driver to use function
names easier to understand. This shouldn't affect the functionality
though.

Suggested-by: Marek Vasut <marex@denx.de>
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2024-03-24 13:35:59 -03:00