Changeset 606
- Timestamp:
- Dec 19, 2013, 9:26:03 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/softs/tsar_boot/src/reset.S
r587 r606 17 17 * 18 18 * The replicated XICU is used to awake the sleeping processors: 19 * xicu_paddr_base = ICU_PADDR_BASE + (cluster_ id<< 32)19 * xicu_paddr_base = ICU_PADDR_BASE + (cluster_xy << 32) 20 20 * 21 21 * It is intended to be used with various operating systems or nano kernels, … … 35 35 #include <mips32_registers.h> 36 36 37 /* These define should be consistent with values defined in ma ;xml file */37 /* These define should be consistent with values defined in map.xml file */ 38 38 39 39 .extern seg_reset_stack_base … … 84 84 mtc0 k0, CP0_STATUS 85 85 86 /* All processors compute proc_id, l ocal_id, cluster_id, cluster_increment*/86 /* All processors compute proc_id, lpid, cluster_xy */ 87 87 88 88 mfc0 k0, CP0_EBASE … … 93 93 la k0, NB_PROCS /* k0 <= number of processors per cluster */ 94 94 divu t3, k0 95 mfhi t1 /* t1 <= local_id = proc_id % NB_PROCS */ 96 mflo t2 /* t2 <= cluster_id = proc_id / NB_PROCS */ 97 98 la k0, NB_CLUSTERS 99 sll k1, t2, 8 /* k1 <= 256*cluster_id */ 100 div k1, k0 /* LO <= cluster_id * 256 / NB_CLUSTERS */ 101 mflo t7 /* t7 <= physical address extension (8 MSB) */ 95 mfhi t1 /* t1 <= lpid = proc_id % NB_PROCS */ 96 mflo t2 /* t2 <= cluster_xy = proc_id / NB_PROCS */ 102 97 103 98 /* All processors initialise the count register in CP0 */ … … 108 103 * All processors enable the WTI for XICU 109 104 * Each processor may have IRQ_PER_PROC irq outputs from the XICU 110 * In each cluster, the XICU base address depends on the cluster_ id105 * In each cluster, the XICU base address depends on the cluster_xy 111 106 */ 112 107 … … 127 122 sllv t4, t4, t1 /* Set XICU[MSK_WTI][INDEX][local_id] */ 128 123 129 mtc2 t 7, CP2_PADDR_EXT /* set PADDR extension */124 mtc2 t2, CP2_PADDR_EXT /* set PADDR extension */ 130 125 sw t4, 0(t5) /* XICU[MSK_WTI][INDEX] <= t4 */ 131 126 mtc2 zero, CP2_PADDR_EXT /* reset PADDR extension */ … … 148 143 * t0: global proc_id 149 144 * t1: local proc_id 150 * t2: cluster id145 * t2: cluster_xy 151 146 * t3: xicu physical base address in cluster 0 152 * t7: paddr extension depending on cluster_id153 147 */ 154 148 … … 205 199 * t2: cluster id 206 200 * t3: xicu physical base address in cluster 0 207 * t7: Paddr extension depending on cluster_id208 201 */ 209 202 … … 222 215 */ 223 216 224 mtc2 t 7, CP2_PADDR_EXT /* set PADDR extension */217 mtc2 t2, CP2_PADDR_EXT /* set PADDR extension */ 225 218 lw k0, 0(t5) /* k0 <= XICU[WTI_REG][local_id] */ 226 219 mtc2 zero, CP2_PADDR_EXT /* reset PADDR extension */
Note: See TracChangeset
for help on using the changeset viewer.