mirror of
https://xff.cz/git/u-boot/
synced 2025-10-01 07:21:23 +02:00
Merge branch '2023-08-03-assorted-fixes'
- More MAINTAINERS file updates, bootstd fixes, a fat fix and debug message fix
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
VEXPRESS64 BOARD
|
||||
VEXPRESS64 PLATFORM
|
||||
M: David Feng <fenghua@phytium.com.cn>
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
M: Peter Hoyes <Peter.Hoyes@arm.com>
|
||||
S: Maintained
|
||||
F: board/armltd/vexpress64/
|
||||
F: include/configs/vexpress_aemv8a.h
|
||||
F: configs/vexpress_aemv8a_defconfig
|
||||
F: include/configs/vexpress_aemv8.h
|
||||
|
||||
VEXPRESS_AEMV8A_SEMI BOARD
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
|
@@ -1,8 +1,8 @@
|
||||
DH electronics DHCOM Premium Developer Kit (2) i.MX8M Plus
|
||||
DH electronics DHCOM i.MX8M Plus and matching carrier boards
|
||||
M: Marek Vasut <marex@denx.de>
|
||||
L: u-boot@dh-electronics.com
|
||||
S: Maintained
|
||||
F: arch/arm/dts/imx8mp-dhcom-pdk2.dts
|
||||
F: arch/arm/dts/imx8mp-dhcom-pdk2-u-boot.dtsi
|
||||
F: board/dhelectronics/imx8mp_dhcom_pdk2/
|
||||
F: configs/imx8mp_dhcom_pdk2_defconfig
|
||||
F: include/configs/imx8mp_dhcom_pdk2.h
|
||||
F: arch/arm/dts/imx8mp-dhcom*
|
||||
F: board/dhelectronics/dh_imx8mp/
|
||||
F: configs/imx8mp_dhcom*defconfig
|
||||
F: include/configs/imx8mp_dhcom*
|
||||
|
@@ -1,5 +1,5 @@
|
||||
LS1012AFRDM BOARD
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
M: Pramod Kumar <pramod.kumar_1@nxp.com>
|
||||
S: Maintained
|
||||
F: board/freescale/ls1012afrdm/
|
||||
F: include/configs/ls1012afrdm.h
|
||||
|
@@ -1,5 +1,4 @@
|
||||
LS1012AQDS BOARD
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
M: Pramod Kumar <pramod.kumar_1@nxp.com>
|
||||
S: Maintained
|
||||
F: board/freescale/ls1012aqds/
|
||||
|
@@ -1,5 +1,4 @@
|
||||
LS1012ARDB BOARD
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
M: Pramod Kumar <pramod.kumar_1@nxp.com>
|
||||
S: Maintained
|
||||
F: board/freescale/ls1012ardb/
|
||||
|
@@ -1,5 +1,4 @@
|
||||
LS1028AQDS BOARD
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
M: Tang Yuantian <andy.tang@nxp.com>
|
||||
S: Maintained
|
||||
F: board/freescale/ls1028a/
|
||||
@@ -9,7 +8,6 @@ F: configs/ls1028aqds_tfa_defconfig
|
||||
F: configs/ls1028aqds_tfa_lpuart_defconfig
|
||||
|
||||
LS1028ARDB BOARD
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
M: Tang Yuantian <andy.tang@nxp.com>
|
||||
S: Maintained
|
||||
F: board/freescale/ls1028a/
|
||||
|
@@ -1,6 +1,5 @@
|
||||
LS1043AQDS BOARD
|
||||
M: Mingkai Hu <mingkai.hu@nxp.com>
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
S: Maintained
|
||||
F: board/freescale/ls1043aqds/
|
||||
F: include/configs/ls1043aqds.h
|
||||
|
@@ -1,6 +1,5 @@
|
||||
LS1043A BOARD
|
||||
M: Mingkai Hu <mingkai.hu@nxp.com>
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
S: Maintained
|
||||
F: board/freescale/ls1043ardb/
|
||||
F: include/configs/ls1043ardb.h
|
||||
|
@@ -1,6 +1,5 @@
|
||||
LS1046AQDS BOARD
|
||||
M: Mingkai Hu <Mingkai.Hu@nxp.com>
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
S: Maintained
|
||||
F: board/freescale/ls1046aqds/
|
||||
F: include/configs/ls1046aqds.h
|
||||
|
@@ -1,6 +1,5 @@
|
||||
LS1046A BOARD
|
||||
M: Mingkai Hu <mingkai.hu@nxp.com>
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
S: Maintained
|
||||
F: board/freescale/ls1046ardb/
|
||||
F: board/freescale/ls1046ardb/ls1046ardb.c
|
||||
|
@@ -1,6 +1,5 @@
|
||||
LS1088ARDB BOARD
|
||||
M: Ashish Kumar <Ashish.Kumar@nxp.com>
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
S: Maintained
|
||||
F: board/freescale/ls1088a/
|
||||
F: include/configs/ls1088ardb.h
|
||||
@@ -11,7 +10,6 @@ F: configs/ls1088ardb_tfa_SECURE_BOOT_defconfig
|
||||
|
||||
LS1088AQDS BOARD
|
||||
M: Ashish Kumar <Ashish.Kumar@nxp.com>
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
S: Maintained
|
||||
F: board/freescale/ls1088a/
|
||||
F: include/configs/ls1088aqds.h
|
||||
|
@@ -1,6 +1,5 @@
|
||||
LS2080A BOARD
|
||||
M: Priyanka Jain <priyanka.jain@nxp.com>
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
M: Wasim Khan <wasim.khan@nxp.com>
|
||||
S: Maintained
|
||||
F: board/freescale/ls2080aqds/
|
||||
|
@@ -10,7 +10,6 @@ F: configs/ls2080ardb_nand_defconfig
|
||||
|
||||
LS2088A_QSPI-boot BOARD
|
||||
M: Priyanka Jain <priyanka.jain@nxp.com>
|
||||
M: Rajesh Bhagat <rajesh.bhagat@nxp.com>
|
||||
M: Wasim Khan <wasim.khan@nxp.com>
|
||||
S: Maintained
|
||||
F: configs/ls2088ardb_qspi_defconfig
|
||||
|
@@ -24,8 +24,3 @@ F: configs/T1040RDB_SDCARD_defconfig
|
||||
F: configs/T1040D4RDB_SDCARD_defconfig
|
||||
F: configs/T1042D4RDB_SDCARD_defconfig
|
||||
F: configs/T1042RDB_PI_SDCARD_defconfig
|
||||
|
||||
T1042D4RDB_SECURE_BOOT BOARD
|
||||
M: Ruchika Gupta <ruchika.gupta@nxp.com>
|
||||
S: Maintained
|
||||
F: configs/T1042D4RDB_SECURE_BOOT_defconfig
|
||||
|
@@ -12,8 +12,3 @@ F: configs/T2080RDB_revD_defconfig
|
||||
F: configs/T2080RDB_revD_NAND_defconfig
|
||||
F: configs/T2080RDB_revD_SDCARD_defconfig
|
||||
F: configs/T2080RDB_revD_SPIFLASH_defconfig
|
||||
|
||||
T2080RDB_SECURE_BOOT BOARD
|
||||
M: Ruchika Gupta <ruchika.gupta@nxp.com>
|
||||
S: Maintained
|
||||
F: configs/T2080RDB_SECURE_BOOT_defconfig
|
||||
|
9
board/schneider/rzn1-snarc/MAINTAINERS
Normal file
9
board/schneider/rzn1-snarc/MAINTAINERS
Normal file
@@ -0,0 +1,9 @@
|
||||
RZN1 SNARC
|
||||
M: Ralph Siemsen <ralph.siemsen@linaro.org>
|
||||
S: Maintained
|
||||
F: board/schneider/rzn1-snarc/
|
||||
F: arch/arm/dts/r9a06g032-ddr.dtsi
|
||||
F: arch/arm/dts/r9a06g032-rzn1-snarc-u-boot.dtsi
|
||||
F: arch/arm/dts/r9a06g032-rzn1-snarc.dts
|
||||
F: configs/rzn1_snarc_defconfig
|
||||
F: include/configs/rzn1-snarc.h
|
@@ -240,18 +240,7 @@ int bootmeth_set_order(const char *order_str)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* setup_fs() - Set up read to read a file
|
||||
*
|
||||
* We must redo the setup before each filesystem operation. This function
|
||||
* handles that, including setting the filesystem type if a block device is not
|
||||
* being used
|
||||
*
|
||||
* @bflow: Information about file to try
|
||||
* @desc: Block descriptor to read from (NULL if not a block device)
|
||||
* Return: 0 if OK, -ve on error
|
||||
*/
|
||||
static int setup_fs(struct bootflow *bflow, struct blk_desc *desc)
|
||||
int bootmeth_setup_fs(struct bootflow *bflow, struct blk_desc *desc)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -288,7 +277,7 @@ int bootmeth_try_file(struct bootflow *bflow, struct blk_desc *desc,
|
||||
log_debug(" %s - err=%d\n", path, ret);
|
||||
|
||||
/* Sadly FS closes the file after fs_size() so we must redo this */
|
||||
ret2 = setup_fs(bflow, desc);
|
||||
ret2 = bootmeth_setup_fs(bflow, desc);
|
||||
if (ret2)
|
||||
return log_msg_ret("fs", ret2);
|
||||
|
||||
@@ -337,14 +326,14 @@ int bootmeth_alloc_other(struct bootflow *bflow, const char *fname,
|
||||
if (bflow->blk)
|
||||
desc = dev_get_uclass_plat(bflow->blk);
|
||||
|
||||
ret = setup_fs(bflow, desc);
|
||||
ret = bootmeth_setup_fs(bflow, desc);
|
||||
if (ret)
|
||||
return log_msg_ret("fs", ret);
|
||||
|
||||
ret = fs_size(path, &size);
|
||||
log_debug(" %s - err=%d\n", path, ret);
|
||||
|
||||
ret = setup_fs(bflow, desc);
|
||||
ret = bootmeth_setup_fs(bflow, desc);
|
||||
if (ret)
|
||||
return log_msg_ret("fs", ret);
|
||||
|
||||
@@ -369,7 +358,7 @@ int bootmeth_common_read_file(struct udevice *dev, struct bootflow *bflow,
|
||||
if (bflow->blk)
|
||||
desc = dev_get_uclass_plat(bflow->blk);
|
||||
|
||||
ret = setup_fs(bflow, desc);
|
||||
ret = bootmeth_setup_fs(bflow, desc);
|
||||
if (ret)
|
||||
return log_msg_ret("fs", ret);
|
||||
|
||||
@@ -379,7 +368,7 @@ int bootmeth_common_read_file(struct udevice *dev, struct bootflow *bflow,
|
||||
if (size > *sizep)
|
||||
return log_msg_ret("spc", -ENOSPC);
|
||||
|
||||
ret = setup_fs(bflow, desc);
|
||||
ret = bootmeth_setup_fs(bflow, desc);
|
||||
if (ret)
|
||||
return log_msg_ret("fs", ret);
|
||||
|
||||
|
@@ -21,6 +21,7 @@
|
||||
#include <mmc.h>
|
||||
#include <net.h>
|
||||
#include <pxe_utils.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
#define EFI_DIRNAME "efi/boot/"
|
||||
|
||||
@@ -94,6 +95,20 @@ static int get_efi_pxe_vci(char *str, int max_len)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* bootmeth_uses_network() - check if the media device is Ethernet
|
||||
*
|
||||
* @bflow: Bootflow to check
|
||||
* Returns: true if the media device is Ethernet, else false
|
||||
*/
|
||||
static bool bootmeth_uses_network(struct bootflow *bflow)
|
||||
{
|
||||
const struct udevice *media = dev_get_parent(bflow->dev);
|
||||
|
||||
return IS_ENABLED(CONFIG_CMD_DHCP) &&
|
||||
device_get_uclass_id(media) == UCLASS_ETH;
|
||||
}
|
||||
|
||||
static void set_efi_bootdev(struct blk_desc *desc, struct bootflow *bflow)
|
||||
{
|
||||
const struct udevice *media_dev;
|
||||
@@ -129,13 +144,24 @@ static void set_efi_bootdev(struct blk_desc *desc, struct bootflow *bflow)
|
||||
efi_set_bootdev(dev_name, devnum_str, bflow->fname, bflow->buf, size);
|
||||
}
|
||||
|
||||
static int efiload_read_file(struct blk_desc *desc, struct bootflow *bflow)
|
||||
static int efiload_read_file(struct bootflow *bflow, ulong addr)
|
||||
{
|
||||
struct blk_desc *desc = NULL;
|
||||
loff_t bytes_read;
|
||||
int ret;
|
||||
|
||||
ret = bootmeth_alloc_file(bflow, 0x2000000, 0x10000);
|
||||
if (bflow->blk)
|
||||
desc = dev_get_uclass_plat(bflow->blk);
|
||||
ret = bootmeth_setup_fs(bflow, desc);
|
||||
if (ret)
|
||||
return log_msg_ret("set", ret);
|
||||
|
||||
ret = fs_read(bflow->fname, addr, 0, bflow->size, &bytes_read);
|
||||
if (ret)
|
||||
return log_msg_ret("read", ret);
|
||||
bflow->buf = map_sysmem(addr, bflow->size);
|
||||
|
||||
set_efi_bootdev(desc, bflow);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -209,7 +235,18 @@ static int distro_efi_get_fdt_name(char *fname, int size, int seq)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int distro_efi_read_bootflow_file(struct udevice *dev,
|
||||
/*
|
||||
* distro_efi_try_bootflow_files() - Check that files are present
|
||||
*
|
||||
* This reads any FDT file and checks whether the bootflow file is present, for
|
||||
* later reading. We avoid reading the bootflow now, since it is likely large,
|
||||
* it may take a long time and we want to avoid needing to allocate memory for
|
||||
* it
|
||||
*
|
||||
* @dev: bootmeth device to use
|
||||
* @bflow: bootflow to update
|
||||
*/
|
||||
static int distro_efi_try_bootflow_files(struct udevice *dev,
|
||||
struct bootflow *bflow)
|
||||
{
|
||||
struct blk_desc *desc = NULL;
|
||||
@@ -233,9 +270,8 @@ static int distro_efi_read_bootflow_file(struct udevice *dev,
|
||||
if (ret)
|
||||
return log_msg_ret("try", ret);
|
||||
|
||||
ret = efiload_read_file(desc, bflow);
|
||||
if (ret)
|
||||
return log_msg_ret("read", ret);
|
||||
/* Since we can access the file, let's call it ready */
|
||||
bflow->state = BOOTFLOWST_READY;
|
||||
|
||||
fdt_addr = env_get_hex("fdt_addr_r", 0);
|
||||
|
||||
@@ -246,9 +282,12 @@ static int distro_efi_read_bootflow_file(struct udevice *dev,
|
||||
ret = distro_efi_get_fdt_name(fname, sizeof(fname), seq);
|
||||
if (ret == -EALREADY)
|
||||
bflow->flags = BOOTFLOWF_USE_PRIOR_FDT;
|
||||
if (!ret)
|
||||
if (!ret) {
|
||||
/* Limit FDT files to 4MB */
|
||||
size = SZ_4M;
|
||||
ret = bootmeth_common_read_file(dev, bflow, fname,
|
||||
fdt_addr, &size);
|
||||
}
|
||||
}
|
||||
|
||||
if (*fname) {
|
||||
@@ -354,17 +393,15 @@ static int distro_efi_read_bootflow_net(struct bootflow *bflow)
|
||||
|
||||
static int distro_efi_read_bootflow(struct udevice *dev, struct bootflow *bflow)
|
||||
{
|
||||
const struct udevice *media = dev_get_parent(bflow->dev);
|
||||
int ret;
|
||||
|
||||
if (IS_ENABLED(CONFIG_CMD_DHCP) &&
|
||||
device_get_uclass_id(media) == UCLASS_ETH) {
|
||||
if (bootmeth_uses_network(bflow)) {
|
||||
/* we only support reading from one device, so ignore 'dev' */
|
||||
ret = distro_efi_read_bootflow_net(bflow);
|
||||
if (ret)
|
||||
return log_msg_ret("net", ret);
|
||||
} else {
|
||||
ret = distro_efi_read_bootflow_file(dev, bflow);
|
||||
ret = distro_efi_try_bootflow_files(dev, bflow);
|
||||
if (ret)
|
||||
return log_msg_ret("blk", ret);
|
||||
}
|
||||
@@ -376,17 +413,13 @@ int distro_efi_boot(struct udevice *dev, struct bootflow *bflow)
|
||||
{
|
||||
ulong kernel, fdt;
|
||||
char cmd[50];
|
||||
int ret;
|
||||
|
||||
/* A non-zero buffer indicates the kernel is there */
|
||||
if (bflow->buf) {
|
||||
/* Set the EFI bootdev again, since reading an FDT loses it! */
|
||||
if (bflow->blk) {
|
||||
struct blk_desc *desc = dev_get_uclass_plat(bflow->blk);
|
||||
|
||||
set_efi_bootdev(desc, bflow);
|
||||
}
|
||||
|
||||
kernel = (ulong)map_to_sysmem(bflow->buf);
|
||||
kernel = env_get_hex("kernel_addr_r", 0);
|
||||
if (!bootmeth_uses_network(bflow)) {
|
||||
ret = efiload_read_file(bflow, kernel);
|
||||
if (ret)
|
||||
return log_msg_ret("read", ret);
|
||||
|
||||
/*
|
||||
* use the provided device tree if available, else fall back to
|
||||
@@ -405,7 +438,6 @@ int distro_efi_boot(struct udevice *dev, struct bootflow *bflow)
|
||||
* But this is the same behaviour for distro boot, so it can be
|
||||
* fixed here.
|
||||
*/
|
||||
kernel = env_get_hex("kernel_addr_r", 0);
|
||||
fdt = env_get_hex("fdt_addr_r", 0);
|
||||
}
|
||||
|
||||
|
@@ -31,6 +31,9 @@ static int extlinux_pxe_getfile(struct pxe_context *ctx, const char *file_path,
|
||||
int ret;
|
||||
|
||||
addr = simple_strtoul(file_addr, NULL, 16);
|
||||
|
||||
/* Allow up to 1GB */
|
||||
*sizep = 1 << 30;
|
||||
ret = bootmeth_read_file(info->dev, info->bflow, file_path, addr,
|
||||
sizep);
|
||||
if (ret)
|
||||
|
@@ -238,7 +238,7 @@ static int virtio_uclass_post_probe(struct udevice *udev)
|
||||
|
||||
ret = device_bind_driver(udev, name, str, &vdev);
|
||||
if (ret == -ENOENT) {
|
||||
debug("(%s): no driver configured\n", udev->name);
|
||||
debug("(%s): %s driver not configured\n", udev->name, name);
|
||||
return 0;
|
||||
}
|
||||
if (ret) {
|
||||
|
@@ -132,9 +132,9 @@ static int set_name(fat_itr *itr, const char *filename, char *shortname)
|
||||
return period_location;
|
||||
if (*dirent.name == ' ')
|
||||
*dirent.name = '_';
|
||||
/* 0xe5 signals a deleted directory entry. Replace it by 0x05. */
|
||||
if (*dirent.name == 0xe5)
|
||||
*dirent.name = 0x05;
|
||||
/* Substitute character 0xe5 signaling deletetion by character 0x05 */
|
||||
if (*dirent.name == DELETED_FLAG)
|
||||
*dirent.name = aRING;
|
||||
|
||||
/* If filename and short name are the same, quit. */
|
||||
sprintf(buf, "%.*s.%.3s", period_location, dirent.name, dirent.ext);
|
||||
|
@@ -262,6 +262,19 @@ int bootmeth_setup_iter_order(struct bootflow_iter *iter, bool include_global);
|
||||
*/
|
||||
int bootmeth_set_order(const char *order_str);
|
||||
|
||||
/**
|
||||
* bootmeth_setup_fs() - Set up read to read a file
|
||||
*
|
||||
* We must redo the setup before each filesystem operation. This function
|
||||
* handles that, including setting the filesystem type if a block device is not
|
||||
* being used
|
||||
*
|
||||
* @bflow: Information about file to try
|
||||
* @desc: Block descriptor to read from (NULL if not a block device)
|
||||
* Return: 0 if OK, -ve on error
|
||||
*/
|
||||
int bootmeth_setup_fs(struct bootflow *bflow, struct blk_desc *desc);
|
||||
|
||||
/**
|
||||
* bootmeth_try_file() - See we can access a given file
|
||||
*
|
||||
|
Reference in New Issue
Block a user