Changeset 3b3e776 in mainline for kernel/arch/ppc32/src/ppc32.c


Ignore:
Timestamp:
2010-02-05T10:57:50Z (14 years ago)
Author:
Lenka Trochtova <trochtova.lenka@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0358da0
Parents:
3f085132 (diff), b4cbef1 (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.
Message:

merged with head

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ppc32/src/ppc32.c

    r3f085132 r3b3e776  
    3939#include <genarch/kbrd/kbrd.h>
    4040#include <arch/interrupt.h>
     41#include <interrupt.h>
    4142#include <genarch/fb/fb.h>
    4243#include <genarch/fb/visuals.h>
     
    4445#include <genarch/ofw/pci.h>
    4546#include <userspace.h>
     47#include <mm/page.h>
    4648#include <proc/uarg.h>
    4749#include <console/console.h>
     50#include <sysinfo/sysinfo.h>
    4851#include <ddi/irq.h>
    4952#include <arch/drivers/pic.h>
     
    5760
    5861bootinfo_t bootinfo;
     62
     63static cir_t pic_cir;
     64static void *pic_cir_arg;
    5965
    6066/** Performs ppc32-specific initialization before main_bsp() is called. */
     
    185191        if (assigned_address) {
    186192                /* Initialize PIC */
    187                 cir_t cir;
    188                 void *cir_arg;
    189                 pic_init(assigned_address[0].addr, PAGE_SIZE, &cir, &cir_arg);
    190                
     193                pic_init(assigned_address[0].addr, PAGE_SIZE, &pic_cir,
     194                    &pic_cir_arg);
     195
    191196#ifdef CONFIG_MAC_KBD
    192197                uintptr_t pa = assigned_address[0].addr + 0x16000;
     
    200205                /* Initialize I/O controller */
    201206                cuda_instance_t *cuda_instance =
    202                     cuda_init(cuda, IRQ_CUDA, cir, cir_arg);
     207                    cuda_init(cuda, IRQ_CUDA, pic_cir, pic_cir_arg);
    203208                if (cuda_instance) {
    204209                        kbrd_instance_t *kbrd_instance = kbrd_init();
     
    210215                        }
    211216                }
     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);
    212227#endif
    213228        }
     
    215230        /* Consider only a single device for now */
    216231        return false;
     232}
     233
     234void irq_initialize_arch(irq_t *irq)
     235{
     236        irq->cir = pic_cir;
     237        irq->cir_arg = pic_cir_arg;
     238        irq->preack = true;
    217239}
    218240
Note: See TracChangeset for help on using the changeset viewer.