u-boot-fw-utils: rework patches to fix broken build

Patches added in 'meta-swupdate' (backported from U-Boot) broke our
layer. We also had those patches, so remove them and make sure the
rest or our patches are applied after the ones from 'meta-swupdate'
by using an anonymous python function instead of appending to the
SRC_URI variable.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
Javier Viguera 2017-03-06 12:18:37 +01:00
parent 372a063ac4
commit 01ee764fcf
6 changed files with 17 additions and 85 deletions

View File

@ -1,47 +0,0 @@
From: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
Date: Fri, 25 Mar 2016 14:52:19 +0100
Subject: [PATCH] tools: env: bug: config structs must be defined in tools
library
fw_senten/fw_printenv can be compiled as a tools library,
excluding the fw_env_main object.
Reported-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
(cherry picked from commit 43cb65b7a00e4759427a6e4b8a02039e43dab5a5)
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
---
tools/env/fw_env.c | 4 ++++
tools/env/fw_env_main.c | 4 ----
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index ee17a6901609..2533dc4eec2b 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -34,6 +34,10 @@
#include "fw_env.h"
+struct common_args common_args;
+struct printenv_args printenv_args;
+struct setenv_args setenv_args;
+
#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
#define WHITESPACE(c) ((c == '\t') || (c == ' '))
diff --git a/tools/env/fw_env_main.c b/tools/env/fw_env_main.c
index 4bd4216625aa..3065de962272 100644
--- a/tools/env/fw_env_main.c
+++ b/tools/env/fw_env_main.c
@@ -49,10 +49,6 @@ static struct option long_options[] = {
{NULL, 0, NULL, 0}
};
-struct common_args common_args;
-struct printenv_args printenv_args;
-struct setenv_args setenv_args;
-
void usage_printenv(void)
{

View File

@ -1,33 +0,0 @@
From: Anatolij Gustschin <agust@denx.de>
Date: Fri, 29 Apr 2016 22:00:11 +0200
Subject: [PATCH] tools: env: fix config file loading in env library
env library is broken as the config file pointer is only initialized
in main(). When running in the env library parse_config() fails:
Cannot parse config file '(null)': Bad address
Ensure that config file pointer is always initialized.
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
(cherry picked from commit 925c97c248527391de32c2926f7e1911850fd4b0)
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
---
tools/env/fw_env.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index 2533dc4eec2b..b2f62827d918 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -1326,6 +1326,9 @@ static int parse_config ()
struct stat st;
#if defined(CONFIG_FILE)
+ if (!common_args.config_file)
+ common_args.config_file = CONFIG_FILE;
+
/* Fills in DEVNAME(), ENVSIZE(), DEVESIZE(). Or don't. */
if (get_config(common_args.config_file)) {
fprintf(stderr, "Cannot parse config file '%s': %m\n",

View File

@ -4,13 +4,25 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
SRC_URI += " \ SRC_URI += " \
file://fw_env.config \ file://fw_env.config \
file://0001-tools-env-bug-config-structs-must-be-defined-in-tool.patch \
file://0002-tools-env-fix-config-file-loading-in-env-library.patch \
file://0003-tools-env-implement-support-for-environment-encrypti.patch \
file://0004-Implement-U-Boot-environment-access-functions.patch \
file://0005-fw_env-add-support-to-unlock-emmc-boot-partition.patch \
" "
UBOOT_FW_UTILS_PATCHES = " \
file://0001-tools-env-implement-support-for-environment-encrypti.patch \
file://0002-Implement-U-Boot-environment-access-functions.patch \
file://0003-fw_env-add-support-to-unlock-emmc-boot-partition.patch \
"
# Patches from 'meta-swupdate' touch the same files than ours, so we need to
# force that our patches are applied later. As our layer has more priority than
# 'meta-swupdate' we need to do the changes to SRC_URI in an anonymous python
# function instead of a normal '_append' to the SRC_URI variable.
python() {
ufw_patches = d.getVar('UBOOT_FW_UTILS_PATCHES', True)
if ufw_patches:
src_uri = d.getVar('SRC_URI', True)
d.setVar('SRC_URI', src_uri + ufw_patches)
}
# We do not have a platform defconfig in this version of u-boot, so just use the generic # We do not have a platform defconfig in this version of u-boot, so just use the generic
# sandbox defconfig, which is enough to build the Linux user-space tool (fw_printenv) # sandbox defconfig, which is enough to build the Linux user-space tool (fw_printenv)
UBOOT_CONFIG = "sandbox" UBOOT_CONFIG = "sandbox"