Changeset 965 for trunk/platforms
- Timestamp:
- Apr 5, 2015, 12:42:04 AM (10 years ago)
- Location:
- trunk/platforms/tsar_generic_iob
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_iob/arch.py
r959 r965 16 16 # This platform includes 6 external peripherals, accessible through an IOB 17 17 # components located in cluster [0,0] or in cluster [x_size-1, y_size-1]. 18 # Available peripherals are: TTY, BDV, FBF, ROM, NIC, CMA, PIC.18 # Available peripherals are: TTY, HBA, FBF, ROM, NIC, CMA, PIC. 19 19 # 20 20 # All clusters contain (nb_procs) processors, one L2 cache, one XCU, and … … 27 27 # - nb_ttys : number of TTY channels 28 28 # - fbf_width : frame_buffer width = frame_buffer heigth 29 # - ioc_type : can be 'BDV' , 'HBA' , 'SDC' , 'NONE' 29 30 # 30 31 # The other hardware parameters are: … … 57 58 nb_procs = 2, 58 59 nb_ttys = 1, 59 fbf_width = 128 ): 60 fbf_width = 128, 61 ioc_type = 'BDV' ): 60 62 61 63 ### define architecture constants … … 70 72 paddr_width = 40 71 73 irq_per_proc = 4 72 use_ramdisk = False73 74 peri_increment = 0x10000 # distributed peripherals vbase address increment 74 75 … … 88 89 ((x_io == x_size-1) and (y_io == y_size-1)) ) 89 90 90 ### define type and name 91 92 platform_type = 'tsar_iob' 93 platform_name = '%s_%d_%d_%d' % ( platform_type, x_size, y_size , nb_procs ) 91 assert( ioc_type in IOCSUBTYPES ) 92 93 ### define platform name 94 95 platform_name = 'tsar_iob_%d_%d_%d' % ( x_size, y_size , nb_procs ) 96 platform_name += '_%d_%d_%s' % ( fbf_width , nb_ttys , ioc_type ) 94 97 95 98 ### define physical segments replicated in all clusters … … 110 113 ## These segments are only defined in cluster_io 111 114 112 bdv_base = 0x00B3000000113 bdv_size = 0x1000 # 4kbytes115 ioc_base = 0x00B3000000 116 ioc_size = 0x1000 # 4 Kbytes 114 117 115 118 tty_base = 0x00B4000000 … … 186 189 coherence = True, 187 190 irq_per_proc = irq_per_proc, 188 use_ramdisk = use_ramdisk,191 use_ramdisk = (ioc_type == 'RDK'), 189 192 x_io = x_io, 190 193 y_io = y_io, … … 234 237 ptype = 'IOB' ) 235 238 236 bdv = mapping.addPeriph( 'BDV', base = bdv_base + offset, size = bdv_size,237 ptype = 'IOC', subtype = 'BDV')239 ioc = mapping.addPeriph( 'IOC', base = ioc_base + offset, size = ioc_size, 240 ptype = 'IOC', subtype = ioc_type ) 238 241 239 242 tty = mapping.addPeriph( 'TTY', base = tty_base + offset, size = tty_size, … … 266 269 mapping.addIrq( pic, index = 7, isrtype = 'ISR_CMA' , channel = 3 ) 267 270 268 mapping.addIrq( pic, index = 8, isrtype = 'ISR_BDV' , channel = 0 ) 271 if ( ioc_type == 'BDV' ): isr_ioc = 'ISR_BDV' 272 if ( ioc_type == 'HBA' ): isr_ioc = 'ISR_HBA' 273 if ( ioc_type == 'SDC' ): isr_ioc = 'ISR_SDC' 274 275 mapping.addIrq( pic, index = 8, isrtype = isr_ioc , channel = 0 ) 269 276 270 277 mapping.addIrq( pic, index = 16, isrtype = 'ISR_TTY_RX', channel = 0 ) … … 310 317 311 318 ### global vsegs kernel_code, kernel_init : big / local 312 ### replicated in all clusters with the same name & same vbase 313 for x in xrange( x_size ): 314 for y in xrange( y_size ): 315 mapping.addGlobal( 'seg_kernel_code', kernel_code_vbase, kernel_code_size, 319 ### replicated in all clusters with indexed name & same vbase 320 for x in xrange( x_size ): 321 for y in xrange( y_size ): 322 mapping.addGlobal( 'seg_kernel_code_%d_%d' %(x,y), 323 kernel_code_vbase, kernel_code_size, 316 324 'CXW_', vtype = 'ELF', x = x , y = y , pseg = 'RAM', 317 325 binpath = 'build/kernel/kernel.elf', 318 326 local = True, big = True ) 319 327 320 mapping.addGlobal( 'seg_kernel_init', kernel_init_vbase, kernel_init_size, 328 mapping.addGlobal( 'seg_kernel_init_%d_%d' %(x,y), 329 kernel_init_vbase, kernel_init_size, 321 330 'CXW_', vtype = 'ELF', x = x , y = y , pseg = 'RAM', 322 331 binpath = 'build/kernel/kernel.elf', … … 358 367 local = False, big = True ) 359 368 360 mapping.addGlobal( 'seg_ bdv', bdv_base, bdv_size, '__W_',361 vtype = 'PERI', x = 0, y = 0, pseg = ' BDV',369 mapping.addGlobal( 'seg_ioc', ioc_base, ioc_size, '__W_', 370 vtype = 'PERI', x = 0, y = 0, pseg = 'IOC', 362 371 local = False, big = True ) 363 372 -
trunk/platforms/tsar_generic_iob/top.cpp
r959 r965 14 14 // - MNIC : Network controller (up to 2 channels) 15 15 // - CDMA : Chained Buffer DMA controller (up to 4 channels) 16 // - BDEV : Dlock Device controler (one channel)16 // - DISK : Block device controler (BDV / HBA / SDC) 17 17 // - IOPI : HWI to SWI translator. 18 18 // … … 45 45 // - IOPIC HWI[3:2] connected to IRQ_NIC_TX[1:0] 46 46 // - IOPIC HWI[7:4] connected to IRQ_CMA_TX[3:0]] 47 // - IOPIC HWI[8] connected to IRQ_ BDEV47 // - IOPIC HWI[8] connected to IRQ_DISK 48 48 // - IOPIC HWI[31:16] connected to IRQ_TTY_RX[15:0] 49 49 // … … 100 100 // - L1_DWAYS 101 101 // - L1_DSETS 102 // - BDEV_IMAGE_NAME : file pathname for block device102 // - DISK_IMAGE_NAME : file pathname for block device 103 103 // 104 104 // General policy for 40 bits physical address decoding: … … 132 132 #include "vci_multi_nic.h" 133 133 #include "vci_simple_rom.h" 134 #include "vci_multi_ahci.h" 134 135 #include "vci_block_device_tsar.h" 135 136 #include "vci_framebuffer.h" 136 #include "vci_iox_network.h"137 137 #include "vci_iox_network.h" 138 138 #include "vci_iopic.h" … … 210 210 #define L1_DSETS 64 211 211 212 #define BDEV_IMAGE_NAME "../../../giet_vm/hdd/virt_hdd.dmg"212 #define DISK_IMAGE_NAME "../../../giet_vm/hdd/virt_hdd.dmg" 213 213 214 214 #define ROM_SOFT_NAME "../../softs/tsar_boot/preloader.elf" … … 247 247 // - Internal initiators (procs, mdma) are replicated in all clusters, 248 248 // and each initiator has one single SRCID. 249 // - External initiators ( bdev, cdma) are not replicated, but can be249 // - External initiators (disk, cdma) are not replicated, but can be 250 250 // accessed in 2 clusters : cluster_iob0 and cluster_iob1. 251 251 // They have the same local index, but two different cluster indexes. … … 263 263 #define MEMC_LOCAL_SRCID 0xA 264 264 #define CDMA_LOCAL_SRCID 0xB 265 #define BDEV_LOCAL_SRCID 0xC265 #define DISK_LOCAL_SRCID 0xC 266 266 #define IOPI_LOCAL_SRCID 0xD 267 267 … … 293 293 294 294 #define IOX_FBUF_TGT_ID 0 295 #define IOX_ BDEV_TGT_ID 1295 #define IOX_DISK_TGT_ID 1 296 296 #define IOX_MNIC_TGT_ID 2 297 297 #define IOX_CDMA_TGT_ID 3 … … 302 302 #define IOX_IOB1_TGT_ID 8 303 303 304 #define IOX_ BDEV_INI_ID 0304 #define IOX_DISK_INI_ID 0 305 305 #define IOX_CDMA_INI_ID 1 306 306 #define IOX_IOPI_INI_ID 2 … … 316 316 using namespace soclib::common; 317 317 318 319 318 char soft_name[256] = ROM_SOFT_NAME; // pathname: binary code 320 319 size_t ncycles = 4000000000; // simulated cycles 321 char disk_name[256] = BDEV_IMAGE_NAME; // pathname: disk image320 char disk_name[256] = DISK_IMAGE_NAME; // pathname: disk image 322 321 ssize_t threads_nr = 1; // simulator's threads number 323 322 bool debug_ok = false; // trace activated … … 585 584 IntTab(cluster(x,y), INT_IOBX_TGT_ID), not cacheable)); 586 585 587 std::ostringstream s bdv;588 s bdv << "int_seg_bdev_" << x << "_" << y;589 maptab_int.add(Segment(s bdv.str(), SEG_IOC_BASE+offset, SEG_IOC_SIZE,586 std::ostringstream sdsk; 587 sdsk << "int_seg_disk_" << x << "_" << y; 588 maptab_int.add(Segment(sdsk.str(), SEG_IOC_BASE+offset, SEG_IOC_SIZE, 590 589 IntTab(cluster(x,y), INT_IOBX_TGT_ID), not cacheable)); 591 590 … … 667 666 IntTab( cluster_iob1, RAM_IOBX_INI_ID ) ); 668 667 669 maptab_ram.srcid_map( IntTab( cluster_iob0, BDEV_LOCAL_SRCID ),668 maptab_ram.srcid_map( IntTab( cluster_iob0, DISK_LOCAL_SRCID ), 670 669 IntTab( cluster_iob0, RAM_IOBX_INI_ID ) ); 671 670 672 maptab_ram.srcid_map( IntTab( cluster_iob1, BDEV_LOCAL_SRCID ),671 maptab_ram.srcid_map( IntTab( cluster_iob1, DISK_LOCAL_SRCID ), 673 672 IntTab( cluster_iob1, RAM_IOBX_INI_ID ) ); 674 673 … … 691 690 // - two levels address decoding for commands (9, 7) bits 692 691 // - two levels srcid decoding for responses 693 // - 5 initiators (IOB0, IOB1, BDEV, CDMA, IOPI)694 // - 9 targets (IOB0, IOB1, BDEV, CDMA, MTTY, FBUF, BROM, MNIC, IOPI)692 // - 5 initiators (IOB0, IOB1, DISK, CDMA, IOPI) 693 // - 9 targets (IOB0, IOB1, DISK, CDMA, MTTY, FBUF, BROM, MNIC, IOPI) 695 694 // 696 695 // Address bit 32 is used to determine if a command must be routed to … … 714 713 maptab_iox.add(Segment("iox_seg_fbuf_0", SEG_FBF_BASE + iob0_base, SEG_FBF_SIZE, 715 714 IntTab(0, IOX_FBUF_TGT_ID), false)); 716 maptab_iox.add(Segment("iox_seg_ bdev_0", SEG_IOC_BASE + iob0_base, SEG_IOC_SIZE,717 IntTab(0, IOX_ BDEV_TGT_ID), false));715 maptab_iox.add(Segment("iox_seg_disk_0", SEG_IOC_BASE + iob0_base, SEG_IOC_SIZE, 716 IntTab(0, IOX_DISK_TGT_ID), false)); 718 717 maptab_iox.add(Segment("iox_seg_mnic_0", SEG_NIC_BASE + iob0_base, SEG_NIC_SIZE, 719 718 IntTab(0, IOX_MNIC_TGT_ID), false)); … … 734 733 maptab_iox.add(Segment("iox_seg_fbuf_1", SEG_FBF_BASE + iob1_base, SEG_FBF_SIZE, 735 734 IntTab(0, IOX_FBUF_TGT_ID), false)); 736 maptab_iox.add(Segment("iox_seg_ bdev_1", SEG_IOC_BASE + iob1_base, SEG_IOC_SIZE,737 IntTab(0, IOX_ BDEV_TGT_ID), false));735 maptab_iox.add(Segment("iox_seg_disk_1", SEG_IOC_BASE + iob1_base, SEG_IOC_SIZE, 736 IntTab(0, IOX_DISK_TGT_ID), false)); 738 737 maptab_iox.add(Segment("iox_seg_mnic_1", SEG_NIC_BASE + iob1_base, SEG_NIC_SIZE, 739 738 IntTab(0, IOX_MNIC_TGT_ID), false)); … … 794 793 maptab_iox.srcid_map( IntTab( 0, CDMA_LOCAL_SRCID ) , 795 794 IntTab( 0, IOX_CDMA_INI_ID ) ); 796 maptab_iox.srcid_map( IntTab( 0, BDEV_LOCAL_SRCID ) ,797 IntTab( 0, IOX_ BDEV_INI_ID ) );795 maptab_iox.srcid_map( IntTab( 0, DISK_LOCAL_SRCID ) , 796 IntTab( 0, IOX_DISK_INI_ID ) ); 798 797 maptab_iox.srcid_map( IntTab( 0, IOPI_LOCAL_SRCID ) , 799 798 IntTab( 0, IOX_IOPI_INI_ID ) ); … … 817 816 818 817 sc_signal<bool> signal_irq_false; 819 sc_signal<bool> signal_irq_ bdev;818 sc_signal<bool> signal_irq_disk; 820 819 sc_signal<bool> signal_irq_mtty_rx[NB_TTY_CHANNELS]; 821 820 sc_signal<bool> signal_irq_mnic_rx[NB_NIC_CHANNELS]; … … 826 825 VciSignals<vci_param_ext> signal_vci_ini_iob0("signal_vci_ini_iob0"); 827 826 VciSignals<vci_param_ext> signal_vci_ini_iob1("signal_vci_ini_iob1"); 828 VciSignals<vci_param_ext> signal_vci_ini_ bdev("signal_vci_ini_bdev");827 VciSignals<vci_param_ext> signal_vci_ini_disk("signal_vci_ini_disk"); 829 828 VciSignals<vci_param_ext> signal_vci_ini_cdma("signal_vci_ini_cdma"); 830 829 VciSignals<vci_param_ext> signal_vci_ini_iopi("signal_vci_ini_iopi"); … … 836 835 VciSignals<vci_param_ext> signal_vci_tgt_mnic("signal_vci_tgt_mnic"); 837 836 VciSignals<vci_param_ext> signal_vci_tgt_brom("signal_vci_tgt_brom"); 838 VciSignals<vci_param_ext> signal_vci_tgt_ bdev("signal_vci_tgt_bdev");837 VciSignals<vci_param_ext> signal_vci_tgt_disk("signal_vci_tgt_disk"); 839 838 VciSignals<vci_param_ext> signal_vci_tgt_cdma("signal_vci_tgt_cdma"); 840 839 VciSignals<vci_param_ext> signal_vci_tgt_iopi("signal_vci_tgt_iopi"); … … 901 900 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_false_ram_rsp_out", XMAX, YMAX, 4); 902 901 903 ////////////////////////////904 // Loader905 ////////////////////////////902 //////////////////////////// 903 // Loader 904 //////////////////////////// 906 905 907 906 #if USE_ALMOS 908 soclib::common::Loader loader(almos_bootloader_pathname,907 soclib::common::Loader loader(almos_bootloader_pathname, 909 908 almos_archinfo_pathname, 910 909 almos_kernel_pathname); 911 910 #else 912 soclib::common::Loader loader(soft_name);911 soclib::common::Loader loader(soft_name); 913 912 #endif 914 913 915 typedef soclib::common::GdbServer<soclib::common::Mips32ElIss> proc_iss; 916 proc_iss::set_loader(loader); 917 918 //////////////////////////////////////// 919 // Instanciated Hardware Components 920 //////////////////////////////////////// 921 922 std::cout << std::endl << "External Bus and Peripherals" << std::endl << std::endl; 923 924 const size_t nb_iox_initiators = (cluster_iob0 != cluster_iob1) ? 5 : 4; 925 const size_t nb_iox_targets = (cluster_iob0 != cluster_iob1) ? 9 : 8; 926 927 // IOX network 928 VciIoxNetwork<vci_param_ext>* iox_network; 929 iox_network = new VciIoxNetwork<vci_param_ext>( "iox_network", 930 maptab_iox, 931 nb_iox_targets, 932 nb_iox_initiators ); 933 // boot ROM 934 VciSimpleRom<vci_param_ext>* brom; 935 brom = new VciSimpleRom<vci_param_ext>( "brom", 936 IntTab(0, IOX_BROM_TGT_ID), 914 typedef soclib::common::GdbServer<soclib::common::Mips32ElIss> proc_iss; 915 proc_iss::set_loader(loader); 916 917 //////////////////////////////////////// 918 // Instanciated Hardware Components 919 //////////////////////////////////////// 920 921 std::cout << std::endl << "External Bus and Peripherals" << std::endl << std::endl; 922 923 const size_t nb_iox_initiators = (cluster_iob0 != cluster_iob1) ? 5 : 4; 924 const size_t nb_iox_targets = (cluster_iob0 != cluster_iob1) ? 9 : 8; 925 926 // IOX network 927 VciIoxNetwork<vci_param_ext>* iox_network; 928 iox_network = new VciIoxNetwork<vci_param_ext>( "iox_network", 929 maptab_iox, 930 nb_iox_targets, 931 nb_iox_initiators ); 932 // boot ROM 933 VciSimpleRom<vci_param_ext>* brom; 934 brom = new VciSimpleRom<vci_param_ext>( "brom", 935 IntTab(0, IOX_BROM_TGT_ID), 936 maptab_iox, 937 loader ); 938 // Network Controller 939 VciMultiNic<vci_param_ext>* mnic; 940 mnic = new VciMultiNic<vci_param_ext>( "mnic", 941 IntTab(0, IOX_MNIC_TGT_ID), 937 942 maptab_iox, 938 loader ); 939 // Network Controller 940 VciMultiNic<vci_param_ext>* mnic; 941 mnic = new VciMultiNic<vci_param_ext>( "mnic", 942 IntTab(0, IOX_MNIC_TGT_ID), 943 maptab_iox, 944 NB_NIC_CHANNELS, 945 0, // mac_4 address 946 0, // mac_2 address 947 1 ); // NIC_MODE_SYNTHESIS 948 949 // Frame Buffer 950 VciFrameBuffer<vci_param_ext>* fbuf; 951 fbuf = new VciFrameBuffer<vci_param_ext>( "fbuf", 952 IntTab(0, IOX_FBUF_TGT_ID), 953 maptab_iox, 954 FBUF_X_SIZE, FBUF_Y_SIZE ); 955 956 // Block Device 957 // for AHCI 958 // std::vector<std::string> filenames; 959 // filenames.push_back(disk_name); // one single disk 960 VciBlockDeviceTsar<vci_param_ext>* bdev; 961 bdev = new VciBlockDeviceTsar<vci_param_ext>( "bdev", 943 NB_NIC_CHANNELS, 944 0, // mac_4 address 945 0, // mac_2 address 946 1 ); // NIC_MODE_SYNTHESIS 947 948 // Frame Buffer 949 VciFrameBuffer<vci_param_ext>* fbuf; 950 fbuf = new VciFrameBuffer<vci_param_ext>( "fbuf", 951 IntTab(0, IOX_FBUF_TGT_ID), 952 maptab_iox, 953 FBUF_X_SIZE, FBUF_Y_SIZE ); 954 955 // Disk 956 std::vector<std::string> filenames; 957 filenames.push_back(disk_name); // one single disk 958 959 #if ( USE_IOC_HBA ) 960 VciMultiAhci<vci_param_ext>* disk; 961 disk = new VciMultiAhci<vci_param_ext>( "disk", 962 maptab_iox, 963 IntTab(0, DISK_LOCAL_SRCID), 964 IntTab(0, IOX_DISK_TGT_ID), 965 filenames, 966 512, // block size 967 64, // burst size (bytes) 968 0 ); // disk latency 969 #elif ( USE_IOC_BDV ) 970 VciBlockDeviceTsar<vci_param_ext>* disk; 971 disk = new VciBlockDeviceTsar<vci_param_ext>( "disk", 962 972 maptab_iox, 963 IntTab(0, BDEV_LOCAL_SRCID),964 IntTab(0, IOX_ BDEV_TGT_ID),973 IntTab(0, DISK_LOCAL_SRCID), 974 IntTab(0, IOX_DISK_TGT_ID), 965 975 disk_name, 966 976 512, // block size 967 977 64, // burst size (bytes) 968 978 0 ); // disk latency 969 970 // Chained Buffer DMA controller 971 VciChbufDma<vci_param_ext>* cdma; 972 cdma = new VciChbufDma<vci_param_ext>( "cdma", 973 maptab_iox, 974 IntTab(0, CDMA_LOCAL_SRCID), 975 IntTab(0, IOX_CDMA_TGT_ID), 976 64, // burst size (bytes) 977 NB_CMA_CHANNELS ); 978 // Multi-TTY controller 979 std::vector<std::string> vect_names; 980 for( size_t tid = 0 ; tid < NB_TTY_CHANNELS ; tid++ ) 981 { 982 std::ostringstream term_name; 983 term_name << "term" << tid; 979 #else 980 std::cout << "Error in tsar_generic_iob : only HBA & BDV are supported" << std::endl; 981 exit(0); 982 #endif 983 984 // Chained Buffer DMA controller 985 VciChbufDma<vci_param_ext>* cdma; 986 cdma = new VciChbufDma<vci_param_ext>( "cdma", 987 maptab_iox, 988 IntTab(0, CDMA_LOCAL_SRCID), 989 IntTab(0, IOX_CDMA_TGT_ID), 990 64, // burst size (bytes) 991 NB_CMA_CHANNELS ); 992 // Multi-TTY controller 993 std::vector<std::string> vect_names; 994 for( size_t tid = 0 ; tid < NB_TTY_CHANNELS ; tid++ ) 995 { 996 std::ostringstream term_name; 997 term_name << "term" << tid; 998 984 999 vect_names.push_back(term_name.str().c_str()); 985 1000 } … … 990 1005 vect_names); 991 1006 992 // IOPIC993 VciIopic<vci_param_ext>* iopi;994 iopi = new VciIopic<vci_param_ext>( "iopi",995 maptab_iox,996 IntTab(0, IOPI_LOCAL_SRCID),997 IntTab(0, IOX_IOPI_TGT_ID),998 32 ); // number of input HWI999 // Clusters1000 TsarIobCluster<vci_param_int,1001 vci_param_ext,1002 dspin_int_cmd_width,1003 dspin_int_rsp_width,1004 dspin_ram_cmd_width,1005 dspin_ram_rsp_width>* clusters[XMAX][YMAX];1007 // IOPIC 1008 VciIopic<vci_param_ext>* iopi; 1009 iopi = new VciIopic<vci_param_ext>( "iopi", 1010 maptab_iox, 1011 IntTab(0, IOPI_LOCAL_SRCID), 1012 IntTab(0, IOX_IOPI_TGT_ID), 1013 32 ); // number of input HWI 1014 // Clusters 1015 TsarIobCluster<vci_param_int, 1016 vci_param_ext, 1017 dspin_int_cmd_width, 1018 dspin_int_rsp_width, 1019 dspin_ram_cmd_width, 1020 dspin_ram_rsp_width>* clusters[XMAX][YMAX]; 1006 1021 1007 1022 #if USING_OPENMP … … 1117 1132 iox_network->p_resetn (signal_resetn); 1118 1133 iox_network->p_to_ini[IOX_IOB0_INI_ID] (signal_vci_ini_iob0); 1119 iox_network->p_to_ini[IOX_ BDEV_INI_ID] (signal_vci_ini_bdev);1134 iox_network->p_to_ini[IOX_DISK_INI_ID] (signal_vci_ini_disk); 1120 1135 iox_network->p_to_ini[IOX_CDMA_INI_ID] (signal_vci_ini_cdma); 1121 1136 iox_network->p_to_ini[IOX_IOPI_INI_ID] (signal_vci_ini_iopi); … … 1126 1141 iox_network->p_to_tgt[IOX_MNIC_TGT_ID] (signal_vci_tgt_mnic); 1127 1142 iox_network->p_to_tgt[IOX_BROM_TGT_ID] (signal_vci_tgt_brom); 1128 iox_network->p_to_tgt[IOX_ BDEV_TGT_ID] (signal_vci_tgt_bdev);1143 iox_network->p_to_tgt[IOX_DISK_TGT_ID] (signal_vci_tgt_disk); 1129 1144 iox_network->p_to_tgt[IOX_CDMA_TGT_ID] (signal_vci_tgt_cdma); 1130 1145 iox_network->p_to_tgt[IOX_IOPI_TGT_ID] (signal_vci_tgt_iopi); … … 1136 1151 } 1137 1152 1138 // BDEV connexion 1139 bdev->p_clk (signal_clk); 1140 bdev->p_resetn (signal_resetn); 1141 bdev->p_irq (signal_irq_bdev); 1142 bdev->p_vci_target (signal_vci_tgt_bdev); 1143 bdev->p_vci_initiator (signal_vci_ini_bdev); 1144 1145 std::cout << " - BDEV connected" << std::endl; 1153 // DISK connexion 1154 disk->p_clk (signal_clk); 1155 disk->p_resetn (signal_resetn); 1156 disk->p_vci_target (signal_vci_tgt_disk); 1157 disk->p_vci_initiator (signal_vci_ini_disk); 1158 #if ( USE_IOC_HBA ) 1159 disk->p_channel_irq[0] (signal_irq_disk); 1160 #else 1161 disk->p_irq (signal_irq_disk); 1162 #endif 1163 1164 std::cout << " - DISK connected" << std::endl; 1146 1165 1147 1166 // FBUF connexion … … 1206 1225 else if(i < 4+NB_CMA_CHANNELS) iopi->p_hwi[i] (signal_irq_cdma[i-4]); 1207 1226 else if(i < 8) iopi->p_hwi[i] (signal_irq_false); 1208 else if(i < 9) iopi->p_hwi[i] (signal_irq_ bdev);1227 else if(i < 9) iopi->p_hwi[i] (signal_irq_disk); 1209 1228 else if(i < 16) iopi->p_hwi[i] (signal_irq_false); 1210 1229 else if(i < 16+NB_TTY_CHANNELS) iopi->p_hwi[i] (signal_irq_mtty_rx[i-16]); … … 1480 1499 clusters[x][y]->signal_int_vci_tgt_xicu.print_trace(xicu_signame.str()); 1481 1500 1482 1483 1484 1485 1486 1487 1488 1501 // clusters[x][y]->mdma->print_trace(); 1502 // std::ostringstream mdma_tgt_signame; 1503 // mdma_tgt_signame << "[SIG]MDMA_TGT_" << x << "_" << y; 1504 // clusters[x][y]->signal_int_vci_tgt_mdma.print_trace(mdma_tgt_signame.str()); 1505 // std::ostringstream mdma_ini_signame; 1506 // mdma_ini_signame << "[SIG]MDMA_INI_" << x << "_" << y; 1507 // clusters[x][y]->signal_int_vci_ini_mdma.print_trace(mdma_ini_signame.str()); 1489 1508 1490 1509 // local interrupts in cluster(x,y) … … 1554 1573 // signal_vci_tgt_iob0.print_trace("[SIG]IOB0_IOX_TGT"); 1555 1574 1556 //cdma->print_trace();1557 //signal_vci_tgt_cdma.print_trace("[SIG]CDMA_TGT");1558 //signal_vci_ini_cdma.print_trace("[SIG]CDMA_INI");1575 cdma->print_trace(); 1576 signal_vci_tgt_cdma.print_trace("[SIG]CDMA_TGT"); 1577 signal_vci_ini_cdma.print_trace("[SIG]CDMA_INI"); 1559 1578 1560 1579 // brom->print_trace(); … … 1564 1583 // signal_vci_tgt_mtty.print_trace("[SIG]MTTY_TGT"); 1565 1584 1566 bdev->print_trace();1567 signal_vci_tgt_bdev.print_trace("[SIG]BDEV_TGT");1568 signal_vci_ini_bdev.print_trace("[SIG]BDEV_INI");1569 1570 //mnic->print_trace( 0x000 );1571 //signal_vci_tgt_mnic.print_trace("[SIG]MNIC_TGT");1585 // disk->print_trace(); 1586 // signal_vci_tgt_disk.print_trace("[SIG]DISK_TGT"); 1587 // signal_vci_ini_disk.print_trace("[SIG]DISK_INI"); 1588 1589 mnic->print_trace( 0x000 ); 1590 signal_vci_tgt_mnic.print_trace("[SIG]MNIC_TGT"); 1572 1591 1573 1592 // fbuf->print_trace(); … … 1577 1596 // signal_vci_ini_iopi.print_trace("[SIG]IOPI_INI"); 1578 1597 // signal_vci_tgt_iopi.print_trace("[SIG]IOPI_TGT"); 1598 1579 1599 // iox_network->print_trace(); 1580 1600 1581 1601 // interrupts 1582 if (signal_irq_ bdev) std::cout << "### IRQ_BDEVACTIVE" << std::endl;1602 if (signal_irq_disk) std::cout << "### IRQ_DISK ACTIVE" << std::endl; 1583 1603 if (signal_irq_mtty_rx[0]) std::cout << "### IRQ_MTTY_RX[0] ACTIVE" << std::endl; 1584 1604 if (signal_irq_mnic_rx[0]) std::cout << "### IRQ_MNIC_RX[0] ACTIVE" << std::endl; -
trunk/platforms/tsar_generic_iob/top.desc
r707 r965 52 52 cell_size = vci_cell_size_ext), 53 53 54 Uses('caba:vci_multi_ahci', 55 cell_size = vci_cell_size_ext), 56 54 57 # NIC 55 58 Uses('caba:vci_multi_nic',
Note: See TracChangeset
for help on using the changeset viewer.