qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/4] ppc4xx_i2c: Rewrite PPC4xx I2C emulation


From: BALATON Zoltan
Subject: Re: [Qemu-devel] [PATCH 1/4] ppc4xx_i2c: Rewrite PPC4xx I2C emulation
Date: Wed, 6 Jun 2018 20:04:00 +0200 (CEST)
User-agent: Alpine 2.21 (BSF 202 2017-01-01)

On Wed, 6 Jun 2018, Philippe Mathieu-Daudé wrote:
On 06/06/2018 11:03 AM, BALATON Zoltan wrote:
On Wed, 6 Jun 2018, David Gibson wrote:
On Mon, Jun 04, 2018 at 01:50:40AM +0200, BALATON Zoltan wrote:
I2C emulation currently is just enough for U-Boot to access SPD
EEPROMs but features that guests use to access I2C devices are not
correctly emulated. Rewrite to implement missing features to make it
work with all clients.

Signed-off-by: BALATON Zoltan <address@hidden>
---
Maybe this could be split up into more patches but because the
previous implementation was wrong only allowing U-Boot to pass and no
clients could access I2C devices before this rewrite it probably does
not worth to try to make it a lot of small changes instead of dropping
the previous hack and rewrite following features of real hardware more
closely. (It turns out that each client driver accesses I2C in a
different way so we need to implement almost all features of the
hardware to please everyone.)

The trouble is that because I don't really have a good test setup for
this, I'm pretty reluctant to apply such a total rewrite without acks
from more people who've tested it.? That or reviewing the changes
myself, which I can't really do when it's in one big lump like this.

OK, I've sent a v2 where this patch is split up to smaller pieces that
are hopefully easier to review. However this i2c emulation was only a
stub originally which was hacked together to make U-Boot happy when
added the sam460ex machine and this is the first version that attempts
to really model the device so that guests can also use it. Therefore I
think there's not a high chance of breaking anything important. I've
tested this with AROS, Linux, AmigaOS and MorphOS and they seem to be
able to read the RTC so it should work better than the previous version.

Are those images publicly accessible? (thinking about adding acceptance
qtests).

AROS is available, get the sam440-ppc-boot-iso from this page:
http://aros.sourceforge.net/nightly1.php
for latest nightly build which should work.

There are several Linux images available around the net but none seems to be fully working (and may have bugs even on real hardware) so I don't know about a good one to try. I test with booting a kernel directly via -kernel option but couldn't get a distro running and recent upstream kernels seem to have a bug finding SM501 display. Older and/or patched kernels for Sam460ex seem to work better but haven't tested all of those.

AmigaOS and MorphOS are closed source. Only MorphOS is available publicly as a demo but that's not booting yet for some reason and (at least some of) its developers are against running it on QEMU and said that won't support attempts getting it to work. Therefore I'll have to find out what it's missing in emulation without their help. (Just mentioning it in case someone tries to ask for help and get an unfriendly reply or no reply at all. This does not bother me testing with it and improving emulation to the point where it will work as well. But I think it may have bugs on real hardware as well because I've seen forum posts about problems with PCI devices on real sam460 which is what I see on QEMU as well.)

Not sure if there are any other OSes that run on real hardware that I should be aware of. There was a Haiku port attempted which is what this emulation started from (to help that porting) but not sure if there was any progress with that since.

Regards,
BALATON Zoltan


reply via email to

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