diff mbox

cuda.c: return error for unknown commands

Message ID 20160122230724.GA25949@li141-249.members.linode.com
State New
Headers show

Commit Message

Alyssa Milburn Jan. 22, 2016, 11:07 p.m. UTC
This avoids MacsBug hanging at startup in the absence of ADB mouse
input, by replying with an error (which is also what MOL does) when
it sends an unknown command (0x1c).

Signed-off-by: Alyssa Milburn <fuzzie@fuzzie.org>
---
 hw/misc/macio/cuda.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Mark Cave-Ayland Jan. 23, 2016, 7:11 p.m. UTC | #1
On 22/01/16 23:07, Alyssa Milburn wrote:

> This avoids MacsBug hanging at startup in the absence of ADB mouse
> input, by replying with an error (which is also what MOL does) when
> it sends an unknown command (0x1c).
> 
> Signed-off-by: Alyssa Milburn <fuzzie@fuzzie.org>
> ---
>  hw/misc/macio/cuda.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c
> index 9db4c64..7e57de5 100644
> --- a/hw/misc/macio/cuda.c
> +++ b/hw/misc/macio/cuda.c
> @@ -605,6 +605,11 @@ static void cuda_receive_packet(CUDAState *s,
>          }
>          break;
>      default:
> +        obuf[0] = ERROR_PACKET;
> +        obuf[1] = 0x2;
> +        obuf[2] = CUDA_PACKET;
> +        obuf[3] = data[0];
> +        cuda_send_packet_to_host(s, obuf, 4);
>          break;
>      }
>  }

I've just tested this with OS 9 locally and it fixes the issue for me,
so thanks for the patch!

Have you tried any other OS images at all just in case it causes any
regressions? I generally test booting a set of
Linux/NetBSD/FreeBSD/OpenBSD ISO images for OpenBIOS changes, and while
they don't all work it's good to double-check that any changes don't
accidentally regress other OSs.

And one minor nit I've just noticed on second reading: the commit
message is fine except that it should explicitly reference OS 9 to
explain the motivation for the change.


ATB,

Mark.
David Gibson Jan. 24, 2016, 11:08 p.m. UTC | #2
On Fri, Jan 22, 2016 at 11:07:24PM +0000, Alyssa Milburn wrote:
> This avoids MacsBug hanging at startup in the absence of ADB mouse
> input, by replying with an error (which is also what MOL does) when
> it sends an unknown command (0x1c).
> 
> Signed-off-by: Alyssa Milburn <fuzzie@fuzzie.org>

I've applied this to ppc-for-2.6 for now, since it looks like it
addresses a real problem, and I can't see that it could break things
any worse than they are broken already.

I think Hervé's patches need a few tweaks, but I do hope to apply them
on top in the not too distant future.

> ---
>  hw/misc/macio/cuda.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c
> index 9db4c64..7e57de5 100644
> --- a/hw/misc/macio/cuda.c
> +++ b/hw/misc/macio/cuda.c
> @@ -605,6 +605,11 @@ static void cuda_receive_packet(CUDAState *s,
>          }
>          break;
>      default:
> +        obuf[0] = ERROR_PACKET;
> +        obuf[1] = 0x2;
> +        obuf[2] = CUDA_PACKET;
> +        obuf[3] = data[0];
> +        cuda_send_packet_to_host(s, obuf, 4);
>          break;
>      }
>  }
diff mbox

Patch

diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c
index 9db4c64..7e57de5 100644
--- a/hw/misc/macio/cuda.c
+++ b/hw/misc/macio/cuda.c
@@ -605,6 +605,11 @@  static void cuda_receive_packet(CUDAState *s,
         }
         break;
     default:
+        obuf[0] = ERROR_PACKET;
+        obuf[1] = 0x2;
+        obuf[2] = CUDA_PACKET;
+        obuf[3] = data[0];
+        cuda_send_packet_to_host(s, obuf, 4);
         break;
     }
 }