summaryrefslogtreecommitdiff
path: root/drivers/net/fsl-mc/mc.c
AgeCommit message (Collapse)Author
4 daysdrivers: net: fsl-mc: add the nowait option when applying the DPLIoana Ciornei
The process through which the MC firmware parses the DPL and initializes all the requested DPAA2 objects is a complex one which can take quite a bit of time. For the those circumstances in which a fast boot is required on DPAA2 based SoCs, add the 'nowait' optional parameter for the fsl_mc [lazy]apply dpl command. When this option is used, the Linux kernel fsl-mc bus must wait for the firmware to finish parsing the DPL before proceeding with probing all the DPAA2 objects. Signed-off-by: Ioana Ciornei <[email protected]> Signed-off-by: Peng Fan <[email protected]>
4 daysdrivers: net: fsl-mc: cleanup the fsl_mc command help textIoana Ciornei
All the parameters that can be currently passed to the fsl_mc command are positional arguments which are mandatory. This is not perfectly clear when reading the help text because of the use of square brackets. Fix this by changing the square brackets, which are commonly used for optional parameters, with < .. >. Signed-off-by: Ioana Ciornei <[email protected]> Signed-off-by: Peng Fan <[email protected]>
4 daysdrivers: net: fsl-mc: remove unused parameter from the wait_for_mc() functionIoana Ciornei
The first parameter of the wait_for_mc() function - booting_mc - is not used. Remove it. Signed-off-by: Ioana Ciornei <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-08-27net: fsl-mc: Incorrect variable used in error pathAndrew Goodbody
In mc_fixup_dpc_mac_addr noff is assigned the return value from fdt_add_subnode so that is the variable that should be passed to fdt_strerror and returned when negative. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-08-27net: fsl-mc: NULL check dflt_dpni before dereferenceAndrew Goodbody
In dpni_exit there is a NULL check for dflt_dpni after it is dereferenced a number of times. Instead move the NULL check to early in the function. Also assign NULL to dflt_dpni after free in both dpni_init and dpni_exit. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-08-27net: fsl-mc: NULL check dflt_dpbp before dereferenceAndrew Goodbody
In dpbp_exit there is a NULL check for dflt_dpbp after it is dereferenced a number of times. Instead move the NULL check to early in the function. Also assign NULL to dflt_dpbp after free in both dpbp_init and dpbp_exit. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-08-27net: fsl-mc: NULL check dflt_dpio before dereferenceAndrew Goodbody
In dpio_exit there is a NULL check for dflt_dpio but it happens after dpio_dflt has been dereferenced a number of times already. Instead move the NULL check to first thing in the function. Also assign NULL to dflt_dpio after free in both dpio_init and dpio_exit. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-06-14drivers: use lowercase hex prefix styleE Shattow
Use consistent lowercase hex prefix style in drivers/* Does not change hex prefix case in allcaps uppercase style error messages Signed-off-by: E Shattow <[email protected]>
2024-05-20Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"Tom Rini
As part of bringing the master branch back in to next, we need to allow for all of these changes to exist here. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-19Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""Tom Rini
When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"' I failed to notice that b4 noticed it was based on next and so took that as the base commit and merged that part of next to master. This reverts commit c8ffd1356d42223cbb8c86280a083cc3c93e6426, reversing changes made to 2ee6f3a5f7550de3599faef9704e166e5dcace35. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-07net: Remove <common.h> and add needed includesTom Rini
Remove <common.h> from this driver directory and when needed add missing include files directly. Signed-off-by: Tom Rini <[email protected]>
2023-10-10drivers: net: fsl-mc: add support for MC reserved memoryLaurentiu Tudor
Add support for declaring in device tree the reserved memory ranges required for MC. Since the MC firmware acts as any DMA master present in the SoC, the reserved memory ranges need also be identity mapped in the SMMU, so create the required 'iommu-addresses' property in the reserved memory nodes. For now this support is used only on LX2160A SoCs. Signed-off-by: Laurentiu Tudor <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2023-06-15net: fsl-mc: sync DPNI MC APIsIoana Ciornei
Sync the Data Path Network Interface APIs to their latest form, this means the layout of each command is created based on structures which clearly describe the endianness of each field rather than some macros. The command version is kept in place, meaning that the minimum MC version accepted is not changed in any way. Signed-off-by: Ioana Ciornei <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2023-05-05drivers: net: fsl-mc: fix MAC address fixup procedureIoana Ciornei
In the process of adopting CONFIG_DM_ETH on the DPAA2 based platforms, interfaces which were previously defined as "xgmii" were transitioned to be defined as "xfi" in the DTS. See the commit below for reference: commit 87274918f2f4 ("arm: dts: ls2088ardb: add DPMAC and PHY nodes") Then Vladimir's commit replaced all occurrences of "xfi" with "10gbase-r" in an effort to make U-Boot work with the same device tree as Linux. commit 77b11f760416 ("net: replace the "xfi" phy-mode with "10gbase-r"") These changes to the phy_interface_t of an Ethernet port meant that the mc_fixup_mac_addrs() function was no longer capable to properly fixup the MAC addresses. The problem arises from the fact that the hardcoded information about an interface (wriop_get_enet_if()) was no longer matching any actual device. For example, the function tried to search for "DPMAC1@xgmii1" by name using eth_get_dev_by_name() when only "DPMAC1@10gbase-r" was available. This function removes the need to rely on the hardcoded information by iterating through all the UCLASS_ETH devices which are DPAA2 and request a fixup for each of them. Signed-off-by: Ioana Ciornei <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2023-02-02drivers: net: fsl-mc: do not use multiple blank linesIoana Ciornei
Remove the instances in which we have multiple blank lines. Signed-off-by: Ioana Ciornei <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2023-02-02drivers: net: fsl-mc: align parameters to the open paranthesisIoana Ciornei
There were some cases in which the function parameters were not aligned to the open paranthesis. Fix those instances. Signed-off-by: Ioana Ciornei <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2023-02-02drivers: net: fsl-mc: remove explicit castIoana Ciornei
Remove all the explicit casts from the void* returned by calloc. With this we also improve a bit the length of those lines and there is no need to split the assignment. Signed-off-by: Ioana Ciornei <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2023-02-02drivers: net: fsl-mc: do not prefix decimal values with 0xIoana Ciornei
The fsl-mc driver printed debug information which used the 0x prefix for decimal values. This only confuses anyone looking through the log. Because of this, just remove the prefix and use the "DPXY.<id>" notation which is the standard one for the DPAA2 objects. Signed-off-by: Ioana Ciornei <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2023-02-02drivers: net: fsl-mc: remove an useless break statementIoana Ciornei
The break statement is just after a goto statement, thus it will not get executed. Just remove it. Signed-off-by: Ioana Ciornei <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2023-02-02drivers: net: fsl-mc: remove useless assignment of variableIoana Ciornei
The cur_ptr variable is set to the start of the log buffer but then it's not used. Just remove the assignment altogether. Signed-off-by: Ioana Ciornei <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-12-07net: fsl-mc: Remove non-DM_ETH codeTom Rini
As DM_ETH is required for all network drivers, it's now safe to remove the non-DM_ETH support code. Signed-off-by: Tom Rini <[email protected]>
2022-12-05global: Move remaining CONFIG_SYS_* to CFG_SYS_*Tom Rini
The rest of the unmigrated CONFIG symbols in the CONFIG_SYS namespace do not easily transition to Kconfig. In many cases they likely should come from the device tree instead. Move these out of CONFIG namespace and in to CFG namespace. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-09-07net: Convert fit verification to use fit_get_data_*Sean Anderson
Several ethernet drivers load firmware from FIT images. Convert them to use the fit_get_data helpers. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2021-11-09drivers: net: fsl-mc: add a command which dumps the MC logCosmin-Florin Aluchenesei
Extended fsl_mc command adding an extra option dump_log Signed-off-by: Cosmin-Florin Aluchenesei <[email protected]> Reviewed-by: Priyanka Jain <[email protected]>
2021-08-02global: Convert simple_strtoul() with decimal to dectoul()Simon Glass
It is a pain to have to specify the value 10 in each call. Add a new dectoul() function and update the code to use it. Signed-off-by: Simon Glass <[email protected]>
2021-08-02global: Convert simple_strtoul() with hex to hextoul()Simon Glass
It is a pain to have to specify the value 16 in each call. Add a new hextoul() function and update the code to use it. Add a proper comment to simple_strtoul() while we are here. Signed-off-by: Simon Glass <[email protected]>
2021-07-22net: fsl-mc: fix logically dead codeCosmin-Florin Aluchenesei
The result of dpio_close() is actually taken into account. Signed-off-by: Cosmin-Florin Aluchenesei <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2021-02-15image: Adjust the workings of fit_check_format()Simon Glass
At present this function does not accept a size for the FIT. This means that it must be read from the FIT itself, introducing potential security risk. Update the function to include a size parameter, which can be invalid, in which case fit_check_format() calculates it. For now no callers pass the size, but this can be updated later. Also adjust the return value to an error code so that all the different types of problems can be distinguished by the user. Signed-off-by: Simon Glass <[email protected]> Reported-by: Bruce Monroe <[email protected]> Reported-by: Arie Haenel <[email protected]> Reported-by: Julien Lenoir <[email protected]>
2021-02-02common: Drop asm/global_data.h from common headerSimon Glass
Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2020-12-18dm: Avoid accessing seq directlySimon Glass
At present various drivers etc. access the device's 'seq' member directly. This makes it harder to change the meaning of that member. Change access to go through a function instead. The drivers/i2c/lpc32xx_i2c.c file is left unchanged for now. Signed-off-by: Simon Glass <[email protected]>
2020-12-13dm: treewide: Rename dev_get_platdata() to dev_get_plat()Simon Glass
Rename this to be consistent with the change from 'platdata'. Signed-off-by: Simon Glass <[email protected]>
2020-07-17treewide: convert bd_t to struct bd_info by coccinelleMasahiro Yamada
The Linux coding style guide (Documentation/process/coding-style.rst) clearly says: It's a **mistake** to use typedef for structures and pointers. Besides, using typedef for structures is annoying when you try to make headers self-contained. Let's say you have the following function declaration in a header: void foo(bd_t *bd); This is not self-contained since bd_t is not defined. To tell the compiler what 'bd_t' is, you need to include <asm/u-boot.h> #include <asm/u-boot.h> void foo(bd_t *bd); Then, the include direcective pulls in more bloat needlessly. If you use 'struct bd_info' instead, it is enough to put a forward declaration as follows: struct bd_info; void foo(struct bd_info *bd); Right, typedef'ing bd_t is a mistake. I used coccinelle to generate this commit. The semantic patch that makes this change is as follows: <smpl> @@ typedef bd_t; @@ -bd_t +struct bd_info </smpl> Signed-off-by: Masahiro Yamada <[email protected]>
2020-05-20Merge https://gitlab.denx.de/u-boot/custodians/u-boot-fsl-qoriqTom Rini
- Add DM_ETH support for lx2160aqds, ls2080aqds, ls1088aqds - QSI related fixes on ls1012a, ls2080a, ls1046a, ls1088a, ls1043a based platforms - Bug-fixes/updtaes related to ls1046afrwy, fsl-mc, msi-map property
2020-05-19net: fsl-mc: fixup DPC: add /board/ports node if missingRazvan Ionut Cirjan
The DPC fixup for MAC address and enet_if is not made if /board/ports node is missing in DPC file. Add /board/ports or /ports nodes if them are missing. Signed-off-by: Razvan Ionut Cirjan <[email protected]> Reviewed-by: Ioana Ciornei <[email protected]> Reviewed-by: Priyanka Jain <[email protected]>
2020-05-19drivers: net: fsl-mc: fixup msi-map propertyLaurentiu Tudor
Similarly to iommu-map, the msi-map property must also be fixed up in the device tree, in order for the icid -> streamid translation be possible in the MSI case as well. Signed-off-by: Laurentiu Tudor <[email protected]> Reviewed-by: Diana Craciun <[email protected]> Reviewed-by: Priyanka Jain <[email protected]>
2020-05-18common: Drop linux/delay.h from common headerSimon Glass
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <[email protected]>
2020-05-18common: Drop log.h from common headerSimon Glass
Move this header out of the common header. Signed-off-by: Simon Glass <[email protected]>
2020-05-18command: Remove the cmd_tbl_t typedefSimon Glass
We should not use typedefs in U-Boot. They cannot be used as forward declarations which means that header files must include the full header to access them. Drop the typedef and rename the struct to remove the _s suffix which is now not useful. This requires quite a few header-file additions. Signed-off-by: Simon Glass <[email protected]>
2020-05-18common: Drop image.h from common headerSimon Glass
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <[email protected]>
2020-04-29drivers: net: fsl-mc: add support for CONFIG_DM_ETHIoana Ciornei
Make any adjustments necessary in order to support DPAA2 devices probed using CONFIG_DM_ETH. While at it, fixup some styling issues aroung the switch-case statement. Signed-off-by: Ioana Ciornei <[email protected]> Reviewed-by: Priyanka Jain <[email protected]>
2020-02-05dm: core: Create a new header file for 'compat' featuresSimon Glass
At present dm/device.h includes the linux-compatible features. This requires including linux/compat.h which in turn includes a lot of headers. One of these is malloc.h which we thus end up including in every file in U-Boot. Apart from the inefficiency of this, it is problematic for sandbox which needs to use the system malloc() in some files. Move the compatibility features into a separate header file. Signed-off-by: Simon Glass <[email protected]>
2019-12-26drivers/fsl-mc: Support DPSPARSER object and apply spb commandFlorinel Iordache
Add support for DPSPARSER object (create/destroy, open/close, apply spb) which is required to configure Soft Parser by using MC. Also add uboot command to apply Soft Parser Blob with command: fsl_mc apply spb <spb_load_addr> Signed-off-by: Florinel Iordache <[email protected]> Signed-off-by: Priyanka Jain <[email protected]>
2019-12-02common: Move command functions out of common.hSimon Glass
Move these functions into the command.h header file which is a better fit. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2019-12-02common: Move ARM cache operations out of common.hSimon Glass
These functions are CPU-related and do not use driver model. Move them to cpu_func.h Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Daniel Schwierzeck <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2019-08-22drivers: net: mc: Report extra memory to LinuxMeenakshi Aggarwal
MC firmware need to be aligned to 512M, so minimum 512MB DDR is reserved. But MC support to work with 128MB or 256MB DDR memory also, in this case, rest of the memory is not usable. So reporting this extra memory to Linux through dtb memory fixup. Signed-off-by: Meenakshi Aggarwal <[email protected]> Reviewed-by: Prabhakar Kushwaha <[email protected]>
2019-08-11env: Move env_get() to env.hSimon Glass
Move env_get() over to the new header file. Acked-by: Joe Hershberger <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2019-03-15mc : Reduce MC memory size to 128MMeenakshi Aggarwal
ls2088, ls1088 : minimum MC Memory size is 128 MB lx2 : minimum MC memory size is 256 MB Signed-off-by: Meenakshi Aggarwal <[email protected]> Acked-by: Joe Hershberger <[email protected]> Reviewed-by: Prabhakar Kushwaha <[email protected]>
2019-03-15driver: net: fsl-mc: Fix DPC MAC address fixupIoana Ciocoi Radulescu
If node /board_info/ports does not exist in the DPC file, function mc_fixup_dpc() will skip not only MAC address fixup, but also the cache flush at the end. This may cause the other fixup changes (e.g. ICID related ones) to be ignored by MC. Fixes: 1161dbcc0a36 ("drivers: net: fsl-mc: Include MAC addr fixup to DPL") Signed-off-by: Ioana Radulescu <[email protected]> Acked-by: Joe Hershberger <[email protected]> Reviewed-by: Prabhakar Kushwaha <[email protected]>
2019-01-17fsl-layerscape: dpaa: fix fsl-mc status in fdt with bootefiMian Yousaf Kaukab
fsl-mc lazyapply command applies dpl from efi_exit_boot_services(). Status of fsl-mc node in working fdt is updated at this stage. However, an efi application like grub may already have copied the fdt. So the updates to fdt done at efi_exit_boot_services() may not be visible to the OS. Fix it by updating fdt earlier if fsl-mc lazyapply command is used. Fixes: b7b8410a8f (ls2080: Exit dpaa only right before exiting U-Boot) Signed-off-by: Mian Yousaf Kaukab <[email protected]> Reviewed-by: York Sun <[email protected]>
2018-10-10driver: net: fsl-mc: initialize dpmac irrespective of phyPankaj Bansal
The dpmac initalization should not depend on phy. As the phy is not necessary to be present for dpmac to function. Therefore, remove dpmac initialization dependency from phy. Signed-off-by: Pankaj Bansal <[email protected]> Acked-by: Joe Hershberger <[email protected]>