Changeset b7068da in mainline for kernel/arch/ia64/src/ia64.c


Ignore:
Timestamp:
2012-02-09T20:35:12Z (12 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
591762c6
Parents:
7cede12c (diff), 3d4750f (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:

Merge mainline changes

File:
1 edited

Legend:

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

    r7cede12c rb7068da  
    3434
    3535#include <arch.h>
    36 #include <arch/drivers/ski.h>
    37 #include <arch/drivers/it.h>
    38 #include <arch/interrupt.h>
    39 #include <arch/barrier.h>
    40 #include <arch/asm.h>
    41 #include <arch/register.h>
    4236#include <typedefs.h>
    43 #include <arch/context.h>
    44 #include <arch/stack.h>
    45 #include <arch/mm/page.h>
     37#include <errno.h>
    4638#include <interrupt.h>
    47 #include <mm/as.h>
    48 #include <config.h>
    4939#include <macros.h>
     40#include <str.h>
    5041#include <userspace.h>
    5142#include <console/console.h>
    52 #include <abi/proc/uarg.h>
    5343#include <syscall/syscall.h>
    54 #include <ddi/irq.h>
    55 #include <arch/bootinfo.h>
     44#include <sysinfo/sysinfo.h>
     45#include <arch/drivers/it.h>
     46#include <arch/drivers/kbd.h>
     47#include <arch/legacyio.h>
     48#include <genarch/drivers/ega/ega.h>
     49#include <genarch/drivers/i8042/i8042.h>
     50#include <genarch/drivers/ns16550/ns16550.h>
    5651#include <genarch/drivers/legacy/ia32/io.h>
    57 #include <genarch/drivers/ega/ega.h>
    5852#include <genarch/kbrd/kbrd.h>
    5953#include <genarch/srln/srln.h>
    60 #include <genarch/drivers/i8042/i8042.h>
    61 #include <genarch/drivers/ns16550/ns16550.h>
    62 #include <arch/drivers/kbd.h>
    63 #include <smp/smp.h>
    64 #include <smp/ipi.h>
    65 #include <arch/atomic.h>
    66 #include <panic.h>
    67 #include <print.h>
    68 #include <sysinfo/sysinfo.h>
    69 #include <str.h>
     54#include <mm/page.h>
     55#include <mm/km.h>
     56
     57#ifdef MACHINE_ski
     58#include <arch/drivers/ski.h>
     59#endif
    7060
    7161/* NS16550 as a COM 1 */
     
    7565
    7666static uint64_t iosapic_base = 0xfec00000;
     67uintptr_t legacyio_virt_base = 0;
    7768
    7869/** Performs ia64-specific initialization before main_bsp() is called. */
    7970void arch_pre_main(void)
    8071{
    81         init.cnt = min3(bootinfo->taskmap.cnt, TASKMAP_MAX_RECORDS, CONFIG_INIT_TASKS);
     72        init.cnt = min3(bootinfo->taskmap.cnt, TASKMAP_MAX_RECORDS,
     73            CONFIG_INIT_TASKS);
    8274        size_t i;
     75
    8376        for (i = 0; i < init.cnt; i++) {
    84                 init.tasks[i].addr =
    85                     ((unsigned long) bootinfo->taskmap.tasks[i].addr) |
    86                     VRN_MASK;
     77                init.tasks[i].paddr =
     78                    (uintptr_t) bootinfo->taskmap.tasks[i].addr;
    8779                init.tasks[i].size = bootinfo->taskmap.tasks[i].size;
    8880                str_cpy(init.tasks[i].name, CONFIG_TASK_NAME_BUFLEN,
     
    9789static void iosapic_init(void)
    9890{
    99         uint64_t IOSAPIC = PA2KA((sysarg_t)(iosapic_base)) | FW_OFFSET;
     91        uintptr_t IOSAPIC = km_map(iosapic_base, PAGE_SIZE,
     92            PAGE_WRITE | PAGE_NOT_CACHEABLE);
    10093        int i;
    10194       
     
    124117{
    125118        if (config.cpu_active == 1) {
     119                /* Map the page with legacy I/O. */
     120                legacyio_virt_base = km_map(LEGACYIO_PHYS_BASE, LEGACYIO_SIZE,
     121                    PAGE_WRITE | PAGE_NOT_CACHEABLE);
     122
    126123                iosapic_init();
    127124                irq_init(INR_COUNT, INR_COUNT);
     
    196193       
    197194#ifdef CONFIG_I8042
    198         i8042_instance_t *i8042_instance = i8042_init((i8042_t *) I8042_BASE, IRQ_KBD);
     195        i8042_instance_t *i8042_instance = i8042_init((i8042_t *) I8042_BASE,
     196            IRQ_KBD);
    199197        if (i8042_instance) {
    200198                kbrd_instance_t *kbrd_instance = kbrd_init();
     
    205203                }
    206204        }
    207        
    208         sysinfo_set_item_val("i8042", NULL, true);
    209         sysinfo_set_item_val("i8042.inr_a", NULL, IRQ_KBD);
    210         sysinfo_set_item_val("i8042.inr_b", NULL, IRQ_MOUSE);
    211         sysinfo_set_item_val("i8042.address.physical", NULL,
    212             (uintptr_t) I8042_BASE);
    213         sysinfo_set_item_val("i8042.address.kernel", NULL,
    214             (uintptr_t) I8042_BASE);
    215 #endif
    216 
    217         sysinfo_set_item_val("netif.ne2000.inr", NULL, IRQ_NE2000);
    218 
     205#endif
     206       
    219207        sysinfo_set_item_val("ia64_iospace", NULL, true);
    220208        sysinfo_set_item_val("ia64_iospace.address", NULL, true);
    221         sysinfo_set_item_val("ia64_iospace.address.virtual", NULL, IO_OFFSET);
     209        sysinfo_set_item_val("ia64_iospace.address.virtual", NULL, LEGACYIO_USER_BASE);
    222210}
    223211
     
    262250 * We use r13 (a.k.a. tp) for this purpose.
    263251 */
    264 sysarg_t sys_tls_set(sysarg_t addr)
    265 {
    266         return 0;
     252sysarg_t sys_tls_set(uintptr_t addr)
     253{
     254        return EOK;
    267255}
    268256
     
    270258{
    271259        pio_write_8((ioport8_t *)0x64, 0xfe);
    272         while (1)
    273                 ;
     260        while (1);
    274261}
    275262
Note: See TracChangeset for help on using the changeset viewer.