[Sound-open-firmware] [PATCH] Removing unneeded XTOS sections from boot_ldr and main fw.

Liam Girdwood liam.r.girdwood at linux.intel.com
Tue May 22 18:07:40 CEST 2018


From: Marcin Maka <marcin.maka at linux.intel.com>

Signed-off-by: Marcin Maka <marcin.maka at linux.intel.com>
---
 rimage/elf.c                | 10 +++++++---
 rimage/manifest.c           |  5 +++++
 src/arch/xtensa/Makefile.am |  6 ------
 3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/rimage/elf.c b/rimage/elf.c
index 6c7e3da..4efed7a 100644
--- a/rimage/elf.c
+++ b/rimage/elf.c
@@ -77,9 +77,12 @@ static int elf_read_sections(struct image *image, struct module *module)
 	/* find manifest module data */
 	man_section_idx = elf_find_section(image, module, ".bss");
 	if (man_section_idx < 0) {
-		return -EINVAL;
+		/* no bss - it is OK for boot_ldr */
+		module->bss_start = 0;
+		module->bss_end = 0;
+	} else {
+		module->bss_index = man_section_idx;
 	}
-	module->bss_index = man_section_idx;
 
 	fprintf(stdout, " BSS module metadata section at index %d\n",
 		man_section_idx);
@@ -325,7 +328,8 @@ static void elf_module_limits(struct image *image, struct module *module)
 	uint32_t valid = (SHF_WRITE | SHF_ALLOC | SHF_EXECINSTR);
 	int i;
 
-	module->text_start = module->data_start = module->bss_start = 0xffffffff;
+	module->text_start = module->data_start = 0xffffffff;
+	module->bss_start = 0;
 	module->text_end = module->data_end = module->bss_end = 0;
 
 	fprintf(stdout, "  Found %d sections, listing valid sections......\n",
diff --git a/rimage/manifest.c b/rimage/manifest.c
index 6bb4ad3..257aa0d 100644
--- a/rimage/manifest.c
+++ b/rimage/manifest.c
@@ -400,6 +400,11 @@ static int man_module_create(struct image *image, struct module *module,
 	if ((module->bss_end - module->bss_start) % MAN_PAGE_SIZE)
 		pages += 1;
 	man_module->segment[SOF_MAN_SEGMENT_BSS].flags.r.length = pages;
+	if (pages == 0) {
+		man_module->segment[SOF_MAN_SEGMENT_BSS].flags.ul = 0;
+		man_module->segment[SOF_MAN_SEGMENT_BSS].flags.r.type =
+				SOF_MAN_SEGMENT_EMPTY;
+	}
 
 	fprintf(stdout, "\tNo\tAddress\t\tSize\t\tFile\tType\n");
 
diff --git a/src/arch/xtensa/Makefile.am b/src/arch/xtensa/Makefile.am
index 9f53e88..eafde0d 100644
--- a/src/arch/xtensa/Makefile.am
+++ b/src/arch/xtensa/Makefile.am
@@ -61,7 +61,6 @@ sof_LDADD = \
 	../../audio/libaudio.a \
 	../../math/libsof_math.a \
 	../../drivers/libdrivers.a \
-	libreset.a \
 	xtos/libxtos.a \
 	xtos/libxlevel2.a \
 	xtos/libxlevel3.a \
@@ -111,11 +110,6 @@ boot_ldr_CCASFLAGS = \
 boot_ldr_LDADD = \
 	hal/libhal.a \
 	libreset.a \
-	xtos/libxtos.a \
-	xtos/libxlevel2.a \
-	xtos/libxlevel3.a \
-	xtos/libxlevel4.a \
-	xtos/libxlevel5.a \
 	-lgcc
 
 boot_ldr_LDFLAGS = \
-- 
2.17.0



More information about the Sound-open-firmware mailing list