Changeset 2c49fbbe in mainline


Ignore:
Timestamp:
2006-02-28T17:57:42Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a0d74fd
Parents:
95042fd
Message:

ia64 work.
Proper TLB fault handlers' headers and prototypes.
PFN 0 needs no longer be marked unavailable to frame allocator.

Location:
arch/ia64
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • arch/ia64/include/mm/tlb.h

    r95042fd r2c49fbbe  
    3535#include <arch/mm/page.h>
    3636#include <arch/mm/asid.h>
    37 #include <arch/register.h>
     37#include <arch/interrupt.h>
     38#include <arch/types.h>
    3839#include <typedefs.h>
    3940
     
    4647extern void itr_mapping_insert(__address va, asid_t asid, tlb_entry_t entry, index_t tr);
    4748
    48 extern void alternate_instruction_tlb_fault(void);
    49 extern void alternate_data_tlb_fault(void);
    50 extern void data_nested_tlb_fault(void);
    51 extern void data_dirty_bit_fault(void);
    52 extern void instruction_access_bit_fault(void);
    53 extern void data_access_bit_fault(void);
    54 extern void page_not_present(void);
     49extern void alternate_instruction_tlb_fault(__u64 vector, struct exception_regdump *pstate);
     50extern void alternate_data_tlb_fault(__u64 vector, struct exception_regdump *pstate);
     51extern void data_nested_tlb_fault(__u64 vector, struct exception_regdump *pstate);
     52extern void data_dirty_bit_fault(__u64 vector, struct exception_regdump *pstate);
     53extern void instruction_access_bit_fault(__u64 vector, struct exception_regdump *pstate);
     54extern void data_access_bit_fault(__u64 vector, struct exception_regdump *pstate);
     55extern void page_not_present(__u64 vector, struct exception_regdump *pstate);
    5556
    5657#endif
    57 
    58 
  • arch/ia64/src/mm/frame.c

    r95042fd r2c49fbbe  
    4444       
    4545        /*
    46          * Workaround to prevent slab allocator from allocating frame 0.
    47          * Remove the following statement when the kernel is no longer
    48          * identity mapped.
    49          */
    50         frame_mark_unavailable(0, 1);
    51 
    52         /*
    5346         * Blacklist ROM regions.
    5447         */
  • arch/ia64/src/mm/tlb.c

    r95042fd r2c49fbbe  
    3434#include <arch/mm/tlb.h>
    3535#include <arch/barrier.h>
     36#include <arch/interrupt.h>
    3637#include <typedefs.h>
     38#include <panic.h>
    3739
    3840/** Invalidate all TLB entries. */
     
    103105        __asm__ volatile (
    104106                "mov r8=psr;;\n"
    105                 "and r9=r8,%0;;\n"              /* (~PSR_IC_MASK) */
    106                 "mov psr.l=r9;;\n"
     107                "rsm %0;;\n"                    /* PSR_IC_MASK */
    107108                "srlz.d;;\n"
    108109                "srlz.i;;\n"
     
    115116                "srlz.d;;\n"
    116117                :
    117                 : "r" (~PSR_IC_MASK), "r" (va), "r" (entry.word[1]), "r" (entry.word[0]), "r" (dtc)
    118                 : "p6", "p7", "r8", "r9"
     118                : "i" (PSR_IC_MASK), "r" (va), "r" (entry.word[1]), "r" (entry.word[0]), "r" (dtc)
     119                : "p6", "p7", "r8"
    119120        );
    120121       
     
    183184        __asm__ volatile (
    184185                "mov r8=psr;;\n"
    185                 "and r9=r8,%0;;\n"              /* (~PSR_IC_MASK) */
    186                 "mov psr.l=r9;;\n"
     186                "rsm %0;;\n"                    /* PSR_IC_MASK */
    187187                "srlz.d;;\n"
    188188                "srlz.i;;\n"
     
    195195                "srlz.d;;\n"
    196196                :
    197                 :"r" (~PSR_IC_MASK), "r" (va), "r" (entry.word[1]), "r" (entry.word[0]), "r" (tr), "r" (dtr)
    198                 : "p6", "p7", "r8", "r9"
     197                : "i" (PSR_IC_MASK), "r" (va), "r" (entry.word[1]), "r" (entry.word[0]), "r" (tr), "r" (dtr)
     198                : "p6", "p7", "r8"
    199199        );
    200200       
     
    206206}
    207207
    208 void alternate_instruction_tlb_fault(void)
    209 {
    210         panic("%s\n", __FUNCTION__);
    211 }
    212 
    213 void alternate_data_tlb_fault(void)
    214 {
    215         panic("%s\n", __FUNCTION__);
    216 }
    217 
    218 void data_nested_tlb_fault(void)
    219 {
    220         panic("%s\n", __FUNCTION__);
    221 }
    222 
    223 void data_dirty_bit_fault(void)
    224 {
    225         panic("%s\n", __FUNCTION__);
    226 }
    227 
    228 void instruction_access_bit_fault(void)
    229 {
    230         panic("%s\n", __FUNCTION__);
    231 }
    232 
    233 void data_access_bit_fault(void)
    234 {
    235         panic("%s\n", __FUNCTION__);
    236 }
    237 
    238 void page_not_present(void)
    239 {
    240         panic("%s\n", __FUNCTION__);
    241 }
     208void alternate_instruction_tlb_fault(__u64 vector, struct exception_regdump *pstate)
     209{
     210        panic("%s\n", __FUNCTION__);
     211}
     212
     213void alternate_data_tlb_fault(__u64 vector, struct exception_regdump *pstate)
     214{
     215        panic("%s: %P\n", __FUNCTION__, pstate->cr_ifa);
     216}
     217
     218void data_nested_tlb_fault(__u64 vector, struct exception_regdump *pstate)
     219{
     220        panic("%s\n", __FUNCTION__);
     221}
     222
     223void data_dirty_bit_fault(__u64 vector, struct exception_regdump *pstate)
     224{
     225        panic("%s\n", __FUNCTION__);
     226}
     227
     228void instruction_access_bit_fault(__u64 vector, struct exception_regdump *pstate)
     229{
     230        panic("%s\n", __FUNCTION__);
     231}
     232
     233void data_access_bit_fault(__u64 vector, struct exception_regdump *pstate)
     234{
     235        panic("%s\n", __FUNCTION__);
     236}
     237
     238void page_not_present(__u64 vector, struct exception_regdump *pstate)
     239{
     240        panic("%s\n", __FUNCTION__);
     241}
Note: See TracChangeset for help on using the changeset viewer.