Merge tag 'v2024.10-rc6' into next

Prepare v2024.10-rc6
This commit is contained in:
Tom Rini
2024-09-30 17:48:12 -06:00
25 changed files with 71 additions and 43 deletions

View File

@@ -3,7 +3,7 @@
VERSION = 2024 VERSION = 2024
PATCHLEVEL = 10 PATCHLEVEL = 10
SUBLEVEL = SUBLEVEL =
EXTRAVERSION = -rc5 EXTRAVERSION = -rc6
NAME = NAME =
# *DOCUMENTATION* # *DOCUMENTATION*

View File

@@ -64,6 +64,10 @@
bootph-all; bootph-all;
}; };
&chipid {
bootph-all;
};
&mcu_ringacc { &mcu_ringacc {
reg = <0x0 0x2b800000 0x0 0x400000>, reg = <0x0 0x2b800000 0x0 0x400000>,
<0x0 0x2b000000 0x0 0x400000>, <0x0 0x2b000000 0x0 0x400000>,

View File

@@ -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)); asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (start));
for (;;) { for (;;) {
tmp = readl(reg); tmp = readl(reg);
tmp &= mask; if ((tmp & mask) == val)
if ((tmp & val) == val)
return 0; return 0;
asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (end)); asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (end));
if ((end - start) > delay) if ((end - start) > delay)

View File

@@ -148,8 +148,8 @@ static void security_init(void)
*/ */
clrsetbits_le32(TAMP_SMCR, clrsetbits_le32(TAMP_SMCR,
TAMP_SMCR_BKPRWDPROT | TAMP_SMCR_BKPWDPROT, TAMP_SMCR_BKPRWDPROT | TAMP_SMCR_BKPWDPROT,
FIELD_PREP(TAMP_SMCR_BKPRWDPROT, 0x20) | FIELD_PREP(TAMP_SMCR_BKPRWDPROT, 0x0A) |
FIELD_PREP(TAMP_SMCR_BKPWDPROT, 0x20)); FIELD_PREP(TAMP_SMCR_BKPWDPROT, 0x0F));
/* GPIOZ: deactivate the security */ /* GPIOZ: deactivate the security */
writel(BIT(0), RCC_MP_AHB5ENSETR); writel(BIT(0), RCC_MP_AHB5ENSETR);

View File

@@ -30,6 +30,7 @@
#include <fuse.h> #include <fuse.h>
#include <i2c_eeprom.h> #include <i2c_eeprom.h>
#include <mmc.h> #include <mmc.h>
#include <power/regulator.h>
#include <usb.h> #include <usb.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <usb/ehci-ci.h> #include <usb/ehci-ci.h>
@@ -127,6 +128,8 @@ int board_init(void)
setup_fec_clock(); setup_fec_clock();
regulators_enable_boot_on(_DEBUG);
return 0; return 0;
} }

View File

@@ -14,6 +14,7 @@
#include <malloc.h> #include <malloc.h>
#include <net.h> #include <net.h>
#include <miiphy.h> #include <miiphy.h>
#include <power/regulator.h>
#include "lpddr4_timing.h" #include "lpddr4_timing.h"
#include "../common/dh_common.h" #include "../common/dh_common.h"
@@ -111,6 +112,8 @@ int dh_setup_mac_address(void)
int board_init(void) int board_init(void)
{ {
regulators_enable_boot_on(_DEBUG);
return 0; return 0;
} }

View File

@@ -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 * @dev: device
* @part: disk partition * @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 * @cmdtp: Command table
* @flag: Command flag * @flag: Command flag

View File

@@ -75,9 +75,9 @@ For the next scheduled release, release candidates were made on::
* U-Boot v2024.10-rc4 was released on Mon 02 September 2024. * U-Boot v2024.10-rc4 was released on Mon 02 September 2024.
.. * U-Boot v2024.10-rc5 was released on Mon 16 September 2024. * U-Boot v2024.10-rc5 was released on Mon 16 September 2024.
.. * U-Boot v2024.10-rc6 was released on Mon 30 September 2024. * U-Boot v2024.10-rc6 was released on Mon 30 September 2024.
Please note that the following dates are planned only and may be deviated from Please note that the following dates are planned only and may be deviated from
as needed. as needed.

