mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-22 20:58:22 +00:00
Prepare v2024.04-rc5
-----BEGIN PGP SIGNATURE----- iQGzBAABCgAdFiEEGjx/cOCPqxcHgJu/FHw5/5Y0tywFAmYCK3wACgkQFHw5/5Y0 tyzV9wwAo6JN9dVBBivLFROeDb24t3TmgT7e0AEql6Vjfj1x9xzW/L7ki0cdbGjW sNmqPR9ObnONv5hxMV1nlUE6lRYOj/eRaWZsz1N8e02VFhegePNgd/ZDeaPZyO10 mDhKdGh5yr0AaIer1Yj21b7QKxrriAN9ct/qR4sw2j1AlxF959PSw0qOzb6wjpDp I3QCbUkmKt6ATwyYzZnM0mifs0fb1u4M6C91V50SsyBBC30veEL8Bpgd83rTtZl+ gm1ruekfKXhmT6V92Ok3maFNU+odF6X/R1YcM2n3DTso+MugPHFYTj5VZy5qZN3+ 4x6wHTQLDr81vPz7hx4gDTK42nVplFnIHp8p9WBSH6Zs7gCYPyZAfCPmF4EzBVfo bjpixpGuhmM8yQweD5nFWpvnXK/e5nbfxW2vt85G+cjjNbw0OZ182UJH8PEAUam6 786p5y1YyS9pFgJgLSHrQ041E6EQ4QjMpNbVF+7MUpe49emA0l/V7VLSNGWpeKzg tcuO1ycK =4m/d -----END PGP SIGNATURE----- Merge tag 'v2024.04-rc5' into next Prepare v2024.04-rc5
This commit is contained in:
commit
ab8d9ca304
29 changed files with 222 additions and 72 deletions
1
.mailmap
1
.mailmap
|
@ -57,6 +57,7 @@ John Linn <john.linn@amd.com> <john.linn@xilinx.com>
|
||||||
Jyotheeswar Reddy Mutthareddyvari <jyotheeswar.reddy.mutthareddyvari@amd.com> <jyothee@xilinx.com>
|
Jyotheeswar Reddy Mutthareddyvari <jyotheeswar.reddy.mutthareddyvari@amd.com> <jyothee@xilinx.com>
|
||||||
Jyotheeswar Reddy Mutthareddyvari <jyotheeswar.reddy.mutthareddyvari@amd.com> <jyotheeswar.reddy.mutthareddyvari@xilinx.com>
|
Jyotheeswar Reddy Mutthareddyvari <jyotheeswar.reddy.mutthareddyvari@amd.com> <jyotheeswar.reddy.mutthareddyvari@xilinx.com>
|
||||||
Kalyani Akula <kalyani.akula@amd.com> <kalyani.akula@xilinx.com>
|
Kalyani Akula <kalyani.akula@amd.com> <kalyani.akula@xilinx.com>
|
||||||
|
Masahisa Kojima <kojima.masahisa@socionext.com> <masahisa.kojima@linaro.org>
|
||||||
Love Kumar <love.kumar@amd.com> <love.kumar@xilinx.com>
|
Love Kumar <love.kumar@amd.com> <love.kumar@xilinx.com>
|
||||||
Lukasz Majewski <lukma@denx.de>
|
Lukasz Majewski <lukma@denx.de>
|
||||||
Marek Behún <kabel@kernel.org> <marek.behun@nic.cz>
|
Marek Behún <kabel@kernel.org> <marek.behun@nic.cz>
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -3,7 +3,7 @@
|
||||||
VERSION = 2024
|
VERSION = 2024
|
||||||
PATCHLEVEL = 04
|
PATCHLEVEL = 04
|
||||||
SUBLEVEL =
|
SUBLEVEL =
|
||||||
EXTRAVERSION = -rc4
|
EXTRAVERSION = -rc5
|
||||||
NAME =
|
NAME =
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
*/
|
*/
|
||||||
assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>, <&k3_clks 157 20>;
|
assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>, <&k3_clks 157 20>;
|
||||||
assigned-clock-parents = <&k3_clks 61 2>, <0>, <&k3_clks 157 22>;
|
assigned-clock-parents = <&k3_clks 61 2>, <0>, <&k3_clks 157 22>;
|
||||||
assigned-clock-rates = <200000000>, <1000000000>, <25000000>;
|
assigned-clock-rates = <200000000>, <800000000>, <25000000>;
|
||||||
clocks = <&k3_clks 61 0>;
|
clocks = <&k3_clks 61 0>;
|
||||||
power-domains = <&k3_pds 61 TI_SCI_PD_EXCLUSIVE>,
|
power-domains = <&k3_pds 61 TI_SCI_PD_EXCLUSIVE>,
|
||||||
<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>,
|
<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>,
|
||||||
|
|
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;
|
||||||
|
};
|
|
@ -933,19 +933,28 @@ int disable_vpu_nodes(void *blob)
|
||||||
{
|
{
|
||||||
static const char * const nodes_path_8mq[] = {
|
static const char * const nodes_path_8mq[] = {
|
||||||
"/vpu@38300000",
|
"/vpu@38300000",
|
||||||
"/soc@0/vpu@38300000"
|
"/soc@0/vpu@38300000",
|
||||||
|
"/soc@0/video-codec@38300000",
|
||||||
|
"/soc@0/video-codec@38310000",
|
||||||
|
"/soc@0/blk-ctrl@38320000",
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char * const nodes_path_8mm[] = {
|
static const char * const nodes_path_8mm[] = {
|
||||||
"/vpu_g1@38300000",
|
"/vpu_g1@38300000",
|
||||||
"/vpu_g2@38310000",
|
"/vpu_g2@38310000",
|
||||||
"/vpu_h1@38320000"
|
"/vpu_h1@38320000",
|
||||||
|
"/soc@0/video-codec@38300000",
|
||||||
|
"/soc@0/video-codec@38310000",
|
||||||
|
"/soc@0/blk-ctrl@38330000",
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char * const nodes_path_8mp[] = {
|
static const char * const nodes_path_8mp[] = {
|
||||||
"/vpu_g1@38300000",
|
"/vpu_g1@38300000",
|
||||||
"/vpu_g2@38310000",
|
"/vpu_g2@38310000",
|
||||||
"/vpu_vc8000e@38320000"
|
"/vpu_vc8000e@38320000",
|
||||||
|
"/soc@0/video-codec@38300000",
|
||||||
|
"/soc@0/video-codec@38310000",
|
||||||
|
"/soc@0/blk-ctrl@38330000",
|
||||||
};
|
};
|
||||||
|
|
||||||
if (is_imx8mq())
|
if (is_imx8mq())
|
||||||
|
@ -1100,7 +1109,8 @@ int disable_gpu_nodes(void *blob)
|
||||||
int disable_npu_nodes(void *blob)
|
int disable_npu_nodes(void *blob)
|
||||||
{
|
{
|
||||||
static const char * const nodes_path_8mp[] = {
|
static const char * const nodes_path_8mp[] = {
|
||||||
"/vipsi@38500000"
|
"/vipsi@38500000",
|
||||||
|
"/soc@0/npu@38500000",
|
||||||
};
|
};
|
||||||
|
|
||||||
return disable_fdt_nodes(blob, nodes_path_8mp, ARRAY_SIZE(nodes_path_8mp));
|
return disable_fdt_nodes(blob, nodes_path_8mp, ARRAY_SIZE(nodes_path_8mp));
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
int misc_init_r(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];
|
char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@ int misc_init_r(void)
|
||||||
tmp[2] = '\0';
|
tmp[2] = '\0';
|
||||||
mac_addr[i] = hextoul(tmp, NULL);
|
mac_addr[i] = hextoul(tmp, NULL);
|
||||||
}
|
}
|
||||||
|
mac_addr[MAC_ADDR_LEN] = '\0';
|
||||||
|
|
||||||
if (is_valid_ethaddr(mac_addr))
|
if (is_valid_ethaddr(mac_addr))
|
||||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
int misc_init_r(void)
|
int misc_init_r(void)
|
||||||
{
|
{
|
||||||
u8 mac_addr[ARP_HLEN];
|
u8 mac_addr[ARP_HLEN + 1];
|
||||||
char serial[SM_SERIAL_SIZE];
|
char serial[SM_SERIAL_SIZE];
|
||||||
u32 sid;
|
u32 sid;
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@ int misc_init_r(void)
|
||||||
mac_addr[3] = (sid >> 16) & 0xff;
|
mac_addr[3] = (sid >> 16) & 0xff;
|
||||||
mac_addr[4] = (sid >> 8) & 0xff;
|
mac_addr[4] = (sid >> 8) & 0xff;
|
||||||
mac_addr[5] = (sid >> 0) & 0xff;
|
mac_addr[5] = (sid >> 0) & 0xff;
|
||||||
|
mac_addr[ARP_HLEN] = '\0';
|
||||||
|
|
||||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,9 +27,9 @@
|
||||||
|
|
||||||
int misc_init_r(void)
|
int misc_init_r(void)
|
||||||
{
|
{
|
||||||
u8 mac_addr[EFUSE_MAC_SIZE];
|
u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||||
char serial[EFUSE_SN_SIZE];
|
char serial[EFUSE_SN_SIZE + 1];
|
||||||
char usid[EFUSE_USID_SIZE];
|
char usid[EFUSE_USID_SIZE + 1];
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
unsigned int adcval;
|
unsigned int adcval;
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -37,6 +37,7 @@ int misc_init_r(void)
|
||||||
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
||||||
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
||||||
mac_addr, EFUSE_MAC_SIZE);
|
mac_addr, EFUSE_MAC_SIZE);
|
||||||
|
mac_addr[len] = '\0';
|
||||||
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
||||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||||
else
|
else
|
||||||
|
@ -46,6 +47,7 @@ int misc_init_r(void)
|
||||||
if (!env_get("serial")) {
|
if (!env_get("serial")) {
|
||||||
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
||||||
EFUSE_SN_SIZE);
|
EFUSE_SN_SIZE);
|
||||||
|
serial[len] = '\0';
|
||||||
if (len == EFUSE_SN_SIZE)
|
if (len == EFUSE_SN_SIZE)
|
||||||
env_set("serial", serial);
|
env_set("serial", serial);
|
||||||
}
|
}
|
||||||
|
@ -53,6 +55,7 @@ int misc_init_r(void)
|
||||||
if (!env_get("usid")) {
|
if (!env_get("usid")) {
|
||||||
len = meson_sm_read_efuse(EFUSE_USID_OFFSET, usid,
|
len = meson_sm_read_efuse(EFUSE_USID_OFFSET, usid,
|
||||||
EFUSE_USID_SIZE);
|
EFUSE_USID_SIZE);
|
||||||
|
usid[len] = '\0';
|
||||||
if (len == EFUSE_USID_SIZE)
|
if (len == EFUSE_USID_SIZE)
|
||||||
env_set("usid", usid);
|
env_set("usid", usid);
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,7 +107,7 @@ static int odroid_detect_variant(void)
|
||||||
|
|
||||||
int misc_init_r(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];
|
char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
|
|
||||||
|
@ -128,6 +128,7 @@ int misc_init_r(void)
|
||||||
tmp[2] = '\0';
|
tmp[2] = '\0';
|
||||||
mac_addr[i] = hextoul(tmp, NULL);
|
mac_addr[i] = hextoul(tmp, NULL);
|
||||||
}
|
}
|
||||||
|
mac_addr[MAC_ADDR_LEN] = '\0';
|
||||||
|
|
||||||
if (is_valid_ethaddr(mac_addr))
|
if (is_valid_ethaddr(mac_addr))
|
||||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||||
|
|
|
@ -21,20 +21,24 @@
|
||||||
|
|
||||||
int misc_init_r(void)
|
int misc_init_r(void)
|
||||||
{
|
{
|
||||||
u8 mac_addr[EFUSE_MAC_SIZE];
|
u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||||
char serial[EFUSE_SN_SIZE];
|
char serial[EFUSE_SN_SIZE + 1];
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
|
|
||||||
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
||||||
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
||||||
mac_addr, EFUSE_MAC_SIZE);
|
mac_addr, EFUSE_MAC_SIZE);
|
||||||
|
mac_addr[len] = '\0';
|
||||||
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
||||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||||
|
else
|
||||||
|
meson_generate_serial_ethaddr();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!env_get("serial#")) {
|
if (!env_get("serial#")) {
|
||||||
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
||||||
EFUSE_SN_SIZE);
|
EFUSE_SN_SIZE);
|
||||||
|
serial[len] = '\0';
|
||||||
if (len == EFUSE_SN_SIZE)
|
if (len == EFUSE_SN_SIZE)
|
||||||
env_set("serial#", serial);
|
env_set("serial#", serial);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,13 +21,14 @@
|
||||||
|
|
||||||
int misc_init_r(void)
|
int misc_init_r(void)
|
||||||
{
|
{
|
||||||
u8 mac_addr[EFUSE_MAC_SIZE];
|
u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||||
char serial[EFUSE_SN_SIZE];
|
char serial[EFUSE_SN_SIZE + 1];
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
|
|
||||||
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
||||||
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
||||||
mac_addr, EFUSE_MAC_SIZE);
|
mac_addr, EFUSE_MAC_SIZE);
|
||||||
|
mac_addr[len] = '\0';
|
||||||
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
||||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||||
}
|
}
|
||||||
|
@ -35,6 +36,7 @@ int misc_init_r(void)
|
||||||
if (!env_get("serial#")) {
|
if (!env_get("serial#")) {
|
||||||
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
||||||
EFUSE_SN_SIZE);
|
EFUSE_SN_SIZE);
|
||||||
|
serial[len] = '\0';
|
||||||
if (len == EFUSE_SN_SIZE)
|
if (len == EFUSE_SN_SIZE)
|
||||||
env_set("serial#", serial);
|
env_set("serial#", serial);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,13 +22,14 @@
|
||||||
|
|
||||||
int misc_init_r(void)
|
int misc_init_r(void)
|
||||||
{
|
{
|
||||||
u8 mac_addr[EFUSE_MAC_SIZE];
|
u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||||
char serial[EFUSE_SN_SIZE];
|
char serial[EFUSE_SN_SIZE + 1];
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
|
|
||||||
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
||||||
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
||||||
mac_addr, EFUSE_MAC_SIZE);
|
mac_addr, EFUSE_MAC_SIZE);
|
||||||
|
mac_addr[len] = '\0';
|
||||||
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
||||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||||
else
|
else
|
||||||
|
@ -38,6 +39,7 @@ int misc_init_r(void)
|
||||||
if (!env_get("serial#")) {
|
if (!env_get("serial#")) {
|
||||||
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
||||||
EFUSE_SN_SIZE);
|
EFUSE_SN_SIZE);
|
||||||
|
serial[len] = '\0';
|
||||||
if (len == EFUSE_SN_SIZE)
|
if (len == EFUSE_SN_SIZE)
|
||||||
env_set("serial#", serial);
|
env_set("serial#", serial);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,13 +22,14 @@
|
||||||
|
|
||||||
int misc_init_r(void)
|
int misc_init_r(void)
|
||||||
{
|
{
|
||||||
u8 mac_addr[EFUSE_MAC_SIZE];
|
u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||||
char serial[EFUSE_SN_SIZE];
|
char serial[EFUSE_SN_SIZE + 1];
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
|
|
||||||
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
||||||
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
||||||
mac_addr, EFUSE_MAC_SIZE);
|
mac_addr, EFUSE_MAC_SIZE);
|
||||||
|
mac_addr[len] = '\0';
|
||||||
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
||||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||||
else
|
else
|
||||||
|
@ -38,6 +39,7 @@ int misc_init_r(void)
|
||||||
if (!env_get("serial#")) {
|
if (!env_get("serial#")) {
|
||||||
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
||||||
EFUSE_SN_SIZE);
|
EFUSE_SN_SIZE);
|
||||||
|
serial[len] = '\0';
|
||||||
if (len == EFUSE_SN_SIZE)
|
if (len == EFUSE_SN_SIZE)
|
||||||
env_set("serial#", serial);
|
env_set("serial#", serial);
|
||||||
}
|
}
|
||||||
|
|
|
@ -151,7 +151,7 @@ int meson_ft_board_setup(void *blob, struct bd_info *bd)
|
||||||
|
|
||||||
int misc_init_r(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];
|
char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
|
||||||
char serial_string[EFUSE_MAC_SIZE + 1];
|
char serial_string[EFUSE_MAC_SIZE + 1];
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
|
@ -169,6 +169,7 @@ int misc_init_r(void)
|
||||||
tmp[2] = '\0';
|
tmp[2] = '\0';
|
||||||
mac_addr[i] = hextoul(tmp, NULL);
|
mac_addr[i] = hextoul(tmp, NULL);
|
||||||
}
|
}
|
||||||
|
mac_addr[MAC_ADDR_LEN] = '\0';
|
||||||
|
|
||||||
if (is_valid_ethaddr(mac_addr))
|
if (is_valid_ethaddr(mac_addr))
|
||||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||||
|
|
|
@ -248,4 +248,9 @@ u8 __maybe_unused phytec_get_rev(struct phytec_eeprom_data *data)
|
||||||
return PHYTEC_EEPROM_INVAL;
|
return PHYTEC_EEPROM_INVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u8 __maybe_unused phytec_get_som_type(struct phytec_eeprom_data *data)
|
||||||
|
{
|
||||||
|
return PHYTEC_EEPROM_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* IS_ENABLED(CONFIG_PHYTEC_SOM_DETECTION) */
|
#endif /* IS_ENABLED(CONFIG_PHYTEC_SOM_DETECTION) */
|
||||||
|
|
|
@ -133,7 +133,7 @@ void board_mem_get_layout(u64 *phys_sdram_1_start,
|
||||||
struct tdx_user_fuses tdxramfuses;
|
struct tdx_user_fuses tdxramfuses;
|
||||||
int scierr = sc_misc_otp_fuse_read(-1, 6, &val);
|
int scierr = sc_misc_otp_fuse_read(-1, 6, &val);
|
||||||
|
|
||||||
if (scierr) {
|
if (!scierr) {
|
||||||
/* QP has one A72 core disabled */
|
/* QP has one A72 core disabled */
|
||||||
is_quadplus = ((val >> 4) & 0x3) != 0x0;
|
is_quadplus = ((val >> 4) & 0x3) != 0x0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ static int is_imx8dx(void)
|
||||||
u32 val = 0;
|
u32 val = 0;
|
||||||
int sc_err = sc_misc_otp_fuse_read(-1, 6, &val);
|
int sc_err = sc_misc_otp_fuse_read(-1, 6, &val);
|
||||||
|
|
||||||
if (sc_err) {
|
if (!sc_err) {
|
||||||
/* DX has two A35 cores disabled */
|
/* DX has two A35 cores disabled */
|
||||||
return (val & 0xf) != 0x0;
|
return (val & 0xf) != 0x0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,9 +154,7 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||||
!strcmp(argv[1], "bootmgr")) {
|
!strcmp(argv[1], "bootmgr")) {
|
||||||
ret = efi_bootmgr_run(fdt);
|
ret = efi_bootmgr_run(fdt);
|
||||||
|
|
||||||
if (ret == EFI_INVALID_PARAMETER)
|
if (ret != EFI_SUCCESS)
|
||||||
return CMD_RET_USAGE;
|
|
||||||
else if (ret)
|
|
||||||
return CMD_RET_FAILURE;
|
return CMD_RET_FAILURE;
|
||||||
|
|
||||||
return CMD_RET_SUCCESS;
|
return CMD_RET_SUCCESS;
|
||||||
|
@ -173,9 +171,7 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = efi_install_fdt(fdt);
|
ret = efi_install_fdt(fdt);
|
||||||
if (ret == EFI_INVALID_PARAMETER)
|
if (ret != EFI_SUCCESS)
|
||||||
return CMD_RET_USAGE;
|
|
||||||
else if (ret != EFI_SUCCESS)
|
|
||||||
return CMD_RET_FAILURE;
|
return CMD_RET_FAILURE;
|
||||||
|
|
||||||
return do_efi_selftest();
|
return do_efi_selftest();
|
||||||
|
@ -218,9 +214,7 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||||
|
|
||||||
ret = efi_binary_run(image_buf, size, fdt);
|
ret = efi_binary_run(image_buf, size, fdt);
|
||||||
|
|
||||||
if (ret == EFI_INVALID_PARAMETER)
|
if (ret != EFI_SUCCESS)
|
||||||
return CMD_RET_USAGE;
|
|
||||||
else if (ret)
|
|
||||||
return CMD_RET_FAILURE;
|
return CMD_RET_FAILURE;
|
||||||
|
|
||||||
return CMD_RET_SUCCESS;
|
return CMD_RET_SUCCESS;
|
||||||
|
|
|
@ -35,7 +35,7 @@ CONFIG_SPL_BSS_MAX_SIZE=0x3000
|
||||||
CONFIG_SPL_SYS_REPORT_STACK_F_USAGE=y
|
CONFIG_SPL_SYS_REPORT_STACK_F_USAGE=y
|
||||||
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
|
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
|
||||||
CONFIG_SPL_STACK_R=y
|
CONFIG_SPL_STACK_R=y
|
||||||
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x140000
|
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x200000
|
||||||
CONFIG_SPL_SEPARATE_BSS=y
|
CONFIG_SPL_SEPARATE_BSS=y
|
||||||
CONFIG_SPL_SYS_MALLOC=y
|
CONFIG_SPL_SYS_MALLOC=y
|
||||||
CONFIG_SPL_HAS_CUSTOM_MALLOC_START=y
|
CONFIG_SPL_HAS_CUSTOM_MALLOC_START=y
|
||||||
|
|
|
@ -20,36 +20,36 @@ Quick Start
|
||||||
Get and Build the ARM Trusted Firmware
|
Get and Build the ARM Trusted Firmware
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
|
|
||||||
|
Download the imx-atf repository:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ git clone -b lf_v2.6 https://github.com/nxp-imx/imx-atf.git
|
||||||
|
|
||||||
|
Compile it with an aarch64 toolchain:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ git clone -b imx_4.14.78_1.0.0_ga https://github.com/nxp-imx/imx-atf
|
|
||||||
$ cd imx-atf/
|
$ cd imx-atf/
|
||||||
$ make PLAT=imx8qm bl31
|
$ make PLAT=imx8qm bl31
|
||||||
|
|
||||||
Get scfw_tcm.bin and ahab-container.img
|
Get scfw_tcm.bin and ahab-container.img
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
Download imx-seco firmware and extract it:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ wget https://github.com/toradex/meta-fsl-bsp-release/blob/toradex-sumo-4.14.78-1.0.0_ga-bringup/imx/meta-bsp/recipes-
|
$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-seco-5.8.7.bin
|
||||||
bsp/imx-sc-firmware/files/mx8qm-apalis-scfw-tcm.bin?raw=true
|
$ sh imx-seco-5.8.7.bin --auto-accept
|
||||||
$ mv mx8qm-apalis-scfw-tcm.bin\?raw\=true mx8qm-apalis-scfw-tcm.bin
|
|
||||||
$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.0.bin
|
|
||||||
$ chmod +x firmware-imx-8.0.bin
|
|
||||||
$ ./firmware-imx-8.0.bin
|
|
||||||
|
|
||||||
Copy the following binaries to the U-Boot folder:
|
Copy the following binaries to the U-Boot folder:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ cp imx-atf/build/imx8qm/release/bl31.bin .
|
$ wget https://github.com/toradex/i.MX-System-Controller-Firmware/raw/master/src/scfw_export_mx8qm_b0/build_mx8qm_b0/mx8qm-apalis-scfw-tcm.bin
|
||||||
$ cp u-boot/u-boot.bin .
|
$ cp ../imx-atf/build/imx8qm/release/bl31.bin .
|
||||||
|
$ cp ../imx-seco-5.8.7/firmware/seco/mx8qmb0-ahab-container.img mx8qm-ahab-container.img
|
||||||
Copy the following firmware to the U-Boot folder:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
$ cp firmware-imx-8.0/firmware/seco/ahab-container.img .
|
|
||||||
|
|
||||||
Build U-Boot
|
Build U-Boot
|
||||||
------------
|
------------
|
||||||
|
@ -64,7 +64,7 @@ Load the U-Boot Binary Using UUU
|
||||||
|
|
||||||
Get the latest version of the universal update utility (uuu) aka ``mfgtools 3.0``:
|
Get the latest version of the universal update utility (uuu) aka ``mfgtools 3.0``:
|
||||||
|
|
||||||
https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools%2Freleases
|
https://github.com/nxp-imx/mfgtools/releases
|
||||||
|
|
||||||
Put the module into USB recovery aka serial downloader mode, connect the USB
|
Put the module into USB recovery aka serial downloader mode, connect the USB
|
||||||
device to your host and execute ``uuu``:
|
device to your host and execute ``uuu``:
|
||||||
|
|
|
@ -20,26 +20,35 @@ Quick Start
|
||||||
Get and Build the ARM Trusted Firmware
|
Get and Build the ARM Trusted Firmware
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
|
|
||||||
|
Download the imx-atf repository:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ git clone -b lf_v2.6 https://github.com/nxp-imx/imx-atf.git
|
||||||
|
|
||||||
|
Compile it with an aarch64 toolchain:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ git clone -b toradex_imx_5.4.70_2.3.0 http://git.toradex.com/cgit/imx-atf.git/
|
|
||||||
$ make PLAT=imx8qx bl31 -C imx-atf
|
$ make PLAT=imx8qx bl31 -C imx-atf
|
||||||
|
|
||||||
Get scfw_tcm.bin and ahab-container.img
|
Get scfw_tcm.bin and ahab-container.img
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
Download imx-seco firmware and extract it:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ wget https://github.com/toradex/i.MX-System-Controller-Firmware/raw/master/src/scfw_export_mx8qx_b0/build_mx8qx_b0/mx8qx-colibri-scfw-tcm.bin
|
$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-seco-5.8.7.bin
|
||||||
$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-seco-3.8.1.bin
|
$ sh imx-seco-5.8.7.bin --auto-accept
|
||||||
$ sh imx-seco-3.8.1.bin --auto-accept
|
|
||||||
|
|
||||||
Copy the following firmware to the U-Boot folder:
|
Copy the following firmware to the U-Boot folder:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ cp imx-atf/build/imx8qx/release/bl31.bin .
|
$ wget https://github.com/toradex/i.MX-System-Controller-Firmware/raw/master/src/scfw_export_mx8qx_b0/build_mx8qx_b0/mx8qx-colibri-scfw-tcm.bin
|
||||||
$ cp imx-seco-3.8.1/firmware/seco/mx8qxc0-ahab-container.img mx8qx-ahab-container.img
|
$ cp ../imx-atf/build/imx8qx/release/bl31.bin .
|
||||||
|
$ cp ../imx-seco-5.8.7/firmware/seco/mx8qxc0-ahab-container.img mx8qx-ahab-container.img
|
||||||
|
|
||||||
Build U-Boot
|
Build U-Boot
|
||||||
------------
|
------------
|
||||||
|
@ -54,7 +63,7 @@ Load the U-Boot Binary Using UUU
|
||||||
|
|
||||||
Get the latest version of the universal update utility (uuu) aka ``mfgtools 3.0``:
|
Get the latest version of the universal update utility (uuu) aka ``mfgtools 3.0``:
|
||||||
|
|
||||||
https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools%2Freleases
|
https://github.com/nxp-imx/mfgtools/releases
|
||||||
|
|
||||||
Put the module into USB recovery aka serial downloader mode, connect the USB
|
Put the module into USB recovery aka serial downloader mode, connect the USB
|
||||||
device to your host and execute ``uuu``:
|
device to your host and execute ``uuu``:
|
||||||
|
|
|
@ -64,15 +64,15 @@ Future Releases
|
||||||
|
|
||||||
For the next scheduled release, release candidates were made on::
|
For the next scheduled release, release candidates were made on::
|
||||||
|
|
||||||
* U-Boot v2024.01-rc1 was released on Mon 29 January 2024.
|
* U-Boot v2024.04-rc1 was released on Mon 29 January 2024.
|
||||||
|
|
||||||
* U-Boot v2024.01-rc2 was released on Tue 13 February 2024.
|
* U-Boot v2024.04-rc2 was released on Tue 13 February 2024.
|
||||||
|
|
||||||
* U-Boot v2024.01-rc3 was released on Mon 26 February 2024.
|
* U-Boot v2024.04-rc3 was released on Mon 26 February 2024.
|
||||||
|
|
||||||
* U-Boot v2024.01-rc4 was released on Mon 11 March 2024.
|
* U-Boot v2024.04-rc4 was released on Mon 11 March 2024.
|
||||||
|
|
||||||
.. * U-Boot v2024.01-rc5 was released on Mon 25 March 2024.
|
* U-Boot v2024.04-rc5 was released on Mon 25 March 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.
|
||||||
|
|
72
doc/usage/cmd/if.rst
Normal file
72
doc/usage/cmd/if.rst
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
.. index::
|
||||||
|
single: if (command)
|
||||||
|
|
||||||
|
if command
|
||||||
|
==========
|
||||||
|
|
||||||
|
Synopsis
|
||||||
|
--------
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
if <test statement>
|
||||||
|
then
|
||||||
|
<statements>
|
||||||
|
fi
|
||||||
|
|
||||||
|
if <test statement>
|
||||||
|
then
|
||||||
|
<statements>
|
||||||
|
else
|
||||||
|
<statements>
|
||||||
|
fi
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
The if command is used to conditionally execute statements.
|
||||||
|
|
||||||
|
test statement
|
||||||
|
Any command. The test statement set the $? variable. If the value of
|
||||||
|
$? becomes 0 (true) the statements after the **then** statement will
|
||||||
|
be executed. Otherwise the statements after the **else** statement.
|
||||||
|
|
||||||
|
Example
|
||||||
|
-------
|
||||||
|
|
||||||
|
The examples shows how the value of a numeric variable can be tested with
|
||||||
|
**itest**.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
=> a=1; if itest $a == 0; then echo true; else echo false; fi
|
||||||
|
false
|
||||||
|
=> a=0; if itest $a == 0; then echo true; else echo false; fi
|
||||||
|
true
|
||||||
|
|
||||||
|
In the following example we try to load an EFI binary via TFTP. If loading
|
||||||
|
succeeds, the binary is executed.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
if tftp $kernel_addr_r shellriscv64.efi; then bootefi $kernel_addr_r; fi
|
||||||
|
|
||||||
|
Return value
|
||||||
|
------------
|
||||||
|
|
||||||
|
The value of $? is the return value of the last executed statement.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
=> if true; then true; else true; fi; echo $?
|
||||||
|
0
|
||||||
|
=> if false; then true; else true; fi; echo $?
|
||||||
|
0
|
||||||
|
=> if false; then false; else false; fi; echo $?
|
||||||
|
1
|
||||||
|
=> if true; then false; else false; fi; echo $?
|
||||||
|
1
|
||||||
|
=> if false; then true; fi; echo $?
|
||||||
|
1
|
|
@ -71,6 +71,7 @@ Shell commands
|
||||||
cmd/gpt
|
cmd/gpt
|
||||||
cmd/history
|
cmd/history
|
||||||
cmd/host
|
cmd/host
|
||||||
|
cmd/if
|
||||||
cmd/imxtract
|
cmd/imxtract
|
||||||
cmd/load
|
cmd/load
|
||||||
cmd/loadb
|
cmd/loadb
|
||||||
|
|
|
@ -95,20 +95,23 @@ ulong imx8_clk_get_rate(struct clk *clk)
|
||||||
resource = SC_R_SDHC_2;
|
resource = SC_R_SDHC_2;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QM_UART0_IPG_CLK:
|
|
||||||
case IMX8QM_UART0_CLK:
|
case IMX8QM_UART0_CLK:
|
||||||
|
case IMX8QM_UART0_IPG_CLK:
|
||||||
resource = SC_R_UART_0;
|
resource = SC_R_UART_0;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QM_UART1_CLK:
|
case IMX8QM_UART1_CLK:
|
||||||
|
case IMX8QM_UART1_IPG_CLK:
|
||||||
resource = SC_R_UART_1;
|
resource = SC_R_UART_1;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QM_UART2_CLK:
|
case IMX8QM_UART2_CLK:
|
||||||
|
case IMX8QM_UART2_IPG_CLK:
|
||||||
resource = SC_R_UART_2;
|
resource = SC_R_UART_2;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QM_UART3_CLK:
|
case IMX8QM_UART3_CLK:
|
||||||
|
case IMX8QM_UART3_IPG_CLK:
|
||||||
resource = SC_R_UART_3;
|
resource = SC_R_UART_3;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
|
@ -181,18 +184,22 @@ ulong imx8_clk_set_rate(struct clk *clk, unsigned long rate)
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QM_UART0_CLK:
|
case IMX8QM_UART0_CLK:
|
||||||
|
case IMX8QM_UART0_IPG_CLK:
|
||||||
resource = SC_R_UART_0;
|
resource = SC_R_UART_0;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QM_UART1_CLK:
|
case IMX8QM_UART1_CLK:
|
||||||
|
case IMX8QM_UART1_IPG_CLK:
|
||||||
resource = SC_R_UART_1;
|
resource = SC_R_UART_1;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QM_UART2_CLK:
|
case IMX8QM_UART2_CLK:
|
||||||
|
case IMX8QM_UART2_IPG_CLK:
|
||||||
resource = SC_R_UART_2;
|
resource = SC_R_UART_2;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QM_UART3_CLK:
|
case IMX8QM_UART3_CLK:
|
||||||
|
case IMX8QM_UART3_IPG_CLK:
|
||||||
resource = SC_R_UART_3;
|
resource = SC_R_UART_3;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
|
@ -283,18 +290,22 @@ int __imx8_clk_enable(struct clk *clk, bool enable)
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QM_UART0_CLK:
|
case IMX8QM_UART0_CLK:
|
||||||
|
case IMX8QM_UART0_IPG_CLK:
|
||||||
resource = SC_R_UART_0;
|
resource = SC_R_UART_0;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QM_UART1_CLK:
|
case IMX8QM_UART1_CLK:
|
||||||
|
case IMX8QM_UART1_IPG_CLK:
|
||||||
resource = SC_R_UART_1;
|
resource = SC_R_UART_1;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QM_UART2_CLK:
|
case IMX8QM_UART2_CLK:
|
||||||
|
case IMX8QM_UART2_IPG_CLK:
|
||||||
resource = SC_R_UART_2;
|
resource = SC_R_UART_2;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QM_UART3_CLK:
|
case IMX8QM_UART3_CLK:
|
||||||
|
case IMX8QM_UART3_IPG_CLK:
|
||||||
resource = SC_R_UART_3;
|
resource = SC_R_UART_3;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -88,20 +88,23 @@ ulong imx8_clk_get_rate(struct clk *clk)
|
||||||
resource = SC_R_SDHC_1;
|
resource = SC_R_SDHC_1;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QXP_UART0_IPG_CLK:
|
|
||||||
case IMX8QXP_UART0_CLK:
|
case IMX8QXP_UART0_CLK:
|
||||||
|
case IMX8QXP_UART0_IPG_CLK:
|
||||||
resource = SC_R_UART_0;
|
resource = SC_R_UART_0;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QXP_UART1_CLK:
|
case IMX8QXP_UART1_CLK:
|
||||||
|
case IMX8QXP_UART1_IPG_CLK:
|
||||||
resource = SC_R_UART_1;
|
resource = SC_R_UART_1;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QXP_UART2_CLK:
|
case IMX8QXP_UART2_CLK:
|
||||||
|
case IMX8QXP_UART2_IPG_CLK:
|
||||||
resource = SC_R_UART_2;
|
resource = SC_R_UART_2;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QXP_UART3_CLK:
|
case IMX8QXP_UART3_CLK:
|
||||||
|
case IMX8QXP_UART3_IPG_CLK:
|
||||||
resource = SC_R_UART_3;
|
resource = SC_R_UART_3;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
|
@ -170,18 +173,22 @@ ulong imx8_clk_set_rate(struct clk *clk, unsigned long rate)
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QXP_UART0_CLK:
|
case IMX8QXP_UART0_CLK:
|
||||||
|
case IMX8QXP_UART0_IPG_CLK:
|
||||||
resource = SC_R_UART_0;
|
resource = SC_R_UART_0;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QXP_UART1_CLK:
|
case IMX8QXP_UART1_CLK:
|
||||||
|
case IMX8QXP_UART1_IPG_CLK:
|
||||||
resource = SC_R_UART_1;
|
resource = SC_R_UART_1;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QXP_UART2_CLK:
|
case IMX8QXP_UART2_CLK:
|
||||||
|
case IMX8QXP_UART2_IPG_CLK:
|
||||||
resource = SC_R_UART_2;
|
resource = SC_R_UART_2;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QXP_UART3_CLK:
|
case IMX8QXP_UART3_CLK:
|
||||||
|
case IMX8QXP_UART3_IPG_CLK:
|
||||||
resource = SC_R_UART_3;
|
resource = SC_R_UART_3;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
|
@ -263,18 +270,22 @@ int __imx8_clk_enable(struct clk *clk, bool enable)
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QXP_UART0_CLK:
|
case IMX8QXP_UART0_CLK:
|
||||||
|
case IMX8QXP_UART0_IPG_CLK:
|
||||||
resource = SC_R_UART_0;
|
resource = SC_R_UART_0;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QXP_UART1_CLK:
|
case IMX8QXP_UART1_CLK:
|
||||||
|
case IMX8QXP_UART1_IPG_CLK:
|
||||||
resource = SC_R_UART_1;
|
resource = SC_R_UART_1;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QXP_UART2_CLK:
|
case IMX8QXP_UART2_CLK:
|
||||||
|
case IMX8QXP_UART2_IPG_CLK:
|
||||||
resource = SC_R_UART_2;
|
resource = SC_R_UART_2;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
case IMX8QXP_UART3_CLK:
|
case IMX8QXP_UART3_CLK:
|
||||||
|
case IMX8QXP_UART3_IPG_CLK:
|
||||||
resource = SC_R_UART_3;
|
resource = SC_R_UART_3;
|
||||||
pm_clk = SC_PM_CLK_PER;
|
pm_clk = SC_PM_CLK_PER;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -125,7 +125,7 @@ efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size)
|
||||||
efi_handle_t mem_handle = NULL, handle;
|
efi_handle_t mem_handle = NULL, handle;
|
||||||
struct efi_device_path *file_path = NULL;
|
struct efi_device_path *file_path = NULL;
|
||||||
struct efi_device_path *msg_path;
|
struct efi_device_path *msg_path;
|
||||||
efi_status_t ret, ret2;
|
efi_status_t ret;
|
||||||
u16 *load_options;
|
u16 *load_options;
|
||||||
|
|
||||||
if (!bootefi_device_path || !bootefi_image_path) {
|
if (!bootefi_device_path || !bootefi_image_path) {
|
||||||
|
@ -172,11 +172,17 @@ efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size)
|
||||||
ret = do_bootefi_exec(handle, load_options);
|
ret = do_bootefi_exec(handle, load_options);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
ret2 = efi_uninstall_multiple_protocol_interfaces(mem_handle,
|
if (mem_handle) {
|
||||||
&efi_guid_device_path,
|
efi_status_t r;
|
||||||
file_path, NULL);
|
|
||||||
|
r = efi_uninstall_multiple_protocol_interfaces(
|
||||||
|
mem_handle, &efi_guid_device_path, file_path, NULL);
|
||||||
|
if (r != EFI_SUCCESS)
|
||||||
|
log_err("Uninstalling protocol interfaces failed\n");
|
||||||
|
}
|
||||||
efi_free_pool(file_path);
|
efi_free_pool(file_path);
|
||||||
return (ret != EFI_SUCCESS) ? ret : ret2;
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -144,7 +144,7 @@ patman.py. For reference, the useful ones (at the moment) shown below
|
||||||
process_tags: False
|
process_tags: False
|
||||||
verbose: True
|
verbose: True
|
||||||
smtp_server: /path/to/sendmail
|
smtp_server: /path/to/sendmail
|
||||||
patchwork_server: https://patchwork.ozlabs.org
|
patchwork_url: https://patchwork.ozlabs.org
|
||||||
|
|
||||||
If you want to adjust settings (or aliases) that affect just a single
|
If you want to adjust settings (or aliases) that affect just a single
|
||||||
project you can add a section that looks like [project_settings] or
|
project you can add a section that looks like [project_settings] or
|
||||||
|
@ -248,9 +248,9 @@ Series-links: [id | version:id]...
|
||||||
|
|
||||||
Series-patchwork-url: url
|
Series-patchwork-url: url
|
||||||
This allows specifying the Patchwork URL for a branch. This overrides
|
This allows specifying the Patchwork URL for a branch. This overrides
|
||||||
both the setting files and the command-line argument. The URL should
|
both the setting files ("patchwork_url") and the command-line argument.
|
||||||
include the protocol and web site, with no trailing slash, for example
|
The URL should include the protocol and web site, with no trailing slash,
|
||||||
'https://patchwork.ozlabs.org/project'
|
for example 'https://patchwork.ozlabs.org/project'
|
||||||
|
|
||||||
Cover-letter:
|
Cover-letter:
|
||||||
Sets the cover letter contents for the series. The first line
|
Sets the cover letter contents for the series. The first line
|
||||||
|
|
Loading…
Add table
Reference in a new issue