Patchwork [6/5] Implement the trivial diagnose CU and RU abort commands. These are necessary to make the device work with OpenSolaris 0609 (111b).

login
register
mail settings
Submitter Reimar Döffinger
Date Aug. 12, 2009, 8:53 a.m.
Message ID <20090812085347.GA11559@1und1.de>
Download mbox | patch
Permalink /patch/31179/
State Superseded
Headers show

Comments

Reimar Döffinger - Aug. 12, 2009, 8:53 a.m.
With these changes in addition, OpenSolaris boots and works with the
eepro100 network device (without it, qemu crashes due to asserts).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
---
 hw/eepro100.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

         }
@@ -864,6 +868,9 @@ static void eepro100_ru_command(EEPRO100State * s,
uint8_t val)
         }
         set_ru_state(s, ru_ready);
         break;
+    case RX_ABORT:
+        set_ru_state(s, ru_idle);
+        break;
     case RX_ADDR_LOAD:
         /* Load RU base. */
         logout("val=0x%02x (RU base address)\n", val);

Patch

diff --git a/hw/eepro100.c b/hw/eepro100.c
index 2099459..7c951c0 100644
--- a/hw/eepro100.c
+++ b/hw/eepro100.c
@@ -771,6 +771,10 @@  static void eepro100_cu_command(EEPRO100State * s,
uint8_t val)
             /* Starting with offset 8, the command contains
              * 64 dwords microcode which we just ignore here. */
             break;
+        case CmdDiagnose:
+            logout("diagnose\n");
+            status = 0; // make sure error flag is not set
+            break;
         default:
             missing("undefined command");