diff options
32 files changed, 86 insertions, 60 deletions
@@ -3,7 +3,7 @@ VERSION = 2024 PATCHLEVEL = 10 SUBLEVEL = -EXTRAVERSION = -rc4 +EXTRAVERSION = -rc5 NAME = # *DOCUMENTATION* diff --git a/arch/arm/dts/k3-j721e-beagleboneai64-u-boot.dtsi b/arch/arm/dts/k3-j721e-beagleboneai64-u-boot.dtsi index 884f44239e1..27851b7d083 100644 --- a/arch/arm/dts/k3-j721e-beagleboneai64-u-boot.dtsi +++ b/arch/arm/dts/k3-j721e-beagleboneai64-u-boot.dtsi @@ -64,6 +64,10 @@ bootph-all; }; +&chipid { + bootph-all; +}; + &mcu_ringacc { reg = <0x0 0x2b800000 0x0 0x400000>, <0x0 0x2b000000 0x0 0x400000>, diff --git a/arch/arm/mach-stm32mp/stm32mp1/psci.c b/arch/arm/mach-stm32mp/stm32mp1/psci.c index bfbf420fdb5..a02a8988a68 100644 --- a/arch/arm/mach-stm32mp/stm32mp1/psci.c +++ b/arch/arm/mach-stm32mp/stm32mp1/psci.c @@ -393,8 +393,7 @@ static int __secure secure_waitbits(u32 reg, u32 mask, u32 val) asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (start)); for (;;) { tmp = readl(reg); - tmp &= mask; - if ((tmp & val) == val) + if ((tmp & mask) == val) return 0; asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (end)); if ((end - start) > delay) diff --git a/arch/arm/mach-stm32mp/stm32mp1/stm32mp15x.c b/arch/arm/mach-stm32mp/stm32mp1/stm32mp15x.c index f096fe538d8..ca202bec8ee 100644 --- a/arch/arm/mach-stm32mp/stm32mp1/stm32mp15x.c +++ b/arch/arm/mach-stm32mp/stm32mp1/stm32mp15x.c @@ -148,8 +148,8 @@ static void security_init(void) */ clrsetbits_le32(TAMP_SMCR, TAMP_SMCR_BKPRWDPROT | TAMP_SMCR_BKPWDPROT, - FIELD_PREP(TAMP_SMCR_BKPRWDPROT, 0x20) | - FIELD_PREP(TAMP_SMCR_BKPWDPROT, 0x20)); + FIELD_PREP(TAMP_SMCR_BKPRWDPROT, 0x0A) | + FIELD_PREP(TAMP_SMCR_BKPWDPROT, 0x0F)); /* GPIOZ: deactivate the security */ writel(BIT(0), RCC_MP_AHB5ENSETR); diff --git a/board/dhelectronics/dh_imx6/dh_imx6.c b/board/dhelectronics/dh_imx6/dh_imx6.c index c8dd30dfeaf..ada44e01424 100644 --- a/board/dhelectronics/dh_imx6/dh_imx6.c +++ b/board/dhelectronics/dh_imx6/dh_imx6.c @@ -30,6 +30,7 @@ #include <fuse.h> #include <i2c_eeprom.h> #include <mmc.h> +#include <power/regulator.h> #include <usb.h> #include <linux/delay.h> #include <usb/ehci-ci.h> @@ -127,6 +128,8 @@ int board_init(void) setup_fec_clock(); + regulators_enable_boot_on(_DEBUG); + return 0; } diff --git a/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c b/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c index c635735d89c..a389ab3c2d9 100644 --- a/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c +++ b/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c @@ -14,6 +14,7 @@ #include <malloc.h> #include <net.h> #include <miiphy.h> +#include <power/regulator.h> #include "lpddr4_timing.h" #include "../common/dh_common.h" @@ -111,6 +112,8 @@ int dh_setup_mac_address(void) int board_init(void) { + regulators_enable_boot_on(_DEBUG); + return 0; } diff --git a/cmd/efidebug.c b/cmd/efidebug.c index 1a191eb9994..e040fe75fa1 100644 --- a/cmd/efidebug.c +++ b/cmd/efidebug.c @@ -665,7 +665,7 @@ enum efi_lo_dp_part { }; /** - * create_lo_dp() - create a special device path for our Boot### option + * create_lo_dp_part() - create a special device path for our Boot### option * * @dev: device * @part: disk partition @@ -1127,7 +1127,7 @@ static void show_efi_boot_opt(u16 *varname16) } /** - * show_efi_boot_dump() - dump all UEFI load options + * do_efi_boot_dump() - dump all UEFI load options * * @cmdtp: Command table * @flag: Command flag diff --git a/doc/arch/m68k.rst b/doc/arch/m68k.rst index 8474ece62c7..de7eb384955 100644 --- a/doc/arch/m68k.rst +++ b/doc/arch/m68k.rst @@ -82,9 +82,9 @@ A bash script similar to the one below may be used: Adopted toolchains ------------------ -Please check: -https://www.denx.de/wiki/U-Boot/ColdFireNotes - +Currently the `kernel.org cross-development toolchains +<https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/>`_ are +used in the project CI builds. ColdFire specific configuration options/settings ------------------------------------------------ diff --git a/doc/arch/mips.rst b/doc/arch/mips.rst index b8166087ddf..aeb58247943 100644 --- a/doc/arch/mips.rst +++ b/doc/arch/mips.rst @@ -8,9 +8,8 @@ Notes for the MIPS architecture port of U-Boot Toolchains ---------- - * `ELDK < DULG < DENX <http://www.denx.de/wiki/DULG/ELDK>`_ - * `Embedded Debian -- Cross-development toolchains <http://www.emdebian.org/crosstools.html>`_ * `Buildroot <http://buildroot.uclibc.org/>`_ + * `kernel.org cross-development toolchains <https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/>`_ Known Issues ------------ diff --git a/doc/develop/process.rst b/doc/develop/process.rst index 0542b3fc124..0c6fb31e87b 100644 --- a/doc/develop/process.rst +++ b/doc/develop/process.rst @@ -23,9 +23,8 @@ Management Summary Phases of the Development Process --------------------------------- -U-Boot development takes place in `Release Cycles -<https://www.denx.de/wiki/U-Boot/ReleaseCycle>`_. A Release Cycle lasts -normally for three months. +U-Boot development takes place in a :doc:`release_cycle`. A Release Cycle +lasts normally for three months. The first three weeks of each Release Cycle are called *Merge Window*. diff --git a/doc/develop/sending_patches.rst b/doc/develop/sending_patches.rst index 3f25b1d0466..e22b5e3e244 100644 --- a/doc/develop/sending_patches.rst +++ b/doc/develop/sending_patches.rst @@ -73,12 +73,13 @@ General Patch Submission Rules cover letter why they are ignored is desired. * Send your patches as plain text messages: no HTML, no MIME, no links, no - compression, no attachments. Just plain text. The best way the generate - patches is by using the ``git format-patch`` command. Please use the - ``master`` branch of the mainline U-Boot git repository - (``https://source.denx.de/u-boot/u-boot.git``) as reference, unless (usually - late in a release cycle) there has been an announcement to use the ``next`` - branch of this repository instead. + compression, no attachments. Just plain text. The best way to generate + patches is by using the ``git format-patch`` command. For a patch that is + fixing a bug or regression of some sort, please use the ``master`` branch of + the mainline U-Boot git repository located at + https://source.denx.de/u-boot/u-boot.git as reference. For new features, if + the ``next`` branch has been opened (which happens with the release of + ``-rc2``) that branch should be used, otherwise ``master`` is acceptable. * Make sure that your mailer does not mangle the patch by automatic changes like wrapping of longer lines etc. diff --git a/doc/develop/version.rst b/doc/develop/version.rst index 5c9046aa17a..de11836af45 100644 --- a/doc/develop/version.rst +++ b/doc/develop/version.rst @@ -9,7 +9,7 @@ release that came out in October 2020. Release candidates are tagged every few weeks as the project heads to the next release. So 2020.10-rc1 was the first release candidate (RC), tagged soon after 2020.07 was released. -See https://www.denx.de/wiki/view/U-Boot/ReleaseCycle for full details. +See :doc:`release_cycle` for full details. Within the build system, various Makefile variables are created, making use of VERSION, PATCHLEVEL and EXTRAVERSION defined at the top of 'Makefile'. There is diff --git a/doc/device-tree-bindings/bootcount-syscon.txt b/doc/device-tree-bindings/bootcount-syscon.txt index e124f7b6142..ea27b246c8a 100644 --- a/doc/device-tree-bindings/bootcount-syscon.txt +++ b/doc/device-tree-bindings/bootcount-syscon.txt @@ -1,6 +1,6 @@ Bootcount Configuration This is the implementation of the feature as described in -https://www.denx.de/wiki/DULG/UBootBootCountLimit. +https://docs.u-boot.org/en/latest/api/bootcount.html Required Properties: - compatible: must be "u-boot,bootcount-syscon". diff --git a/doc/mkeficapsule.1 b/doc/mkeficapsule.1 index c3d0f21488a..eaaba2cf232 100644 --- a/doc/mkeficapsule.1 +++ b/doc/mkeficapsule.1 @@ -130,4 +130,4 @@ The directory in which all capsule files be placed Written by AKASHI Takahiro <takahiro.akashi@linaro.org> .SH HOMEPAGE -http://www.denx.de/wiki/U-Boot/WebHome +http://www.u-boot.org/ diff --git a/doc/usage/cmd/ums.rst b/doc/usage/cmd/ums.rst index 9d379e3c829..e96222785f2 100644 --- a/doc/usage/cmd/ums.rst +++ b/doc/usage/cmd/ums.rst @@ -48,7 +48,7 @@ Configuration ------------- The ums command is only available if CONFIG_CMD_USB_MASS_STORAGE=y -and depends on CONFIG_USB_USB_GADGET and CONFIG_BLK. +which depends on CONFIG_USB_GADGET_DOWNLOAD and CONFIG_BLK. Return value ------------ diff --git a/drivers/bootcount/Kconfig b/drivers/bootcount/Kconfig index 2105cea3d45..d375984bb33 100644 --- a/drivers/bootcount/Kconfig +++ b/drivers/bootcount/Kconfig @@ -6,7 +6,7 @@ menuconfig BOOTCOUNT_LIMIT bool "Enable support for checking boot count limit" help Enable checking for exceeding the boot count limit. - More information: http://www.denx.de/wiki/DULG/UBootBootCountLimit + More information: https://docs.u-boot.org/en/latest/api/bootcount.html if BOOTCOUNT_LIMIT diff --git a/drivers/mux/mmio.c b/drivers/mux/mmio.c index e1125458a62..e06f4462b5a 100644 --- a/drivers/mux/mmio.c +++ b/drivers/mux/mmio.c @@ -31,6 +31,7 @@ static const struct mux_control_ops mux_mmio_ops = { static const struct udevice_id mmio_mux_of_match[] = { { .compatible = "mmio-mux" }, + { .compatible = "reg-mux" }, { /* sentinel */ }, }; @@ -45,7 +46,11 @@ static int mmio_mux_probe(struct udevice *dev) int ret; int i; - regmap = syscon_node_to_regmap(dev_ofnode(dev->parent)); + if (ofnode_device_is_compatible(dev_ofnode(dev), "mmio-mux")) + regmap = syscon_node_to_regmap(dev_ofnode(dev->parent)); + else + regmap_init_mem(dev_ofnode(dev), ®map); + if (IS_ERR(regmap)) { ret = PTR_ERR(regmap); dev_err(dev, "failed to get regmap: %d\n", ret); diff --git a/drivers/phy/cadence/phy-cadence-sierra.c b/drivers/phy/cadence/phy-cadence-sierra.c index f5e23f36c56..2c9d5a12127 100644 --- a/drivers/phy/cadence/phy-cadence-sierra.c +++ b/drivers/phy/cadence/phy-cadence-sierra.c @@ -1126,7 +1126,7 @@ static int cdns_sierra_phy_probe(struct udevice *dev) sp->autoconf = dev_read_bool(dev, "cdns,autoconf"); - dev_info(dev, "sierra probed\n"); + dev_dbg(dev, "sierra probed\n"); return 0; clk_disable: diff --git a/drivers/power/regulator/rk8xx.c b/drivers/power/regulator/rk8xx.c index 34e61511d88..375d06e3207 100644 --- a/drivers/power/regulator/rk8xx.c +++ b/drivers/power/regulator/rk8xx.c @@ -381,7 +381,7 @@ static int _buck_set_value(struct udevice *pmic, int buck, int uvolt) val = ((uvolt - info->min_uv) / info->step_uv) + info->min_sel; debug("%s: volt=%d, buck=%d, reg=0x%x, mask=0x%x, val=0x%x\n", - __func__, uvolt, buck + 1, info->vsel_reg, mask, val); + __func__, uvolt, buck, info->vsel_reg, mask, val); if (priv->variant == RK816_ID) { pmic_clrsetbits(pmic, info->vsel_reg, mask, val); @@ -415,7 +415,7 @@ static int _buck_set_enable(struct udevice *pmic, int buck, bool enable) break; case RK806_ID: value = RK806_POWER_EN_CLRSETBITS(buck % 4, enable); - en_reg = RK806_POWER_EN((buck + 1) / 4); + en_reg = RK806_POWER_EN(buck / 4); ret = pmic_reg_write(pmic, en_reg, value); break; case RK808_ID: @@ -470,7 +470,7 @@ static int _buck_set_suspend_value(struct udevice *pmic, int buck, int uvolt) val = ((uvolt - info->min_uv) / info->step_uv) + info->min_sel; debug("%s: volt=%d, buck=%d, reg=0x%x, mask=0x%x, val=0x%x\n", - __func__, uvolt, buck + 1, info->vsel_sleep_reg, mask, val); + __func__, uvolt, buck, info->vsel_sleep_reg, mask, val); return pmic_clrsetbits(pmic, info->vsel_sleep_reg, mask, val); } @@ -494,7 +494,7 @@ static int _buck_get_enable(struct udevice *pmic, int buck) break; case RK806_ID: mask = BIT(buck % 4); - ret = pmic_reg_read(pmic, RK806_POWER_EN((buck + 1) / 4)); + ret = pmic_reg_read(pmic, RK806_POWER_EN(buck / 4)); break; case RK808_ID: case RK818_ID: @@ -539,12 +539,13 @@ static int _buck_set_suspend_enable(struct udevice *pmic, int buck, bool enable) { u8 reg; - if (buck + 1 >= 9) { + if (buck >= 8) { + /* BUCK9 and BUCK10 */ reg = RK806_POWER_SLP_EN1; - mask = BIT(buck + 1 - 3); + mask = BIT(buck - 2); } else { reg = RK806_POWER_SLP_EN0; - mask = BIT(buck + 1); + mask = BIT(buck); } ret = pmic_clrsetbits(pmic, reg, mask, enable ? mask : 0); } @@ -590,12 +591,13 @@ static int _buck_get_suspend_enable(struct udevice *pmic, int buck) { u8 reg; - if (buck + 1 >= 9) { + if (buck >= 8) { + /* BUCK9 and BUCK10 */ reg = RK806_POWER_SLP_EN1; - mask = BIT(buck + 1 - 3); + mask = BIT(buck - 2); } else { reg = RK806_POWER_SLP_EN0; - mask = BIT(buck + 1); + mask = BIT(buck); } val = pmic_reg_read(pmic, reg); } diff --git a/drivers/ram/k3-ddrss/lpddr4.c b/drivers/ram/k3-ddrss/lpddr4.c index 11ef242a37b..9f9abfeca48 100644 --- a/drivers/ram/k3-ddrss/lpddr4.c +++ b/drivers/ram/k3-ddrss/lpddr4.c @@ -155,10 +155,11 @@ u32 lpddr4_start(const lpddr4_privatedata *pd) u32 result = 0U; result = lpddr4_startsf(pd); - if (result == (u32)0) { + if (result == (u32)0) result = lpddr4_enablepiinitiator(pd); + if (result == (u32)0) result = lpddr4_startsequencecontroller(pd); - } + return result; } diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c index 32b2c412068..ac7e469469a 100644 --- a/drivers/usb/cdns3/gadget.c +++ b/drivers/usb/cdns3/gadget.c @@ -965,6 +965,12 @@ int cdns3_ep_run_transfer(struct cdns3_endpoint *priv_ep, if (priv_dev->dev_ver <= DEV_VER_V2) cdns3_wa1_tray_restore_cycle_bit(priv_dev, priv_ep); + /* Flush TRBs */ + flush_dcache_range((unsigned long)priv_ep->trb_pool, + (unsigned long)priv_ep->trb_pool + + ROUND(sizeof(struct cdns3_trb) * priv_ep->num_trbs, + CONFIG_SYS_CACHELINE_SIZE)); + trace_cdns3_prepare_trb(priv_ep, priv_req->trb); /* @@ -1153,6 +1159,13 @@ static void cdns3_transfer_completed(struct cdns3_device *priv_dev, priv_ep->endpoint.desc->bEndpointAddress); #endif + /* Invalidate TRBs */ + invalidate_dcache_range((unsigned long)priv_ep->trb_pool, + (unsigned long)priv_ep->trb_pool + + ROUND(sizeof(struct cdns3_trb) * + priv_ep->num_trbs, + CONFIG_SYS_CACHELINE_SIZE)); + if (!cdns3_request_handled(priv_ep, priv_req)) goto prepare_next_td; diff --git a/include/efi_variable.h b/include/efi_variable.h index 223bb9a4a5b..4065cf45eca 100644 --- a/include/efi_variable.h +++ b/include/efi_variable.h @@ -38,7 +38,7 @@ efi_status_t efi_get_variable_int(const u16 *variable_name, void *data, u64 *timep); /** - * efi_set_variable() - set value of a UEFI variable + * efi_set_variable_int() - set value of a UEFI variable * * @variable_name: name of the variable * @vendor: vendor GUID diff --git a/include/event.h b/include/event.h index fb353ad623e..75141a192a4 100644 --- a/include/event.h +++ b/include/event.h @@ -385,7 +385,7 @@ static inline int event_notify_null(enum event_t type) int event_uninit(void); /** - * event_uninit() - Set up dynamic events + * event_init() - Set up dynamic events * * Init a list of dynamic event handlers, so that these can be added as * needed diff --git a/include/expo.h b/include/expo.h index 264745f7f01..c235fa2709d 100644 --- a/include/expo.h +++ b/include/expo.h @@ -42,7 +42,7 @@ enum expoact_type { * * @type: Action type (EXPOACT_NONE if there is no action) * @select: Used for EXPOACT_POINT_ITEM and EXPOACT_SELECT - * @id: ID number of the object affected. + * @select.id: ID number of the object affected. */ struct expo_action { enum expoact_type type; diff --git a/include/getopt.h b/include/getopt.h index 8645082da2a..0cf7ee84d6f 100644 --- a/include/getopt.h +++ b/include/getopt.h @@ -20,11 +20,9 @@ struct getopt_state { * parsed all of @argv, then @index will equal @argc. */ int index; - /* private: */ /** @arg_index: Index within the current argument */ int arg_index; union { - /* public: */ /** * @opt: Option being parsed when an error occurs. @opt is only * valid when getopt() returns ``?`` or ``:``. @@ -35,7 +33,6 @@ struct getopt_state { * is only valid when getopt() returns an option character. */ char *arg; - /* private: */ }; }; diff --git a/include/os.h b/include/os.h index 877404a6c13..4f73f0b60f1 100644 --- a/include/os.h +++ b/include/os.h @@ -24,7 +24,7 @@ struct sandbox_state; int os_printf(const char *format, ...); /** - * Access to the OS read() system call + * os_read() - access the OS read() system call * * @fd: File descriptor as returned by os_open() * @buf: Buffer to place data @@ -34,7 +34,7 @@ int os_printf(const char *format, ...); ssize_t os_read(int fd, void *buf, size_t count); /** - * Access to the OS write() system call + * os_write() - access the OS write() system call * * @fd: File descriptor as returned by os_open() * @buf: Buffer containing data to write @@ -44,7 +44,7 @@ ssize_t os_read(int fd, void *buf, size_t count); ssize_t os_write(int fd, const void *buf, size_t count); /** - * Access to the OS lseek() system call + * os_lseek() - access the OS lseek() system call * * @fd: File descriptor as returned by os_open() * @offset: File offset (based on whence) @@ -67,7 +67,7 @@ off_t os_lseek(int fd, off_t offset, int whence); off_t os_filesize(int fd); /** - * Access to the OS open() system call + * os_open() - access the OS open() system call * * @pathname: Pathname of file to open * @flags: Flags, like OS_O_RDONLY, OS_O_RDWR @@ -162,7 +162,7 @@ void os_raise_sigalrm(void); void os_tty_raw(int fd, bool allow_sigs); /** - * os_fs_restore() - restore the tty to its original mode + * os_fd_restore() - restore the tty to its original mode * * Call this to restore the original terminal mode, after it has been changed * by os_tty_raw(). This is an internal function. @@ -207,14 +207,14 @@ void *os_realloc(void *ptr, size_t length); void os_usleep(unsigned long usec); /** - * Gets a monotonic increasing number of nano seconds from the OS + * os_get_nsec() - get monotonically increasing number of nano seconds from OS * - * Return: a monotonic increasing time scaled in nano seconds + * Return: a monotoniccally increasing time scaled in nano seconds */ uint64_t os_get_nsec(void); /** - * Parse arguments and update sandbox state. + * os_parse_args() - parse arguments and update sandbox state. * * @state: sandbox state to update * @argc: argument count diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c index c944c10b216..b760e36d874 100644 --- a/lib/efi_loader/efi_console.c +++ b/lib/efi_loader/efi_console.c @@ -100,7 +100,7 @@ static int term_get_char(s32 *c) } /** - * Receive and parse a reply from the terminal. + * term_read_reply() - receive and parse a reply from the terminal * * @n: array of return values * @num: number of return values expected diff --git a/lib/efi_loader/efi_file.c b/lib/efi_loader/efi_file.c index 222001d6a3b..c92d8ccf004 100644 --- a/lib/efi_loader/efi_file.c +++ b/lib/efi_loader/efi_file.c @@ -295,7 +295,7 @@ out: } /** - * efi_file_open_() + * efi_file_open() - open file synchronously * * This function implements the Open service of the File Protocol. * See the UEFI spec for details. diff --git a/lib/efi_loader/efi_rng.c b/lib/efi_loader/efi_rng.c index 9bad7ed6931..4734f95eee1 100644 --- a/lib/efi_loader/efi_rng.c +++ b/lib/efi_loader/efi_rng.c @@ -91,7 +91,7 @@ back: } /** - * rng_getrng() - get random value + * getrng() - get random value * * This function implement the GetRng() service of the EFI random number * generator protocol. See the UEFI spec for details. diff --git a/lib/efi_loader/efi_unicode_collation.c b/lib/efi_loader/efi_unicode_collation.c index 627bb9123cf..d48700a352b 100644 --- a/lib/efi_loader/efi_unicode_collation.c +++ b/lib/efi_loader/efi_unicode_collation.c @@ -266,7 +266,7 @@ static void EFIAPI efi_fat_to_str(struct efi_unicode_collation_protocol *this, } /** - * efi_fat_to_str() - convert a utf-16 string to legal characters for a FAT + * efi_str_to_fat() - convert a utf-16 string to legal characters for a FAT * file name in an OEM code page * * @this: unicode collation protocol instance diff --git a/tools/binman/entries.rst b/tools/binman/entries.rst index 12482703782..d82f7b89203 100644 --- a/tools/binman/entries.rst +++ b/tools/binman/entries.rst @@ -221,7 +221,7 @@ FIPs so that binman and other tools can access the entire image correctly. .. _FIP: https://trustedfirmware-a.readthedocs.io/en/latest/design/firmware-design.html#firmware-image-package-fip .. _`TF-A source tree`: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git -.. _`send a patch`: https://www.denx.de/wiki/U-Boot/Patches +.. _`send a patch`: https://docs.u-boot.org/en/latest/develop/sending_patches.html diff --git a/tools/binman/etype/atf_fip.py b/tools/binman/etype/atf_fip.py index 73a3f85b9f4..3da0dfcfc12 100644 --- a/tools/binman/etype/atf_fip.py +++ b/tools/binman/etype/atf_fip.py @@ -163,7 +163,7 @@ class Entry_atf_fip(Entry_section): .. _FIP: https://trustedfirmware-a.readthedocs.io/en/latest/design/firmware-design.html#firmware-image-package-fip .. _`TF-A source tree`: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git - .. _`send a patch`: https://www.denx.de/wiki/U-Boot/Patches + .. _`send a patch`: https://docs.u-boot.org/en/latest/develop/sending_patches.html """ def __init__(self, section, etype, node): # Put this here to allow entry-docs and help to work without libfdt |