diff mbox

net: cadence_gem: Set initial MAC address

Message ID 1422536379-18116-1-git-send-email-sebastian.huber@embedded-brains.de
State New
Headers show

Commit Message

Sebastian Huber Jan. 29, 2015, 12:59 p.m. UTC
Set initial MAC address to the one specified by the command line.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
---
 hw/net/cadence_gem.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Jason Wang Jan. 30, 2015, 5:42 a.m. UTC | #1
On 01/29/2015 08:59 PM, Sebastian Huber wrote:
> Set initial MAC address to the one specified by the command line.
>
> Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
> ---
>  hw/net/cadence_gem.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/hw/net/cadence_gem.c b/hw/net/cadence_gem.c
> index de26609..a1aa91b 100644
> --- a/hw/net/cadence_gem.c
> +++ b/hw/net/cadence_gem.c
> @@ -1005,6 +1005,7 @@ static void gem_reset(DeviceState *d)
>  {
>      int i;
>      GemState *s = GEM(d);
> +    const uint8_t *a;
>  
>      DB_PRINT("\n");
>  
> @@ -1023,6 +1024,11 @@ static void gem_reset(DeviceState *d)
>      s->regs[GEM_DESCONF5] = 0x002f2145;
>      s->regs[GEM_DESCONF6] = 0x00000200;
>  
> +    /* Set MAC address */
> +    a = &s->conf.macaddr.a[0];
> +    s->regs[GEM_SPADDR1LO] = a[0] | (a[1] << 8) | (a[2] << 16) | (a[3] << 24);
> +    s->regs[GEM_SPADDR1HI] = a[4] | (a[5] << 8);
> +
>      for (i = 0; i < 4; i++) {
>          s->sar_active[i] = false;
>      }
> @@ -1245,7 +1251,6 @@ static int gem_init(SysBusDevice *sbd)
>      sysbus_init_mmio(sbd, &s->iomem);
>      sysbus_init_irq(sbd, &s->irq);
>      qemu_macaddr_default_if_unset(&s->conf.macaddr);
> -

This seems unnecessary.
>      s->nic = qemu_new_nic(&net_gem_info, &s->conf,
>              object_get_typename(OBJECT(dev)), dev->id, s);
>  

Reviewed-by: Jason Wang <jasowang@redhat.com>
diff mbox

Patch

diff --git a/hw/net/cadence_gem.c b/hw/net/cadence_gem.c
index de26609..a1aa91b 100644
--- a/hw/net/cadence_gem.c
+++ b/hw/net/cadence_gem.c
@@ -1005,6 +1005,7 @@  static void gem_reset(DeviceState *d)
 {
     int i;
     GemState *s = GEM(d);
+    const uint8_t *a;
 
     DB_PRINT("\n");
 
@@ -1023,6 +1024,11 @@  static void gem_reset(DeviceState *d)
     s->regs[GEM_DESCONF5] = 0x002f2145;
     s->regs[GEM_DESCONF6] = 0x00000200;
 
+    /* Set MAC address */
+    a = &s->conf.macaddr.a[0];
+    s->regs[GEM_SPADDR1LO] = a[0] | (a[1] << 8) | (a[2] << 16) | (a[3] << 24);
+    s->regs[GEM_SPADDR1HI] = a[4] | (a[5] << 8);
+
     for (i = 0; i < 4; i++) {
         s->sar_active[i] = false;
     }
@@ -1245,7 +1251,6 @@  static int gem_init(SysBusDevice *sbd)
     sysbus_init_mmio(sbd, &s->iomem);
     sysbus_init_irq(sbd, &s->irq);
     qemu_macaddr_default_if_unset(&s->conf.macaddr);
-
     s->nic = qemu_new_nic(&net_gem_info, &s->conf,
             object_get_typename(OBJECT(dev)), dev->id, s);