- fix Ethernet and random MAC's on WeTek Hub/Play2
- fix buffer overflow in serial, mac & usid read -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEPVPGJshWBf4d9CyLd9zb2sjISdEFAmYBR1oACgkQd9zb2sjI SdFmAQ//ahsfne7jPZjuPg9+6s4HrhHbYtwxwldtvithepmuOArOiMl3C48TrFDF MdvfBGb2dBXhWCIn3Sx3h1dHF3w0ItBluRvTmrLHJYRG6f17o5LFXV0zindfBPyi J/Pyg3QaCyyf2/r1vwrqkzH0qXgqE4XuhwM6VzLn9INGpEaAhlKAGxOF1Zi4YwKM CAvSSHFHb4NL7qRf/SVjnrKc4DhSIiNcHeUIGjMFNM8pnq9JtHdAiJ+Egc4VlTpj oDJSS9Ka1PGyLvYVcCOxBoO20h2J2WJptEnONSmq47fWq90k1LfrEZLzMSLanIgM XqM4X5qu9Fq6WWkb51oC14caLVAqZ2Snip4k3f/6W8k1fA6+fWWntTL8epYWvwnP X6PnGWi2oKniFCu1mJIxUTeq2Stm5OIPNNCP6cnK7EW9FpzfzX++39KP0OWACD66 OQCbk8eIMhp1ce4kZ+bP520uNkZVrjLzt7+UeOiWhvTbtNmRQKX0FxY92shIf+0u GCrKpqJkOU8W8sBQuNvQUuooqg3FXESY9IpL5fHCAsYy+IRrM8PXLR9c2No2O573 4SoVW90c5k2Dle7RzINegXd8uLUeetU5DnR+s8D04BHpyzlY7ttA2sO2Sq5nUnLF V2yF6rzxCNltAEBF5kBAuy89PCPWDjKFjoICqntfKc2G/x3gqcM= =kJ8c -----END PGP SIGNATURE----- Merge tag 'u-boot-amlogic-fixes-20240325' of https://source.denx.de/u-boot/custodians/u-boot-amlogic - fix Ethernet and random MAC's on WeTek Hub/Play2 - fix buffer overflow in serial, mac & usid read
This commit is contained in:
commit
34f0452e0e
13
arch/arm/dts/meson-gxbb-wetek-play2-u-boot.dtsi
Normal file
13
arch/arm/dts/meson-gxbb-wetek-play2-u-boot.dtsi
Normal file
@ -0,0 +1,13 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2019 BayLibre, SAS.
|
||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
*/
|
||||
|
||||
#include "meson-gx-u-boot.dtsi"
|
||||
|
||||
ðmac {
|
||||
snps,reset-gpio = <&gpio GPIOZ_14 0>;
|
||||
snps,reset-delays-us = <0 10000 1000000>;
|
||||
snps,reset-active-low;
|
||||
};
|
||||
@ -20,7 +20,7 @@
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
u8 mac_addr[MAC_ADDR_LEN];
|
||||
u8 mac_addr[MAC_ADDR_LEN + 1];
|
||||
char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
|
||||
ssize_t len;
|
||||
|
||||
@ -41,6 +41,7 @@ int misc_init_r(void)
|
||||
tmp[2] = '\0';
|
||||
mac_addr[i] = hextoul(tmp, NULL);
|
||||
}
|
||||
mac_addr[MAC_ADDR_LEN] = '\0';
|
||||
|
||||
if (is_valid_ethaddr(mac_addr))
|
||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
u8 mac_addr[ARP_HLEN];
|
||||
u8 mac_addr[ARP_HLEN + 1];
|
||||
char serial[SM_SERIAL_SIZE];
|
||||
u32 sid;
|
||||
|
||||
@ -34,6 +34,7 @@ int misc_init_r(void)
|
||||
mac_addr[3] = (sid >> 16) & 0xff;
|
||||
mac_addr[4] = (sid >> 8) & 0xff;
|
||||
mac_addr[5] = (sid >> 0) & 0xff;
|
||||
mac_addr[ARP_HLEN] = '\0';
|
||||
|
||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||
}
|
||||
|
||||
@ -27,9 +27,9 @@
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
u8 mac_addr[EFUSE_MAC_SIZE];
|
||||
char serial[EFUSE_SN_SIZE];
|
||||
char usid[EFUSE_USID_SIZE];
|
||||
u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||
char serial[EFUSE_SN_SIZE + 1];
|
||||
char usid[EFUSE_USID_SIZE + 1];
|
||||
ssize_t len;
|
||||
unsigned int adcval;
|
||||
int ret;
|
||||
@ -37,6 +37,7 @@ int misc_init_r(void)
|
||||
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
||||
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
||||
mac_addr, EFUSE_MAC_SIZE);
|
||||
mac_addr[len] = '\0';
|
||||
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||
else
|
||||
@ -46,6 +47,7 @@ int misc_init_r(void)
|
||||
if (!env_get("serial")) {
|
||||
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
||||
EFUSE_SN_SIZE);
|
||||
serial[len] = '\0';
|
||||
if (len == EFUSE_SN_SIZE)
|
||||
env_set("serial", serial);
|
||||
}
|
||||
@ -53,6 +55,7 @@ int misc_init_r(void)
|
||||
if (!env_get("usid")) {
|
||||
len = meson_sm_read_efuse(EFUSE_USID_OFFSET, usid,
|
||||
EFUSE_USID_SIZE);
|
||||
usid[len] = '\0';
|
||||
if (len == EFUSE_USID_SIZE)
|
||||
env_set("usid", usid);
|
||||
}
|
||||
|
||||
@ -107,7 +107,7 @@ static int odroid_detect_variant(void)
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
u8 mac_addr[MAC_ADDR_LEN];
|
||||
u8 mac_addr[MAC_ADDR_LEN + 1];
|
||||
char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
|
||||
ssize_t len;
|
||||
|
||||
@ -128,6 +128,7 @@ int misc_init_r(void)
|
||||
tmp[2] = '\0';
|
||||
mac_addr[i] = hextoul(tmp, NULL);
|
||||
}
|
||||
mac_addr[MAC_ADDR_LEN] = '\0';
|
||||
|
||||
if (is_valid_ethaddr(mac_addr))
|
||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||
|
||||
@ -21,20 +21,24 @@
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
u8 mac_addr[EFUSE_MAC_SIZE];
|
||||
char serial[EFUSE_SN_SIZE];
|
||||
u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||
char serial[EFUSE_SN_SIZE + 1];
|
||||
ssize_t len;
|
||||
|
||||
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
||||
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
||||
mac_addr, EFUSE_MAC_SIZE);
|
||||
mac_addr[len] = '\0';
|
||||
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||
else
|
||||
meson_generate_serial_ethaddr();
|
||||
}
|
||||
|
||||
if (!env_get("serial#")) {
|
||||
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
||||
EFUSE_SN_SIZE);
|
||||
serial[len] = '\0';
|
||||
if (len == EFUSE_SN_SIZE)
|
||||
env_set("serial#", serial);
|
||||
}
|
||||
|
||||
@ -21,13 +21,14 @@
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
u8 mac_addr[EFUSE_MAC_SIZE];
|
||||
char serial[EFUSE_SN_SIZE];
|
||||
u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||
char serial[EFUSE_SN_SIZE + 1];
|
||||
ssize_t len;
|
||||
|
||||
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
||||
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
||||
mac_addr, EFUSE_MAC_SIZE);
|
||||
mac_addr[len] = '\0';
|
||||
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||
}
|
||||
@ -35,6 +36,7 @@ int misc_init_r(void)
|
||||
if (!env_get("serial#")) {
|
||||
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
||||
EFUSE_SN_SIZE);
|
||||
serial[len] = '\0';
|
||||
if (len == EFUSE_SN_SIZE)
|
||||
env_set("serial#", serial);
|
||||
}
|
||||
|
||||
@ -22,13 +22,14 @@
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
u8 mac_addr[EFUSE_MAC_SIZE];
|
||||
char serial[EFUSE_SN_SIZE];
|
||||
u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||
char serial[EFUSE_SN_SIZE + 1];
|
||||
ssize_t len;
|
||||
|
||||
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
||||
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
||||
mac_addr, EFUSE_MAC_SIZE);
|
||||
mac_addr[len] = '\0';
|
||||
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||
else
|
||||
@ -38,6 +39,7 @@ int misc_init_r(void)
|
||||
if (!env_get("serial#")) {
|
||||
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
||||
EFUSE_SN_SIZE);
|
||||
serial[len] = '\0';
|
||||
if (len == EFUSE_SN_SIZE)
|
||||
env_set("serial#", serial);
|
||||
}
|
||||
|
||||
@ -22,13 +22,14 @@
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
u8 mac_addr[EFUSE_MAC_SIZE];
|
||||
char serial[EFUSE_SN_SIZE];
|
||||
u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||
char serial[EFUSE_SN_SIZE + 1];
|
||||
ssize_t len;
|
||||
|
||||
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
||||
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
||||
mac_addr, EFUSE_MAC_SIZE);
|
||||
mac_addr[len] = '\0';
|
||||
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||
else
|
||||
@ -38,6 +39,7 @@ int misc_init_r(void)
|
||||
if (!env_get("serial#")) {
|
||||
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
||||
EFUSE_SN_SIZE);
|
||||
serial[len] = '\0';
|
||||
if (len == EFUSE_SN_SIZE)
|
||||
env_set("serial#", serial);
|
||||
}
|
||||
|
||||
@ -151,7 +151,7 @@ int meson_ft_board_setup(void *blob, struct bd_info *bd)
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
u8 mac_addr[MAC_ADDR_LEN];
|
||||
u8 mac_addr[MAC_ADDR_LEN + 1];
|
||||
char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
|
||||
char serial_string[EFUSE_MAC_SIZE + 1];
|
||||
ssize_t len;
|
||||
@ -169,6 +169,7 @@ int misc_init_r(void)
|
||||
tmp[2] = '\0';
|
||||
mac_addr[i] = hextoul(tmp, NULL);
|
||||
}
|
||||
mac_addr[MAC_ADDR_LEN] = '\0';
|
||||
|
||||
if (is_valid_ethaddr(mac_addr))
|
||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user