⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dev_c6msfc1.h

📁 思科路由器仿真器,用来仿7200系列得,可以在电脑上模拟路由器
💻 H
字号:
/* * Cisco router simulation platform. * Copyright (c) 2005,2006 Christophe Fillot (cf@utc.fr) * * Generic Cisco MSFC1 routines and definitions (EEPROM,...). */#ifndef __DEV_C6MSFC1_H__#define __DEV_C6MSFC1_H__#include <pthread.h>#include "utils.h"#include "net.h"#include "device.h"#include "pci_dev.h"#include "nmc93cX6.h"#include "net_io.h"#include "vm.h"/* Default MSFC1 parameters */#define C6MSFC1_DEFAULT_RAM_SIZE     256#define C6MSFC1_DEFAULT_ROM_SIZE     4#define C6MSFC1_DEFAULT_NVRAM_SIZE   128#define C6MSFC1_DEFAULT_CONF_REG     0x2102#define C6MSFC1_DEFAULT_CLOCK_DIV    4#define C6MSFC1_DEFAULT_RAM_MMAP     1/* EOBC + IBC */#define C6MSFC1_MAX_PA_BAYS  2/* MSFC1 Timer IRQ (virtual) */#define C6MSFC1_VTIMER_IRQ 0/* MSFC1 DUART Interrupt */#define C6MSFC1_DUART_IRQ  5/* MSFC1 Network I/O Interrupt */#define C6MSFC1_NETIO_IRQ  2/* MSFC1 PA Management Interrupt handler */#define C6MSFC1_PA_MGMT_IRQ  3/* MSFC1 GT64k DMA/Timer Interrupt */#define C6MSFC1_GT64K_IRQ  4/* MSFC1 Error/OIR Interrupt */#define C6MSFC1_OIR_IRQ    6/* Network IRQ */#define C6MSFC1_NETIO_IRQ_BASE       32#define C6MSFC1_NETIO_IRQ_END        \   (C6MSFC1_NETIO_IRQ_BASE + C6MSFC1_MAX_PA_BAYS - 1)/* MSFC1 base ram limit (256 Mb) */#define C6MSFC1_BASE_RAM_LIMIT  256/* MSFC1 common device addresses */#define C6MSFC1_GT64K_ADDR         0x14000000ULL#define C6MSFC1_GT64K_SEC_ADDR     0x15000000ULL#define C6MSFC1_BOOTFLASH_ADDR     0x1a000000ULL#define C6MSFC1_NVRAM_ADDR         0x1e000000ULL#define C6MSFC1_MPFPGA_ADDR        0x1e800000ULL#define C6MSFC1_IOFPGA_ADDR        0x1e840000ULL#define C6MSFC1_BITBUCKET_ADDR     0x1f000000ULL#define C6MSFC1_ROM_ADDR           0x1fc00000ULL#define C6MSFC1_IOMEM_ADDR         0x20000000ULL#define C6MSFC1_SRAM_ADDR          0x4b000000ULL#define C6MSFC1_BSWAP_ADDR         0xc0000000ULL#define C6MSFC1_PCI_IO_ADDR        0x100000000ULL/* SRAM size */#define C6MSFC1_SRAM_SIZE  (4096*1024)/* Reserved space for ROM in NVRAM */#define C6MSFC1_NVRAM_ROM_RES_SIZE  2048/* MSFC1 physical address bus mask: keep only the lower 33 bits */#define C6MSFC1_ADDR_BUS_MASK   0x1ffffffffULL/* MSFC1 ELF Platform ID */#define C6MSFC1_ELF_MACHINE_ID  0x19#define VM_C6MSFC1(vm) ((c6msfc1_t *)vm->hw_data)/* MSFC1 router */typedef struct c6msfc1_router c6msfc1_t;/* MSFC1 router */struct c6msfc1_router {   /* Chassis MAC address */   n_eth_addr_t mac_addr;   /* Associated VM instance */   vm_instance_t *vm;   /* Midplane FPGA */   struct c6msfc1_mpfpga_data *mpfpga_data;      /* Midplane EEPROM can be modified to change the chassis MAC address... */   struct cisco_eeprom cpu_eeprom,mp_eeprom,pem_eeprom;   /* EEPROMs for CPU and Midplane */   struct nmc93cX6_group sys_eeprom_g1;   /* Slot of this MSFC */   u_int msfc_slot;};/* Initialize EEPROM groups */void c6msfc1_init_eeprom_groups(c6msfc1_t *router);/* Get network IRQ for specified slot/port */u_int c6msfc1_net_irq_for_slot_port(u_int slot,u_int port);/* Show the list of available PA drivers */void c6msfc1_pa_show_drivers(void);/* Set chassis MAC address */int c6msfc1_midplane_set_mac_addr(c6msfc1_t *router,char *mac_addr);/* Show MSFC1 hardware info */void c6msfc1_show_hardware(c6msfc1_t *router);/* dev_c6msfc1_iofpga_init() */int dev_c6msfc1_iofpga_init(c6msfc1_t *router,m_uint64_t paddr,m_uint32_t len);/* dev_mpfpga_init() */int dev_c6msfc1_mpfpga_init(c6msfc1_t *router,m_uint64_t paddr,m_uint32_t len);/* Register the c6msfc1 platform */int c6msfc1_platform_register(void);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -