Merge branch '2024-11-22-assorted-fixes'

- Assorted additional lwIP fixes
- Assorted test fixes
- Assorted other localized fixes
This commit is contained in:
Tom Rini 2024-11-22 14:43:17 -06:00
commit 52c0e5f8a3
10 changed files with 75 additions and 24 deletions

View file

@ -1,5 +1,5 @@
TOTAL_COMPUTE BOARD
M: Usama Arif <usama.arif@arm.com>
M: Ben Horgan <ben.horgan@arm.com>
S: Maintained
F: board/armltd/total_compute/
F: include/configs/total_compute.h

View file

@ -2016,7 +2016,9 @@ config CMD_PING6
config CMD_CDP
bool "cdp"
help
Perform CDP network configuration
The cdp command is used to announce the U-Boot device in the network
and to retrieve configuration data including the VLAN id using the
proprietary Cisco Discovery Protocol (CDP).
config CMD_SNTP
bool "sntp"

View file

@ -27,6 +27,9 @@ U_BOOT_CMD(dns, 3, 1, do_dns, "lookup the IP of a hostname",
#endif
#if defined(CONFIG_CMD_WGET)
U_BOOT_CMD(wget, 3, 1, do_wget, "boot image via network using HTTP protocol",
"[loadAddress] URL");
U_BOOT_CMD(wget, 3, 1, do_wget,
"boot image via network using HTTP/HTTPS protocol",
"[loadAddress] url\n"
"wget [loadAddress] [host:]path"
);
#endif

View file

@ -124,6 +124,7 @@
};
mcu_fss0_ospi0_pins_default: mcu-fss0-ospi0-default-pins {
bootph-all;
pinctrl-single,pins = <
J721E_WKUP_IOPAD(0x0000, PIN_OUTPUT, 0) /* MCU_OSPI0_CLK */
J721E_WKUP_IOPAD(0x002c, PIN_OUTPUT, 0) /* MCU_OSPI0_CSn0 */

View file

@ -27,9 +27,9 @@ static void call_lwip_dhcp_fine_tmr(void *ctx)
static int dhcp_loop(struct udevice *udev)
{
char *ipstr = "ipaddr\0\0";
char *maskstr = "netmask\0\0";
char *gwstr = "gatewayip\0\0";
char ipstr[] = "ipaddr\0\0";
char maskstr[] = "netmask\0\0";
char gwstr[] = "gatewayip\0\0";
unsigned long start;
struct netif *netif;
struct dhcp *dhcp;
@ -111,9 +111,21 @@ static int dhcp_loop(struct udevice *udev)
int do_dhcp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
int ret;
eth_set_current();
return dhcp_loop(eth_get_dev());
ret = dhcp_loop(eth_get_dev());
if (ret)
return ret;
if (argc > 1) {
struct cmd_tbl cmdtp = {};
return do_tftpb(&cmdtp, 0, argc, argv);
}
return CMD_RET_SUCCESS;
}
int dhcp_run(ulong addr, const char *fname, bool autoload)

View file

@ -91,9 +91,9 @@ struct netif *net_lwip_get_netif(void)
static int get_udev_ipv4_info(struct udevice *dev, ip4_addr_t *ip,
ip4_addr_t *mask, ip4_addr_t *gw)
{
char *ipstr = "ipaddr\0\0";
char *maskstr = "netmask\0\0";
char *gwstr = "gatewayip\0\0";
char ipstr[] = "ipaddr\0\0";
char maskstr[] = "netmask\0\0";
char gwstr[] = "gatewayip\0\0";
int idx = dev_seq(dev);
char *env;

View file

@ -42,7 +42,6 @@ int mbedtls_hardware_poll(void *data, unsigned char *output, size_t len,
size_t *olen)
{
struct udevice *dev;
u64 rng = 0;
int ret;
*olen = 0;
@ -52,12 +51,11 @@ int mbedtls_hardware_poll(void *data, unsigned char *output, size_t len,
log_err("Failed to get an rng: %d\n", ret);
return ret;
}
ret = dm_rng_read(dev, &rng, sizeof(rng));
ret = dm_rng_read(dev, output, len);
if (ret)
return ret;
memcpy(output, &rng, len);
*olen = sizeof(rng);
*olen = len;
return 0;
}

View file

@ -1197,7 +1197,7 @@ static int bootflow_cros(struct unit_test_state *uts)
return 0;
}
BOOTSTD_TEST(bootflow_cros, UTF_CONSOLE);
BOOTSTD_TEST(bootflow_cros, UTF_CONSOLE | UTF_DM | UTF_SCAN_FDT);
/* Test Android bootmeth */
static int bootflow_android(struct unit_test_state *uts)
@ -1220,7 +1220,7 @@ static int bootflow_android(struct unit_test_state *uts)
return 0;
}
BOOTSTD_TEST(bootflow_android, UTF_CONSOLE);
BOOTSTD_TEST(bootflow_android, UTF_CONSOLE | UTF_DM | UTF_SCAN_FDT);
/* Test EFI bootmeth */
static int bootflow_efi(struct unit_test_state *uts)

