Ignore:
Timestamp:
Feb 20, 2014, 5:05:48 PM (11 years ago)
Author:
porquet
Message:

use vci_icu and vci_timer instead of vci_xicu

Location:
branches/v4/platforms/tsarv4_mono_mmu_ioc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/v4/platforms/tsarv4_mono_mmu_ioc/desc.py

    r410 r636  
    1111            Uses('caba:vci_logger'),
    1212            Uses('caba:vci_multi_tty'),
    13             Uses('caba:vci_xicu'),
     13            Uses('caba:vci_icu'),
     14            Uses('caba:vci_timer'),
    1415            Uses('caba:vci_block_device_tsar_v4'),
    1516            Uses('caba:vci_vgmn'),
  • branches/v4/platforms/tsarv4_mono_mmu_ioc/segmentation.h

    r418 r636  
    22#define _SEGMENTATION_H
    33
    4 #define MEMC_BASE 0x00000000
    5 #define MEMC_SIZE 0x10000000 // 256Mb
     4#define MEMC_BASE   0x00000000
     5#define MEMC_SIZE   0x10000000 // 256Mb
    66
    7 #define BOOT_BASE 0xbfc00000
    8 #define BOOT_SIZE 0x00040000
     7#define BOOT_BASE   0xbfc00000
     8#define BOOT_SIZE   0x00040000
    99
    10 #define EXIT_BASE 0x10000000
    11 #define EXIT_SIZE 0x00000010
     10#define ICU_BASE    0x10000000
     11#define ICU_SIZE    0x00000014 // 5 mapped-registers
    1212
    13 #define MTTY_BASE 0x20000000
    14 #define MTTY_SIZE 0x00000010
     13#define MTTY_BASE   0x14000000
     14#define MTTY_SIZE   0x0000000c // 3 mapped-registers
    1515
    16 #define XICU_BASE 0x30000000
    17 #define XICU_SIZE 0x00001000
     16#define TIMER_BASE  0x18000000
     17#define TIMER_SIZE  0x00000010 // 4 mapped-registers
    1818
    19 #define IOBD_BASE 0x40000000
    20 #define IOBD_SIZE 0x00000020
     19#define BD_BASE     0x1c000000
     20#define BD_SIZE     0x00000020 // 8 mapped-registers
    2121
    2222#endif
  • branches/v4/platforms/tsarv4_mono_mmu_ioc/top.cpp

    r420 r636  
    3030
    3131#include "vci_simhelper.h"
     32#include "vci_icu.h"
    3233#include "vci_multi_tty.h"
    33 #include "vci_xicu.h"
     34#include "vci_timer.h"
    3435#include "vci_block_device_tsar_v4.h"
    3536
     
    154155            std::cout << "--dsk pathname" << std::endl;
    155156            std::cout << "[--dummy-boot]" << std::endl;
    156             std::cout << "[-trace trace_start_cycle]" << std::endl;
     157            std::cout << "[--trace trace_start_cycle]" << std::endl;
    157158            exit(0);
    158159        }
     
    185186
    186187    /*
    187      * mapping table
     188     * mapping table (data and coherence)
    188189     */
    189190
     
    193194
    194195    // uncached peripherals
    195     maptabd.add(Segment("exit_d" , EXIT_BASE , EXIT_SIZE , IntTab(2), false));
    196     maptabd.add(Segment("mtty_d" , MTTY_BASE , MTTY_SIZE , IntTab(3), false));
    197     maptabd.add(Segment("xicu_d" , XICU_BASE , XICU_SIZE , IntTab(4), false));
    198     maptabd.add(Segment("iobd_d" , IOBD_BASE , IOBD_SIZE , IntTab(5), false));
     196    maptabd.add(Segment("icu_d"   , ICU_BASE   , ICU_SIZE  , IntTab(2), false));
     197    maptabd.add(Segment("mtty_d"  , MTTY_BASE  , MTTY_SIZE , IntTab(3), false));
     198    maptabd.add(Segment("timer_d" , TIMER_BASE , TIMER_SIZE , IntTab(4), false));
     199    maptabd.add(Segment("bd_d"    , BD_BASE    , BD_SIZE    , IntTab(5), false));
    199200
    200201    std::cout << maptabd << std::endl;
     
    223224    {
    224225        /* boot linux image directly */
    225         const BinaryFileSymbol *bfs = loader.get_symbol_by_name("kernel_entry");
    226         std::cout << "setResetAdress: " << std::hex << bfs->address() << std::endl;
    227         proc_iss::setResetAddress(bfs->address());
     226        uint64_t entry_addr = loader.get_entry_point_address();
     227        std::cout << "setResetAdress: " << std::hex << entry_addr << std::endl << std::endl;
     228        proc_iss::setResetAddress(entry_addr);
    228229    }
    229230
     
    246247                param.trace_enabled);
    247248
    248     VciSimpleRam<vci_param> xram("xram", IntTab(0), maptabd, loader);
     249    VciSimpleRam<vci_param> ram("ram", IntTab(0), maptabd, loader);
    249250
    250251    VciSimpleRam<vci_param> rom("rom", IntTab(1), maptabd, loader);
     
    257258            param.trace_start_cycle, param.trace_enabled);
    258259
    259     VciSimhelper<vci_param> vciexit("vciexit", IntTab(2), maptabd);
    260 
    261     VciXicu<vci_param> xicu("xicu", maptabd, IntTab(4),
    262             1, 2, 0, 1); // #timers, #hard_irqs, #soft_irqs, # output_irqs
     260    VciIcu<vci_param> icu("icu", IntTab(2), maptabd,
     261            3); // #input_irqs
    263262
    264263    VciMultiTty<vci_param> mtty("mtty", IntTab(3), maptabd, "vcitty0", NULL);
    265264
    266     VciBlockDeviceTsarV4<vci_param> iobd("iobd", maptabd, IntTab(1), IntTab(5),
     265    VciTimer<vci_param> timer("timer", IntTab(4), maptabd,
     266            1); // #timers
     267
     268    VciBlockDeviceTsarV4<vci_param> bd("bd", maptabd, IntTab(1), IntTab(5),
    267269            param.dsk_path); // mapped_file[, block_size=512, latency=0]
    268270
    269     VciVgmn<vci_param> ringd("ringd", maptabd,
     271    VciVgmn<vci_param> vgmnd("vgmnd", maptabd,
    270272            2, 6,       // #initiators, #targets
    271273            2, 8,       // min_latency, FIFO depth
    272274            IntTab(1)); // default target
    273275
    274     VciVgmn<vci_param> ringc("ringc", maptabc,
     276    VciVgmn<vci_param> vgmnc("vgmnc", maptabc,
    275277            2, 2,   // #initiators, #targets
    276278            2, 8);  // min_latency, FIFO depth
     
    288290        alloc_elems<sc_signal<bool> >("signal_proc_irq", proc_iss::n_irq);
    289291    sc_signal<bool> signal_mtty_irq("signal_mtty_irq");
    290     sc_signal<bool> signal_iobd_irq("signal_iobd_irq");
     292    sc_signal<bool> signal_timer_irq("signal_timer_irq");
     293    sc_signal<bool> signal_bd_irq("signal_bd_irq");
    291294
    292295    /* vci */
     
    295298    VciSignals<vci_param> signal_vci_tgt_c_proc("vci_tgt_c_proc");
    296299
    297     VciSignals<vci_param> signal_vci_xram("signal_vci_xram");
    298 
    299     VciSignals<vci_param> signal_vci_tgt_d_brom("signal_vci_tgt_d_brom");
     300    VciSignals<vci_param> signal_vci_ram("signal_vci_ram");
     301
     302    VciSignals<vci_param> signal_vci_tgt_d_rom("signal_vci_tgt_d_rom");
    300303
    301304    VciSignals<vci_param> signal_vci_ini_c_memc("signal_vci_ini_c_memc");
     
    303306    VciSignals<vci_param> signal_vci_tgt_c_memc("signal_vci_tgt_c_memc");
    304307
    305     VciSignals<vci_param> signal_vci_tgt_d_exit("signal_vci_tgt_d_exit");
    306 
    307     VciSignals<vci_param> signal_vci_tgt_d_xicu("signal_vci_tgt_d_xicu");
     308    VciSignals<vci_param> signal_vci_tgt_d_icu("signal_vci_tgt_d_icu");
    308309
    309310    VciSignals<vci_param> signal_vci_tgt_d_mtty("signal_vci_tgt_d_mtty");
    310311
    311     VciSignals<vci_param> signal_vci_ini_d_iobd("signal_vci_ini_d_iobd");
    312     VciSignals<vci_param> signal_vci_tgt_d_iobd("signal_vci_tgt_d_iobd");
     312    VciSignals<vci_param> signal_vci_tgt_d_timer("signal_vci_tgt_d_timer");
     313
     314    VciSignals<vci_param> signal_vci_ini_d_bd("signal_vci_ini_d_bd");
     315    VciSignals<vci_param> signal_vci_tgt_d_bd("signal_vci_tgt_d_bd");
    313316
    314317    /*
     
    324327    proc.p_vci_tgt_c(signal_vci_tgt_c_proc);
    325328
    326     xram.p_clk(signal_clk);
    327     xram.p_resetn(signal_resetn);
    328     xram.p_vci(signal_vci_xram);
     329    ram.p_clk(signal_clk);
     330    ram.p_resetn(signal_resetn);
     331    ram.p_vci(signal_vci_ram);
    329332
    330333    rom.p_clk(signal_clk);
    331334    rom.p_resetn(signal_resetn);
    332     rom.p_vci(signal_vci_tgt_d_brom);
     335    rom.p_vci(signal_vci_tgt_d_rom);
    333336
    334337    memc.p_clk(signal_clk);
     
    337340    memc.p_vci_tgt_cleanup(signal_vci_tgt_c_memc);
    338341    memc.p_vci_ini(signal_vci_ini_c_memc);
    339     memc.p_vci_ixr(signal_vci_xram);
    340 
    341     vciexit.p_clk(signal_clk);
    342     vciexit.p_resetn(signal_resetn);
    343     vciexit.p_vci(signal_vci_tgt_d_exit);
    344 
    345     xicu.p_resetn(signal_resetn);
    346     xicu.p_clk(signal_clk);
    347     xicu.p_vci(signal_vci_tgt_d_xicu);
    348     xicu.p_hwi[0](signal_mtty_irq);
    349     xicu.p_hwi[1](signal_iobd_irq);
    350     xicu.p_irq[0](signal_proc_irq[0]);
     342    memc.p_vci_ixr(signal_vci_ram);
     343
     344    icu.p_resetn(signal_resetn);
     345    icu.p_clk(signal_clk);
     346    icu.p_vci(signal_vci_tgt_d_icu);
     347    icu.p_irq_in[0](signal_mtty_irq);
     348    icu.p_irq_in[1](signal_timer_irq);
     349    icu.p_irq_in[2](signal_bd_irq);
     350    icu.p_irq(signal_proc_irq[0]);
    351351
    352352    mtty.p_clk(signal_clk);
     
    355355    mtty.p_irq[0](signal_mtty_irq);
    356356
    357     iobd.p_clk(signal_clk);
    358     iobd.p_resetn(signal_resetn);
    359     iobd.p_vci_target(signal_vci_tgt_d_iobd);
    360     iobd.p_vci_initiator(signal_vci_ini_d_iobd);
    361     iobd.p_irq(signal_iobd_irq);
    362 
    363     ringd.p_clk(signal_clk);
    364     ringd.p_resetn(signal_resetn);
    365     ringd.p_to_initiator[0](signal_vci_ini_d_proc);
    366     ringd.p_to_initiator[1](signal_vci_ini_d_iobd);
    367     ringd.p_to_target[0](signal_vci_tgt_d_memc);
    368     ringd.p_to_target[1](signal_vci_tgt_d_brom);
    369     ringd.p_to_target[2](signal_vci_tgt_d_exit);
    370     ringd.p_to_target[3](signal_vci_tgt_d_mtty);
    371     ringd.p_to_target[4](signal_vci_tgt_d_xicu);
    372     ringd.p_to_target[5](signal_vci_tgt_d_iobd);
    373 
    374     ringc.p_clk(signal_clk);
    375     ringc.p_resetn(signal_resetn);
    376     ringc.p_to_initiator[0](signal_vci_ini_c_proc);
    377     ringc.p_to_initiator[1](signal_vci_ini_c_memc);
    378     ringc.p_to_target[0](signal_vci_tgt_c_proc);
    379     ringc.p_to_target[1](signal_vci_tgt_c_memc);
     357    timer.p_clk(signal_clk);
     358    timer.p_resetn(signal_resetn);
     359    timer.p_vci(signal_vci_tgt_d_timer);
     360    timer.p_irq[0](signal_timer_irq);
     361
     362    bd.p_clk(signal_clk);
     363    bd.p_resetn(signal_resetn);
     364    bd.p_vci_target(signal_vci_tgt_d_bd);
     365    bd.p_vci_initiator(signal_vci_ini_d_bd);
     366    bd.p_irq(signal_bd_irq);
     367
     368    vgmnd.p_clk(signal_clk);
     369    vgmnd.p_resetn(signal_resetn);
     370    vgmnd.p_to_initiator[0](signal_vci_ini_d_proc);
     371    vgmnd.p_to_initiator[1](signal_vci_ini_d_bd);
     372    vgmnd.p_to_target[0](signal_vci_tgt_d_memc);
     373    vgmnd.p_to_target[1](signal_vci_tgt_d_rom);
     374    vgmnd.p_to_target[2](signal_vci_tgt_d_icu);
     375    vgmnd.p_to_target[3](signal_vci_tgt_d_mtty);
     376    vgmnd.p_to_target[4](signal_vci_tgt_d_timer);
     377    vgmnd.p_to_target[5](signal_vci_tgt_d_bd);
     378
     379    vgmnc.p_clk(signal_clk);
     380    vgmnc.p_resetn(signal_resetn);
     381    vgmnc.p_to_initiator[0](signal_vci_ini_c_proc);
     382    vgmnc.p_to_initiator[1](signal_vci_ini_c_memc);
     383    vgmnc.p_to_target[0](signal_vci_tgt_c_proc);
     384    vgmnc.p_to_target[1](signal_vci_tgt_c_memc);
    380385
    381386    /*
Note: See TracChangeset for help on using the changeset viewer.