Changeset 5cde90f in mainline for kernel/arch/ppc32
- 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/ppc32
- Files:
-
- 3 edited
-
include/asm.h (modified) (2 diffs)
-
include/context.h (modified) (3 diffs)
-
src/ppc32.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
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
Note:
See TracChangeset
for help on using the changeset viewer.
