- Timestamp:
- 2011-03-13T11:39:00Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5e3eea10
- Parents:
- f8c60f5 (diff), c1a5d8d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- boot
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
boot/arch/mips32/src/asm.S
rf8c60f5 rc3f95d8 41 41 42 42 start: 43 /* Setup CPU map (on msim this code 44 is executed in parallel on all CPUs, 45 but it not an issue) */ 43 /* 44 * Setup the CP0 configuration 45 * - Disable 64-bit kernel addressing mode 46 * - DIsable 64-bit supervisor adressing mode 47 * - Disable 64-bit user addressing mode 48 */ 49 mfc0 $a0, $status 50 la $a1, 0xffffff1f 51 and $a0, $a1, $a0 52 mtc0 $a0, $status 53 54 /* 55 * Setup CPU map (on msim this code 56 * is executed in parallel on all CPUs, 57 * but it not an issue). 58 */ 46 59 la $a0, PA2KA(CPUMAP_OFFSET) 47 60 … … 94 107 lw $k1, ($k0) 95 108 96 /* If we are not running on BSP 97 then end in an infinite loop */ 109 /* 110 * If we are not running on BSP 111 * then end in an infinite loop. 112 */ 98 113 beq $k1, $zero, bsp 99 114 nop … … 127 142 128 143 jump_to_kernel: 129 # 130 # TODO: 131 # Make sure that the I-cache, D-cache and memory are mutually coherent 132 # before passing control to the copied code. 133 # 144 /* 145 * TODO: 146 * 147 * Make sure that the I-cache, D-cache and memory are mutually 148 * coherent before passing control to the copied code. 149 */ 134 150 j $a0 135 151 nop -
boot/arch/sparc64/include/arch.h
rf8c60f5 rc3f95d8 41 41 #define STACK_BIAS 2047 42 42 #define STACK_WINDOW_SAVE_AREA_SIZE (16 * 8) 43 #define STACK_ARG_SAVE_AREA_SIZE (6 * 8) 43 44 44 45 #define NWINDOWS 8 -
boot/arch/sparc64/src/asm.S
rf8c60f5 rc3f95d8 152 152 .global ofw 153 153 ofw: 154 save %sp, - STACK_WINDOW_SAVE_AREA_SIZE, %sp154 save %sp, -(STACK_WINDOW_SAVE_AREA_SIZE + STACK_ARG_SAVE_AREA_SIZE), %sp 155 155 set ofw_cif, %l0 156 156 ldx [%l0], %l0 -
boot/arch/sparc64/src/main.c
rf8c60f5 rc3f95d8 190 190 bootinfo.memmap.zones[0].start += OBP_BIAS; 191 191 bootinfo.memmap.zones[0].size -= OBP_BIAS; 192 bootinfo.memmap.total -= OBP_BIAS; 192 193 } 193 194 … … 204 205 bootinfo.physmem_start = ofw_get_physmem_start(); 205 206 ofw_memmap(&bootinfo.memmap); 207 208 if (arch == ARCH_SUN4V) 209 sun4v_fixups(); 206 210 207 211 void *bootinfo_pa = ofw_translate(&bootinfo); … … 253 257 254 258 /* 255 * At this point, we claim the physical memory that we are256 * going to use. We should be safe in case of the virtual259 * At this point, we claim and map the physical memory that we 260 * are going to use. We should be safe in case of the virtual 257 261 * address space because the OpenFirmware, according to its 258 * SPARC binding, should restrict its use of virtual memory 259 * to addresses from [0xffd00000; 0xffefffff] and 260 * [0xfe000000; 0xfeffffff]. 261 * 262 * We don't map this piece of memory. We simply rely on 263 * SILO to have it done for us already in this case. 264 * 265 * XXX SILO only maps 8 MB for us here. We should improve 266 * this code to be totally independent on the behavior 267 * of SILO. 268 * 262 * SPARC binding, should restrict its use of virtual memory to 263 * addresses from [0xffd00000; 0xffefffff] and [0xfe000000; 264 * 0xfeffffff]. 269 265 */ 270 266 ofw_claim_phys(bootinfo.physmem_start + dest[i - 1], 271 267 ALIGN_UP(components[i - 1].inflated, PAGE_SIZE)); 268 269 ofw_map(bootinfo.physmem_start + dest[i - 1], dest[i - 1], 270 ALIGN_UP(components[i - 1].inflated, PAGE_SIZE), -1); 272 271 273 272 int err = inflate(components[i - 1].start, components[i - 1].size, … … 304 303 sun4u_smp(); 305 304 306 if (arch == ARCH_SUN4V)307 sun4v_fixups();308 309 305 printf("Booting the kernel ...\n"); 310 306 jump_to_kernel(bootinfo.physmem_start | BSP_PROCESSOR, &bootinfo, subarch, -
boot/generic/src/balloc.c
rf8c60f5 rc3f95d8 65 65 void *balloc_rebase(void *ptr) 66 66 { 67 return (void *) (( uintptr_t) ptr - phys_base+ ballocs->base);67 return (void *) (((uintptr_t) ptr - phys_base) + ballocs->base); 68 68 }
Note:
See TracChangeset
for help on using the changeset viewer.