commit 478c37a2188300902b261606ad3fe6c54ff8444d Author: CentOS Sources Date: Tue May 7 09:08:43 2019 -0400 import SLOF-20171214-5.gitfa98132.module+el8+2616+396d822d diff --git a/.SLOF.metadata b/.SLOF.metadata new file mode 100644 index 0000000..64c69c4 --- /dev/null +++ b/.SLOF.metadata @@ -0,0 +1 @@ +bd6a7eebe47e1cf9be75373b21afdf0353d1af84 SOURCES/qemu-slof-20171214.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea35eb0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/qemu-slof-20171214.tar.gz diff --git a/SOURCES/slof-Fix-bad-assembler-statements-for-compiling-with-gcc-.patch b/SOURCES/slof-Fix-bad-assembler-statements-for-compiling-with-gcc-.patch new file mode 100644 index 0000000..71a0c4d --- /dev/null +++ b/SOURCES/slof-Fix-bad-assembler-statements-for-compiling-with-gcc-.patch @@ -0,0 +1,72 @@ +From 864e689e887cd2fd00cc36e5d905238b18eb39bb Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Wed, 8 Aug 2018 15:10:58 +0100 +Subject: [PATCH 2/6] Fix bad assembler statements for compiling with gcc 8.1 / + as 2.30 + +RH-Author: Laurent Vivier +Message-id: <20180808151102.11232-3-lvivier@redhat.com> +Patchwork-id: 81678 +O-Subject: [RHEL-8.0 SLOF PATCH 2/6] Fix bad assembler statements for compiling with gcc 8.1 / as 2.30 +Bugzilla: 1613619 +RH-Acked-by: Thomas Huth +RH-Acked-by: Laszlo Ersek +RH-Acked-by: David Gibson + +From: Thomas Huth + +When compiling with a very recent toolchain, I get these warnings: + +../../llfw/boot_abort.S: Assembler messages: +../../llfw/boot_abort.S:76: Warning: invalid register expression + +and: + +stage2_head.S: Assembler messages: +stage2_head.S:57: Warning: invalid register expression + +The first one is using the wrong opcode, we should use "and" instead of +"andi" here. The second one is using a register instead of a constant +for load-immediate, which is non-sense, too. Fix it to use the right +constant instead. + +Signed-off-by: Thomas Huth +Reviewed-by: Laurent Vivier +Signed-off-by: Alexey Kardashevskiy +(cherry picked from commit 203f6686dc3953a7248abb4f3e895a68c65d9b10) +Signed-off-by: Laurent Vivier +Signed-off-by: Danilo C. L. de Paula +--- + board-qemu/llfw/stage2_head.S | 2 +- + llfw/boot_abort.S | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/board-qemu/llfw/stage2_head.S b/board-qemu/llfw/stage2_head.S +index adf7554..1568f27 100644 +--- a/board-qemu/llfw/stage2_head.S ++++ b/board-qemu/llfw/stage2_head.S +@@ -54,7 +54,7 @@ bsscdone: + /* jump to c-code */ + /* r31 = fdt - r5 */ + /* ------------------------------------ */ +- li r3, r0 ++ li r3, 0 + mr r4, r31 + bl .early_c_entry + +diff --git a/llfw/boot_abort.S b/llfw/boot_abort.S +index 996bdd7..47a9178 100644 +--- a/llfw/boot_abort.S ++++ b/llfw/boot_abort.S +@@ -73,7 +73,7 @@ ASM_ENTRY(boot_abort) + + /* check if i/o is possible, if yes then print message */ + li r10, ABORT_CANIO +- andi. r3, r31, r10 ++ and. r3, r31, r10 + bne abort_noio + + /* use i/o ..., first print reference message */ +-- +1.8.3.1 + diff --git a/SOURCES/slof-Fix-output-word.patch b/SOURCES/slof-Fix-output-word.patch new file mode 100644 index 0000000..33c8941 --- /dev/null +++ b/SOURCES/slof-Fix-output-word.patch @@ -0,0 +1,100 @@ +From 22d45fb249bd6e276c26c5ff64132005b385d374 Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Tue, 29 May 2018 11:09:32 +0200 +Subject: [PATCH 1/2] Fix output word + +RH-Author: Laurent Vivier +Message-id: <20180529110933.1441-2-lvivier@redhat.com> +Patchwork-id: 80504 +O-Subject: [RHEL7.6 SLOF PATCH 1/2] Fix output word +Bugzilla: 1495467 +RH-Acked-by: Thomas Huth +RH-Acked-by: Laszlo Ersek +RH-Acked-by: Miroslav Rezanina + +We can select the console output, but it does not really work + +Implement term-io-emit, as we have term-io-key to really +send characters to the output selected by stdout. + +Resolve xt and ihandle in the output command. + +Use them in the new term-io-emit function. + +Signed-off-by: Laurent Vivier +Reviewed-by: Thomas Huth +[aik: fixed commit log] +Signed-off-by: Alexey Kardashevskiy +(cherry picked from commit f05c38f7625eca1b9210ce68e80fa520274d7a8a) +Signed-off-by: Laurent Vivier + +Signed-off-by: Miroslav Rezanina +--- + slof/fs/term-io.fs | 36 +++++++++++++++++++++++++++++++----- + 1 file changed, 31 insertions(+), 5 deletions(-) + +diff --git a/slof/fs/term-io.fs b/slof/fs/term-io.fs +index 52ce12a..f13ae87 100644 +--- a/slof/fs/term-io.fs ++++ b/slof/fs/term-io.fs +@@ -10,6 +10,17 @@ + \ * IBM Corporation - initial implementation + \ ****************************************************************************/ + ++0 VALUE write-xt ++ ++VARIABLE stdout ++ ++: set-stdout ( ihandle -- ) ++ \ Close old stdout: ++ stdout @ ?dup IF close-dev THEN ++ \ Now set the new stdout: ++ dup stdout ! ++ encode-int s" stdout" set-chosen ++; + + : input ( dev-str dev-len -- ) + open-dev ?dup IF +@@ -24,12 +35,15 @@ + + : output ( dev-str dev-len -- ) + open-dev ?dup IF +- \ Close old stdout: +- s" stdout" get-chosen IF +- decode-int nip nip ?dup IF close-dev THEN ++ \ find new ihandle and xt handle ++ dup s" write" rot ihandle>phandle find-method ++ 0= IF ++ drop ++ cr ." Cannot find the write method for the given output console " cr ++ EXIT + THEN +- \ Now set the new stdout: +- encode-int s" stdout" set-chosen ++ to write-xt ++ set-stdout + THEN + ; + +@@ -40,6 +54,18 @@ + + 1 BUFFER: (term-io-char-buf) + ++: term-io-emit ( char -- ) ++ write-xt IF ++ (term-io-char-buf) c! ++ (term-io-char-buf) 1 write-xt stdout @ call-package ++ drop ++ ELSE ++ serial-emit ++ THEN ++; ++ ++' term-io-emit to emit ++ + : term-io-key ( -- char ) + s" stdin" get-chosen IF + decode-int nip nip dup 0= IF 0 EXIT THEN +-- +1.8.3.1 + diff --git a/SOURCES/slof-board-qemu-slof-vio-vscsi-Scan-up-to-64-SCSI-IDs.patch b/SOURCES/slof-board-qemu-slof-vio-vscsi-Scan-up-to-64-SCSI-IDs.patch new file mode 100644 index 0000000..e61a2d5 --- /dev/null +++ b/SOURCES/slof-board-qemu-slof-vio-vscsi-Scan-up-to-64-SCSI-IDs.patch @@ -0,0 +1,54 @@ +From 49c493991c8cb9779022ffe3f1b2ac980f07852c Mon Sep 17 00:00:00 2001 +From: Thomas Huth +Date: Thu, 20 Dec 2018 10:26:07 +0000 +Subject: [PATCH 1/3] board-qemu/slof/vio-vscsi: Scan up to 64 SCSI IDs + +RH-Author: Thomas Huth +Message-id: <1545301567-8565-2-git-send-email-thuth@redhat.com> +Patchwork-id: 83706 +O-Subject: [RHEL8 SLOF PATCH 1/1] board-qemu/slof/vio-vscsi: Scan up to 64 SCSI IDs +Bugzilla: 1655649 +RH-Acked-by: Laurent Vivier +RH-Acked-by: David Gibson +RH-Acked-by: Serhii Popovych + +QEMU supports up the 64 SCSI IDs on the vscsi "bus", see the string +"max_target = 63" in the source file hw/scsi/spapr_vscsi.c of QEMU. +However, SLOF currently only checks the first 9 IDs on the vscsi adaptor, +so when you try to boot from a CD-ROM like this, the boot fails: + + qemu-system-ppc64 ... -device spapr-vscsi,id=scsi0,reg=0x2000 \ + -drive file=/path/to/cdrom.iso,format=raw,if=none,id=dr1,readonly=on \ + -device scsi-cd,bus=scsi0.0,channel=0,scsi-id=63,lun=1,drive=dr1,id=scd1 + +Thus let's change the amount of IDs that we scan in SLOF to 64, too, to +match the ID range that QEMU provides. + +Signed-off-by: Thomas Huth +Reviewed-by: Laurent Vivier +Signed-off-by: Alexey Kardashevskiy +(cherry picked from commit cad96808d130bcc1fc36741cbedaaa3f8215e6c4) +Signed-off-by: Danilo C. L. de Paula +--- + board-qemu/slof/vio-vscsi.fs | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/board-qemu/slof/vio-vscsi.fs b/board-qemu/slof/vio-vscsi.fs +index f2d4c6f..be11b69 100644 +--- a/board-qemu/slof/vio-vscsi.fs ++++ b/board-qemu/slof/vio-vscsi.fs +@@ -507,9 +507,9 @@ TRUE VALUE first-time-init? + 10000 \ Larger value seem to have problems with some CDROMs + ; + +-8 CONSTANT #dev ++\ Report the amount of supported SCSI IDs - QEMU uses "max_target = 63" + : dev-max-target ( -- #max-target ) +- #dev ++ 40 + ; + + " scsi-probe-helpers.fs" included +-- +1.8.3.1 + diff --git a/SOURCES/slof-libelf-Add-REL32-to-the-list-of-ignored-relocations.patch b/SOURCES/slof-libelf-Add-REL32-to-the-list-of-ignored-relocations.patch new file mode 100644 index 0000000..4fec0a7 --- /dev/null +++ b/SOURCES/slof-libelf-Add-REL32-to-the-list-of-ignored-relocations.patch @@ -0,0 +1,49 @@ +From a32ea0519c017dec93014e16ef3063728f6491b5 Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Wed, 8 Aug 2018 15:10:57 +0100 +Subject: [PATCH 1/6] libelf: Add REL32 to the list of ignored relocations + +RH-Author: Laurent Vivier +Message-id: <20180808151102.11232-2-lvivier@redhat.com> +Patchwork-id: 81679 +O-Subject: [RHEL-8.0 SLOF PATCH 1/6] libelf: Add REL32 to the list of ignored relocations +Bugzilla: 1613619 +RH-Acked-by: Thomas Huth +RH-Acked-by: Laszlo Ersek +RH-Acked-by: David Gibson + +From: Thomas Huth + +When compiling SLOF with GCC 8.1, I currently get a lot of these errors: + +ERROR: Unhandled relocation (A) type 26 + +Type 26 is the "relative 32-bit" relocation. We can simply ignore it +(like the other relative relocations - REL14, REL24 and REL64) to +shut up these error messages. + +Signed-off-by: Thomas Huth +Reviewed-by: Laurent Vivier +Signed-off-by: Alexey Kardashevskiy +(cherry picked from commit 031cb1b921694f0c8676e0b478a3dccbae9d1639) +Signed-off-by: Laurent Vivier +Signed-off-by: Danilo C. L. de Paula +--- + lib/libelf/elf64.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/libelf/elf64.c b/lib/libelf/elf64.c +index 37e9c10..775cdee 100644 +--- a/lib/libelf/elf64.c ++++ b/lib/libelf/elf64.c +@@ -362,6 +362,7 @@ elf_apply_rela64(void *file_addr, signed long offset, struct rela *relaentry, + case R_PPC64_TOC16_DS: /* (S + A - .TOC) >> 2 */ + case R_PPC64_REL14: + case R_PPC64_REL24: /* (S + A - P) >> 2 */ ++ case R_PPC64_REL32: /* S + A - P */ + case R_PPC64_REL64: /* S + A - P */ + case R_PPC64_GOT16_DS: + case R_PPC64_GOT16_LO_DS: +-- +1.8.3.1 + diff --git a/SOURCES/slof-make.rules-Compile-SLOF-with-fno-asynchronous-unwind.patch b/SOURCES/slof-make.rules-Compile-SLOF-with-fno-asynchronous-unwind.patch new file mode 100644 index 0000000..32945b3 --- /dev/null +++ b/SOURCES/slof-make.rules-Compile-SLOF-with-fno-asynchronous-unwind.patch @@ -0,0 +1,49 @@ +From 0b16818885a56bcf946e09a4c172d74e31d87342 Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Wed, 8 Aug 2018 15:10:59 +0100 +Subject: [PATCH 3/6] make.rules: Compile SLOF with + -fno-asynchronous-unwind-tables + +RH-Author: Laurent Vivier +Message-id: <20180808151102.11232-4-lvivier@redhat.com> +Patchwork-id: 81680 +O-Subject: [RHEL-8.0 SLOF PATCH 3/6] make.rules: Compile SLOF with -fno-asynchronous-unwind-tables +Bugzilla: 1613619 +RH-Acked-by: Thomas Huth +RH-Acked-by: Laszlo Ersek +RH-Acked-by: David Gibson + +From: Thomas Huth + +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 +Signed-off-by: Alexey Kardashevskiy +(cherry picked from commit 5cd96a5ba9782d6f1c2d53d02d5a265fbcae580b) +Signed-off-by: Laurent Vivier +Signed-off-by: Danilo C. L. de Paula +--- + 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.8.3.1 + diff --git a/SOURCES/slof-resolve-ihandle-and-xt-handle-in-the-input-command-l.patch b/SOURCES/slof-resolve-ihandle-and-xt-handle-in-the-input-command-l.patch new file mode 100644 index 0000000..bcce24e --- /dev/null +++ b/SOURCES/slof-resolve-ihandle-and-xt-handle-in-the-input-command-l.patch @@ -0,0 +1,123 @@ +From d8b13f259660ed37f219db40f3d93f2ae81d4945 Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Tue, 29 May 2018 11:09:33 +0200 +Subject: [PATCH 2/2] resolve ihandle and xt handle in the input command (like + for the output) + +RH-Author: Laurent Vivier +Message-id: <20180529110933.1441-3-lvivier@redhat.com> +Patchwork-id: 80502 +O-Subject: [RHEL7.6 SLOF PATCH 2/2] resolve ihandle and xt handle in the input command (like for the output) +Bugzilla: 1495467 +RH-Acked-by: Thomas Huth +RH-Acked-by: Laszlo Ersek +RH-Acked-by: Miroslav Rezanina + +Signed-off-by: Laurent Vivier +Reviewed-by: Thomas Huth +Signed-off-by: Alexey Kardashevskiy +(cherry picked from commit 85d5b4d62d0563163bd12d06a783fbc04a4d9069) +Signed-off-by: Laurent Vivier +Signed-off-by: Miroslav Rezanina +--- + slof/fs/term-io.fs | 40 ++++++++++++++++++++++++---------------- + 1 file changed, 24 insertions(+), 16 deletions(-) + +diff --git a/slof/fs/term-io.fs b/slof/fs/term-io.fs +index f13ae87..5b94b26 100644 +--- a/slof/fs/term-io.fs ++++ b/slof/fs/term-io.fs +@@ -10,10 +10,20 @@ + \ * IBM Corporation - initial implementation + \ ****************************************************************************/ + ++0 VALUE read-xt + 0 VALUE write-xt + ++VARIABLE stdin + VARIABLE stdout + ++: set-stdin ( ihandle -- ) ++ \ Close old stdin: ++ stdin @ ?dup IF close-dev THEN ++ \ Now set the new stdin: ++ dup stdin ! ++ encode-int s" stdin" set-chosen ++; ++ + : set-stdout ( ihandle -- ) + \ Close old stdout: + stdout @ ?dup IF close-dev THEN +@@ -24,12 +34,15 @@ VARIABLE stdout + + : input ( dev-str dev-len -- ) + open-dev ?dup IF +- \ Close old stdin: +- s" stdin" get-chosen IF +- decode-int nip nip ?dup IF close-dev THEN ++ \ find new ihandle and xt handle ++ dup s" read" rot ihandle>phandle find-method ++ 0= IF ++ drop ++ cr ." Cannot find the read method for the given input console " cr ++ EXIT + THEN +- \ Now set the new stdin: +- encode-int s" stdin" set-chosen ++ to read-xt ++ set-stdin + THEN + ; + +@@ -51,7 +64,6 @@ VARIABLE stdout + 2dup input output + ; + +- + 1 BUFFER: (term-io-char-buf) + + : term-io-emit ( char -- ) +@@ -67,16 +79,14 @@ VARIABLE stdout + ' term-io-emit to emit + + : term-io-key ( -- char ) +- s" stdin" get-chosen IF +- decode-int nip nip dup 0= IF 0 EXIT THEN +- >r BEGIN +- (term-io-char-buf) 1 s" read" r@ $call-method ++ read-xt IF ++ BEGIN ++ (term-io-char-buf) 1 read-xt stdin @ call-package + 0 > + UNTIL + (term-io-char-buf) c@ +- r> drop + ELSE +- [ ' key behavior compile, ] ++ serial-key + THEN + ; + +@@ -88,8 +98,7 @@ VARIABLE stdout + \ - if it's an hv console, use hvterm-key? + \ otherwise it will always return false + : term-io-key? ( -- true|false ) +- s" stdin" get-chosen IF +- decode-int nip nip dup 0= IF drop 0 EXIT THEN \ return false and exit if no stdin set ++ stdin @ ?dup IF + >r \ store ihandle on return stack + s" device_type" r@ ihandle>phandle ( propstr len phandle ) + get-property ( true | data dlen false ) +@@ -115,8 +124,7 @@ VARIABLE stdout + 2drop r> drop false EXIT \ unknown device_type cleanup return-stack, return false + THEN + ELSE +- \ stdin not set, return false +- false ++ serial-key? + THEN + ; + +-- +1.8.3.1 + diff --git a/SOURCES/slof-romfs-tools-Remove-superfluous-union-around-the-rom-.patch b/SOURCES/slof-romfs-tools-Remove-superfluous-union-around-the-rom-.patch new file mode 100644 index 0000000..17ed7a8 --- /dev/null +++ b/SOURCES/slof-romfs-tools-Remove-superfluous-union-around-the-rom-.patch @@ -0,0 +1,128 @@ +From 14f7e3a845c339fc98c14d0d57908d4c76f4596a Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Wed, 8 Aug 2018 15:11:00 +0100 +Subject: [PATCH 4/6] romfs/tools: Remove superfluous union around the rom + header struct + +RH-Author: Laurent Vivier +Message-id: <20180808151102.11232-5-lvivier@redhat.com> +Patchwork-id: 81683 +O-Subject: [RHEL-8.0 SLOF PATCH 4/6] romfs/tools: Remove superfluous union around the rom header struct +Bugzilla: 1613619 +RH-Acked-by: Thomas Huth +RH-Acked-by: Laszlo Ersek +RH-Acked-by: David Gibson + +From: Thomas Huth + +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 +Signed-off-by: Alexey Kardashevskiy +(cherry picked from commit d4443f17c956e77df7bb23b2d19462faae9f4b23) +Signed-off-by: Laurent Vivier +Signed-off-by: Danilo C. L. de Paula +--- + 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 + #include + #include + #include +@@ -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.8.3.1 + diff --git a/SOURCES/slof-romfs-tools-Silence-GCC-8.1-compiler-warning-with-FL.patch b/SOURCES/slof-romfs-tools-Silence-GCC-8.1-compiler-warning-with-FL.patch new file mode 100644 index 0000000..f0ed024 --- /dev/null +++ b/SOURCES/slof-romfs-tools-Silence-GCC-8.1-compiler-warning-with-FL.patch @@ -0,0 +1,83 @@ +From e17f0d9c136d4304e53d6f875e25279b838ae476 Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Wed, 8 Aug 2018 15:11:01 +0100 +Subject: [PATCH 5/6] 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 + +RH-Author: Laurent Vivier +Message-id: <20180808151102.11232-6-lvivier@redhat.com> +Patchwork-id: 81684 +O-Subject: [RHEL-8.0 SLOF PATCH 5/6] romfs/tools: Silence GCC 8.1 compiler warning with FLASHFS_MAGIC +Bugzilla: 1613619 +RH-Acked-by: Thomas Huth +RH-Acked-by: Laszlo Ersek +RH-Acked-by: David Gibson + +From: Thomas Huth + +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 +Signed-off-by: Thomas Huth +Signed-off-by: Alexey Kardashevskiy +(cherry picked from commit 49482e06ea74652a70a8cd067b852cc142021c03) +Signed-off-by: Laurent Vivier +Signed-off-by: Danilo C. L. de Paula +--- + 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.8.3.1 + diff --git a/SOURCES/slof-romfs-tools-Silence-more-compiler-warnings-with-GCC-.patch b/SOURCES/slof-romfs-tools-Silence-more-compiler-warnings-with-GCC-.patch new file mode 100644 index 0000000..c831d2a --- /dev/null +++ b/SOURCES/slof-romfs-tools-Silence-more-compiler-warnings-with-GCC-.patch @@ -0,0 +1,81 @@ +From bc63c0f48746d246e0c2fb755515fa05077a3bfd Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Wed, 8 Aug 2018 15:11:02 +0100 +Subject: [PATCH 6/6] 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 + +RH-Author: Laurent Vivier +Message-id: <20180808151102.11232-7-lvivier@redhat.com> +Patchwork-id: 81682 +O-Subject: [RHEL-8.0 SLOF PATCH 6/6] romfs/tools: Silence more compiler warnings with GCC 8.1 +Bugzilla: 1613619 +RH-Acked-by: Thomas Huth +RH-Acked-by: Laszlo Ersek +RH-Acked-by: David Gibson + +From: Thomas Huth + +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 +Signed-off-by: Alexey Kardashevskiy +(cherry picked from commit d8a9354c2a351360da438826c95cf78efcaaf1b0) +Signed-off-by: Laurent Vivier +Signed-off-by: Danilo C. L. de Paula +--- + 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 */ +-- +1.8.3.1 + diff --git a/SOURCES/slof-usb-storage-Implement-block-write-support.patch b/SOURCES/slof-usb-storage-Implement-block-write-support.patch new file mode 100644 index 0000000..2ef74a0 --- /dev/null +++ b/SOURCES/slof-usb-storage-Implement-block-write-support.patch @@ -0,0 +1,110 @@ +From 54b418a32c1e12265dd421f0289b45f77fd38fc1 Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Thu, 20 Dec 2018 11:33:01 +0000 +Subject: [PATCH 3/3] usb/storage: Implement block write support + +RH-Author: Laurent Vivier +Message-id: <20181220113301.29914-3-lvivier@redhat.com> +Patchwork-id: 83709 +O-Subject: [RHEL-8.0 SLOF PATCH 2/2] usb/storage: Implement block write support +Bugzilla: 1654196 +RH-Acked-by: Thomas Huth +RH-Acked-by: David Gibson +RH-Acked-by: Serhii Popovych + +The only missing parts were to manage the transfer direction in +do-bulk-command and to copy the data to the buffer before the +write operation. + +This is needed as GRUB2 wants to write the grubenv file at start +and hangs because the data are not provided to the disk controller. + +I've checked the file is correctly modified by modifying an environment +variable in GRUB2 with "set saved_entry=2" then "save_env saved_entry" +and checking the result in linux with "grub2-editenv list". + +Fixes: Fixes: a0b96fe66fcd991b407c1d67ca842921e477a6fd + (Provide "write" function in the disk-label package) +Signed-off-by: Laurent Vivier +Reviewed-by: Thomas Huth +Signed-off-by: Alexey Kardashevskiy +(cherry picked from commit d10500a4e0378b7f02f63f78a97e3440805f1374) +Signed-off-by: Laurent Vivier + +Signed-off-by: Danilo C. L. de Paula +--- + slof/fs/usb/dev-storage.fs | 27 ++++++++++++++++++++++----- + 1 file changed, 22 insertions(+), 5 deletions(-) + +diff --git a/slof/fs/usb/dev-storage.fs b/slof/fs/usb/dev-storage.fs +index a0a0bac..db5d0a8 100644 +--- a/slof/fs/usb/dev-storage.fs ++++ b/slof/fs/usb/dev-storage.fs +@@ -103,23 +103,30 @@ scsi-open + \ if sense-len is 0 then no sense data is actually present + \ + +-: do-bulk-command ( resp-buffer resp-size -- TRUE | FALSE ) ++: do-bulk-command ( dir resp-buffer resp-size -- TRUE | FALSE ) + TO resp-size + TO resp-buffer + udev USB_PIPE_OUT td-buf td-buf-phys dma-buf-phys usb>cmd 1F + usb-transfer-bulk 0= IF +- FALSE EXIT ++ drop FALSE EXIT + THEN + \ transfer CBW + resp-size IF + d# 125 us +- udev USB_PIPE_IN td-buf td-buf-phys resp-buffer resp-size ++ IF ++ udev USB_PIPE_IN ++ ELSE ++ udev USB_PIPE_OUT ++ THEN ++ td-buf td-buf-phys resp-buffer resp-size + usb-transfer-bulk 0= IF \ transfer data + usb-disk-debug? IF ." Data phase failed " cr THEN + \ FALSE EXIT + \ in case of a stall/halted endpoint we clear the halt + \ Fall through and try reading the CSW + THEN ++ ELSE ++ drop + THEN + d# 125 us + udev USB_PIPE_IN td-buf td-buf-phys dma-buf-phys usb>csw 0D +@@ -182,18 +189,28 @@ CONSTANT cbw-length + build-cbw + 1 tag + to tag + ++ \ copy command + usb-cmd-addr + dma-buf usb>cmd SCSI-COMMAND-OFFSET + + usb-cmd-len + move + ++ \ copy data to write ++ usb-dir not IF ++ usb-buf-addr dma-buf usb>data usb-buf-len move ++ THEN ++ + \ Send it +- dma-buf-phys usb>data usb-buf-len ++ usb-dir dma-buf-phys usb>data usb-buf-len + do-bulk-command 0= IF + ." USB-DISK: Bulk command failed!" cr + 0 0 -1 EXIT + THEN +- dma-buf usb>data usb-buf-addr usb-buf-len move ++ ++ \ copy read data ++ usb-dir IF ++ dma-buf usb>data usb-buf-addr usb-buf-len move ++ THEN + + dma-buf usb>csw to csw-addr + csw-addr csw>sig l@ 55534253 <> IF +-- +1.8.3.1 + diff --git a/SOURCES/slof-usb-storage-Invert-the-logic-of-the-IF-statements.patch b/SOURCES/slof-usb-storage-Invert-the-logic-of-the-IF-statements.patch new file mode 100644 index 0000000..fd8bc23 --- /dev/null +++ b/SOURCES/slof-usb-storage-Invert-the-logic-of-the-IF-statements.patch @@ -0,0 +1,88 @@ +From 74c062d40d0dcc68816b8bfef6940b8876ca635f Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Thu, 20 Dec 2018 11:33:00 +0000 +Subject: [PATCH 2/3] usb/storage: Invert the logic of the IF-statements + +RH-Author: Laurent Vivier +Message-id: <20181220113301.29914-2-lvivier@redhat.com> +Patchwork-id: 83707 +O-Subject: [RHEL-8.0 SLOF PATCH 1/2] usb/storage: Invert the logic of the IF-statements +Bugzilla: 1654196 +RH-Acked-by: Thomas Huth +RH-Acked-by: David Gibson +RH-Acked-by: Serhii Popovych + +to prepare write implementation + +Signed-off-by: Laurent Vivier +Reviewed-by: Thomas Huth +Signed-off-by: Alexey Kardashevskiy +(cherry picked from commit 7d72d327e231d8ae9f1e8bce9f20faeaa2278b24) +Signed-off-by: Danilo C. L. de Paula +--- + slof/fs/usb/dev-storage.fs | 39 +++++++++++++++++++-------------------- + 1 file changed, 19 insertions(+), 20 deletions(-) + +diff --git a/slof/fs/usb/dev-storage.fs b/slof/fs/usb/dev-storage.fs +index 94f8421..a0a0bac 100644 +--- a/slof/fs/usb/dev-storage.fs ++++ b/slof/fs/usb/dev-storage.fs +@@ -107,23 +107,23 @@ scsi-open + TO resp-size + TO resp-buffer + udev USB_PIPE_OUT td-buf td-buf-phys dma-buf-phys usb>cmd 1F +- usb-transfer-bulk IF \ transfer CBW +- resp-size IF +- d# 125 us +- udev USB_PIPE_IN td-buf td-buf-phys resp-buffer resp-size +- usb-transfer-bulk 1 = not IF \ transfer data +- usb-disk-debug? IF ." Data phase failed " cr THEN +- \ FALSE EXIT +- \ in case of a stall/halted endpoint we clear the halt +- \ Fall through and try reading the CSW +- THEN +- THEN +- d# 125 us +- udev USB_PIPE_IN td-buf td-buf-phys dma-buf-phys usb>csw 0D +- usb-transfer-bulk \ transfer CSW +- ELSE +- FALSE EXIT ++ usb-transfer-bulk 0= IF ++ FALSE EXIT + THEN ++ \ transfer CBW ++ resp-size IF ++ d# 125 us ++ udev USB_PIPE_IN td-buf td-buf-phys resp-buffer resp-size ++ usb-transfer-bulk 0= IF \ transfer data ++ usb-disk-debug? IF ." Data phase failed " cr THEN ++ \ FALSE EXIT ++ \ in case of a stall/halted endpoint we clear the halt ++ \ Fall through and try reading the CSW ++ THEN ++ THEN ++ d# 125 us ++ udev USB_PIPE_IN td-buf td-buf-phys dma-buf-phys usb>csw 0D ++ usb-transfer-bulk \ transfer CSW + ; + + STRUCT \ cbw +@@ -189,12 +189,11 @@ CONSTANT cbw-length + + \ Send it + dma-buf-phys usb>data usb-buf-len +- do-bulk-command IF +- dma-buf usb>data usb-buf-addr usb-buf-len move +- ELSE +- ." USB-DISK: Bulk commad failed!" cr ++ do-bulk-command 0= IF ++ ." USB-DISK: Bulk command failed!" cr + 0 0 -1 EXIT + THEN ++ dma-buf usb>data usb-buf-addr usb-buf-len move + + dma-buf usb>csw to csw-addr + csw-addr csw>sig l@ 55534253 <> IF +-- +1.8.3.1 + diff --git a/SPECS/SLOF.spec b/SPECS/SLOF.spec new file mode 100644 index 0000000..121f6d6 --- /dev/null +++ b/SPECS/SLOF.spec @@ -0,0 +1,258 @@ +%define GITDATE 20171214 +%define GITCOMMIT fa98132 + +%global debug_package %{nil} + +Name: SLOF +Version: %{GITDATE} +Release: 5.git%{GITCOMMIT}%{?dist} +Summary: Slimline Open Firmware +Group: Applications/Emulators +License: BSD +URL: http://www.openfirmware.info/SLOF + +Source0: https://github.com/aik/SLOF/archive/qemu-slof-20171214.tar.gz + +Patch1: slof-Fix-output-word.patch +Patch2: slof-resolve-ihandle-and-xt-handle-in-the-input-command-l.patch +# For bz#1613619 - [RHEL8.0]Console contains error message (ERROR: Unhandled relocation (A) type 26) after continuing a guest +Patch3: slof-libelf-Add-REL32-to-the-list-of-ignored-relocations.patch +# For bz#1613619 - [RHEL8.0]Console contains error message (ERROR: Unhandled relocation (A) type 26) after continuing a guest +Patch4: slof-Fix-bad-assembler-statements-for-compiling-with-gcc-.patch +# For bz#1613619 - [RHEL8.0]Console contains error message (ERROR: Unhandled relocation (A) type 26) after continuing a guest +Patch5: slof-make.rules-Compile-SLOF-with-fno-asynchronous-unwind.patch +# For bz#1613619 - [RHEL8.0]Console contains error message (ERROR: Unhandled relocation (A) type 26) after continuing a guest +Patch6: slof-romfs-tools-Remove-superfluous-union-around-the-rom-.patch +# For bz#1613619 - [RHEL8.0]Console contains error message (ERROR: Unhandled relocation (A) type 26) after continuing a guest +Patch7: slof-romfs-tools-Silence-GCC-8.1-compiler-warning-with-FL.patch +# For bz#1613619 - [RHEL8.0]Console contains error message (ERROR: Unhandled relocation (A) type 26) after continuing a guest +Patch8: slof-romfs-tools-Silence-more-compiler-warnings-with-GCC-.patch +# For bz#1655649 - RHEL8.0 - ISST-LTE:KVM:Failed to boot the guest from cdrom drive +Patch9: slof-board-qemu-slof-vio-vscsi-Scan-up-to-64-SCSI-IDs.patch +# For bz#1654196 - [RHEL8.0][USB] guest failed to boot from emulated usb-storage +Patch10: slof-usb-storage-Invert-the-logic-of-the-IF-statements.patch +# For bz#1654196 - [RHEL8.0][USB] guest failed to boot from emulated usb-storage +Patch11: slof-usb-storage-Implement-block-write-support.patch + +BuildArch: noarch +ExclusiveArch: %{power64} + +BuildRequires: binutils +BuildRequires: perl(Data::Dumper) + +%description +Slimline Open Firmware (SLOF) is initialization and boot source code +based on the IEEE-1275 (Open Firmware) standard, developed by +engineers of the IBM Corporation. + +The SLOF source code provides illustrates what's needed to initialize +and boot Linux or a hypervisor on the industry Open Firmware boot +standard. + +Note that you normally wouldn't need to install this package +separately. It is a dependency of qemu-system-ppc64. + +%prep +%setup -q -n SLOF-qemu-slof-%{GITDATE} +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 + +%build +export CROSS="" + +# Workaround for problems on the TPS machines. They have a +# environment variable called "RELEASE" which somehow confuses the +# SLOF Makefiles which also use a variable named RELEASE. +unset RELEASE + +make qemu %{?_smp_mflags} V=2 + +%install +mkdir -p $RPM_BUILD_ROOT%{_datadir}/qemu-kvm +install -c -m 0644 boot_rom.bin $RPM_BUILD_ROOT%{_datadir}/qemu-kvm/slof.bin + +%files +%doc LICENSE +%doc README +%dir %{_datadir}/qemu-kvm +%{_datadir}/qemu-kvm/slof.bin + +%changelog +* Fri Jan 04 2019 Danilo Cesar Lemes de Paula - 20171214-5.gitfa98132.el8 +- slof-board-qemu-slof-vio-vscsi-Scan-up-to-64-SCSI-IDs.patch [bz#1655649] +- slof-usb-storage-Invert-the-logic-of-the-IF-statements.patch [bz#1654196] +- slof-usb-storage-Implement-block-write-support.patch [bz#1654196] +- Resolves: bz#1654196 + ([RHEL8.0][USB] guest failed to boot from emulated usb-storage) +- Resolves: bz#1655649 + (RHEL8.0 - ISST-LTE:KVM:Failed to boot the guest from cdrom drive) + +* Fri Aug 10 2018 Danilo Cesar Lemes de Paula - 20171214-4.gitfa98132.el8 +- slof-libelf-Add-REL32-to-the-list-of-ignored-relocations.patch [bz#1613619] +- slof-Fix-bad-assembler-statements-for-compiling-with-gcc-.patch [bz#1613619] +- slof-make.rules-Compile-SLOF-with-fno-asynchronous-unwind.patch [bz#1613619] +- slof-romfs-tools-Remove-superfluous-union-around-the-rom-.patch [bz#1613619] +- slof-romfs-tools-Silence-GCC-8.1-compiler-warning-with-FL.patch [bz#1613619] +- slof-romfs-tools-Silence-more-compiler-warnings-with-GCC-.patch [bz#1613619] +- Resolves: bz#1613619 + ([RHEL8.0]Console contains error message (ERROR: Unhandled relocation (A) type 26) after continuing a guest) +- Resolves: bz#1600154 + (SLOF needs to be build in power hosts) + + +* Wed Jul 11 2018 Danilo Cesar Lemes de Paula - 20171214-3.gitfa98132.el8 +- Release to RHEL-8.0 + +* Fri Jun 01 2018 Miroslav Rezanina - 20171214-2.gitfa98132.el7 +- slof-Fix-output-word.patch [bz#1495467] +- slof-resolve-ihandle-and-xt-handle-in-the-input-command-l.patch [bz#1495467] +- Resolves: bz#1495467 + (SLOF does not honour output-path environment variable) + +* Wed Apr 18 2018 Miroslav Rezanina - 20171214-1.gitfa98132.el7 +- Rebase to qemu-slof-20171214 [bz#1562106] +- Resolves: bz#1562106 + (Rebase SLOF for RHEL-7.6) + +* Mon Oct 09 2017 Miroslav Rezanina - 20170724-2.git89f519f.el7 +- slof-virtio-net-rework-the-driver-to-support-multiple-ope.patch [bz#1477937] +- Resolves: bz#1477937 + (VM fails to boot at SLOF prompt with "Out of internal memory." with lots of virtio-net-pci devices) + +* Mon Oct 02 2017 Miroslav Rezanina - 20170724-1.git89f519f.el7 +- Rebase to qemu-slof-20170724 [bz#1471284] +- Resolves: bz#1471284 + (Rebase SLOF for RHEL-7.5) + +* Fri May 19 2017 Miroslav Rezanina - 20170303-4.git66d250e.el7 +- slof-pci-Reserve-free-space-at-the-end-of-bridge-windows-.patch [bz#1443433] +- Resolves: bz#1443433 + ([ppc64le] Guest failed to boot up with 8 nested pci-bridge) + +* Fri May 05 2017 Miroslav Rezanina - 20170303-3.git66d250e.el7 +- slof-pci-Put-non-prefetchable-64bit-BARs-into-32bit-MMIO-.patch [bz#1442930] +- slof-pci-Fix-assigned-addresses-for-64bit-nonprefetchable.patch [bz#1442930] +- slof-pci-phb-Set-pci-max-mem64-to-the-correct-value.patch [bz#1442930] +- slof-pci-Generate-a-64-bit-range-property-if-necessary.patch [bz#1442930] +- Resolves: bz#1442930 + ([ppc64le] BARs are incorrectly assigned for some devices under P2P bridges) + +* Fri Apr 28 2017 Miroslav Rezanina - 20170303-2.git66d250e.el7 +- slof-logo-Update-the-logo.patch [bz#1443904] +- slof-Rework-the-printing-of-the-banner-during-boot.patch [bz#1443904] +- Resolves: bz#1443904 + (SLOF user interface display bootable device and "SLOF" words duplicate) + +* Thu Mar 09 2017 Miroslav Rezanina - 20170303-0.git66d250e.el7 +- Rebaes to SLOF version used by QEMU 2.9 [bz#1392055] +- Resolves: bz#1392055 + (Rebase SLOF for RHEL-7.4) + +* Fri Aug 05 2016 Miroslav Rezanina - 20160223-6.gitdbbfda4.el7 +- slof-usb-Move-XHCI-port-state-arrays-from-header-to-.c-fi.patch [bz#1352765] +- slof-usb-Increase-amount-of-maximum-slot-IDs-and-add-a-sa.patch [bz#1352765] +- slof-usb-Initialize-USB3-devices-on-a-hub-and-keep-track-.patch [bz#1352765] +- slof-usb-Build-correct-route-string-for-USB3-devices-behi.patch [bz#1352765] +- slof-usb-Set-XHCI-slot-speed-according-to-port-status.patch [bz#1352765] +- Resolves: bz#1352765 + (SLOF can not handle devices attached to an XHCI USB hub) + +* Tue Jul 26 2016 Miroslav Rezanina - 20160223-5.gitdbbfda4.el7 +- slof-usb-hid-Fix-non-working-comma-key.patch [bz#1352821] +- Resolves: bz#1352821 + (Key "," can not be inputted during SLOF and yaboot stage) + +* Tue Jun 07 2016 Miroslav Rezanina - 20160223-4.gitdbbfda4.el7 +- slof-xhci-add-memory-barrier-after-filling-the-trb.patch [bz#1339528] +- slof-xhci-fix-missing-keys-from-keyboard.patch [bz#1339528] +- slof-Improve-F12-key-handling-in-boot-menu.patch [bz#1339528] +- Resolves: bz#1339528 + (SLOF boot menu gets delayed if press 'F12' key for multiple times) + +* Wed May 11 2016 Miroslav Rezanina - 20160223-3.gitdbbfda4.el7 +- slof-ipv6-Do-not-use-unitialized-MAC-address-array.patch [bz#1287716] +- slof-ipv6-send_ipv6-has-to-return-after-doing-NDP.patch [bz#1287716] +- slof-ipv6-Fix-possible-NULL-pointer-dereference-in-send_i.patch [bz#1287716] +- slof-ipv6-Clear-memory-after-malloc-if-necessary.patch [bz#1287716] +- slof-ipv6-Fix-memory-leak-in-set_ipv6_address-ip6_create_.patch [bz#1287716] +- slof-ipv6-Indent-code-with-tabs-not-with-spaces.patch [bz#1287716] +- slof-ipv6-Fix-NULL-pointer-dereference-in-ip6addr_add.patch [bz#1287716] +- slof-ipv6-Replace-magic-number-1500-with-ETH_MTU_SIZE-i.e.patch [bz#1287716] +- Resolves: bz#1287716 + (IPv6 boot support in SLOF) + +* Fri May 06 2016 Miroslav Rezanina - 20160223-2.gitdbbfda4.el7 +- slof-dev-null-The-read-function-has-to-return-0-if-nothin.patch [bz#1310737] +- slof-ipv6-Add-support-for-sending-packets-through-a-route.patch [bz#1301081] +- slof-virtio-net-initialize-to-populate-mac-address.patch [bz#1331698] +- Resolves: bz#1301081 + (IPv6 boot does not work in SLOF when TFTP server is behind a router) +- Resolves: bz#1310737 + (SLOF cannot boot without a console) +- Resolves: bz#1331698 + (Network booting in grub fails when using virtio-net and SLOF-20160223-0) + +* Fri Sep 18 2015 Miroslav Rezanina - 20150313-5.gitc89b0df.el7 +- slof-pci-Use-QEMU-created-PCI-device-nodes.patch [bz#1250326] +- Resolves: bz#1250326 + (vfio device can't be hot unplugged on powerpc guest) + +* Wed Sep 16 2015 Miroslav Rezanina - 20150313-4.gitc89b0df.el7 +- slof-cas-Increase-FDT-buffer-size-to-accomodate-larger-ib.patch [bz#1263039] +- slof-Downstream-only-Correctly-set-ibm-my-drc-index.patch [bz#1250326] +- Resolves: bz#1250326 + (vfio device can't be hot unplugged on powerpc guest) +- Resolves: bz#1263039 + (SLOF doesn't allow enough room for CAS response with large maxmem) + +* Thu Aug 06 2015 Miroslav Rezanina - 20150313-3.gitc89b0df.el7 +- slof-fbuffer-Improve-invert-region-helper.patch [bz#1237052] +- slof-fbuffer-Use-a-smaller-cursor.patch [bz#1237052] +- slof-terminal-Disable-the-terminal-write-trace-by-default.patch [bz#1237052] +- slof-fbuffer-Precalculate-line-length-in-bytes.patch [bz#1237052] +- slof-fbuffer-Implement-MRMOVE-as-an-accelerated-primitive.patch [bz#1237052] +- slof-fbuffer-Implement-RFILL-as-an-accelerated-primitive.patch [bz#1237052] +- slof-Add-missing-half-word-access-case-to-_FASTRMOVE-and-.patch [bz#1237052] +- Resolves: bz#1237052 + (Curser movement issue - the curser would move right and left before get its position in grub interface of a qemu-kvm guest) + +* Tue Jun 09 2015 Miroslav Rezanina - 20150313-2.gitc89b0df.el7 +- slof-fbuffer-simplify-address-computations-in-fb8-toggle-.patch [bz#1212256] +- slof-fbuffer-introduce-the-invert-region-helper.patch [bz#1212256] +- slof-fbuffer-introduce-the-invert-region-x-helper.patch [bz#1212256] +- slof-spec-Remove-FlashingSLOF.pdf.patch [bz#1226264] +- Resolves: bz#1212256 + ([Power KVM] Grub interface of guest response slow) +- Resolves: bz#1226264 + (Remove FlashingSLOF.pdf) + +* Thu May 28 2015 Miroslav Rezanina - 20150313-1.gitc89b0df +- rebase to 20150313 version +- Resolves: bz#1225720 + (Update SLOF package to match current qemu-kvm-rhev package) + +* Tue Jan 27 2015 Miroslav Rezanina - 20140630-4.gitf284ab3 +- slof-Downstream-only-Workaround-for-TPS-environment-oddit.patch [bz#1183927] +- Resolves: bz#1183927 + (TPS srpm rebuild test failure for SLOF) + +* Fri Nov 14 2014 Miroslav Rezanina - 20140630-3.gitf284ab3 +- slof-net-snk-use-socket-descriptor-in-the-network-stack.patch [bz#1158217] +- slof-ipv4-Fix-send-packet-across-a-subnet.patch [bz#1158217] +- Resolves: bz#1158217 + (SLOF can not reach tftp server on different subnet) + +* Thu Aug 28 2014 Miroslav Rezanina - 20140630-2.gitf284ab3 +- building as noarch + +* Tue Jun 24 2014 Miroslav Rezanina - 20140630-1.gitf284ab3 +- Initial version