qemu-riscv
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: qemu icicle kit es


From: Conor Dooley
Subject: Re: qemu icicle kit es
Date: Wed, 11 Jan 2023 16:40:47 +0000

On Wed, Jan 11, 2023 at 03:21:26PM +0100, stage TC wrote:
> Hello,
> Sorry in advance if this is not the right way to do it but I'm a student
> and not very used to this kind of stuff (first mailing list).

Don't worry, you are doing fine :)

> I'm trying to run qemu for the Microchip PolarFire SoC Icicle kit but I'm
> facing a few issues and the wiki page about that seems obsolete.

I must admit, it's a long time since I tried to use a v2020.x release of
any MPFS software. Last time I did give the steps in the docs a go,
with a suitably vintage version of QEMU, things worked as expected.
However, using more recent versions of QEMU I ran into some problems
with the sd/mmc emulation & never get into U-Boot.

> I follow almost exactly what the wiki does (except I use a terminal as a
> tty instead of the socket bc it didn't work) but my HSS won't boot on
> versions more recent than 2020.10 or 0.99.12.

What does "my HSS won't boot" mean? E.g:
- Does the MICROCHIP logo banner appear (if it existed back then!)?
  If it didnt, the version string I think was.
- Does the HSS console appear?
- Does it fail to launch the next bootloader stage?

> However I can't find any image compatible for versions older than 2020.10
> or 0.99.12 (mines hang at "starting kernel ...".

By that do you mean you cannot find a pre-built yocto image? I am not
sure that there are any that pre-date the one linked in the wiki that
are still available, as those on GitHub only go back as far as v2021.02

> Is there any newer version of the tutorial ? Or does anyone have an idea on
> how to deal with this issue and use qemu for newer versions of the HSS ?

I do my testing with something like:
$(QEMU)/qemu-system-riscv64 \
        -M microchip-icicle-kit \
        -m 2G -smp 5 \
        -kernel $(vmlinux_bin) \
        -dtb $(devkit).dtb \
        -initrd $(initramfs) \
        -display none \
        -serial null \
        -serial stdio

This loads a kernel directly rather than using the HSS - for recent
versions of the HSS, implementations of some peripherals need to be
added, for example, it checks things like the cache configuration
during boot, which are not emulated in QEMU.

For that reason, I've stuck with doing direct kernel boots. Linux
v6.0.18 (and the associated devicetree) is the most recent combination
that I have booted unmodified using the master branch of QEMU using
this method.

More recent (linux) kernels come with a device tree that will require
changes in QEMU to support & I have unfortunately not had the time
to work on that recently.

Sorry that I am really of no help to you.

Conor.

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]