Changeset b97b348 in mainline
- Timestamp:
- 2010-05-12T20:00:19Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- be6cef1b
- Parents:
- f09d891
- Files:
-
- 1 deleted
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
boot/arch/ppc32/src/main.c
rf09d891 rb97b348 167 167 168 168 printf("Booting the kernel...\n"); 169 ofw_quiesce();170 169 jump_to_kernel(bootinfo_pa, transtable_pa, pages, real_mode_pa); 171 170 } -
boot/arch/sparc64/include/asm.h
rf09d891 rb97b348 33 33 #include <typedefs.h> 34 34 35 extern void jump_to_kernel( void *entry, bootinfo_t *bootinfo,36 uint ptr_t physmem_start, uint8_t subarch) __attribute__((noreturn));35 extern void jump_to_kernel(uintptr_t physmem_start, bootinfo_t *bootinfo, 36 uint8_t subarch, void *entry) __attribute__((noreturn)); 37 37 38 38 #endif -
boot/arch/sparc64/src/asm.S
rf09d891 rb97b348 182 182 * (subarch). 183 183 */ 184 cmp % i2, SUBARCH_US3184 cmp %o2, SUBARCH_US3 185 185 be %xcc, 1f 186 186 nop … … 199 199 200 200 ! Jump to kernel 201 mov %o0, %l1 202 mov %o1, %o0 203 mov %o3, %o1 204 205 jmp %l1 201 jmp %o3 206 202 nop 207 203 -
boot/arch/sparc64/src/main.c
rf09d891 rb97b348 205 205 206 206 void *bootinfo_pa = ofw_translate(&bootinfo); 207 void *kernel_address_pa = ofw_translate((void *) KERNEL_ADDRESS); 207 208 void *loader_address_pa = ofw_translate((void *) LOADER_ADDRESS); 208 209 … … 210 211 bootinfo.memmap.total >> 20, bootinfo.physmem_start); 211 212 printf(" %p|%p: boot info structure\n", &bootinfo, bootinfo_pa); 212 printf(" %p|%p: kernel entry point\n", KERNEL_ADDRESS, KERNEL_ADDRESS);213 printf(" %p|%p: kernel entry point\n", KERNEL_ADDRESS, kernel_address_pa); 213 214 printf(" %p|%p: loader entry pount\n", LOADER_ADDRESS, loader_address_pa); 214 215 … … 304 305 305 306 printf("Booting the kernel ...\n"); 306 ofw_quiesce(); 307 jump_to_kernel((void *) KERNEL_ADDRESS, &bootinfo, subarch, 308 bootinfo.physmem_start | BSP_PROCESSOR); 309 } 307 jump_to_kernel(bootinfo.physmem_start | BSP_PROCESSOR, &bootinfo, subarch, 308 (void *) KERNEL_ADDRESS); 309 } -
kernel/arch/sparc64/Makefile.inc
rf09d891 rb97b348 90 90 arch/$(KARCH)/src/trap/$(USARCH)/interrupt.c 91 91 92 ifeq ($(USARCH),sun4u)93 ARCH_SOURCES += \94 arch/$(KARCH)/src/mm/cache.S95 endif96 97 92 ifeq ($(USARCH),sun4v) 98 93 ARCH_SOURCES += \ -
kernel/arch/sparc64/include/boot/boot.h
rf09d891 rb97b348 87 87 88 88 extern memmap_t memmap; 89 extern uintptr_t physmem_start;90 89 91 90 #endif -
kernel/arch/sparc64/include/mm/cache_spec.h
rf09d891 rb97b348 27 27 */ 28 28 29 /** @addtogroup sparc64mm 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ … … 39 39 * The following macros are valid for the following processors: 40 40 * 41 * 42 * 43 * 41 * UltraSPARC, UltraSPARC II, UltraSPARC IIi, UltraSPARC III, 42 * UltraSPARC III+, UltraSPARC IV, UltraSPARC IV+ 43 * 44 44 * Should we support other UltraSPARC processors, we need to make sure that 45 45 * the macros are defined correctly for them. 46 46 */ 47 47 48 48 #if defined (US) 49 #define DCACHE_SIZE(16 * 1024)49 #define DCACHE_SIZE (16 * 1024) 50 50 #elif defined (US3) 51 #define DCACHE_SIZE(64 * 1024)51 #define DCACHE_SIZE (64 * 1024) 52 52 #endif 53 #define DCACHE_LINE_SIZE 32 53 54 #define DCACHE_LINE_SIZE 32 55 #define DCACHE_TAG_SHIFT 2 54 56 55 57 #endif -
kernel/arch/sparc64/src/smp/sun4v/smp.c
rf09d891 rb97b348 433 433 if (__hypercall_fast4(CPU_START, cpuid, 434 434 (uint64_t) KA2PA(kernel_image_start), KA2PA(trap_table), 435 physmem_ start) != EOK)435 physmem_base) != EOK) 436 436 return false; 437 437 #endif -
kernel/arch/sparc64/src/sun4u/start.S
rf09d891 rb97b348 36 36 #include <arch/mm/tlb.h> 37 37 #include <arch/mm/tte.h> 38 #include <arch/mm/cache_spec.h> 38 39 39 40 #ifdef CONFIG_SMP … … 62 63 * 63 64 * The registers are expected to be in this state: 64 * - %o0 bootinfo structure address (BSP only) 65 * - %o1 starting address of physical memory 65 * - %o0 starting address of physical memory 66 66 * + bootstrap processor flag 67 67 * bits 63...1: physical memory starting address / 2 68 68 * bit 0: non-zero on BSP processor, zero on AP processors 69 * - %o1 bootinfo structure address (BSP only) 70 * 69 71 * 70 72 * Moreover, we depend on boot having established the following environment: … … 77 79 kernel_image_start: 78 80 mov BSP_FLAG, %l0 79 and %o 1, %l0, %l7 ! l7 <= bootstrap processor?80 andn %o 1, %l0, %l6 ! l6 <= start of physical memory81 and %o0, %l0, %l7 ! l7 <= bootstrap processor? 82 andn %o0, %l0, %l6 ! l6 <= start of physical memory 81 83 82 84 ! Get bits (PHYSMEM_ADDR_SIZE - 1):13 of physmem_base. … … 268 270 or %l3, %l5, %l3 269 271 stx %l3, [%l4 + %lo(kernel_8k_tlb_data_template)] 270 271 /* 272 * Flush D-Cache. 273 */ 274 call dcache_flush 275 nop 276 272 273 ! flush the whole D-cache 274 set (DCACHE_SIZE - DCACHE_LINE_SIZE), %g1 275 stxa %g0, [%g1] ASI_DCACHE_TAG 276 277 0: 278 membar #Sync 279 subcc %g1, DCACHE_LINE_SIZE, %g1 280 bnz,pt %xcc, 0b 281 282 stxa %g0, [%g1] ASI_DCACHE_TAG 283 membar #Sync 284 277 285 /* 278 286 * So far, we have not touched the stack. … … 282 290 or %sp, %lo(temporary_boot_stack), %sp 283 291 sub %sp, STACK_BIAS, %sp 284 292 293 /* 294 * Call arch_pre_main(bootinfo) 295 */ 296 mov %o1, %o0 285 297 call arch_pre_main 286 298 nop -
kernel/arch/sparc64/src/sun4v/start.S
rf09d891 rb97b348 93 93 * 94 94 * The registers are expected to be in this state: 95 * - %o0 bootinfo structure address (BSP only) 96 * - %o1 starting address of physical memory 95 * - %o0 starting address of physical memory 97 96 * + bootstrap processor flag 98 97 * bits 63...1: physical memory starting address / 2 99 98 * bit 0: non-zero on BSP processor, zero on AP processors 99 * - %o1 bootinfo structure address (BSP only) 100 * 100 101 * 101 102 * Moreover, we depend on boot having established the following environment: … … 107 108 kernel_image_start: 108 109 mov BSP_FLAG, %l0 109 and %o 1, %l0, %l7 ! l7 <= bootstrap processor?110 andn %o 1, %l0, %l6 ! l6 <= start of physical memory111 or %o 0, %g0, %l0110 and %o0, %l0, %l7 ! l7 <= bootstrap processor? 111 andn %o0, %l0, %l6 ! l6 <= start of physical memory 112 or %o1, %g0, %l1 112 113 113 114 ! Get bits (PHYSMEM_ADDR_SIZE - 1):13 of physmem_base. … … 246 247 sub %sp, STACK_BIAS, %sp 247 248 248 or %l0, %g0, %o0 249 /* 250 * Call arch_pre_main(bootinfo) 251 */ 252 or %l1, %g0, %o0 249 253 call arch_pre_main 250 254 nop
Note:
See TracChangeset
for help on using the changeset viewer.