Diff for /qemu/hw/stellaris_enet.c between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2018/04/24 16:48:59 version 1.1.1.2, 2018/04/24 16:54:04
Line 44  do { fprintf(stderr, "stellaris_enet: er Line 44  do { fprintf(stderr, "stellaris_enet: er
 #define SE_TCTL_DUPLEX  0x08  #define SE_TCTL_DUPLEX  0x08
   
 typedef struct {  typedef struct {
     uint32_t base;  
     uint32_t ris;      uint32_t ris;
     uint32_t im;      uint32_t im;
     uint32_t rctl;      uint32_t rctl;
Line 133  static uint32_t stellaris_enet_read(void Line 132  static uint32_t stellaris_enet_read(void
     stellaris_enet_state *s = (stellaris_enet_state *)opaque;      stellaris_enet_state *s = (stellaris_enet_state *)opaque;
     uint32_t val;      uint32_t val;
   
     offset -= s->base;  
     switch (offset) {      switch (offset) {
     case 0x00: /* RIS */      case 0x00: /* RIS */
         DPRINTF("IRQ status %02x\n", s->ris);          DPRINTF("IRQ status %02x\n", s->ris);
Line 202  static void stellaris_enet_write(void *o Line 200  static void stellaris_enet_write(void *o
 {  {
     stellaris_enet_state *s = (stellaris_enet_state *)opaque;      stellaris_enet_state *s = (stellaris_enet_state *)opaque;
   
     offset -= s->base;  
     switch (offset) {      switch (offset) {
     case 0x00: /* IACK */      case 0x00: /* IACK */
         s->ris &= ~value;          s->ris &= ~value;
Line 326  static void stellaris_enet_reset(stellar Line 323  static void stellaris_enet_reset(stellar
     s->tx_frame_len = -1;      s->tx_frame_len = -1;
 }  }
   
   static void stellaris_enet_save(QEMUFile *f, void *opaque)
   {
       stellaris_enet_state *s = (stellaris_enet_state *)opaque;
       int i;
   
       qemu_put_be32(f, s->ris);
       qemu_put_be32(f, s->im);
       qemu_put_be32(f, s->rctl);
       qemu_put_be32(f, s->tctl);
       qemu_put_be32(f, s->thr);
       qemu_put_be32(f, s->mctl);
       qemu_put_be32(f, s->mdv);
       qemu_put_be32(f, s->mtxd);
       qemu_put_be32(f, s->mrxd);
       qemu_put_be32(f, s->np);
       qemu_put_be32(f, s->tx_frame_len);
       qemu_put_be32(f, s->tx_fifo_len);
       qemu_put_buffer(f, s->tx_fifo, sizeof(s->tx_fifo));
       for (i = 0; i < 31; i++) {
           qemu_put_be32(f, s->rx[i].len);
           qemu_put_buffer(f, s->rx[i].data, sizeof(s->rx[i].data));
   
       }
       qemu_put_be32(f, s->next_packet);
       qemu_put_be32(f, s->rx_fifo - s->rx[s->next_packet].data);
       qemu_put_be32(f, s->rx_fifo_len);
   }
   
   static int stellaris_enet_load(QEMUFile *f, void *opaque, int version_id)
   {
       stellaris_enet_state *s = (stellaris_enet_state *)opaque;
       int i;
   
       if (version_id != 1)
           return -EINVAL;
   
       s->ris = qemu_get_be32(f);
       s->im = qemu_get_be32(f);
       s->rctl = qemu_get_be32(f);
       s->tctl = qemu_get_be32(f);
       s->thr = qemu_get_be32(f);
       s->mctl = qemu_get_be32(f);
       s->mdv = qemu_get_be32(f);
       s->mtxd = qemu_get_be32(f);
       s->mrxd = qemu_get_be32(f);
       s->np = qemu_get_be32(f);
       s->tx_frame_len = qemu_get_be32(f);
       s->tx_fifo_len = qemu_get_be32(f);
       qemu_get_buffer(f, s->tx_fifo, sizeof(s->tx_fifo));
       for (i = 0; i < 31; i++) {
           s->rx[i].len = qemu_get_be32(f);
           qemu_get_buffer(f, s->rx[i].data, sizeof(s->rx[i].data));
   
       }
       s->next_packet = qemu_get_be32(f);
       s->rx_fifo = s->rx[s->next_packet].data + qemu_get_be32(f);
       s->rx_fifo_len = qemu_get_be32(f);
   
       return 0;
   }
   
 void stellaris_enet_init(NICInfo *nd, uint32_t base, qemu_irq irq)  void stellaris_enet_init(NICInfo *nd, uint32_t base, qemu_irq irq)
 {  {
     stellaris_enet_state *s;      stellaris_enet_state *s;
     int iomemtype;      int iomemtype;
   
       qemu_check_nic_model(nd, "stellaris");
   
     s = (stellaris_enet_state *)qemu_mallocz(sizeof(stellaris_enet_state));      s = (stellaris_enet_state *)qemu_mallocz(sizeof(stellaris_enet_state));
     iomemtype = cpu_register_io_memory(0, stellaris_enet_readfn,      iomemtype = cpu_register_io_memory(0, stellaris_enet_readfn,
                                        stellaris_enet_writefn, s);                                         stellaris_enet_writefn, s);
     cpu_register_physical_memory(base, 0x00001000, iomemtype);      cpu_register_physical_memory(base, 0x00001000, iomemtype);
     s->base = base;  
     s->irq = irq;      s->irq = irq;
     memcpy(s->macaddr, nd->macaddr, 6);      memcpy(s->macaddr, nd->macaddr, 6);
   
     if (nd->vlan)      if (nd->vlan) {
         s->vc = qemu_new_vlan_client(nd->vlan, stellaris_enet_receive,          s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                                      stellaris_enet_can_receive, s);                                       stellaris_enet_receive, stellaris_enet_can_receive, s);
           qemu_format_nic_info_str(s->vc, s->macaddr);
       }
   
     stellaris_enet_reset(s);      stellaris_enet_reset(s);
       register_savevm("stellaris_enet", -1, 1,
                       stellaris_enet_save, stellaris_enet_load, s);
 }  }

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


unix.superglobalmegacorp.com