
On Wed, 2018-09-05 at 09:28 +0800, Rick Chen wrote:
From: Auer, Lukas [mailto:lukas.auer@aisec.fraunhofer.de] Sent: Wednesday, September 05, 2018 5:53 AM To: bmeng.cn@gmail.com Cc: Rick Jian-Zhi Chen(陳建志); u-boot@lists.denx.de Subject: Re: [U-Boot] [PATCH 12/12] riscv: Add QEMU virt board
support
On Tue, 2018-09-04 at 17:31 +0800, Bin Meng wrote:
Hi Lukas,
On Tue, Sep 4, 2018 at 5:39 AM Auer, Lukas lukas.auer@aisec.fraunhofer.de wrote:
On Thu, 2018-08-30 at 00:54 -0700, Bin Meng wrote:
This adds QEMU RISC-V 'virt' board target support, with
the hope
of helping people easily test U-Boot on RISC-V.
The QEMU virt machine models a generic RISC-V virtual
machine
with support for the VirtIO standard networking and block storage devices. It has CLINT, PLIC, 16550A UART devices in addition to
VirtIO
and it also uses device-tree to pass configuration
information
to guest software. It implements RISC-V privileged
architecture
spec v1.10.
Both 32-bit and 64-bit builds are supported. Support is
pretty
much preliminary, only booting to U-Boot shell with the
UART
driver on a single core. Booting Linux is not supported
yet.
For your information and to avoid duplicate work, I am
working on
a patch set that improves RISC-V support in u-boot. I am
currently
able to boot Linux on a multi-core setup in QEMU, but they
are not
quite ready to submit yet.
This is great! My next step is to work on virtio driver
support in
U-Boot as qemu-riscv virt machine has these devices but we
don't
have corresponding drivers in U-Boot. Then I will try to boot
Linux
after that. Good to hear you already boot Linux with qemu-
riscv!
Have you already supported virtio drivers in your port? If
yes, I
will just hold on and wait for your patch series :-)
Hi Bin,
Support for the virtio devices would be great! I don't support
them in
my port, I can only boot a kernel image from RAM. I only have a driver for the clint0 (core local interrupt
controller),
which I need for software interrupts to other cores and as a
timer.
Software interrupts also work over the supervisor binary
interface
(SBI), which allows u-boot to run in supervisor mode with bbl
running
in machine mode to handle the SBI calls.
Hi Bin and Auer
I have already boot bbl run in S-mode and riscv-linux in M-mode via u-boot from SD card or FLASH. It mean after booting riscv-linux, u-boot will be dead. And no matter about kernel. Please refer to doc/README.ae350
May I figure out more clearly what are you going to do ? What are you going to do is let u-boot run in S-mode and boot bbl and riscv-linux in M-mode, right ? It mean after booting bbl and riscv-linux, u-boot will still alive and handle SBI calls and somethings in S-mode.
Or u-boot is going to replace the role of bbl ?
Rick
Hi Rick,
Not exactly, my current boot flow is as follows.
1. u-boot SPL starts in machine mode and jumps to bbl 2. bbl starts u-boot proper in supervisor mode 3. u-boot boots the kernel
bbl is still active once Linux has booted and is used there for its SBI implementation. Hope this helps.
Thanks, Lukas
Thank you for your patches, it's great to see better support
for
RISC-V in u-boot! I will add a few comments based on what I
have
learned so far from working with u-boot on RISC-V.
It's a good start. RISC-V is pretty new and needs more
developers
:-)
Exactly :)
Thanks, Lukas