View File

@@ -48,7 +48,7 @@ Configuration
------------- -------------
The ums command is only available if CONFIG_CMD_USB_MASS_STORAGE=y 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 Return value
------------ ------------

View File

@@ -7,7 +7,7 @@ config DFU
config DFU_OVER_USB config DFU_OVER_USB
bool bool
select HASH select HASH
depends on USB_GADGET depends on USB_GADGET_DOWNLOAD
config DFU_OVER_TFTP config DFU_OVER_TFTP
bool bool

View File

@@ -31,6 +31,7 @@ static const struct mux_control_ops mux_mmio_ops = {
static const struct udevice_id mmio_mux_of_match[] = { static const struct udevice_id mmio_mux_of_match[] = {
{ .compatible = "mmio-mux" }, { .compatible = "mmio-mux" },
{ .compatible = "reg-mux" },
{ /* sentinel */ }, { /* sentinel */ },
}; };
@@ -45,7 +46,11 @@ static int mmio_mux_probe(struct udevice *dev)
int ret; int ret;
int i; 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), &regmap);
if (IS_ERR(regmap)) { if (IS_ERR(regmap)) {
ret = PTR_ERR(regmap); ret = PTR_ERR(regmap);
dev_err(dev, "failed to get regmap: %d\n", ret); dev_err(dev, "failed to get regmap: %d\n", ret);

View File

@@ -1126,7 +1126,7 @@ static int cdns_sierra_phy_probe(struct udevice *dev)
sp->autoconf = dev_read_bool(dev, "cdns,autoconf"); sp->autoconf = dev_read_bool(dev, "cdns,autoconf");
dev_info(dev, "sierra probed\n"); dev_dbg(dev, "sierra probed\n");
return 0; return 0;
clk_disable: clk_disable:

View File

@@ -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; 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", 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) { if (priv->variant == RK816_ID) {
pmic_clrsetbits(pmic, info->vsel_reg, mask, val); 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; break;
case RK806_ID: case RK806_ID:
value = RK806_POWER_EN_CLRSETBITS(buck % 4, enable); 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); ret = pmic_reg_write(pmic, en_reg, value);
break; break;
case RK808_ID: 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; 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", 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); 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; break;
case RK806_ID: case RK806_ID:
mask = BIT(buck % 4); 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; break;
case RK808_ID: case RK808_ID:
case RK818_ID: case RK818_ID:
@@ -539,12 +539,13 @@ static int _buck_set_suspend_enable(struct udevice *pmic, int buck, bool enable)
{ {
u8 reg; u8 reg;
if (buck + 1 >= 9) { if (buck >= 8) {
/* BUCK9 and BUCK10 */
reg = RK806_POWER_SLP_EN1; reg = RK806_POWER_SLP_EN1;
mask = BIT(buck + 1 - 3); mask = BIT(buck - 2);
} else { } else {
reg = RK806_POWER_SLP_EN0; reg = RK806_POWER_SLP_EN0;
mask = BIT(buck + 1); mask = BIT(buck);
} }
ret = pmic_clrsetbits(pmic, reg, mask, enable ? mask : 0); 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; u8 reg;
if (buck + 1 >= 9) { if (buck >= 8) {
/* BUCK9 and BUCK10 */
reg = RK806_POWER_SLP_EN1; reg = RK806_POWER_SLP_EN1;
mask = BIT(buck + 1 - 3); mask = BIT(buck - 2);
} else { } else {
reg = RK806_POWER_SLP_EN0; reg = RK806_POWER_SLP_EN0;
mask = BIT(buck + 1); mask = BIT(buck);
} }
val = pmic_reg_read(pmic, reg); val = pmic_reg_read(pmic, reg);
} }

View File

@@ -155,10 +155,11 @@ u32 lpddr4_start(const lpddr4_privatedata *pd)
u32 result = 0U; u32 result = 0U;
result = lpddr4_startsf(pd); result = lpddr4_startsf(pd);
if (result == (u32)0) { if (result == (u32)0)
result = lpddr4_enablepiinitiator(pd); result = lpddr4_enablepiinitiator(pd);
if (result == (u32)0)
result = lpddr4_startsequencecontroller(pd); result = lpddr4_startsequencecontroller(pd);
}
return result; return result;
} }

