Changeset bfb87df in mainline


Ignore:
Timestamp:
2006-02-09T17:02:36Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8f00329
Parents:
874878a
Message:

Remove WAKEUP_IPI stuff.

Make it possible to use PAGE_GLOBAL on ia32, amd64 and mips32.
Make ia32 and amd64 map the kernel using PAGE_GLOBAL.

Files:
12 edited

Legend:

Unmodified
Added
Removed
  • arch/amd64/include/interrupt.h

    r874878a rbfb87df  
    7272extern void syscall(int n, void *stack);
    7373extern void tlb_shootdown_ipi(int n, void *stack);
    74 extern void wakeup_ipi(int n, void *stack);
    7574
    7675extern void trap_virtual_enable_irqs(__u16 irqmask);
  • arch/amd64/include/mm/page.h

    r874878a rbfb87df  
    102102                1<<PAGE_READ_SHIFT |
    103103                p->writeable<<PAGE_WRITE_SHIFT |
    104                 (!p->no_execute)<<PAGE_EXEC_SHIFT
     104                (!p->no_execute)<<PAGE_EXEC_SHIFT |
     105                p->global<<PAGE_GLOBAL_SHIFT
    105106        );
    106107}
     
    123124        p->writeable = (flags & PAGE_WRITE) != 0;
    124125        p->no_execute = (flags & PAGE_EXEC) == 0;
     126        p->global = (flags & PAGE_GLOBAL) != 0;
    125127}
    126128
  • arch/amd64/src/amd64.c

    r874878a rbfb87df  
    122122                exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown",
    123123                             tlb_shootdown_ipi);
    124                 exc_register(VECTOR_WAKEUP_IPI, "wakeup_ipi", wakeup_ipi);
    125124                #endif /* CONFIG_SMP */
    126125        }
  • arch/amd64/src/interrupt.c

    r874878a rbfb87df  
    142142}
    143143
    144 void wakeup_ipi(int n, void *stack)
    145 {
    146         trap_virtual_eoi();
    147 }
    148 
    149144void trap_virtual_enable_irqs(__u16 irqmask)
    150145{
  • arch/amd64/src/mm/page.c

    r874878a rbfb87df  
    4242{
    4343        __address cur;
     44        int flags;
    4445
    4546        if (config.cpu_active == 1) {
     
    5051                 */
    5152                for (cur = 0; cur < last_frame; cur += FRAME_SIZE) {
    52                         page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, PAGE_CACHEABLE | PAGE_EXEC);
     53                        flags = PAGE_CACHEABLE | PAGE_EXEC;
     54                        if ((PA2KA(cur) >= config.base) && (PA2KA(cur) < config.base + config.kernel_size))
     55                                flags |= PAGE_GLOBAL;
     56                        page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags);
    5357                }
    5458                exc_register(14, "page_fault", (iroutine)page_fault);
  • arch/ia32/include/interrupt.h

    r874878a rbfb87df  
    6060#define VECTOR_SYSCALL                  (IVT_FREEBASE+0)
    6161#define VECTOR_TLB_SHOOTDOWN_IPI        (IVT_FREEBASE+1)
    62 #define VECTOR_WAKEUP_IPI               (IVT_FREEBASE+2)
    6362
    6463extern void (* disable_irqs_function)(__u16 irqmask);
     
    7372extern void syscall(int n, void *stack);
    7473extern void tlb_shootdown_ipi(int n, void *stack);
    75 extern void wakeup_ipi(int n, void *stack);
    7674
    7775extern void trap_virtual_enable_irqs(__u16 irqmask);
  • arch/ia32/include/mm/page.h

    r874878a rbfb87df  
    8686        unsigned accessed : 1;
    8787        unsigned dirty : 1;
    88         unsigned : 2;
     88        unsigned pat : 1;
     89        unsigned global : 1;
    8990        unsigned avl : 3;
    9091        unsigned frame_address : 20;
     
    101102                1<<PAGE_READ_SHIFT |
    102103                p->writeable<<PAGE_WRITE_SHIFT |
    103                 1<<PAGE_EXEC_SHIFT
     104                1<<PAGE_EXEC_SHIFT |
     105                p->global<<PAGE_GLOBAL_SHIFT
    104106        );
    105107}
     
    113115        p->uaccessible = (flags & PAGE_USER) != 0;
    114116        p->writeable = (flags & PAGE_WRITE) != 0;
     117        p->global = (flags & PAGE_GLOBAL) != 0;
    115118}
    116119
  • arch/ia32/src/ia32.c

    r874878a rbfb87df  
    6666                exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown",
    6767                             tlb_shootdown_ipi);
    68                 exc_register(VECTOR_WAKEUP_IPI, "wakeup_ipi", wakeup_ipi);
    6968                #endif /* CONFIG_SMP */
    7069        }
  • arch/ia32/src/interrupt.c

    r874878a rbfb87df  
    128128}
    129129
    130 void wakeup_ipi(int n, void *stack)
    131 {
    132         trap_virtual_eoi();
    133 }
    134 
    135130void trap_virtual_enable_irqs(__u16 irqmask)
    136131{
  • arch/ia32/src/mm/page.c

    r874878a rbfb87df  
    4646{
    4747        __address cur;
     48        int flags;
    4849
    4950        if (config.cpu_active == 1) {
     
    5354                 * PA2KA(identity) mapping for all frames until last_frame.
    5455                 */
    55                 for (cur = 0; cur < last_frame; cur += FRAME_SIZE)
    56                         page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, PAGE_CACHEABLE);
     56                for (cur = 0; cur < last_frame; cur += FRAME_SIZE) {
     57                        flags = PAGE_CACHEABLE;
     58                        if ((PA2KA(cur) >= config.base) && (PA2KA(cur) < config.base + config.kernel_size))
     59                                flags |= PAGE_GLOBAL;
     60                        page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags);
     61                }
    5762
    5863                exc_register(14, "page_fault", page_fault);
  • arch/mips32/include/mm/page.h

    r874878a rbfb87df  
    100100                (1<<PAGE_READ_SHIFT) |
    101101                ((p->w)<<PAGE_WRITE_SHIFT) |
    102                 (1<<PAGE_EXEC_SHIFT)
     102                (1<<PAGE_EXEC_SHIFT) |
     103                p->lo.g<<PAGE_GLOBAL_SHIFT
    103104        );
    104105               
     
    111112        p->lo.c = (flags & PAGE_CACHEABLE) != 0 ? PAGE_CACHEABLE_EXC_WRITE : PAGE_UNCACHED;
    112113        p->lo.v = !(flags & PAGE_NOT_PRESENT);
     114        p->lo.g = (flags & PAGE_GLOBAL) != 0;
    113115        p->w = (flags & PAGE_WRITE) != 0;
    114116}
  • contrib/conf/msim.conf

    r874878a rbfb87df  
    66
    77add rwm firstmem        0x0             1M      load "/dev/zero"
    8 add rwm mainmem         0x00100000      16M     load "kernel.bin"
    9 add rom startmem        0x1fc00000      1k      load "load.bin"
    10 add rwm init            0x20000000      1M      load "init
     8add rwm mainmem         0x00100000      16M     load "kernel/kernel.bin"
     9add rom startmem        0x1fc00000      1k      load "kernel/load.bin"
     10add rwm init            0x20000000      1M      load "uspace/init/init"
    1111
    1212add dprinter printer 0x10000000
Note: See TracChangeset for help on using the changeset viewer.