diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index f969c8569e6..b34d75862f8 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -120,7 +120,7 @@ jobs: if: ${{ matrix.arch == 'aarch64' }} with: path: ${{ github.workspace }}/Toolchain/Local/qemu - key: ${{ runner.os }}-qemu-${{ hashFiles('Ports/qemu/version.sh', 'Toolchain/BuildQemu.sh', 'Toolchain/Patches/qemu/*.patch') }} + key: ${{ runner.os }}-qemu-${{ hashFiles('Ports/qemu/version.sh', 'Toolchain/BuildQemu.sh') }} - name: Build AArch64 Qemu if: ${{ matrix.arch == 'aarch64' && !steps.qemu-cache.outputs.cache-hit }} diff --git a/Ports/AvailablePorts.md b/Ports/AvailablePorts.md index 8a87ef4a6ad..1cd245baa44 100644 --- a/Ports/AvailablePorts.md +++ b/Ports/AvailablePorts.md @@ -253,7 +253,7 @@ This list is also available at [ports.serenityos.net](https://ports.serenityos.n | [`pt2-clone`](pt2-clone/) | ProTracker 2 clone | 1.49 | https://github.com/8bitbubsy/pt2-clone | | [`pv`](pv/) | Pipe Viewer | 1.6.20 | http://www.ivarch.com/programs/pv.shtml | | [`python3`](python3/) | Python | 3.11.5 | https://www.python.org/ | -| [`qemu`](qemu/) | QEMU | 8.0.3 | https://qemu.org | +| [`qemu`](qemu/) | QEMU | 8.1.0 | https://qemu.org | | [`qoi`](qoi/) | Quite OK Image Format for fast, lossless image compression | edb8d7b | https://github.com/phoboslab/qoi | | [`qt6-qt5compat`](qt6-qt5compat/) | Qt6 Qt5Compat | 6.4.0 | https://doc.qt.io/qt-6/qtcore5-index.html | | [`qt6-qtbase`](qt6-qtbase/) | Qt6 QtBase | 6.4.0 | https://qt.io | diff --git a/Ports/qemu/version.sh b/Ports/qemu/version.sh index d55339c5a7f..3b8c682651a 100644 --- a/Ports/qemu/version.sh +++ b/Ports/qemu/version.sh @@ -1,4 +1,4 @@ -QEMU_VERSION="8.0.3" +QEMU_VERSION="8.1.0" QEMU_ARCHIVE="qemu-${QEMU_VERSION}.tar.xz" QEMU_ARCHIVE_URL="https://download.qemu.org/${QEMU_ARCHIVE}" -QEMU_ARCHIVE_SHA256SUM="ecf4d32cbef9d397bfc8cc50e4d1e92a1b30253bf32e8ee73c7a8dcf9a232b09" +QEMU_ARCHIVE_SHA256SUM="710c101198e334d4762eef65f649bc43fa8a5dd75303554b8acfec3eb25f0e55" diff --git a/Toolchain/BuildQemu.sh b/Toolchain/BuildQemu.sh index e26ef0635ec..1cc2e29cc05 100755 --- a/Toolchain/BuildQemu.sh +++ b/Toolchain/BuildQemu.sh @@ -37,19 +37,12 @@ pushd "$DIR/Tarballs" exit 1 fi - # If the source directory exists, re-extract it again in case the patches have changed. if [ -d "qemu-$QEMU_VERSION" ]; then rm -rf "qemu-$QEMU_VERSION" fi echo "Extracting qemu..." tar -xf "${QEMU_ARCHIVE}" - - pushd "qemu-$QEMU_VERSION" - for patch in "${DIR}"/Patches/qemu/*.patch; do - patch -p1 < "${patch}" > /dev/null - done - popd popd mkdir -p "$PREFIX" diff --git a/Toolchain/Patches/qemu/raspberry-pi-command-line.patch b/Toolchain/Patches/qemu/raspberry-pi-command-line.patch deleted file mode 100644 index 1f3873a28f8..00000000000 --- a/Toolchain/Patches/qemu/raspberry-pi-command-line.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 8b4eba1d4f41c5e07d2be1de6deb545dee4a2eb1 Mon Sep 17 00:00:00 2001 -From: Daniel Bertalan -Date: Tue, 25 Apr 2023 11:35:52 +0200 -Subject: [PATCH] hw/arm/bcm2835_property: Implement "get command line" message - -This query copies the kernel command line into the message buffer. It -was previously stubbed out to return empty, this commit makes it reflect -the arguments specified with `-append`. - -I observed the following peculiarities on my Pi 3B+: -- If the buffer is shorter than the string, the response header gives - the full length, but no data is actually copied. -- No NUL terminator is added: even if the buffer is long enough to fit - one, the buffer's original contents are preserved past the string's - end. -- The VC firmware adds the following extra parameters beside the - user-supplied ones (via /boot/cmdline.txt): `video`, `vc_mem.mem_base` - and `vc_mem.mem_size`. This is currently not implemented in qemu. - -Signed-off-by: Daniel Bertalan ---- - hw/arm/bcm2835_peripherals.c | 2 ++ - hw/arm/bcm2836.c | 2 ++ - hw/arm/raspi.c | 2 ++ - hw/misc/bcm2835_property.c | 7 ++++++- - include/hw/misc/bcm2835_property.h | 1 + - 5 files changed, 13 insertions(+), 1 deletion(-) - -This patch has been submitted upstream: https://lists.nongnu.org/archive/html/qemu-arm/2023-04/msg00549 - -diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c -index 3c2a4160cd..0233038b95 100644 ---- a/hw/arm/bcm2835_peripherals.c -+++ b/hw/arm/bcm2835_peripherals.c -@@ -90,6 +90,8 @@ static void bcm2835_peripherals_init(Object *obj) - TYPE_BCM2835_PROPERTY); - object_property_add_alias(obj, "board-rev", OBJECT(&s->property), - "board-rev"); -+ object_property_add_alias(obj, "command-line", OBJECT(&s->property), -+ "command-line"); - - object_property_add_const_link(OBJECT(&s->property), "fb", - OBJECT(&s->fb)); -diff --git a/hw/arm/bcm2836.c b/hw/arm/bcm2836.c -index f894338fc6..166dc896c0 100644 ---- a/hw/arm/bcm2836.c -+++ b/hw/arm/bcm2836.c -@@ -55,6 +55,8 @@ static void bcm2836_init(Object *obj) - TYPE_BCM2835_PERIPHERALS); - object_property_add_alias(obj, "board-rev", OBJECT(&s->peripherals), - "board-rev"); -+ object_property_add_alias(obj, "command-line", OBJECT(&s->peripherals), -+ "command-line"); - object_property_add_alias(obj, "vcram-size", OBJECT(&s->peripherals), - "vcram-size"); - } -diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c -index 92d068d1f9..7b9221c924 100644 ---- a/hw/arm/raspi.c -+++ b/hw/arm/raspi.c -@@ -280,6 +280,8 @@ static void raspi_machine_init(MachineState *machine) - object_property_add_const_link(OBJECT(&s->soc), "ram", OBJECT(machine->ram)); - object_property_set_int(OBJECT(&s->soc), "board-rev", board_rev, - &error_abort); -+ object_property_set_str(OBJECT(&s->soc), "command-line", -+ machine->kernel_cmdline, &error_abort); - qdev_realize(DEVICE(&s->soc), NULL, &error_fatal); - - /* Create and plug in the SD cards */ -diff --git a/hw/misc/bcm2835_property.c b/hw/misc/bcm2835_property.c -index 890ae7bae5..225bce2ba4 100644 ---- a/hw/misc/bcm2835_property.c -+++ b/hw/misc/bcm2835_property.c -@@ -282,7 +282,11 @@ static void bcm2835_property_mbox_push(BCM2835PropertyState *s, uint32_t value) - break; - - case 0x00050001: /* Get command line */ -- resplen = 0; -+ resplen = strlen(s->command_line); -+ if (bufsize >= resplen) -+ address_space_write(&s->dma_as, value + 12, -+ MEMTXATTRS_UNSPECIFIED, s->command_line, -+ resplen); - break; - - default: -@@ -413,6 +417,7 @@ static void bcm2835_property_realize(DeviceState *dev, Error **errp) - - static Property bcm2835_property_props[] = { - DEFINE_PROP_UINT32("board-rev", BCM2835PropertyState, board_rev, 0), -+ DEFINE_PROP_STRING("command-line", BCM2835PropertyState, command_line), - DEFINE_PROP_END_OF_LIST() - }; - -diff --git a/include/hw/misc/bcm2835_property.h b/include/hw/misc/bcm2835_property.h -index 712b76b7a3..ba8896610c 100644 ---- a/include/hw/misc/bcm2835_property.h -+++ b/include/hw/misc/bcm2835_property.h -@@ -30,6 +30,7 @@ struct BCM2835PropertyState { - MACAddr macaddr; - uint32_t board_rev; - uint32_t addr; -+ char *command_line; - bool pending; - }; - --- -2.40.0 -