All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bin Meng <bmeng.cn@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 0/3] Ethernet support for QEMU sifive_u machine
Date: Mon, 24 Dec 2018 09:29:46 +0800	[thread overview]
Message-ID: <CAEUhbmW0Kt2t_c75oscwShBQ88V93FcHUbH5Xqgwf_wTRQzNkQ@mail.gmail.com> (raw)
In-Reply-To: <CAEUhbmWPaf77RMmH+jwvu+NLx7gxOmkMxLhxe_01m8GfBQq7-g@mail.gmail.com>

Hi Anup,

On Wed, Dec 19, 2018 at 5:05 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>
> Hi Anup,
>
> On Wed, Dec 19, 2018 at 2:32 PM Anup Patel <anup@brainfault.org> wrote:
> >
> > On Wed, Dec 19, 2018 at 11:02 AM Bin Meng <bmeng.cn@gmail.com> wrote:
> > >
> > > Hi Anup,
> > >
> > > On Wed, Dec 19, 2018 at 12:41 PM Anup Patel <anup@brainfault.org> wrote:
> > > >
> > > > On Tue, Dec 18, 2018 at 4:06 PM Bin Meng <bmeng.cn@gmail.com> wrote:
> > > > >
> > > > > Hi Anup,
> > > > >
> > > > > On Tue, Dec 18, 2018 at 6:33 PM Anup Patel <anup@brainfault.org> wrote:
> > > > > >
> > > > > > On Tue, Dec 18, 2018 at 3:21 PM Bin Meng <bmeng.cn@gmail.com> wrote:
> > > > > > >
> > > > > > > Hi Anup,
> > > > > > >
> > > > > > > On Mon, Dec 17, 2018 at 7:51 PM Anup Patel <anup@brainfault.org> wrote:
> > > > > > > >
> > > > > > > > This patchset enables Cadance MACB ethernet driver for
> > > > > > > > QEMU sifive_u machine. The Cadance MACB ethernet driver
> > > > > > > > works fine for QEMU sifive_u machince in both M-mode and
> > > > > > > > S-mode with some minor fixes.
> > > > > > > >
> > > > > > > > The patches are based upon latest RISC-V U-Boot tree
> > > > > > > > (git://git.denx.de/u-boot-riscv.git) at commit id
> > > > > > > > 9deb8d2fcd13d4a40a4e63c396fe4376af46efac
> > > > > > > >
> > > > > > > > To try on QEMU, please ensure following patches are
> > > > > > > > applied to QEMU sources:
> > > > > > > > https://patchwork.kernel.org/patch/10729579/
> > > > > > > > https://patchwork.kernel.org/patch/10729581/
> > > > > > > >
> > > > > > >
> > > > > > > What "-device " parameter should I tell QEMU to instantiate the MACB?
> > > > > > > "-device ?" does not give me anything that looks like MACB. Without a
> > > > > > > proper "-device " parameter, I can boot U-Boot on QEMU sifive_u and
> > > > > > > see U-Boot driver is probed, but a simple 'ping' test does not work.
> > > > > >
> > > > > > Try the following:
> > > > > > # setenv ipaddr 10.0.2.1
> > > > > > # ping 10.0.2.2
> > > > > >
> > > > >
> > > > > Yes, I have set up all the required network parameters.
> > > > >
> > > > > > The above works for me on QEMU.
> > > > >
> > > > > My understanding is that we need enable QEMU network via "-netdev "
> > > > > (either usr, or tap), with a corresponding "-device". I don't know how
> > > > > to set it up. What's your command line to test this?
> > > > >
> > > >
> > > > "-netdev" or "-device" parameters are not mandatory. By default, virtual
> > > > NICs are in NAT mode. The QEMU NAT gateway is at IP address
> > > > 10.0.2.2. We can always ping the NAT gateway when virtual NIC is in
> > > > NAT mode.
> > > >
> > > > Here's how I compile for M-mode:
> > > > # ARCH=riscv
> > > > # CROSS_COMPILE=riscv64-unknown-linux-gnu-
> > > > # make qemu-riscv64_defconfig
> > > > # make
> > > >
> > > > My U-boot log is as follows:
> > > >
> > > > anup at anup-ubuntu64:~/Work/riscv-test/u-boot$ qemu-system-riscv64 -M
> > > > sifive_u -m 256M -display none -serial stdio -kernel ./u-boot
> > > >
> > > >
> > > > U-Boot 2019.01-rc1-00948-ge6b3cdafd0 (Dec 19 2018 - 10:05:50 +0530)
> > > >
> > > > CPU:   rv64imafdcsu
> > > > Model: ucbbar,spike-bare,qemu
> > > > DRAM:  256 MiB
> > > > In:    uart at 10013000
> > > > Out:   uart at 10013000
> > > > Err:   uart at 10013000
> > > > Net:
> > > > Warning: ethernet at 100900fc (eth0) using random MAC address - f6:1f:8c:13:83:c0
> > > > eth0: ethernet at 100900fc
> > > > Hit any key to stop autoboot:  0
> > > >
> > > > Device 0: unknown device
> > > > ethernet at 100900fc: PHY present at 0
> > > > ethernet at 100900fc: link up, 100Mbps full-duplex (lpa: 0xcde1)
> > > > BOOTP broadcast 1
> > > > DHCP client bound to address 10.0.2.15 (2 ms)
> > > > Using ethernet at 100900fc device
> > > > TFTP from server 10.0.2.2; our IP address is 10.0.2.15
> > > > Filename 'boot.scr.uimg'.
> > > > Load address: 0x82100000
> > > > Loading: *
> > > > TFTP error: 'Access violation' (2)
> > > > Not retrying...
> > > > ethernet at 100900fc: PHY present at 0
> > > > ethernet at 100900fc: link up, 100Mbps full-duplex (lpa: 0xcde1)
> > > > BOOTP broadcast 1
> > > > DHCP client bound to address 10.0.2.15 (1 ms)
> > > > Using ethernet at 100900fc device
> > > > TFTP from server 10.0.2.2; our IP address is 10.0.2.15
> > > > Filename 'boot.scr.uimg'.
> > > > Load address: 0x81000000
> > > > Loading: *
> > > > TFTP error: 'Access violation' (2)
> > > > Not retrying...
> > > > => ping 10.0.2.2
> > > > ethernet at 100900fc: PHY present at 0
> > > > ethernet at 100900fc: link up, 100Mbps full-duplex (lpa: 0xcde1)
> > > > Using ethernet at 100900fc device
> > > > host 10.0.2.2 is alive
> > > > =>
> > > > ethernet at 100900fc: PHY present at 0
> > > > ethernet at 100900fc: link up, 100Mbps full-duplex (lpa: 0xcde1)
> > > > Using ethernet at 100900fc device
> > > > host 10.0.2.2 is alive
> > > > => qemu-system-riscv64: terminating on signal 2
> > > >
> > >
> > > I have always been using "qemu-system-riscv64 -nographic -M sifive_u
> > > -kernel u-boot" to test U-Boot on qemu risc-v.
> > > With above command, I can "ping 10.0.2.2" and get the exact the same
> > > result as yours.
> > >
> > > However I wanted to connect the tap interface to the emulated network
> > > controller for testing, that's why I wanted to use "-device" and
> > > "-netdev", but I don't know which device string I need to tell QEMU.
> > > After a bit googleing I got the following page:
> > > https://forums.xilinx.com/t5/Embedded-Processor-System-Design/Zynq-QEMU-Network-Issues/td-p/797050
> > >
> > > From the page it looks that the device should be "-device
> > > cadence_gem", but when I pass it to QEMU I got:
> > >
> > > qemu-system-riscv64: -device cadence_gem,netdev=net0: Parameter
> > > 'driver' expects pluggable device type
> > >
> > > It looks cadence_gem is not a pluggable device. Any ideas?
> >
> > I have mostly tried TAP devices with VirtIO-Net. I believe this could be
> > some bug in Cadence GEM emulation of QEMU.
>
> I managed to get tap interface connected to the cadence_gem
> controller. The QEMU command line is "qemu-system-riscv64 -nographic
> -M sifive_u -kernel u-boot -nic tap,model=cadence_gem"
>
> A single "ping" works after I set related network environments in the
> shell. But "tftp" test fails. It looks the driver just time out.
>
> => tftp 84000000 bmeng/uImage.riscv
> ethernet at 100900fc: PHY present at 0
> ethernet at 100900fc: link up, 100Mbps full-duplex (lpa: 0xcde1)
> Using ethernet at 100900fc device
> TFTP from server 10.10.0.100; our IP address is 10.10.0.108
> Filename 'bmeng/uImage.riscv'.
> Load address: 0x84000000
> Loading: #T T #T T #T #T T #T #T T #
> Retry count exceeded; starting again
>
> Can you please take a look?

Any idea about the timeouts?

Regards,
Bin

  reply	other threads:[~2018-12-24  1:29 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-17 11:51 [U-Boot] [PATCH 0/3] Ethernet support for QEMU sifive_u machine Anup Patel
2018-12-17 11:51 ` [U-Boot] [PATCH 1/3] riscv: Add asm/dma-mapping.h for DMA mappings Anup Patel
2018-12-18  9:45   ` Bin Meng
2018-12-19  8:09     ` Anup Patel
2018-12-20  5:26   ` Anup Patel
2018-12-17 11:51 ` [U-Boot] [PATCH 2/3] net: macb: Fix clk API usage for RISC-V systems Anup Patel
2018-12-18  9:45   ` Bin Meng
2018-12-19  8:15     ` Anup Patel
2018-12-17 11:51 ` [U-Boot] [PATCH 3/3] riscv: qemu: Imply MACB ethernet for emulation Anup Patel
2018-12-18  9:45   ` Bin Meng
2018-12-18  9:51 ` [U-Boot] [PATCH 0/3] Ethernet support for QEMU sifive_u machine Bin Meng
2018-12-18 10:33   ` Anup Patel
2018-12-18 10:36     ` Bin Meng
2018-12-19  4:40       ` Anup Patel
2018-12-19  5:32         ` Bin Meng
2018-12-19  6:32           ` Anup Patel
2018-12-19  9:05             ` Bin Meng
2018-12-24  1:29               ` Bin Meng [this message]
2018-12-24  5:41                 ` Anup Patel
2018-12-24  6:31                   ` Bin Meng
2018-12-24  6:42                     ` Anup Patel
2018-12-24  7:15                       ` Bin Meng
2018-12-24  7:23                         ` Anup Patel
2018-12-24  7:36                           ` Bin Meng
2018-12-24 11:34                             ` Anup Patel
2019-08-07 15:37               ` Bin Meng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAEUhbmW0Kt2t_c75oscwShBQ88V93FcHUbH5Xqgwf_wTRQzNkQ@mail.gmail.com \
    --to=bmeng.cn@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.