Changeset 2a77841d in mainline for kernel/arch/ppc32/src/ppc32.c
- Timestamp:
- 2009-07-02T19:39:29Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d68e4d5
- Parents:
- bb8dc88
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ppc32/src/ppc32.c
rbb8dc88 r2a77841d 37 37 #include <arch/boot/boot.h> 38 38 #include <genarch/drivers/via-cuda/cuda.h> 39 #include <genarch/kbrd/kbrd.h> 39 40 #include <arch/interrupt.h> 40 41 #include <genarch/fb/fb.h> … … 118 119 irq_init(IRQ_COUNT, IRQ_COUNT); 119 120 120 if (bootinfo.macio.addr) {121 /* Initialize PIC */122 cir_t cir;123 void *cir_arg;124 pic_init(bootinfo.macio.addr, PAGE_SIZE, &cir, &cir_arg);125 126 #ifdef CONFIG_VIA_CUDA127 uintptr_t pa = bootinfo.macio.addr + 0x16000;128 uintptr_t aligned_addr = ALIGN_DOWN(pa, PAGE_SIZE);129 size_t offset = pa - aligned_addr;130 size_t size = 2 * PAGE_SIZE;131 132 cuda_t *cuda = (cuda_t *)133 (hw_map(aligned_addr, offset + size) + offset);134 135 /* Initialize I/O controller */136 cuda_instance_t *cuda_instance =137 cuda_init(cuda, IRQ_CUDA, cir, cir_arg);138 if (cuda_instance) {139 indev_t *sink = stdin_wire();140 cuda_wire(cuda_instance, sink);141 }142 #endif143 }144 145 121 /* Merge all zones to 1 big zone */ 146 122 zone_merge_all(); … … 158 134 void arch_post_smp_init(void) 159 135 { 136 if (bootinfo.macio.addr) { 137 /* Initialize PIC */ 138 cir_t cir; 139 void *cir_arg; 140 pic_init(bootinfo.macio.addr, PAGE_SIZE, &cir, &cir_arg); 141 142 #ifdef CONFIG_MAC_KBD 143 uintptr_t pa = bootinfo.macio.addr + 0x16000; 144 uintptr_t aligned_addr = ALIGN_DOWN(pa, PAGE_SIZE); 145 size_t offset = pa - aligned_addr; 146 size_t size = 2 * PAGE_SIZE; 147 148 cuda_t *cuda = (cuda_t *) 149 (hw_map(aligned_addr, offset + size) + offset); 150 151 /* Initialize I/O controller */ 152 cuda_instance_t *cuda_instance = 153 cuda_init(cuda, IRQ_CUDA, cir, cir_arg); 154 if (cuda_instance) { 155 kbrd_instance_t *kbrd_instance = kbrd_init(); 156 if (kbrd_instance) { 157 indev_t *sink = stdin_wire(); 158 indev_t *kbrd = kbrd_wire(kbrd_instance, sink); 159 cuda_wire(cuda_instance, kbrd); 160 pic_enable_interrupt(IRQ_CUDA); 161 } 162 } 163 #endif 164 } 160 165 } 161 166
Note:
See TracChangeset
for help on using the changeset viewer.