Changeset 803 for trunk/platforms/tsar_generic_leti/arch.py
- Timestamp:
- Sep 12, 2014, 3:10:04 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_leti/arch.py
r797 r803 1 1 #!/usr/bin/env python 2 2 3 from math import log, ceil 3 4 from mapping import * 4 5 5 6 ############################################################################### 6 # file : arch.py (for the tsar_generic_ iobarchitecture)7 # file : arch.py (for the tsar_generic_leti architecture) 7 8 # date : may 2014 8 9 # author : Alain Greiner 9 10 ############################################################################### 10 # This file contains a mapping generator for the "tsar_generic_ iob" platform.11 # This file contains a mapping generator for the "tsar_generic_leti" platform. 11 12 # This includes both the hardware architecture (clusters, processors, 12 13 # peripherals, physical space segmentation) and the mapping of all kernel 13 # objects (global vsegs). This platform includes 6 external peripherals, 14 # accessible through two IO_Bridge components located in cluster [0,0] and 15 # cluster [x_size-1, y_size-1]. Available peripherals are: TTY, BDV, FBF, 16 # ROM, NIC, CMA. 14 # objects (global vsegs). 17 15 # 18 16 # The "constructor" parameters are: … … 49 47 x_width = 4 50 48 y_width = 4 49 p_width = int(ceil(log(nb_procs, 2))) 51 50 paddr_width = 40 52 51 irq_per_proc = 4 … … 54 53 peri_increment = 0x10000 55 54 reset_address = 0x00000000 56 distributed_ptabs = True55 distributed_ptabs = False 57 56 58 57 ### parameters checking 59 58 60 assert( nb_procs <= 4)59 assert( nb_procs <= (1 << p_width) ) 61 60 62 61 assert( (x_size == 1) or (x_size == 2) or (x_size == 4) … … 71 70 ((x_io == x_size-1) and (y_io == y_size-1)) ) 72 71 73 platform_name = 'tsar_ iob_%d_%d_%d' % ( x_size, y_size, nb_procs )72 platform_name = 'tsar_leti_%d_%d_%d' % ( x_size, y_size, nb_procs ) 74 73 75 74 ### define physical segments … … 107 106 rdk_size = 0x02000000 # 32 Mbytes 108 107 108 ### define preloader vseg base address and size 109 110 preloader_vbase = 0x00000000 # ident 111 preloader_size = 0x00010000 # 64 Kbytes 112 109 113 ### define bootloader vsegs base addresses and sizes 110 114 111 boot_mapping_vbase = 0x000 00000 # ident115 boot_mapping_vbase = 0x00010000 # ident 112 116 boot_mapping_size = 0x00080000 # 512 Kbytes 113 117 114 boot_code_vbase = 0x000 80000 # ident118 boot_code_vbase = 0x00090000 # ident 115 119 boot_code_size = 0x00040000 # 256 Kbytes 116 120 117 boot_data_vbase = 0x000 C0000 # ident121 boot_data_vbase = 0x000D0000 # ident 118 122 boot_data_size = 0x00080000 # 512 Kbytes 119 123 120 boot_stack_vbase = 0x001 40000 # ident124 boot_stack_vbase = 0x00150000 # ident 121 125 boot_stack_size = 0x00050000 # 320 Kbytes 122 126 … … 135 139 kernel_init_size = 0x00010000 # 64 Kbytes 136 140 137 kernel_sched_vbase = 0x F0000000 # distributed in all clusters141 kernel_sched_vbase = 0x80060000 # distributed in all clusters 138 142 kernel_sched_size = 0x2000 * nb_procs # 8 kbytes per processor 139 143 … … 146 150 x_width = x_width, 147 151 y_width = y_width, 152 p_width = p_width, 148 153 paddr_width = paddr_width, 149 154 coherence = True, … … 218 223 mapping.addProc( x, y, p ) 219 224 225 ### global vseg for preloader 226 227 mapping.addGlobal( 'seg_preloader', preloader_vbase, preloader_size, '__W_', 228 vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM', 229 identity = True ) 230 220 231 ### global vseg for ram disk 221 232 222 mapping.addGlobal( 'seg_rdk', rdk_base, rdk_size, '__W_', 223 vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM', 224 identity = True ) 233 if use_ramdisk: 234 mapping.addGlobal( 'seg_rdk', rdk_base, rdk_size, '__W_', 235 vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM', 236 identity = True ) 225 237 226 238 ### global vsegs for external peripherals / identity mapping
Note: See TracChangeset
for help on using the changeset viewer.