/[dynamips]/upstream/dynamips-0.2.6-RC3/dev_c7200_pos.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /upstream/dynamips-0.2.6-RC3/dev_c7200_pos.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

upstream/dynamips-0.2.5/dev_c7200_pos.c revision 1 by dpavlin, Sat Oct 6 16:01:44 2007 UTC upstream/dynamips-0.2.6-RC3/dev_c7200_pos.c revision 4 by dpavlin, Sat Oct 6 16:06:49 2007 UTC
# Line 27  Line 27 
27  #include "net_io.h"  #include "net_io.h"
28  #include "ptask.h"  #include "ptask.h"
29  #include "dev_c7200.h"  #include "dev_c7200.h"
30    #include "dev_plx.h"
31    
32  /* Debugging flags */  /* Debugging flags */
33  #define DEBUG_ACCESS    0  #define DEBUG_ACCESS    0
# Line 93  struct pos_oc3_data { Line 94  struct pos_oc3_data {
94     ptask_id_t tx_tid;     ptask_id_t tx_tid;
95  };  };
96    
 /* EEPROM definition */  
 static const m_uint16_t eeprom_pos_oc3_data[64] = {  
    0x0196, 0x0202, 0xffff, 0xffff, 0x490C, 0x7806, 0x0000, 0x0000,  
    0x5000, 0x0000, 0x0208, 0x1900, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF,  
 };  
   
 static const struct c7200_eeprom eeprom_pos_oc3 = {  
    "PA-POS-OC3MM", (m_uint16_t *)eeprom_pos_oc3_data,  
    sizeof(eeprom_pos_oc3_data)/2,  
 };  
   
97  /* Log a PA-POS-OC3 message */  /* Log a PA-POS-OC3 message */
98  #define POS_LOG(d,msg...) vm_log((d)->vm,(d)->name,msg)  #define POS_LOG(d,msg...) vm_log((d)->vm,(d)->name,msg)
99    
# Line 653  int dev_c7200_pa_pos_init(c7200_t *route Line 643  int dev_c7200_pa_pos_init(c7200_t *route
643     d->vm   = router->vm;     d->vm   = router->vm;
644    
645     /* Set the EEPROM */     /* Set the EEPROM */
646     c7200_pa_set_eeprom(router,pa_bay,&eeprom_pos_oc3);     c7200_pa_set_eeprom(router,pa_bay,cisco_eeprom_find_pa("PA-POS-OC3"));
647    
648     /* Get the appropriate PCI bus */     /* Get the appropriate PCI bus */
649     pci_bus = router->pa_bay[pa_bay].pci_map;     pci_bus = router->pa_bay[pa_bay].pci_map;
# Line 664  int dev_c7200_pa_pos_init(c7200_t *route Line 654  int dev_c7200_pa_pos_init(c7200_t *route
654     d->rx_dev.name      = d->rx_name;     d->rx_dev.name      = d->rx_name;
655     d->rx_dev.priv_data = d;     d->rx_dev.priv_data = d;
656     d->rx_dev.handler   = dev_pos_rx_access;     d->rx_dev.handler   = dev_pos_rx_access;
    vm_bind_device(d->vm,&d->rx_dev);  
657    
658     /* Initialize TX device */     /* Initialize TX device */
659     d->tx_name = dyn_sprintf("%s_TX",name);     d->tx_name = dyn_sprintf("%s_TX",name);
# Line 672  int dev_c7200_pa_pos_init(c7200_t *route Line 661  int dev_c7200_pa_pos_init(c7200_t *route
661     d->tx_dev.name      = d->tx_name;     d->tx_dev.name      = d->tx_name;
662     d->tx_dev.priv_data = d;     d->tx_dev.priv_data = d;
663     d->tx_dev.handler   = dev_pos_tx_access;     d->tx_dev.handler   = dev_pos_tx_access;
    vm_bind_device(d->vm,&d->tx_dev);  
664    
665     /* Initialize CS device */     /* Initialize CS device */
666     d->cs_name = dyn_sprintf("%s_CS",name);     d->cs_name = dyn_sprintf("%s_CS",name);
# Line 680  int dev_c7200_pa_pos_init(c7200_t *route Line 668  int dev_c7200_pa_pos_init(c7200_t *route
668     d->cs_dev.name      = d->cs_name;     d->cs_dev.name      = d->cs_name;
669     d->cs_dev.priv_data = d;     d->cs_dev.priv_data = d;
670     d->cs_dev.handler   = dev_pos_cs_access;     d->cs_dev.handler   = dev_pos_cs_access;
    vm_bind_device(d->vm,&d->cs_dev);  
671    
672     /* Initialize PLX9060 for RX part */     /* Initialize PLX9060 for RX part */
673     d->rx_obj = dev_plx9060_init(d->vm,d->rx_name,pci_bus,0,&d->rx_dev);     d->rx_obj = dev_plx9060_init(d->vm,d->rx_name,pci_bus,0,&d->rx_dev);
# Line 697  int dev_c7200_pa_pos_init(c7200_t *route Line 684  int dev_c7200_pa_pos_init(c7200_t *route
684     d->dev.priv_data = d;     d->dev.priv_data = d;
685     d->dev.phys_len  = 0x10000;     d->dev.phys_len  = 0x10000;
686     d->dev.handler   = dev_pos_access;     d->dev.handler   = dev_pos_access;
    vm_bind_device(d->vm,&d->dev);  
687    
688     d->pci_dev = pci_dev_add(pci_bus,name,0,0,3,0,C7200_NETIO_IRQ,     d->pci_dev = pci_dev_add(pci_bus,name,0,0,3,0,C7200_NETIO_IRQ,
689                              d,NULL,pci_pos_read,pci_pos_write);                              d,NULL,pci_pos_read,pci_pos_write);
# Line 728  int dev_c7200_pa_pos_shutdown(c7200_t *r Line 714  int dev_c7200_pa_pos_shutdown(c7200_t *r
714     vm_object_remove(d->vm,d->tx_obj);     vm_object_remove(d->vm,d->tx_obj);
715     vm_object_remove(d->vm,d->cs_obj);     vm_object_remove(d->vm,d->cs_obj);
716    
717     /* Remove the device from the CPU address space */     /* Remove the devices from the CPU address space */
718       vm_unbind_device(router->vm,&d->rx_dev);
719       vm_unbind_device(router->vm,&d->tx_dev);
720       vm_unbind_device(router->vm,&d->cs_dev);
721    
722     vm_unbind_device(router->vm,&d->dev);     vm_unbind_device(router->vm,&d->dev);
723     cpu_group_rebuild_mts(router->vm->cpu_group);     cpu_group_rebuild_mts(router->vm->cpu_group);
724    
# Line 778  struct c7200_pa_driver dev_c7200_pa_pos_ Line 768  struct c7200_pa_driver dev_c7200_pa_pos_
768     dev_c7200_pa_pos_shutdown,     dev_c7200_pa_pos_shutdown,
769     dev_c7200_pa_pos_set_nio,     dev_c7200_pa_pos_set_nio,
770     dev_c7200_pa_pos_unset_nio,     dev_c7200_pa_pos_unset_nio,
771       NULL,
772  };  };

Legend:
Removed from v.1  
changed lines
  Added in v.4

  ViewVC Help
Powered by ViewVC 1.1.26