- Timestamp:
- Sep 12, 2014, 3:10:03 PM (10 years ago)
- Location:
- trunk/softs/tsar_boot
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/softs/tsar_boot/Makefile
r794 r801 115 115 $(BUILD_DIR)/preloader.ld: preloader.ld.in 116 116 $(ECHO) "[ CC ] $(notdir $<)" 117 $(CC) - DUSE_DT=$(USE_DT) -x c $(INCLUDE) -E $< | $(SED) -e '/#/d' -e '/^[\s\t]*$$/d' >$@117 $(CC) -x c -P -E -DUSE_DT=$(USE_DT) $(INCLUDE) $< -o $@ 118 118 119 119 $(TARGET): $(BUILD_DIR) $(OBJS) $(BUILD_DIR)/preloader.ld $(BUILD_DIR)/$(DRV_LIB) -
trunk/softs/tsar_boot/conf/platform_de2_115_fpga/hard_config.h
r798 r801 8 8 #define X_WIDTH 4 9 9 #define Y_WIDTH 4 10 #define P_WIDTH 1 10 11 #define X_IO 0 11 12 #define Y_IO 0 -
trunk/softs/tsar_boot/conf/platform_tsar_generic_iob/hard_config.h
r798 r801 10 10 #define X_WIDTH 4 11 11 #define Y_WIDTH 4 12 #define P_WIDTH 2 12 13 #define X_IO 0 13 14 #define Y_IO 0 -
trunk/softs/tsar_boot/include/defs.h
r758 r801 32 32 */ 33 33 34 #ifndef NB_PROCS_MAX35 # error " NB_PROCS_MAX constant must be defined in hard_config.h"34 #ifndef P_WIDTH 35 # error "P_WIDTH constant must be defined in the hard_config.h file" 36 36 #endif 37 37 -
trunk/softs/tsar_boot/src/reset.S
r758 r801 79 79 mtc0 k0, CP0_STATUS 80 80 81 /* All processors compute pid, lpid, cluster_xy */ 81 /* 82 * All processors compute gpid, lpid, cluster_xy 83 * gpid = ebase[9:0] = X_WIDTH : Y_WIDTH : P_WIDTH 84 * x y lpid 85 * X, Y and LPID fields are left-aligned 86 */ 82 87 83 88 mfc0 k0, CP0_EBASE 84 andi t0, k0, 0x3FF /* t0 <= pid (at most 1024 procs) */ 85 86 move t3, t0 87 88 la k0, NB_PROCS_MAX /* k0 <= # of processors per cluster */ 89 divu t3, k0 90 mfhi t1 /* t1 <= lpid = pid % NB_PROCS */ 91 mflo t2 /* t2 <= cluster_xy = pid / NB_PROCS */ 89 andi t0, k0, 0x3FF /* t0 <= gpid (<= 1024 procs) */ 90 andi t1, t0, ((1<<P_WIDTH)-1) /* t1 <= lpid */ 91 srl t2, t0, P_WIDTH /* t2 <= cluster_xy */ 92 92 93 93 /* All processors initialise the count register in CP0 */
Note: See TracChangeset
for help on using the changeset viewer.