Changeset 89344d85 in mainline for arch/amd64/include


Ignore:
Timestamp:
2005-09-03T00:19:23Z (20 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
36b209a
Parents:
e4a6dda
Message:

Changes, that were needed to make it work on Bochs.

  • We CAN use the NX bit in paging tables, but we have

to initialize the NXE bit in EFER register first.

Location:
arch/amd64/include
Files:
3 edited

Legend:

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

    re4a6dda r89344d85  
    3030#define __amd64_CPU_H__
    3131
    32 #include <config.h>
    33 #include <proc/thread.h>
     32
     33#define EFER_MSR_NUM    0xc0000080
     34#define AMD_SCE_FLAG    0
     35#define AMD_LME_FLAG    8
     36#define AMD_LMA_FLAG    10
     37#define AMD_FFXSR_FLAG  14
     38#define AMD_NXE_FLAG    11
     39
     40#ifndef __ASM__
     41
    3442#include <typedefs.h>
    3543#include <arch/pm.h>
    36 #include <arch/asm.h>
    3744
    3845struct cpu_arch {
     
    4552
    4653
    47 void set_TS_flag(void);
    48 void reset_TS_flag(void);
     54extern void set_TS_flag(void);
     55extern void reset_TS_flag(void);
     56extern void set_efer_flag(int flag);
     57extern __u64 read_efer_flag(void);
     58
     59#endif /* __ASM__ */
    4960
    5061#endif
  • arch/amd64/include/cpuid.h

    re4a6dda r89344d85  
    3232#include <arch/types.h>
    3333
     34#define AMD_CPUID_EXTENDED 0x80000001
     35#define AMD_EXT_NOEXECUTE    20
     36
    3437struct cpu_info {
    3538        __u32 cpuid_eax;
     
    4144extern int has_cpuid(void);
    4245
    43 static inline void cpuid(__u32 cmd, cpu_info_t *info)
    44 {
    45         __asm__ (
    46                 "movl %1, %eax"
    47                 "cpuid"
    48                 "movl %eax, 0(%0)"
    49                 "movl %ebx, 4(%0)"
    50                 "movl %ecx, 8(%0)"
    51                 "movl %edx, 12(%0)"
    52                 : "=m"(info)
    53                 : "r"(cmd)
    54                 : "%eax","%ebx","%ecx","%edx"
    55                 );
    56 }
     46extern void cpuid(__u32 cmd, cpu_info_t *info);
     47
    5748
    5849extern __u64 rdtsc(void);
  • arch/amd64/include/mm/page.h

    re4a6dda r89344d85  
    4343#else
    4444# define KA2PA(x)      ((x) + 0x80000000)
    45 //# define PA2KA(x)      ((x)) - 0x80000000)
     45# define PA2KA(x)      ((x) - 0x80000000)
    4646#endif
    4747
Note: See TracChangeset for help on using the changeset viewer.