From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: cormac@c-obrien.org, qemu-ppc@nongnu.org, qemu-devel@nongnu.org,
agraf@suse.de
Subject: Re: [Qemu-devel] [PATCH 04/13] cuda.c: fix CUDA ADB error packet format
Date: Wed, 04 Nov 2015 22:53:21 +0000 [thread overview]
Message-ID: <563A8C61.7050506@ilande.co.uk> (raw)
In-Reply-To: <20151104031203.GE21954@voom.redhat.com>
On 04/11/15 03:12, David Gibson wrote:
> On Fri, Oct 23, 2015 at 02:56:29PM +0100, Mark Cave-Ayland wrote:
>> ADB error packets should be of the form (type, status, cmd) rather than just
>> (type, status). This fixes ADB device detection under MacOS 9.
>
> Hmm.. are there any public doc on these ADB / CUDA things that we can
> look up to compare to?
Sadly no. The main process for working during GSoC was to add logging
into various areas to see the point at which execution stopped, then
compare with MOL, code up the difference and see if this helps boot
progress.
Pretty much every other OS will read in the entire CUDA packet based
upon the length and check the status for errors, whereas it seems MacOS
9 additionally checks the right number of bytes are received in the
reply (even if they are never used).
>> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>> ---
>> hw/misc/macio/cuda.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c
>> index 5d7043e..9ec19af 100644
>> --- a/hw/misc/macio/cuda.c
>> +++ b/hw/misc/macio/cuda.c
>> @@ -560,19 +560,21 @@ static void cuda_receive_packet_from_host(CUDAState *s,
>> switch(data[0]) {
>> case ADB_PACKET:
>> {
>> - uint8_t obuf[ADB_MAX_OUT_LEN + 2];
>> + uint8_t obuf[ADB_MAX_OUT_LEN + 3];
>> int olen;
>> olen = adb_request(&s->adb_bus, obuf + 2, data + 1, len - 1);
>> if (olen > 0) {
>> obuf[0] = ADB_PACKET;
>> obuf[1] = 0x00;
>> + cuda_send_packet_to_host(s, obuf, olen + 2);
>> } else {
>> /* error */
>> obuf[0] = ADB_PACKET;
>> obuf[1] = -olen;
>> + obuf[2] = data[1];
>> olen = 0;
>> + cuda_send_packet_to_host(s, obuf, olen + 3);
>
> Using 'olen + 3' seems confusing here, rather than just '3', since you
> just set olen = 0.
I do prefer the way it is at the moment, because all the calls to
cuda_send_packet_to_host() use a length of the form "olen + X" which
tells you the payload length (0) + the header length (X). So from this
we know that there are just the 3 standard header bytes and no
additional payload being returned by this particular transaction.
>> }
>> - cuda_send_packet_to_host(s, obuf, olen + 2);
>> }
>> break;
>> case CUDA_PACKET:
>
ATB,
Mark.
next prev parent reply other threads:[~2015-11-04 22:54 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-23 13:56 [Qemu-devel] [PATCH 00/13] Mac OS 9 compatibility improvements (upstream rework) Mark Cave-Ayland
2015-10-23 13:56 ` [Qemu-devel] [PATCH 01/13] PPC: Allow Rc bit to be set on mtspr Mark Cave-Ayland
2015-11-03 8:22 ` Thomas Huth
2015-11-04 2:59 ` David Gibson
2015-10-23 13:56 ` [Qemu-devel] [PATCH 02/13] PPC: Fix lsxw bounds checks Mark Cave-Ayland
2015-11-03 15:23 ` Thomas Huth
2015-11-03 19:21 ` Mark Cave-Ayland
2015-11-03 21:03 ` Thomas Huth
2015-11-03 22:13 ` Mark Cave-Ayland
2015-11-04 3:01 ` David Gibson
2015-10-23 13:56 ` [Qemu-devel] [PATCH 03/13] PPC: mac99: Always add USB controller Mark Cave-Ayland
2015-11-03 15:30 ` Thomas Huth
2015-11-04 3:07 ` David Gibson
2015-10-23 13:56 ` [Qemu-devel] [PATCH 04/13] cuda.c: fix CUDA ADB error packet format Mark Cave-Ayland
2015-11-04 3:12 ` David Gibson
2015-11-04 22:53 ` Mark Cave-Ayland [this message]
2015-10-23 13:56 ` [Qemu-devel] [PATCH 05/13] cuda.c: fix CUDA_PACKET response " Mark Cave-Ayland
2015-11-04 3:15 ` David Gibson
2015-11-04 22:58 ` Mark Cave-Ayland
2015-10-23 13:56 ` [Qemu-devel] [PATCH 06/13] cuda.c: implement simple CUDA_GET_6805_ADDR command Mark Cave-Ayland
2015-11-04 3:16 ` David Gibson
2015-10-23 13:56 ` [Qemu-devel] [PATCH 07/13] cuda.c: implement dummy IIC access commands Mark Cave-Ayland
2015-11-04 3:17 ` David Gibson
2015-11-04 23:03 ` Mark Cave-Ayland
2015-10-23 13:56 ` [Qemu-devel] [PATCH 08/13] cuda.c: fix CUDA SR interrupt clearing Mark Cave-Ayland
2015-10-23 13:56 ` [Qemu-devel] [PATCH 09/13] cuda.c: add defines for CUDA registers Mark Cave-Ayland
2015-11-04 3:19 ` David Gibson
2015-10-23 13:56 ` [Qemu-devel] [PATCH 10/13] cuda.c: refactor get_tb() so that the time can be passed in Mark Cave-Ayland
2015-11-04 3:20 ` David Gibson
2015-10-23 13:56 ` [Qemu-devel] [PATCH 11/13] cuda.c: rename get_counter() state variable from s to ti for consistency Mark Cave-Ayland
2015-11-04 3:22 ` David Gibson
2015-10-23 13:56 ` [Qemu-devel] [PATCH 12/13] cuda.c: fix T2 timer and enable its interrupt Mark Cave-Ayland
2015-11-04 3:40 ` David Gibson
2015-11-04 23:25 ` Mark Cave-Ayland
2015-11-11 6:52 ` David Gibson
2015-11-11 22:34 ` Mark Cave-Ayland
2015-10-23 13:56 ` [Qemu-devel] [PATCH 13/13] cuda.c: add delay to setting of SR_INT bit Mark Cave-Ayland
2015-11-04 3:42 ` David Gibson
2015-10-30 16:48 ` [Qemu-devel] [PATCH 00/13] Mac OS 9 compatibility improvements (upstream rework) Mark Cave-Ayland
2015-11-04 3:44 ` David Gibson
2015-11-04 23:32 ` Mark Cave-Ayland
2015-11-11 2:11 ` David Gibson
2015-11-11 6:29 ` Mark Cave-Ayland
2015-11-11 6:52 ` David Gibson
2015-11-11 8:08 ` Mark Cave-Ayland
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=563A8C61.7050506@ilande.co.uk \
--to=mark.cave-ayland@ilande.co.uk \
--cc=agraf@suse.de \
--cc=cormac@c-obrien.org \
--cc=david@gibson.dropbear.id.au \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.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;
as well as URLs for NNTP newsgroup(s).