View file

@ -18,6 +18,8 @@ static const char str4[] = "1234567890123 I lost closer friends";
static const char str5[] = "0x9876543210the last time I was deloused";
static const char str6[] = "0778octal is seldom used";
static const char str7[] = "707it is a piece of computing history";
static const char str8[] = "0x887e2561352d80fa";
static const char str9[] = "614FF7EAA63009DA";
static int str_upper(struct unit_test_state *uts)
{
@ -186,6 +188,22 @@ static int str_hextoul(struct unit_test_state *uts)
}
LIB_TEST(str_hextoul, 0);
static int str_hextoull(struct unit_test_state *uts)
{
char *endp;
/* Just a simple test, since we know this uses simple_strtoull() */
ut_asserteq_64(0x887e2561352d80faULL, hextoull(str8, &endp));
ut_asserteq_64(0x12, endp - str8);
ut_asserteq_64(0x614ff7eaa63009daULL, hextoull(str9, &endp));
ut_asserteq_64(0x10, endp - str9);
ut_asserteq_64(0x887e2561352d80faULL, hextoull(str8, NULL));
ut_asserteq_64(0x614ff7eaa63009daULL, hextoull(str9, NULL));
return 0;
}
LIB_TEST(str_hextoull, 0);
static int str_dectoul(struct unit_test_state *uts)
{
char *endp;

View file

@ -22,7 +22,11 @@ static int test_get_timer(struct unit_test_state *uts)
next = get_timer(0);
} while (start == next);
ut_asserteq(start + 1, next);
if (start + 1 != next) {
printf("%s: iter=%d, start=%lu, next=%lu, expected a difference of 1\n",
__func__, iter, start, next);
return -EINVAL;
}
start++;
}
@ -31,7 +35,11 @@ static int test_get_timer(struct unit_test_state *uts)
* an extra millisecond may have passed.
*/
diff = get_timer(base);
ut_assert(diff == iter || diff == iter + 1);
if (diff != iter && diff != iter + 1) {
printf("%s: expected get_timer(base) to match elapsed time: diff=%lu, expected=%d\n",
__func__, diff, iter);
return -EINVAL;
}
return 0;
}
@ -49,8 +57,11 @@ static int test_timer_get_us(struct unit_test_state *uts)
next = timer_get_us();
if (next != prev) {
delta = next - prev;
ut_assert(delta >= 0);
if (delta) {
if (delta < 0) {
printf("%s: timer_get_us() went backwards from %lu to %lu\n",
__func__, prev, next);
return -EINVAL;
} else if (delta != 0) {
if (delta < min)
min = delta;
prev = next;
@ -59,7 +70,11 @@ static int test_timer_get_us(struct unit_test_state *uts)
}
}
ut_asserteq(1, min);
if (min != 1) {
printf("%s: Minimum microsecond delta should be 1 but is %lu\n",
__func__, min);
return -EINVAL;
}
return 0;
}
@ -80,7 +95,8 @@ static int test_time_comparison(struct unit_test_state *uts)
error = delta_us - 1000000;
printf("%s: Microsecond time for 1 second: %lu, error = %ld\n",
__func__, delta_us, error);
ut_assert(abs(error) <= 1000);
if (abs(error) > 1000)
return -EINVAL;
return 0;
}
@ -99,7 +115,8 @@ static int test_udelay(struct unit_test_state *uts)
error = delta - 1000;
printf("%s: Delay time for 1000 udelay(1000): %lu ms, error = %ld\n",
__func__, delta, error);
ut_assert(abs(error) <= 100);
if (abs(error) > 100)
return -EINVAL;
return 0;
}