Changeset 5cde90f in mainline for kernel/arch
- Timestamp:
- 2010-02-19T17:16:46Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 617652f
- Parents:
- b86d436 (diff), f41aa81 (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:
- kernel/arch
- Files:
-
- 37 added
- 19 edited
-
abs32le/Makefile.inc (added)
-
abs32le/_link.ld.in (added)
-
abs32le/include/arch.h (added)
-
abs32le/include/asm.h (added)
-
abs32le/include/atomic.h (added)
-
abs32le/include/barrier.h (added)
-
abs32le/include/context.h (added)
-
abs32le/include/context_offset.h (added)
-
abs32le/include/cpu.h (added)
-
abs32le/include/cycle.h (added)
-
abs32le/include/debug.h (added)
-
abs32le/include/elf.h (added)
-
abs32le/include/faddr.h (added)
-
abs32le/include/fpu_context.h (added)
-
abs32le/include/interrupt.h (added)
-
abs32le/include/memstr.h (added)
-
abs32le/include/mm/as.h (added)
-
abs32le/include/mm/asid.h (added)
-
abs32le/include/mm/frame.h (added)
-
abs32le/include/mm/page.h (added)
-
abs32le/include/mm/tlb.h (added)
-
abs32le/include/proc/task.h (added)
-
abs32le/include/proc/thread.h (added)
-
abs32le/include/types.h (added)
-
abs32le/src/abs32le.c (added)
-
abs32le/src/cpu/cpu.c (added)
-
abs32le/src/ddi/ddi.c (added)
-
abs32le/src/debug/stacktrace.c (added)
-
abs32le/src/mm/as.c (added)
-
abs32le/src/mm/frame.c (added)
-
abs32le/src/mm/page.c (added)
-
abs32le/src/mm/tlb.c (added)
-
abs32le/src/proc/scheduler.c (added)
-
abs32le/src/proc/task.c (added)
-
abs32le/src/proc/thread.c (added)
-
abs32le/src/smp/smp.c (added)
-
abs32le/src/userspace.c (added)
-
amd64/include/asm.h (modified) (1 diff)
-
amd64/src/amd64.c (modified) (1 diff)
-
arm32/include/asm.h (modified) (1 diff)
-
arm32/src/arm32.c (modified) (3 diffs)
-
ia32/include/asm.h (modified) (1 diff)
-
ia32/src/ia32.c (modified) (1 diff)
-
ia64/include/asm.h (modified) (1 diff)
-
ia64/include/context.h (modified) (1 diff)
-
ia64/src/ia64.c (modified) (2 diffs)
-
mips32/include/asm.h (modified) (1 diff)
-
mips32/include/context.h (modified) (2 diffs)
-
mips32/src/mips32.c (modified) (2 diffs)
-
ppc32/include/asm.h (modified) (2 diffs)
-
ppc32/include/context.h (modified) (3 diffs)
-
ppc32/src/ppc32.c (modified) (7 diffs)
-
sparc64/include/asm.h (modified) (1 diff)
-
sparc64/include/context.h (modified) (1 diff)
-
sparc64/src/sun4u/sparc64.c (modified) (2 diffs)
-
sparc64/src/sun4v/sparc64.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/include/asm.h
rb86d436 r5cde90f 68 68 } 69 69 70 static inline void cpu_halt(void)71 { 72 asm volatile (73 "0:\n"74 "hlt\n"75 " jmp 0b\n"76 );70 static inline void __attribute__((noreturn)) cpu_halt(void) 71 { 72 while (true) { 73 asm volatile ( 74 "hlt\n" 75 ); 76 } 77 77 } 78 78 -
kernel/arch/amd64/src/amd64.c
rb86d436 r5cde90f 278 278 } 279 279 280 void irq_initialize_arch(irq_t *irq) 281 { 282 (void) irq; 283 } 284 280 285 /** @} 281 286 */ -
kernel/arch/arm32/include/asm.h
rb86d436 r5cde90f 96 96 } 97 97 98 extern void cpu_halt(void) ;98 extern void cpu_halt(void) __attribute__((noreturn)); 99 99 extern void asm_delay_loop(uint32_t t); 100 100 extern void userspace_asm(uintptr_t ustack, uintptr_t uspace_uarg, -
kernel/arch/arm32/src/arm32.c
rb86d436 r5cde90f 155 155 void cpu_halt(void) 156 156 { 157 machine_cpu_halt(); 157 while (true) 158 machine_cpu_halt(); 158 159 } 159 160 … … 162 163 { 163 164 /* not implemented */ 164 while ( 1);165 while (true); 165 166 } 166 167 … … 179 180 } 180 181 182 void irq_initialize_arch(irq_t *irq) 183 { 184 (void) irq; 185 } 186 181 187 /** @} 182 188 */ -
kernel/arch/ia32/include/asm.h
rb86d436 r5cde90f 60 60 * 61 61 */ 62 static inline void cpu_halt(void)63 { 64 asm volatile (65 "0:\n"66 "hlt\n"67 " jmp 0b\n"68 );62 static inline __attribute__((noreturn)) void cpu_halt(void) 63 { 64 while (true) { 65 asm volatile ( 66 "hlt\n" 67 ); 68 } 69 69 } 70 70 -
kernel/arch/ia32/src/ia32.c
rb86d436 r5cde90f 234 234 } 235 235 236 void irq_initialize_arch(irq_t *irq) 237 { 238 (void) irq; 239 } 240 236 241 /** @} 237 242 */ -
kernel/arch/ia64/include/asm.h
rb86d436 r5cde90f 428 428 } 429 429 430 extern void cpu_halt(void) ;430 extern void cpu_halt(void) __attribute__((noreturn)); 431 431 extern void cpu_sleep(void); 432 432 extern void asm_delay_loop(uint32_t t); -
kernel/arch/ia64/include/context.h
rb86d436 r5cde90f 48 48 */ 49 49 #define SP_DELTA (0 + ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT)) 50 51 #ifdef context_set52 #undef context_set53 #endif54 50 55 51 /* RSE stack starts at the bottom of memory stack. */ -
kernel/arch/ia64/src/ia64.c
rb86d436 r5cde90f 44 44 #include <arch/stack.h> 45 45 #include <arch/mm/page.h> 46 #include <interrupt.h> 46 47 #include <mm/as.h> 47 48 #include <config.h> … … 280 281 } 281 282 283 void irq_initialize_arch(irq_t *irq) 284 { 285 (void) irq; 286 } 287 282 288 /** @} 283 289 */ -
kernel/arch/mips32/include/asm.h
rb86d436 r5cde90f 66 66 } 67 67 68 extern void cpu_halt(void) ;68 extern void cpu_halt(void) __attribute__((noreturn)); 69 69 extern void asm_delay_loop(uint32_t t); 70 70 extern void userspace_asm(uintptr_t ustack, uintptr_t uspace_uarg, -
kernel/arch/mips32/include/context.h
rb86d436 r5cde90f 27 27 */ 28 28 29 /** @addtogroup mips32 29 /** @addtogroup mips32 30 30 * @{ 31 31 */ … … 42 42 * Put one item onto the stack to support get_stack_base() and align it up. 43 43 */ 44 #define SP_DELTA (0 + ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT)) 45 44 #define SP_DELTA (0 + ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT)) 46 45 47 46 #ifndef __ASM__ 48 47 49 48 #include <arch/types.h> 49 50 #define context_set(ctx, pc, stack, size) \ 51 context_set_generic(ctx, pc, stack, size) 50 52 51 53 /* -
kernel/arch/mips32/src/mips32.c
rb86d436 r5cde90f 46 46 #include <sysinfo/sysinfo.h> 47 47 #include <arch/interrupt.h> 48 #include <interrupt.h> 48 49 #include <console/chardev.h> 49 50 #include <arch/barrier.h> … … 257 258 } 258 259 260 void irq_initialize_arch(irq_t *irq) 261 { 262 (void) irq; 263 } 264 259 265 /** @} 260 266 */ -
kernel/arch/ppc32/include/asm.h
rb86d436 r5cde90f 27 27 */ 28 28 29 /** @addtogroup ppc32 29 /** @addtogroup ppc32 30 30 * @{ 31 31 */ … … 146 146 } 147 147 148 void cpu_halt(void); 149 void asm_delay_loop(uint32_t t); 150 148 extern void cpu_halt(void) __attribute__((noreturn)); 149 extern void asm_delay_loop(uint32_t t); 151 150 extern void userspace_asm(uintptr_t uspace_uarg, uintptr_t stack, uintptr_t entry); 152 151 153 152 static inline void pio_write_8(ioport8_t *port, uint8_t v) 154 153 { 155 *port = v; 154 *port = v; 156 155 } 157 156 158 157 static inline void pio_write_16(ioport16_t *port, uint16_t v) 159 158 { 160 *port = v; 159 *port = v; 161 160 } 162 161 163 162 static inline void pio_write_32(ioport32_t *port, uint32_t v) 164 163 { 165 *port = v; 164 *port = v; 166 165 } 167 166 168 167 static inline uint8_t pio_read_8(ioport8_t *port) 169 168 { 170 return *port; 169 return *port; 171 170 } 172 171 173 172 static inline uint16_t pio_read_16(ioport16_t *port) 174 173 { 175 return *port; 174 return *port; 176 175 } 177 176 178 177 static inline uint32_t pio_read_32(ioport32_t *port) 179 178 { 180 return *port; 179 return *port; 181 180 } 182 181 -
kernel/arch/ppc32/include/context.h
rb86d436 r5cde90f 27 27 */ 28 28 29 /** @addtogroup ppc32 29 /** @addtogroup ppc32 30 30 * @{ 31 31 */ … … 38 38 #include <arch/types.h> 39 39 40 #define SP_DELTA 16 40 #define SP_DELTA 16 41 42 #define context_set(ctx, pc, stack, size) \ 43 context_set_generic(ctx, pc, stack, size) 41 44 42 45 typedef struct { … … 68 71 69 72 ipl_t ipl; 70 } __attribute__ ((packed)) context_t;73 } __attribute__((packed)) context_t; 71 74 72 75 #endif -
kernel/arch/ppc32/src/ppc32.c
rb86d436 r5cde90f 39 39 #include <genarch/kbrd/kbrd.h> 40 40 #include <arch/interrupt.h> 41 #include <interrupt.h> 41 42 #include <genarch/fb/fb.h> 42 43 #include <genarch/fb/visuals.h> … … 47 48 #include <proc/uarg.h> 48 49 #include <console/console.h> 50 #include <sysinfo/sysinfo.h> 49 51 #include <ddi/irq.h> 50 52 #include <arch/drivers/pic.h> … … 58 60 59 61 bootinfo_t bootinfo; 62 63 static cir_t pic_cir; 64 static void *pic_cir_arg; 60 65 61 66 /** Performs ppc32-specific initialization before main_bsp() is called. */ … … 186 191 if (assigned_address) { 187 192 /* Initialize PIC */ 188 cir_t cir; 189 void *cir_arg; 190 pic_init(assigned_address[0].addr, PAGE_SIZE, &cir, &cir_arg); 191 193 pic_init(assigned_address[0].addr, PAGE_SIZE, &pic_cir, 194 &pic_cir_arg); 195 192 196 #ifdef CONFIG_MAC_KBD 193 197 uintptr_t pa = assigned_address[0].addr + 0x16000; … … 201 205 /* Initialize I/O controller */ 202 206 cuda_instance_t *cuda_instance = 203 cuda_init(cuda, IRQ_CUDA, cir,cir_arg);207 cuda_init(cuda, IRQ_CUDA, pic_cir, pic_cir_arg); 204 208 if (cuda_instance) { 205 209 kbrd_instance_t *kbrd_instance = kbrd_init(); … … 211 215 } 212 216 } 217 218 /* 219 * This is the necessary evil until the userspace driver is entirely 220 * self-sufficient. 221 */ 222 sysinfo_set_item_val("cuda", NULL, true); 223 sysinfo_set_item_val("cuda.inr", NULL, IRQ_CUDA); 224 sysinfo_set_item_val("cuda.address.physical", NULL, pa); 225 sysinfo_set_item_val("cuda.address.kernel", NULL, 226 (uintptr_t) cuda); 213 227 #endif 214 228 } … … 216 230 /* Consider only a single device for now */ 217 231 return false; 232 } 233 234 void irq_initialize_arch(irq_t *irq) 235 { 236 irq->cir = pic_cir; 237 irq->cir_arg = pic_cir_arg; 238 irq->preack = true; 218 239 } 219 240 -
kernel/arch/sparc64/include/asm.h
rb86d436 r5cde90f 430 430 } 431 431 432 extern void cpu_halt(void) ;432 extern void cpu_halt(void) __attribute__((noreturn)); 433 433 extern void cpu_sleep(void); 434 434 extern void asm_delay_loop(const uint32_t usec); -
kernel/arch/sparc64/include/context.h
rb86d436 r5cde90f 42 42 #define SP_DELTA (STACK_WINDOW_SAVE_AREA_SIZE + STACK_ARG_SAVE_AREA_SIZE) 43 43 44 #ifdef context_set45 #undef context_set46 #endif47 48 44 #define context_set(c, _pc, stack, size) \ 49 45 (c)->pc = ((uintptr_t) _pc) - 8; \ -
kernel/arch/sparc64/src/sun4u/sparc64.c
rb86d436 r5cde90f 44 44 #include <arch/mm/page.h> 45 45 #include <arch/stack.h> 46 #include <interrupt.h> 46 47 #include <genarch/ofw/ofw_tree.h> 47 48 #include <userspace.h> … … 166 167 } 167 168 169 void irq_initialize_arch(irq_t *irq) 170 { 171 (void) irq; 172 } 173 168 174 /** @} 169 175 */ -
kernel/arch/sparc64/src/sun4v/sparc64.c
rb86d436 r5cde90f 45 45 #include <arch/mm/page.h> 46 46 #include <arch/stack.h> 47 #include <interrupt.h> 47 48 #include <genarch/ofw/ofw_tree.h> 48 49 #include <userspace.h> … … 166 167 } 167 168 169 void irq_initialize_arch(irq_t *irq) 170 { 171 (void) irq; 172 } 173 168 174 /** @} 169 175 */
Note:
See TracChangeset
for help on using the changeset viewer.
