Update to SLOF 20190114 for qemu-4.0
This commit is contained in:
parent
18fd1d7b49
commit
f60a532726
@ -1,31 +0,0 @@
|
|||||||
From: Thomas Huth <thuth@redhat.com>
|
|
||||||
Date: Wed, 18 Jul 2018 15:44:59 +0200
|
|
||||||
Subject: [PATCH] make.rules: Compile SLOF with -fno-asynchronous-unwind-tables
|
|
||||||
|
|
||||||
With the new GCC 8, the asynchronous-unwind-tables are always enabled.
|
|
||||||
We don't need this for SLOF, so disable them to save 32 kiB in the
|
|
||||||
boot_rom.bin.
|
|
||||||
|
|
||||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
|
||||||
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
|
|
||||||
(cherry picked from commit 5cd96a5ba9782d6f1c2d53d02d5a265fbcae580b)
|
|
||||||
---
|
|
||||||
make.rules | 5 +++--
|
|
||||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/make.rules b/make.rules
|
|
||||||
index 3067314..acbc8ab 100644
|
|
||||||
--- a/make.rules
|
|
||||||
+++ b/make.rules
|
|
||||||
@@ -73,8 +73,9 @@ RANLIB ?= $(CROSS)ranlib
|
|
||||||
CPP ?= $(CROSS)cpp
|
|
||||||
|
|
||||||
WARNFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -Wformat-security
|
|
||||||
-CFLAGS ?= -g -O2 -fno-builtin -ffreestanding -nostdinc -msoft-float -fno-strict-aliasing \
|
|
||||||
- -mno-altivec -mabi=no-altivec -fno-stack-protector $(WARNFLAGS)
|
|
||||||
+CFLAGS ?= -g -O2 -fno-builtin -ffreestanding -nostdinc -msoft-float \
|
|
||||||
+ -fno-strict-aliasing -mno-altivec -mabi=no-altivec \
|
|
||||||
+ -fno-stack-protector -fno-asynchronous-unwind-tables $(WARNFLAGS)
|
|
||||||
|
|
||||||
export CC AS LD CLEAN OBJCOPY OBJDUMP STRIP AR RANLIB CFLAGS
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
|||||||
From: Thomas Huth <thuth@redhat.com>
|
|
||||||
Date: Thu, 19 Jul 2018 14:46:24 +0200
|
|
||||||
Subject: [PATCH] romfs/tools: Remove superfluous union around the rom header
|
|
||||||
struct
|
|
||||||
|
|
||||||
Accessing the struct with memset and memcpy can also be done without the
|
|
||||||
union wrapper. While we're at it, also remove the FLASHFS_HEADER_DATA_SIZE
|
|
||||||
macre and use sizeof(stHeader) instead.
|
|
||||||
|
|
||||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
|
||||||
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
|
|
||||||
(cherry picked from commit d4443f17c956e77df7bb23b2d19462faae9f4b23)
|
|
||||||
---
|
|
||||||
include/calculatecrc.h | 1 -
|
|
||||||
romfs/tools/create_crc.c | 29 +++++++++++++----------------
|
|
||||||
2 files changed, 13 insertions(+), 17 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/calculatecrc.h b/include/calculatecrc.h
|
|
||||||
index a19a229..667ea81 100644
|
|
||||||
--- a/include/calculatecrc.h
|
|
||||||
+++ b/include/calculatecrc.h
|
|
||||||
@@ -17,7 +17,6 @@
|
|
||||||
#define FLASHFS_HEADER_SIZE_ADDR 0x08 // uint64_t position of total flash header size value
|
|
||||||
|
|
||||||
#define FLASHFS_ROMADDR 0x00 // uint64_t position of pointer to next file
|
|
||||||
-#define FLASHFS_HEADER_DATA_SIZE 0x68 // 104 bytes of total header data size
|
|
||||||
#define CRC_METHODE Ethernet_32 // define the CRC genarator (CRC 16 bit to 64 is supported)
|
|
||||||
|
|
||||||
//--- header format ---------------------------------
|
|
||||||
diff --git a/romfs/tools/create_crc.c b/romfs/tools/create_crc.c
|
|
||||||
index 5a76b9c..e354339 100644
|
|
||||||
--- a/romfs/tools/create_crc.c
|
|
||||||
+++ b/romfs/tools/create_crc.c
|
|
||||||
@@ -10,6 +10,7 @@
|
|
||||||
* IBM Corporation - initial implementation
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
+#include <assert.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
@@ -71,21 +72,18 @@ createHeaderImage(int notime)
|
|
||||||
char dastr[16] = { 0, };
|
|
||||||
unsigned long long da = 0;
|
|
||||||
|
|
||||||
- union {
|
|
||||||
- unsigned char pcArray[FLASHFS_HEADER_DATA_SIZE];
|
|
||||||
- struct stH stHeader;
|
|
||||||
- } uHeader;
|
|
||||||
+ struct stH stHeader;
|
|
||||||
|
|
||||||
/* initialize Header */
|
|
||||||
- memset(uHeader.pcArray, 0x00, FLASHFS_HEADER_DATA_SIZE);
|
|
||||||
+ memset(&stHeader, 0x00, sizeof(stHeader));
|
|
||||||
|
|
||||||
/* read driver info */
|
|
||||||
if (NULL != (pcVersion = getenv("DRIVER_NAME"))) {
|
|
||||||
- strncpy(uHeader.stHeader.version, pcVersion, 16);
|
|
||||||
+ strncpy(stHeader.version, pcVersion, 16);
|
|
||||||
} else if (NULL != (pcVersion = getenv("USER"))) {
|
|
||||||
- strncpy(uHeader.stHeader.version, pcVersion, 16);
|
|
||||||
+ strncpy(stHeader.version, pcVersion, 16);
|
|
||||||
} else if (pcVersion == NULL) {
|
|
||||||
- strncpy(uHeader.stHeader.version, "No known user!", 16);
|
|
||||||
+ strncpy(stHeader.version, "No known user!", 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!notime) {
|
|
||||||
@@ -104,18 +102,18 @@ createHeaderImage(int notime)
|
|
||||||
}
|
|
||||||
da = cpu_to_be64(strtoll(dastr, NULL, 16));
|
|
||||||
}
|
|
||||||
- memcpy(uHeader.stHeader.date, &da, 8);
|
|
||||||
+ memcpy(stHeader.date, &da, 8);
|
|
||||||
|
|
||||||
/* write Magic value into data stream */
|
|
||||||
- strncpy(uHeader.stHeader.magic, FLASHFS_MAGIC, 8);
|
|
||||||
+ strncpy(stHeader.magic, FLASHFS_MAGIC, 8);
|
|
||||||
/* write platform name into data stream */
|
|
||||||
- strcpy(uHeader.stHeader.platform_name, FLASHFS_PLATFORM_MAGIC);
|
|
||||||
+ strcpy(stHeader.platform_name, FLASHFS_PLATFORM_MAGIC);
|
|
||||||
/* write platform revision into data stream */
|
|
||||||
- strcpy(uHeader.stHeader.platform_revision, FLASHFS_PLATFORM_REVISION);
|
|
||||||
+ strcpy(stHeader.platform_revision, FLASHFS_PLATFORM_REVISION);
|
|
||||||
|
|
||||||
|
|
||||||
/* fill end of file info (8 bytes of FF) into data stream */
|
|
||||||
- uHeader.stHeader.ui64FileEnd = -1;
|
|
||||||
+ stHeader.ui64FileEnd = -1;
|
|
||||||
|
|
||||||
/* read address of next file and address of header date, both are 64 bit values */
|
|
||||||
ui64RomAddr = 0;
|
|
||||||
@@ -129,7 +127,7 @@ createHeaderImage(int notime)
|
|
||||||
|
|
||||||
/* calculate final flash-header-size and flash-file-size */
|
|
||||||
/* calculate end addr of header */
|
|
||||||
- ui64globalHeaderSize = (uint32_t) ui64DataAddr + (uint32_t) FLASHFS_HEADER_DATA_SIZE;
|
|
||||||
+ ui64globalHeaderSize = (uint32_t) ui64DataAddr + sizeof(stHeader);
|
|
||||||
/* cut 64 bit to place CRC for File-End */
|
|
||||||
ui64globalHeaderSize -= 8;
|
|
||||||
/* add 64 bit to place CRC behind File-End */
|
|
||||||
@@ -143,8 +141,7 @@ createHeaderImage(int notime)
|
|
||||||
/* fill free space in Header with zeros */
|
|
||||||
memset(&pucFileStream[ui64DataAddr], 0, (ui64RomAddr - ui64DataAddr));
|
|
||||||
/* place data to header */
|
|
||||||
- memcpy(&pucFileStream[ui64DataAddr], uHeader.pcArray,
|
|
||||||
- FLASHFS_HEADER_DATA_SIZE);
|
|
||||||
+ memcpy(&pucFileStream[ui64DataAddr], &stHeader, sizeof(stHeader));
|
|
||||||
|
|
||||||
/* insert header length into data stream */
|
|
||||||
*(uint64_t *) (pucFileStream + FLASHFS_HEADER_SIZE_ADDR) =
|
|
@ -1,66 +0,0 @@
|
|||||||
From: Thomas Huth <thuth@redhat.com>
|
|
||||||
Date: Thu, 19 Jul 2018 14:46:25 +0200
|
|
||||||
Subject: [PATCH] romfs/tools: Silence GCC 8.1 compiler warning with
|
|
||||||
FLASHFS_MAGIC
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
GCC 8.1 introduce some new warnings which affect create_crc.c. One of
|
|
||||||
them is:
|
|
||||||
|
|
||||||
create_crc.c: In function ‘createHeaderImage’:
|
|
||||||
create_crc.c:110:2: warning: ‘strncpy’ output truncated before terminating nul
|
|
||||||
copying 8 bytes from a string of the same length [-Wstringop-truncation]
|
|
||||||
strncpy(uHeader.stHeader.magic, FLASHFS_MAGIC, 8);
|
|
||||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Initialize the header struct statically here instead to silence the warning.
|
|
||||||
|
|
||||||
Suggested-by: Segher Boessenkool <segher@kernel.crashing.org>
|
|
||||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
|
||||||
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
|
|
||||||
(cherry picked from commit 49482e06ea74652a70a8cd067b852cc142021c03)
|
|
||||||
---
|
|
||||||
romfs/tools/create_crc.c | 21 ++++++---------------
|
|
||||||
1 file changed, 6 insertions(+), 15 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/romfs/tools/create_crc.c b/romfs/tools/create_crc.c
|
|
||||||
index e354339..475b184 100644
|
|
||||||
--- a/romfs/tools/create_crc.c
|
|
||||||
+++ b/romfs/tools/create_crc.c
|
|
||||||
@@ -72,10 +72,12 @@ createHeaderImage(int notime)
|
|
||||||
char dastr[16] = { 0, };
|
|
||||||
unsigned long long da = 0;
|
|
||||||
|
|
||||||
- struct stH stHeader;
|
|
||||||
-
|
|
||||||
- /* initialize Header */
|
|
||||||
- memset(&stHeader, 0x00, sizeof(stHeader));
|
|
||||||
+ struct stH stHeader = {
|
|
||||||
+ .magic = FLASHFS_MAGIC,
|
|
||||||
+ .platform_name = FLASHFS_PLATFORM_MAGIC,
|
|
||||||
+ .platform_revision = FLASHFS_PLATFORM_REVISION,
|
|
||||||
+ .ui64FileEnd = -1,
|
|
||||||
+ };
|
|
||||||
|
|
||||||
/* read driver info */
|
|
||||||
if (NULL != (pcVersion = getenv("DRIVER_NAME"))) {
|
|
||||||
@@ -104,17 +106,6 @@ createHeaderImage(int notime)
|
|
||||||
}
|
|
||||||
memcpy(stHeader.date, &da, 8);
|
|
||||||
|
|
||||||
- /* write Magic value into data stream */
|
|
||||||
- strncpy(stHeader.magic, FLASHFS_MAGIC, 8);
|
|
||||||
- /* write platform name into data stream */
|
|
||||||
- strcpy(stHeader.platform_name, FLASHFS_PLATFORM_MAGIC);
|
|
||||||
- /* write platform revision into data stream */
|
|
||||||
- strcpy(stHeader.platform_revision, FLASHFS_PLATFORM_REVISION);
|
|
||||||
-
|
|
||||||
-
|
|
||||||
- /* fill end of file info (8 bytes of FF) into data stream */
|
|
||||||
- stHeader.ui64FileEnd = -1;
|
|
||||||
-
|
|
||||||
/* read address of next file and address of header date, both are 64 bit values */
|
|
||||||
ui64RomAddr = 0;
|
|
||||||
ui64DataAddr = 0;
|
|
@ -1,64 +0,0 @@
|
|||||||
From: Thomas Huth <thuth@redhat.com>
|
|
||||||
Date: Mon, 23 Jul 2018 15:19:44 +0200
|
|
||||||
Subject: [PATCH] romfs/tools: Silence more compiler warnings with GCC 8.1
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
GCC 8 complains about the following usages of strncpy, too:
|
|
||||||
|
|
||||||
create_crc.c:86:3: warning: ‘strncpy’ specified bound 16 equals destination
|
|
||||||
size [-Wstringop-truncation]
|
|
||||||
strncpy(uHeader.stHeader.version, pcVersion, 16);
|
|
||||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
create_crc.c:84:3: warning: ‘strncpy’ specified bound 16 equals destination
|
|
||||||
size [-Wstringop-truncation]
|
|
||||||
strncpy(uHeader.stHeader.version, pcVersion, 16);
|
|
||||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Let's work around the issue by using memcpy instead.
|
|
||||||
|
|
||||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
|
||||||
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
|
|
||||||
(cherry picked from commit d8a9354c2a351360da438826c95cf78efcaaf1b0)
|
|
||||||
---
|
|
||||||
romfs/tools/create_crc.c | 19 ++++++++++++-------
|
|
||||||
1 file changed, 12 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/romfs/tools/create_crc.c b/romfs/tools/create_crc.c
|
|
||||||
index 475b184..abc373b 100644
|
|
||||||
--- a/romfs/tools/create_crc.c
|
|
||||||
+++ b/romfs/tools/create_crc.c
|
|
||||||
@@ -32,6 +32,11 @@ static uint64_t ui64globalHeaderSize = 0;
|
|
||||||
/* flag to filter detect the header in buildDataStream() */
|
|
||||||
static int iglobalHeaderFlag = 1;
|
|
||||||
|
|
||||||
+static size_t min(size_t a, size_t b)
|
|
||||||
+{
|
|
||||||
+ return a < b ? a : b;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
* Build the file image and store it as Data Stream of bytes
|
|
||||||
* calculate a first CRC for the first file and
|
|
||||||
@@ -80,13 +85,13 @@ createHeaderImage(int notime)
|
|
||||||
};
|
|
||||||
|
|
||||||
/* read driver info */
|
|
||||||
- if (NULL != (pcVersion = getenv("DRIVER_NAME"))) {
|
|
||||||
- strncpy(stHeader.version, pcVersion, 16);
|
|
||||||
- } else if (NULL != (pcVersion = getenv("USER"))) {
|
|
||||||
- strncpy(stHeader.version, pcVersion, 16);
|
|
||||||
- } else if (pcVersion == NULL) {
|
|
||||||
- strncpy(stHeader.version, "No known user!", 16);
|
|
||||||
- }
|
|
||||||
+ pcVersion = getenv("DRIVER_NAME");
|
|
||||||
+ if (!pcVersion)
|
|
||||||
+ pcVersion = getenv("USER");
|
|
||||||
+ if (!pcVersion)
|
|
||||||
+ pcVersion = "unknown";
|
|
||||||
+ memcpy(stHeader.version, pcVersion,
|
|
||||||
+ min(strlen(pcVersion), sizeof(stHeader.version)));
|
|
||||||
|
|
||||||
if (!notime) {
|
|
||||||
/* read time and write it into data stream */
|
|
14
SLOF.spec
14
SLOF.spec
@ -1,7 +1,6 @@
|
|||||||
%global gittagdate 20180702
|
%global gittagdate 20190114
|
||||||
%global gittag qemu-slof-%{gittagdate}
|
%global gittag qemu-slof-%{gittagdate}
|
||||||
|
|
||||||
|
|
||||||
# Disable debuginfo because it is of no use to us.
|
# Disable debuginfo because it is of no use to us.
|
||||||
%global debug_package %{nil}
|
%global debug_package %{nil}
|
||||||
|
|
||||||
@ -11,7 +10,7 @@
|
|||||||
|
|
||||||
Name: SLOF
|
Name: SLOF
|
||||||
Version: 0.1.git%{gittagdate}
|
Version: 0.1.git%{gittagdate}
|
||||||
Release: 3%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Slimline Open Firmware
|
Summary: Slimline Open Firmware
|
||||||
|
|
||||||
License: BSD
|
License: BSD
|
||||||
@ -26,12 +25,6 @@ URL: http://www.openfirmware.info/SLOF
|
|||||||
# --prefix=SLOF-{gittagdate}/ {gittag}
|
# --prefix=SLOF-{gittagdate}/ {gittag}
|
||||||
Source0: SLOF-%{gittagdate}.tar.gz
|
Source0: SLOF-%{gittagdate}.tar.gz
|
||||||
|
|
||||||
# Fix gcc 8.1 build compat (bz #1653655)
|
|
||||||
Patch0001: 0001-make.rules-Compile-SLOF-with-fno-asynchronous-unwind.patch
|
|
||||||
Patch0002: 0002-romfs-tools-Remove-superfluous-union-around-the-rom-.patch
|
|
||||||
Patch0003: 0003-romfs-tools-Silence-GCC-8.1-compiler-warning-with-FL.patch
|
|
||||||
Patch0004: 0004-romfs-tools-Silence-more-compiler-warnings-with-GCC-.patch
|
|
||||||
|
|
||||||
|
|
||||||
%if 0%{?cross:1}
|
%if 0%{?cross:1}
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
@ -81,6 +74,9 @@ cp -a boot_rom.bin %{buildroot}%{_datadir}/qemu/slof.bin
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Mar 27 2019 Cole Robinson <aintdiscole@gmail.com> - 0.1.git20190114-1
|
||||||
|
- Update to SLOF 20190114 for qemu-4.0
|
||||||
|
|
||||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.git20180702-3
|
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.git20180702-3
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (SLOF-20180702.tar.gz) = a709d0ff4539817a449d7a429e4869fcce54137fc00dfd3424c39b2e2b0a73d4d8cff8dda3d9e37236396e735f75455c2d39872260df765d4ea8061559898f58
|
SHA512 (SLOF-20190114.tar.gz) = 948034f74627fb05047cdbef92ac35679ea1b551cbe5e4e545e0703e005b86067fc254ee32925334060b283fedd73a2df3f387df17f03a75b392ad18bb00b38e
|
||||||
|
Loading…
Reference in New Issue
Block a user