View File

@@ -965,6 +965,12 @@ int cdns3_ep_run_transfer(struct cdns3_endpoint *priv_ep,
if (priv_dev->dev_ver <= DEV_VER_V2) if (priv_dev->dev_ver <= DEV_VER_V2)
cdns3_wa1_tray_restore_cycle_bit(priv_dev, priv_ep); 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); 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); priv_ep->endpoint.desc->bEndpointAddress);
#endif #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)) if (!cdns3_request_handled(priv_ep, priv_req))
goto prepare_next_td; goto prepare_next_td;

View File

@@ -324,6 +324,7 @@ config SPL_DFU
select SPL_HASH select SPL_HASH
select SPL_DFU_NO_RESET select SPL_DFU_NO_RESET
select SPL_RAM_SUPPORT select SPL_RAM_SUPPORT
depends on DFU_OVER_USB
help help
This feature enables the DFU (Device Firmware Upgrade) in SPL with This feature enables the DFU (Device Firmware Upgrade) in SPL with
RAM memory device support. The ROM code will load and execute RAM memory device support. The ROM code will load and execute

View File

@@ -38,7 +38,7 @@ efi_status_t efi_get_variable_int(const u16 *variable_name,
void *data, u64 *timep); 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 * @variable_name: name of the variable
* @vendor: vendor GUID * @vendor: vendor GUID

View File

@@ -385,7 +385,7 @@ static inline int event_notify_null(enum event_t type)
int event_uninit(void); 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 * Init a list of dynamic event handlers, so that these can be added as
* needed * needed

View File

@@ -42,7 +42,7 @@ enum expoact_type {
* *
* @type: Action type (EXPOACT_NONE if there is no action) * @type: Action type (EXPOACT_NONE if there is no action)
* @select: Used for EXPOACT_POINT_ITEM and EXPOACT_SELECT * @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 { struct expo_action {
enum expoact_type type; enum expoact_type type;

View File

@@ -20,11 +20,9 @@ struct getopt_state {
* parsed all of @argv, then @index will equal @argc. * parsed all of @argv, then @index will equal @argc.
*/ */
int index; int index;
/* private: */
/** @arg_index: Index within the current argument */ /** @arg_index: Index within the current argument */
int arg_index; int arg_index;
union { union {
/* public: */
/** /**
* @opt: Option being parsed when an error occurs. @opt is only * @opt: Option being parsed when an error occurs. @opt is only
* valid when getopt() returns ``?`` or ``:``. * valid when getopt() returns ``?`` or ``:``.
@@ -35,7 +33,6 @@ struct getopt_state {
* is only valid when getopt() returns an option character. * is only valid when getopt() returns an option character.
*/ */
char *arg; char *arg;
/* private: */
}; };
}; };

View File

@@ -24,7 +24,7 @@ struct sandbox_state;
int os_printf(const char *format, ...); 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() * @fd: File descriptor as returned by os_open()
* @buf: Buffer to place data * @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); 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() * @fd: File descriptor as returned by os_open()
* @buf: Buffer containing data to write * @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); 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() * @fd: File descriptor as returned by os_open()
* @offset: File offset (based on whence) * @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); 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 * @pathname: Pathname of file to open
* @flags: Flags, like OS_O_RDONLY, OS_O_RDWR * @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); 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 * Call this to restore the original terminal mode, after it has been changed
* by os_tty_raw(). This is an internal function. * 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); 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); 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 * @state: sandbox state to update
* @argc: argument count * @argc: argument count

View File

@@ -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 * @n: array of return values
* @num: number of return values expected * @num: number of return values expected

View File

@@ -295,7 +295,7 @@ out:
} }
/** /**
* efi_file_open_() * efi_file_open() - open file synchronously
* *
* This function implements the Open service of the File Protocol. * This function implements the Open service of the File Protocol.
* See the UEFI spec for details. * See the UEFI spec for details.

View File

@@ -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 * This function implement the GetRng() service of the EFI random number
* generator protocol. See the UEFI spec for details. * generator protocol. See the UEFI spec for details.

View File

@@ -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 * file name in an OEM code page
* *
* @this: unicode collation protocol instance * @this: unicode collation protocol instance