mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: Antony Pavlov <antonynpavlov@gmail.com>, Ahmad Fatoum <ahmad@a3f.at>
Cc: barebox@lists.infradead.org
Subject: Re: [PATCH 9/9] virtio: virtio-pci: restrict MIPS support to MMU configuration
Date: Wed, 3 Mar 2021 18:10:43 +0100	[thread overview]
Message-ID: <f26cf4dc-5412-77b1-2b18-ad862eb5bbf7@pengutronix.de> (raw)
In-Reply-To: <20210302172814.ac8a31bd01efa18df2065992@gmail.com>

Hello Antony,

On 02.03.21 15:28, Antony Pavlov wrote:
> On Sun, 28 Feb 2021 20:08:36 +0100
> Ahmad Fatoum <ahmad@a3f.at> wrote:
> 
> Hi!
> 
>> MMU-less MIPS doesn't play along nicely with VIRTIO_PCI.
>> e.g. Reading from a virtio-rng, will return clearly bogus data.
>> Document this in the Kconfig, so no one else trips over this.
>>
>> Eventually, this should be fixed..
> 
> 
> Please describe, how can I reproduce the problem.

- Apply this series on top of next, but revert this patch
- Use qemu-malta-defconfig
- Built with CONFIG_HW_RANDOM_VIRTIO=y and CONFIG_VIRTIO_PCI=y
- Run:
  qemu-system-mips -m 256M -device VGA -M malta -serial stdio -monitor null \
  -bios ./images/barebox-qemu-malta.img -device virtio-rng-pci,disable-legacy=on
- Execute md -s /dev/hwrng0 three times:

barebox@qemu malta:/ md -s /dev/hwrng0 
00000000: 0000e632 0000000d 81ff8410 00000000                ...2............
00000010: 0000e632 0000000d 81ff8410 00000000                ...2............
00000020: 0000e632 0000000d 81ff8410 00000000                ...2............
00000030: 0000e632 0000000d 81ff8410 00000000                ...2............
00000040: 0000e632 0000000d 81ff8410 00000000                ...2............
00000050: 0000e632 0000000d 81ff8410 00000000                ...2............
00000060: 0000e632 0000000d 81ff8410 00000000                ...2............
00000070: 0000e632 0000000d 81ff8410 00000000                ...2............
00000080: 0000e632 0000000d 81ff8410 00000000                ...2............
00000090: 0000e632 0000000d 81ff8410 00000000                ...2............
000000a0: 0000e632 0000000d 81ff8410 00000000                ...2............
000000b0: 0000e632 0000000d 81ff8410 00000000                ...2............
000000c0: 0000e632 0000000d 81ff8410 00000000                ...2............
000000d0: 0000e632 0000000d 81ff8410 00000000                ...2............
000000e0: 0000e632 0000000d 81ff8410 00000000                ...2............
000000f0: 0000e632 0000000d 81ff8410 00000000                ...2............
barebox@qemu malta:/ md -s /dev/hwrng0 
00000000: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
00000010: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
00000020: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
00000030: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
00000040: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
00000050: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
00000060: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
00000070: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
00000080: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
00000090: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
000000a0: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
000000b0: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
000000c0: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
000000d0: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
000000e0: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
000000f0: 30303030 30306630 3a203030 30306536                000000f0: 0000e6
barebox@qemu malta:/ md -s /dev/hwrng0 
00000000: 30303030 30306630 3a203330 33303330                000000f0: 303030
00000010: 30303030 30306630 3a203330 33303330                000000f0: 303030
00000020: 30303030 30306630 3a203330 33303330                000000f0: 303030
00000030: 30303030 30306630 3a203330 33303330                000000f0: 303030
00000040: 30303030 30306630 3a203330 33303330                000000f0: 303030
00000050: 30303030 30306630 3a203330 33303330                000000f0: 303030
00000060: 30303030 30306630 3a203330 33303330                000000f0: 303030
00000070: 30303030 30306630 3a203330 33303330                000000f0: 303030
00000080: 30303030 30306630 3a203330 33303330                000000f0: 303030
00000090: 30303030 30306630 3a203330 33303330                000000f0: 303030
000000a0: 30303030 30306630 3a203330 33303330                000000f0: 303030
000000b0: 30303030 30306630 3a203330 33303330                000000f0: 303030
000000c0: 30303030 30306630 3a203330 33303330                000000f0: 303030
000000d0: 30303030 30306630 3a203330 33303330                000000f0: 303030
000000e0: 30303030 30306630 3a203330 33303330                000000f0: 303030
000000f0: 30303030 30306630 3a203330 33303330                000000f0: 303030


