[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH 05/13] cuda.c: fix CUDA_PACKET response packet for
From: |
David Gibson |
Subject: |
Re: [Qemu-ppc] [PATCH 05/13] cuda.c: fix CUDA_PACKET response packet format |
Date: |
Wed, 4 Nov 2015 14:15:22 +1100 |
User-agent: |
Mutt/1.5.23 (2015-06-09) |
On Fri, Oct 23, 2015 at 02:56:30PM +0100, Mark Cave-Ayland wrote:
> According to comments in MOL, the response to a CUDA_PACKET should be one of
> the following:
>
> Reply: CUDA_PACKET, status, cmd
> Error: ERROR_PACKET, status, CUDA_PACKET, cmd
>
> Update cuda_receive_packet() accordingly to reflect this.
>
> Signed-off-by: Mark Cave-Ayland <address@hidden>
Code seems to match the description, but I don't have another source
to check what the right thing to do is for CUDA.
> ---
> hw/misc/macio/cuda.c | 24 +++++-------------------
> 1 file changed, 5 insertions(+), 19 deletions(-)
>
> diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c
> index 9ec19af..88a0999 100644
> --- a/hw/misc/macio/cuda.c
> +++ b/hw/misc/macio/cuda.c
> @@ -480,7 +480,7 @@ static void cuda_adb_poll(void *opaque)
> static void cuda_receive_packet(CUDAState *s,
> const uint8_t *data, int len)
> {
> - uint8_t obuf[16];
> + uint8_t obuf[16] = { CUDA_PACKET, 0, data[0] };
> int autopoll;
> uint32_t ti;
>
> @@ -497,23 +497,15 @@ static void cuda_receive_packet(CUDAState *s,
> timer_del(s->adb_poll_timer);
> }
> }
> - obuf[0] = CUDA_PACKET;
> - obuf[1] = data[1];
> - cuda_send_packet_to_host(s, obuf, 2);
> + cuda_send_packet_to_host(s, obuf, 3);
> break;
> case CUDA_SET_TIME:
> ti = (((uint32_t)data[1]) << 24) + (((uint32_t)data[2]) << 16) +
> (((uint32_t)data[3]) << 8) + data[4];
> s->tick_offset = ti - (qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) /
> get_ticks_per_sec());
> - obuf[0] = CUDA_PACKET;
> - obuf[1] = 0;
> - obuf[2] = 0;
> cuda_send_packet_to_host(s, obuf, 3);
> break;
> case CUDA_GET_TIME:
> ti = s->tick_offset + (qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) /
> get_ticks_per_sec());
> - obuf[0] = CUDA_PACKET;
> - obuf[1] = 0;
> - obuf[2] = 0;
> obuf[3] = ti >> 24;
> obuf[4] = ti >> 16;
> obuf[5] = ti >> 8;
> @@ -524,20 +516,14 @@ static void cuda_receive_packet(CUDAState *s,
> case CUDA_SET_DEVICE_LIST:
> case CUDA_SET_AUTO_RATE:
> case CUDA_SET_POWER_MESSAGES:
> - obuf[0] = CUDA_PACKET;
> - obuf[1] = 0;
> - cuda_send_packet_to_host(s, obuf, 2);
> + cuda_send_packet_to_host(s, obuf, 3);
> break;
> case CUDA_POWERDOWN:
> - obuf[0] = CUDA_PACKET;
> - obuf[1] = 0;
> - cuda_send_packet_to_host(s, obuf, 2);
> + cuda_send_packet_to_host(s, obuf, 3);
> qemu_system_shutdown_request();
> break;
> case CUDA_RESET_SYSTEM:
> - obuf[0] = CUDA_PACKET;
> - obuf[1] = 0;
> - cuda_send_packet_to_host(s, obuf, 2);
> + cuda_send_packet_to_host(s, obuf, 3);
> qemu_system_reset_request();
> break;
> default:
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
- Re: [Qemu-ppc] [PATCH 05/13] cuda.c: fix CUDA_PACKET response packet format,
David Gibson <=