Explorar el Código

net: cadence_gem: Announce availability of priority queues

Announce the availability of the various priority queues.
This fixes an issue where guest kernels would miss to
configure secondary queues due to inproper feature bits.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Message-id: 20181017213932.19973-2-edgar.iglesias@gmail.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Edgar E. Iglesias hace 6 años
padre
commit
726a2a951b
Se han modificado 1 ficheros con 7 adiciones y 1 borrados
  1. 7 1
      hw/net/cadence_gem.c

+ 7 - 1
hw/net/cadence_gem.c

@@ -1283,6 +1283,7 @@ static void gem_reset(DeviceState *d)
     int i;
     int i;
     CadenceGEMState *s = CADENCE_GEM(d);
     CadenceGEMState *s = CADENCE_GEM(d);
     const uint8_t *a;
     const uint8_t *a;
+    uint32_t queues_mask = 0;
 
 
     DB_PRINT("\n");
     DB_PRINT("\n");
 
 
@@ -1299,7 +1300,12 @@ static void gem_reset(DeviceState *d)
     s->regs[GEM_DESCONF] = 0x02500111;
     s->regs[GEM_DESCONF] = 0x02500111;
     s->regs[GEM_DESCONF2] = 0x2ab13fff;
     s->regs[GEM_DESCONF2] = 0x2ab13fff;
     s->regs[GEM_DESCONF5] = 0x002f2045;
     s->regs[GEM_DESCONF5] = 0x002f2045;
-    s->regs[GEM_DESCONF6] = 0x00000200;
+    s->regs[GEM_DESCONF6] = 0x0;
+
+    if (s->num_priority_queues > 1) {
+        queues_mask = MAKE_64BIT_MASK(1, s->num_priority_queues - 1);
+        s->regs[GEM_DESCONF6] |= queues_mask;
+    }
 
 
     /* Set MAC address */
     /* Set MAC address */
     a = &s->conf.macaddr.a[0];
     a = &s->conf.macaddr.a[0];