Message ID | 1445608598-24485-8-git-send-email-mark.cave-ayland@ilande.co.uk |
---|---|
State | New |
Headers | show |
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. > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > --- > 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; > }
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 <mark.cave-ayland@ilande.co.uk> >> --- >> 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.
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; }
These are used by MacOS 9 on boot. Here we return an error except for 4-byte commands which write to the IIC bus. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- hw/misc/macio/cuda.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)