[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 07/13] cuda.c: implement dummy IIC access comman
From: |
Mark Cave-Ayland |
Subject: |
Re: [Qemu-devel] [PATCH 07/13] cuda.c: implement dummy IIC access commands |
Date: |
Wed, 04 Nov 2015 23:03:57 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.8.0 |
On 04/11/15 03:17, David Gibson wrote:
> On Fri, Oct 23, 2015 at 02:56:32PM +0100, Mark Cave-Ayland wrote:
>> These are used by MacOS 9 on boot. Here we return an error except for 4-byte
>> commands which write to the IIC bus.
>
> A bit of rationale about why some of these give errors and some don't
> would be nice.
This was another change inspired by the relevant code in MOL. There are
comments suggesting that the 3 byte packet format is a (iicAddr, iicReg,
iicData) tuple which I could add in if required? Then again it seems the
MacOS 9 code just needs to receive some kind of reply in order for boot
to proceed, rather than the values actually doing anything.
>>
>> Signed-off-by: Mark Cave-Ayland <address@hidden>
>> ---
>> hw/misc/macio/cuda.c | 18 ++++++++++++++++++
>> 1 file changed, 18 insertions(+)
>>
>> diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c
>> index 4fe901b..d3ec58a 100644
>> --- a/hw/misc/macio/cuda.c
>> +++ b/hw/misc/macio/cuda.c
>> @@ -529,6 +529,24 @@ static void cuda_receive_packet(CUDAState *s,
>> cuda_send_packet_to_host(s, obuf, 3);
>> qemu_system_reset_request();
>> break;
>> + case CUDA_COMBINED_FORMAT_IIC:
>> + obuf[0] = ERROR_PACKET;
>> + obuf[1] = 0x5;
>> + obuf[2] = CUDA_PACKET;
>> + obuf[3] = data[0];
>> + cuda_send_packet_to_host(s, obuf, 4);
>> + break;
>> + case CUDA_GET_SET_IIC:
>> + if (len == 4) {
>> + cuda_send_packet_to_host(s, obuf, 3);
>> + } else {
>> + obuf[0] = ERROR_PACKET;
>> + obuf[1] = 0x2;
>> + obuf[2] = CUDA_PACKET;
>> + obuf[3] = data[0];
>> + cuda_send_packet_to_host(s, obuf, 4);
>> + }
>> + break;
>> default:
>> break;
>> }
>
ATB,
Mark.