- Feb 24, 2023
-
-
Using a pre-built QEMU saves a lot of time when testing. Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
-
Downloading files for a test may fail if the server is offline. It is preferable to provide the files in our Docker image. Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
- Feb 23, 2023
-
-
Make sure the PHY subsystem is activated for the uniphier DWC3 glue logic, as it depends on PHY implementation there. Signed-off-by:
Marek Vasut <marex@denx.de>
-
- Feb 22, 2023
-
-
git://source.denx.de/u-boot-usbTom Rini authored
- dwc3-generic rework and then switch uniphier to it
-
Replacing with dwc3-generic, no need USB_XHCI_DWC3 anymore. Signed-off-by:
Kunihiko Hayashi <hayashi.kunihiko@socionext.com> Reviewed-by:
Marek Vasut <marex@denx.de>
-
dwc3-uniphier depends on xhci-dwc3 framework, however, it is preferable to use dwc3-generic. This driver calls the exported dwc3-generic functions and redefine the SoC-dependent operations to fit dwc3-generic. Signed-off-by:
Kunihiko Hayashi <hayashi.kunihiko@socionext.com> Reviewed-by:
Marek Vasut <marex@denx.de>
-
Add USB3 PHY driver support to control clocks and resets needed to enable PHY. The phy_ops->init() and exit() control PHY clocks and resets only, and clocks and resets for the controller and the parent logic are enabled in advance. Signed-off-by:
Kunihiko Hayashi <hayashi.kunihiko@socionext.com> Reviewed-by:
Marek Vasut <marex@denx.de>
-
The USB SS-PHY needs its own clock, however, some clocks don't have clock gates. Define missing clock entries for the PHY as reference clock. Signed-off-by:
Kunihiko Hayashi <hayashi.kunihiko@socionext.com> Reviewed-by:
Marek Vasut <marex@denx.de>
-
Add reset control support in USB glue logic. This needs to control the external clocks and resets for the logic before accessing the glue logic. The USB dm tree when using dwc3-generic is the following: USB glue +-- controller (need controller-reset) +-- controller-reset (need syscon-reset) +-- phy The controller needs to deassert "controller-reset" in USB glue before the controller registers are accessed. The glue needs to deassert "syscon-reset" before the glue registers are accessed. The glue itself doesn't have "syscon-reset", so the controller-reset controls "syscon-reset" instead. Signed-off-by:
Kunihiko Hayashi <hayashi.kunihiko@socionext.com> Reviewed-by:
Marek Vasut <marex@denx.de>
-
Add the size of regs property to the glue structure to correctly specify the register region to map. Signed-off-by:
Kunihiko Hayashi <hayashi.kunihiko@socionext.com> Reviewed-by:
Marek Vasut <marex@denx.de>
-
In order to allow external SoC-dependent glue drivers to use dwc3-generic functions, push the glue structures and export the functions to a header file. The exported structures and functions are: - struct dwc3_glue_data - struct dwc3_glue_ops - dwc3_glue_bind() - dwc3_glue_probe() - dwc3_glue_remove() The SoC-dependent glue drivers can only define their own wrapper driver and specify these functions. The drivers can also add their own compatible strings and configure functions. Signed-off-by:
Kunihiko Hayashi <hayashi.kunihiko@socionext.com> Reviewed-by:
Marek Vasut <marex@denx.de>
-
Same as the reset cotnrol, should add a clock initialization in child DT node, if the glue node doesn't have any clocks. Signed-off-by:
Kunihiko Hayashi <hayashi.kunihiko@socionext.com> Reviewed-by:
Marek Vasut <marex@denx.de>
-
The most of devicetree has the following USB node structure. The controller node is placed as a child node of the glue node. Current dwc3-generic driver works on this premise. glue { /* glue node */ usb { /* controller node */ }; }; However, UniPhier original devicetree has the following USB node structure. The controller node is separately placed from the glue node. usb { /* controller node */ }; glue { /* glue node */ }; In dwc_glue_bind(), this patch provides .glue_get_ctrl_dev() callback to get such a controller node and binds the driver related to the node. If this callback isn't defined, dwc_glue_bind() looks for the controller nodes from the child nodes, as before. Suggested-by:
Marek Vasut <marex@denx.de> Signed-off-by:
Kunihiko Hayashi <hayashi.kunihiko@socionext.com> Reviewed-by:
Marek Vasut <marex@denx.de>
-
Marek Vasut authored
There are currently four disparate placement possibilities of DWC3 reference clock phandle in SoC DTs: - in top level glue node, with generic subnode without clock (ZynqMP) - in top level generic node, with no subnode (i.MX8MQ) - in generic subnode, with other clock in top level node (i.MX8MP) - in both top level node and generic subnode (Rockchip) Cover all the possibilities here by looking into both nodes, start with the top level node as that seems to be used in majority of DTs to reference the clock. Signed-off-by:
Marek Vasut <marex@denx.de> Acked-by:
Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
-
- Feb 14, 2023
-
-
https://source.denx.de/u-boot/custodians/u-boot-dmTom Rini authored
Move U-Boot over to the new schema for driver model tags
-
Simon Glass authored
Test that: - sandbox shows a warning when an unmigrated DT is used - sandbox fails to run when migration is turned off - sandbox_spl fails to build when migration is turned off Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
This is useful when we need to control a particular environment variable. Add a way to handle this. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
These should not be used anymore. Add a check to ensure they don't creek back into U-Boot. Use bootph-... instead. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
Help ensure that these don't creep into development by adding a check in checkpatch for them. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
Now that Linux has accepted these tags, update the dtoc tool to use them. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
Now that Linux has accepted these tags, move U-Boot over to use them. Tidy up the comments and formatting, making sure that VPL is mentioned too. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
Now that Linux has accepted these tags, move U-Boot over to use them. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
Update various build and test components to use the new schema. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
Now that Linux has accepted these tags, move the device tree files in U-Boot over to use them. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
Add a CONFIG option to deal with this automatically, printing a warning when U-Boot starts up. This can be useful if the device tree comes from another project. We will maintain this through the 2023.07 release, providing 6 months for people to notice. Signed-off-by:
Simon Glass <sjg@chromium.org> Version 4: Acked-by:
Michal Simek <michal.simek@amd.com>
-
Simon Glass authored
U-Boot has some particular challenges with device tree and devices: - U-Boot has multiple build phases, such as a Secondary Program Loader (SPL) phase which typically runs in a pre-SDRAM environment where code and data space are limited. In particular, there may not be enough space for the full device tree blob. U-Boot uses various automated techniques to reduce the size from perhaps 40KB to 3KB. It is not always possible to handle these tags entirely at build time, since U-Boot proper must have the full device tree, even though we do not want it to process all nodes until after relocation. - Some U-Boot phases needs to run before the clocks are properly set up, where the CPU may be running very slowly. Therefore it is important to bind only those devices which are actually needed in that phase - U-Boot uses lazy initialisation for its devices, with 'bind' and 'probe' being separate steps. Even if a device is bound, it is not actually probed until it is used. This is necessary to keep the boot time reasonable, e.g. to under a second The phases of U-Boot in order are: TPL, VPL, SPL, U-Boot (first pre-relocation, then post-relocation). ALl but the last two are optional. For the above reasons, U-Boot only includes the full device tree in the final 'U-Boot proper' build. Even then, before relocation U-Boot only processes nodes which are marked as being needed. For this to work, U-Boot's driver model[1] provides a way to mark device tree nodes as applicable for a particular phase. This works by adding a tag to the node, e.g.: cru: clock-controller@ff760000 { bootph-all; compatible = "rockchip,rk3399-cru"; reg = <0x0 0xff760000 0x0 0x1000>; rockchip,grf = <&grf>; #clock-cells = <1>; #reset-cells = <1>; ... }; Here the "bootph-all" tag indicates that the node must be present in all phases, since the clock driver is required. There has been discussion over the years about whether this could be done in a property instead, e.g. options { bootph-all = <&cru> <&gpio_a> ...; ... }; Some problems with this: - we need to be able to merge several such tags from different .dtsi files since many boards have their own specific requirements - it is hard to find and cross-reference the affected nodes - it is more error-prone - it requires significant tool rework in U-Boot, including fdtgrep and the build system - is harder (slower, more code) to process since it involves scanning another node/property to find out what to do with a particular node - we don't want to add phandle arguments to the above since we are referring, e.g., to the clock device as a whole, not a paricular clock - the of-platdata feature[2], which converts device tree to C for even more constrained environments, would need to become aware of the /options node There is also the question about whether this needs to be U-Boot-specific, or whether the tags could be generic. From what I can tell, U-Boot is the only bootloader which seriously attempts to use a runtime device tree in all cases. For this version, an attempt is made to name the phases in a generic manner. It should also be noted that the approach provided here has stood the test of time, used in U-Boot for 8 years so far. So add the schema for this. This will allow a major class of schema exceptions to be dropped from the U-Boot source tree. This has been applied upstream[3] [1] https://u-boot.readthedocs.io/en/latest/develop/driver-model/index.html [2] https://u-boot.readthedocs.io/en/latest/develop/driver-model/of-plat.html [3] https://github.com/devicetree-org/dt-schema/commit/63bd847 Signed-off-by:
Simon Glass <sjg@chromium.org>
-
- Feb 13, 2023
-
-
Tom Rini authored
Signed-off-by:
Tom Rini <trini@konsulko.com>
-
Co-developed-by:
Mike Worsfold <mworsfold@impinj.com> Signed-off-by:
Mike Worsfold <mworsfold@impinj.com> Signed-off-by:
Sumit Garg <sumit.garg@linaro.org>
-
https://source.denx.de/u-boot/custodians/u-boot-i2cTom Rini authored
i2c updates for v2023.04 - add new i2c driver ast2600 from Ryan Chen - i2c-cdns: make read fifo-depth configurable through device tree from Pei Yue Ho - mxc i2c driver: print base address in hex, not in decimal from Fabio
-
https://source.denx.de/u-boot/custodians/u-boot-marvellTom Rini authored
- mvebu: Support for 2 new Armada 385 boards (Tony) - mvebu: Minor misc board enhancements (Tony) - kirkwood: Serial driver fixes (Kconfig & dtsi) (Tony) - cmd: return code when tlv_eeprom incorrectly called (Heinrich)
-
When DM_SERIAL is enabled, the device-tree tag u-boot,dm-pre-reloc is required for this board to boot over UART with kwboot. Enable this in kirkwood-pogoplug-series-4-u-boot.dtsi. Added by Stefan while applying: Please note that it's not fully understood, why this property really is needed. Here a link to the discussion about this: https://lore.kernel.org/r/20230201080210.ypz4nrj4y2igwxz3@pali/ Signed-off-by:
Tony Dinh <mibodhi@gmail.com> Reviewed-by:
Stefan Roese <sr@denx.de>
-
Synology DS116 is a NAS based on Marvell Armada 385 SoC. Board Specification: - Marvel MV88F6820 Dual Core at 1.8GHz - 1 GiB DDR3 RAM - 8MB Macronix mx25l6405d SPI flash - I2C - 2x USB 3.0 - 1x GBE LAN port (PHY: Marvell 88E1510) - 1x SATA (6 Gbps) - 3x LED - PIC16F1829 (connected to uart1) - GPIO fan - serial console Note that this patch depends on the add-support for Thecus N2350 patch: https://patchwork.ozlabs.org/project/uboot/patch/20230201231306.7010-1-mibodhi@gmail.com/ Signed-off-by:
Tony Dinh <mibodhi@gmail.com>
-
Currently, only the 1st SATA port is powered up (by GPIO1 12). Add GPIO1 13 in board initialization to power up the 2nd SATA port. Note that this patch depends on the initial add-support patch: https://patchwork.ozlabs.org/project/uboot/patch/20230201231306.7010-1-mibodhi@gmail.com/ Signed-off-by:
Tony Dinh <mibodhi@gmail.com> Reviewed-by:
Stefan Roese <sr@denx.de>
-
Sheevaplug board has 512K CONFIG_BOARD_SIZE_LIMIT. Recently, DM_SERIAL has pushed the image size a few hundred bytes over that limit. So explicitly deselect some configs that are unrelated to this board (and gain back a bit over 2K). Signed-off-by:
Tony Dinh <mibodhi@gmail.com>
-
Thecus N2350 is a NAS based on Marvell Armada 385 SoC. Specification: - Processor: Marvel MV88F6820 Dual Core at 1GHz - 1 GiB DDR4 RAM - 4MB Macronix mx25l3205d SPI flash - 512MB Hynix H27U4G8F2DTR-BC NAND flash - I2C - 2x USB 3.0 - 1x GBE LAN port (PHY: Marvell 88E1510) - 2x SATA (hot swap slots) - 3x buttons - 10x LEDS - serial console Signed-off-by:
Tony Dinh <mibodhi@gmail.com> Reviewed-by:
Stefan Roese <sr@denx.de>
-
CONFIG_SYS_NS16550 is required when DM_SERIAL is enabled for Kirkwood boards. Signed-off-by:
Tony Dinh <mibodhi@gmail.com> Reviewed-by:
Tom Rini <trini@konsulko.com> Reviewed-by:
Stefan Roese <sr@denx.de>
-
A command called with incorrect parameters should set $? to 1 (false). Instead of calling cmd_usage(cmdtp) and then returning 0 just return CMD_RET_FAILURE. Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Acked-by:
Baruch Siach <baruch@tkos.co.il> Reviewed-by:
Stefan Roese <sr@denx.de>
-
Enable driver to fetch the optional parameter (fifo-depth) from device tree. If the parameter is not found in the device tree, it will use the default value declared in the driver. Signed-off-by:
Pei Yue Ho <peiyue.ho@starfivetech.com> Reviewed-by:
Wei Liang Lim <weiliang.lim@starfivetech.com> Reviewed-by:
Eng Lee Teh <englee.teh@starfivetech.com> Reviewed-by:
Heiko Schocher <hs@denx.de>
-
Add description for fifo-depth parameter that can be used in the device tree. Signed-off-by:
Pei Yue Ho <peiyue.ho@starfivetech.com> Reviewed-by:
Wei Liang Lim <weiliang.lim@starfivetech.com> Reviewed-by:
Eng Lee Teh <englee.teh@starfivetech.com> Reviewed-by:
Heiko Schocher <hs@denx.de>
-
The i2c driver have global register that i2c bus use ofnode_get_parent to get parent register address. Signed-off-by:
Ryan Chen <ryan_chen@aspeedtech.com> Reviewed-by:
Heiko Schocher <hs@denx.de>
-