Control: tags 966624 patch

On 2020-07-31, Michael Tokarev wrote:
> qemu powerpc machine emulation uses u-boot for booting,
> and this firmware image is currently missing.  Please
> provide a package containing such firmware.
>
> Here's how it is built within qemu sources (where u-boot
> is present as a submodule):
>
> u-boot.e500:
>         $(MAKE) -C u-boot O=build.e500 qemu-ppce500_config
>         $(MAKE) -C u-boot CROSS_COMPILE=$(powerpc_cross_prefix) \
>                 O=build.e500
>         $(powerpc_cross_prefix)strip u-boot/build.e500/u-boot -o \
>                 ../pc-bios/u-boot.e500

The following *untested* patch might work:

diff --git a/debian/control b/debian/control
index d6f24e3218..f7019e5207 100644
--- a/debian/control
+++ b/debian/control
@@ -28,6 +28,7 @@ Build-Depends-Indep:
  gcc-aarch64-linux-gnu [!arm64],
  gcc-riscv64-linux-gnu [!riscv64],
  gcc-x86-64-linux-gnu [!amd64],
+ gcc-powerpc-linux-gnu [!powerpc],
 Rules-Requires-Root: no
 Standards-Version: 4.5.0
 Homepage: http://www.denx.de/wiki/U-Boot/
diff --git a/debian/rules b/debian/rules
index 5cafdbf0e0..1bd0591119 100755
--- a/debian/rules
+++ b/debian/rules
@@ -87,6 +87,7 @@ build-targets: configs/novena-rawsd_defconfig 
configs/am335x_boneblack_defconfig
                        all:mips) export CROSS_COMPILE=mips-linux-gnu- ;;\
                        all:mipsel) export CROSS_COMPILE=mipsel-linux-gnu- ;;\
                        all:mips64el) export 
CROSS_COMPILE=mips64el-linux-gnuabi64- ;;\
+                       all:powerpc) export CROSS_COMPILE=powerpc-linux-gnu- ;;\
                        all:riscv64) export CROSS_COMPILE=riscv64-linux-gnu- ;;\
                        all:i386) export CROSS_COMPILE=i686-linux-gnu- ;;\
                        all:amd64) export CROSS_COMPILE=x86_64-linux-gnu- ;;\
diff --git a/debian/targets b/debian/targets
index 9bd210d46d..78db9c7ade 100644
--- a/debian/targets
+++ b/debian/targets
@@ -262,5 +262,6 @@ all:amd64   qemu    qemu-x86_64     u-boot.bin
 all:armhf      qemu    qemu_arm        u-boot.bin
 all:arm64      qemu    qemu_arm64      u-boot.bin
 all:i386       qemu    qemu-x86        u-boot.bin
+all:powerpc    qemu    qemu-ppce500    u-boot.elf
 all:riscv64    qemu    qemu-riscv64    u-boot.bin
 all:riscv64    qemu    qemu-riscv64_smode      u-boot.bin


> qemu expects this image to be found as /usr/share/qemu/u-boot.e500
> (this is the directory where all other images are located).

You would still need to symlink /usr/lib/u-boot/qemu-ppce500/uboot.elf
to the location that qemu expects it.


> I dunno what's the name to suggest for this package, since
> u-boot-qemu is already taken and it provides different images,
> not directly used by qemu.  Maybe qemu-uboot or something, dunno.

I would just add it to u-boot-qemu; it is still a small number of
targets and each one is not very large, and while qemu does not use the
other targets shipped in u-boot-qemu out-of-the-box, they can be used
with qemu.


> There's a bug open in the Debian BTS about this, #756833 , - open
> for a long time already.  The difference from this #756833 context
> is that now, powerpc cross-compiler is available and can be used
> for build-dependencies.

I'll read up on that bug later...

> I can build this firmware directly from the qemu sources (which
> includes roms/u-boot), and qemu already uses powerpc cross-gcc
> to build other things, but this is something to avoid in Debian.

Right!


live well,
  vagrant

Attachment: signature.asc
Description: PGP signature

Reply via email to