Something is clearly wrong here, but I didn't look further.
If you repeat the same steps but with CONFIG_MMU=y, you will see random
data as expected (You can cp /dev/hwrng0 /dev/fb0 to see for yourself
that there is no obvious pattern, unlike with MMU=n).

Cheers,
Ahmad

> 
> 
>>
>> Signed-off-by: Ahmad Fatoum <ahmad@a3f.at>
>> ---
>>  drivers/virtio/Kconfig | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/virtio/Kconfig b/drivers/virtio/Kconfig
>> index ecf66987b3ed..91a89d3e1b89 100644
>> --- a/drivers/virtio/Kconfig
>> +++ b/drivers/virtio/Kconfig
>> @@ -28,6 +28,7 @@ config VIRTIO_MMIO
>>  config VIRTIO_PCI
>>  	tristate "PCI driver for virtio devices"
>>  	depends on PCI && HAS_DMA
>> +	depends on MMU && MIPS || !MIPS
>>  	select VIRTIO
>>  	help
>>  	  This driver provides support for virtio based paravirtual device
>> -- 
>> 2.30.0
>>
>>
>> _______________________________________________
>> barebox mailing list
>> barebox@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/barebox
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


  reply	other threads:[~2021-03-04  0:03 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-28 19:08 [PATCH 1/9] virtio: align virtio_config_ops::generation return type with Linux Ahmad Fatoum
2021-02-28 19:08 ` [PATCH 2/9] virtio: remove unused, left-over, virtio_config_ops::set_features Ahmad Fatoum
2021-02-28 19:08 ` [PATCH 3/9] hw_random: virtio: simplify code Ahmad Fatoum
2021-02-28 19:08 ` [PATCH 4/9] dma: move dma_map/unmap_single from ARM to common code Ahmad Fatoum
2021-03-03 12:08   ` Sascha Hauer
2021-03-03 16:12   ` [PATCH] " Ahmad Fatoum
2021-02-28 19:08 ` [PATCH 5/9] virtio: ring: fix erroneous behavior around caches and MMU Ahmad Fatoum
2021-02-28 19:08 ` [PATCH 6/9] virtio: fix support for big-endian clients Ahmad Fatoum
2021-02-28 19:08 ` [PATCH 7/9] PCI: port Linux pci_find_capability Ahmad Fatoum
2021-02-28 19:08 ` [PATCH 8/9] virtio: support virtio-based device drivers over PCI Ahmad Fatoum
2021-02-28 19:08 ` [PATCH 9/9] virtio: virtio-pci: restrict MIPS support to MMU configuration Ahmad Fatoum
2021-03-02 14:28   ` Antony Pavlov
2021-03-03 17:10     ` Ahmad Fatoum [this message]
2021-03-01 16:29 ` [PATCH 1/9] virtio: align virtio_config_ops::generation return type with Linux Sascha Hauer

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=f26cf4dc-5412-77b1-2b18-ad862eb5bbf7@pengutronix.de \
    --to=a.fatoum@pengutronix.de \
    --cc=ahmad@a3f.at \
    --cc=antonynpavlov@gmail.com \
    --cc=barebox@lists.infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox