Skip to content
This repository has been archived by the owner on Jan 12, 2021. It is now read-only.

Add configs for malta{64,el,64el}_qemu targets #30

Closed

Conversation

danielschwierzeck
Copy link
Contributor

This is mostly copied from qemu_mips configs. The generic
Qemu MIPS machine is marked as deprecated by Qemu. The
MIPS Malta machine should be preferred. Thus in order to
be able to deprecate the qemu_mips target in U-Boot as
well, all MIPS specific Qemu CI tests have to be moved
to the Malta targets.

The Qemu MIPS Malta machine expects all firmware images to be
given in Big-Endian byte order. Thus the Malta Little-Endian
variants (maltael, malta64el) needs to use 'u-boot-swap.bin'
as firmware.

Successful CI runs on Gitlab, Travis CI and Azure:

bin/qemu.maltael Outdated
@@ -0,0 +1,24 @@
# Copyright (c) 2016 Konsulko Group. All rights reserved.
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this file can be dropped. Either that, of conf.malta64_qemu needs to set qemu_helper_script to point at this file?

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, and I think you want to add-to/update all these copyright headers?

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I see that some of the new conf files do use this but not all, based on endianness.

A good cleanup, perhaps later, would be to share code/logic between bin/qemu.* since they're the same except for input filename. Also, qemu.* isn't a good name; qemu-flash-gen.* might be better. But this can come later.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now I switched all qemu_mips and malta targets to script flash.create_image_32mb and removed the redundant qemu helper script. For flash.create_image_32mb I introduced a new parameter flash_u_boot_bin which the maltael and malta64el boards set to u-boot-swap.bin.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I needed to add another parameter flash_size because newer Qemu version limit the CFI backend for qemu_mips and Malta to 4 MiB.

qemu_machine="malta"
qemu_binary="qemu-system-mips64"
qemu_extra_args="-nographic -cpu MIPS64R2-generic -m 256"
qemu_kernel_args="-drive if=pflash,file=${U_BOOT_BUILD_DIR}/flash,format=raw -netdev user,id=net0,tftp=${UBOOT_TRAVIS_BUILD_DIR} -device pcnet,netdev=net0"
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Existing MIPS qemu don't have most of these cmdline arguments. Is adding them deliberate?
Can we wrap the text so it's a bit narrower; github diff doesn't show the whole text without scrolling:-(

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, them are all needed. The memory has a fixed size of 256MiB, which is not the Qemu default. Also I had problems with the default Qemu CPUs for the Malta machine so I needed to overwrite them. The network stuff is needed to be able to run the network test cases.

I'll push a fixup for the line wrapping.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did the other qemu config contain the network device by default then? That said, I suppose even if network tests weren't enabled in the other config, it's fine to enable them for the new one for better coverage.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, the qemu_mips boards didn't have networking support.

Introduce parameter 'flash_u_boot_bin' to allow a board to
configure custom U-Boot input binaries. This will be used
later by the Malta Qemu boards.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
danielschwierzeck added a commit to danielschwierzeck/u-boot that referenced this pull request Jun 8, 2020
Add Qemu tests for the MIPS Malta machine as a replacement for
the deprecated generic MIPS machine.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>

Series-to: u-boot
Series-cc: trini
Series-cc: marex
Series-cc: Stephen Warren <swarren@nvidia.com>
Series-cc: Bin Meng <bmeng.cn@gmail.com>
Series-cc: Heinrich Schuchardt <xypron.glpk@gmx.de>

Cover-letter:
Add Qemu tests for MIPS Malta machine

The currently used qemu_mips target respectively the Qemu
generic MIPS machine is marked as deprecated by Qemu. One should
use the MIPS Malta machine. Also the qemu_mips target only exists
in U-Boot, the Linux support was removed centuries ago. Thus we
should deprecated and remove the qemu_mips target eventually.
The first step would be to move the MIPS specific Qemu CI tests to
the Malta targets which also covers all 32/64 bit and Little/Big
Endian variants.

Successful CI runs on Gitlab, Travis CI and Azure:

https://gitlab.denx.de/u-boot/custodians/u-boot-mips/pipelines/3557
https://travis-ci.org/github/danielschwierzeck/u-boot/builds/695247372
https://dev.azure.com/danielschwierzeck/u-boot/_build/results?buildId=4&view=results

Complementary pull request for uboot-test-hooks:

swarren/uboot-test-hooks#30

END
Introduce parameter 'flash_size' to allow a board to
configure a custom flash image size. This will be used
later by the Malta Qemu boards.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
The code is the same, only the flash images sizes differ.
But that's irrelevant for qemu_mips targets so remove the
redundant script.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
This is mostly copied from qemu_mips configs. The generic
Qemu MIPS machine is marked as deprecated by Qemu. The
MIPS Malta machine should be preferred. Thus in order to
be able to deprecate the qemu_mips target in U-Boot as
well, all MIPS specific Qemu CI tests have to be moved
to the Malta targets.

The Qemu MIPS Malta machine expects all firmware images to be
given in Big-Endian byte order. Thus the Malta Little-Endian
variants (maltael, malta64el) needs to use 'u-boot-swap.bin'
as firmware.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
@swarren
Copy link
Owner

swarren commented Jun 9, 2020

Applied. Thanks.

@swarren swarren closed this Jun 9, 2020
danielschwierzeck added a commit to danielschwierzeck/u-boot that referenced this pull request Jun 15, 2020
Add Qemu tests for the MIPS Malta machine as a replacement for
the deprecated generic MIPS machine.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>

Series-to: u-boot
Series-cc: trini
Series-cc: marex
Series-cc: Stephen Warren <swarren@nvidia.com>
Series-cc: Bin Meng <bmeng.cn@gmail.com>
Series-cc: Heinrich Schuchardt <xypron.glpk@gmx.de>

Cover-letter:
Add Qemu tests for MIPS Malta machine

The currently used qemu_mips target respectively the Qemu
generic MIPS machine is marked as deprecated by Qemu. One should
use the MIPS Malta machine. Also the qemu_mips target only exists
in U-Boot, the Linux support was removed centuries ago. Thus we
should deprecated and remove the qemu_mips target eventually.
The first step would be to move the MIPS specific Qemu CI tests to
the Malta targets which also covers all 32/64 bit and Little/Big
Endian variants.

Successful CI runs on Gitlab, Travis CI and Azure:

https://gitlab.denx.de/u-boot/custodians/u-boot-mips/pipelines/3557
https://travis-ci.org/github/danielschwierzeck/u-boot/builds/695247372
https://dev.azure.com/danielschwierzeck/u-boot/_build/results?buildId=4&view=results

Complementary pull request for uboot-test-hooks:

swarren/uboot-test-hooks#30

END
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants