Changeset 89344d85 in mainline for arch/amd64/src
- Timestamp:
- 2005-09-03T00:19:23Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 36b209a
- Parents:
- e4a6dda
- Location:
- arch/amd64/src
- Files:
-
- 1 added
- 4 edited
-
amd64.c (modified) (1 diff)
-
asm_utils.S (modified) (4 diffs)
-
boot/boot.S (modified) (2 diffs)
-
cpu/cpu.c (added)
-
dummy.s (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
arch/amd64/src/amd64.c
re4a6dda r89344d85 40 40 #include <arch/bios/bios.h> 41 41 #include <arch/mm/memory_init.h> 42 #include <arch/cpu.h> 43 #include <print.h> 44 #include <arch/cpuid.h> 42 45 43 46 void arch_pre_mm_init(void) 44 47 { 48 struct cpu_info cpuid_s; 49 50 cpuid(AMD_CPUID_EXTENDED,&cpuid_s); 51 if (! (cpuid_s.cpuid_edx & (1<<AMD_EXT_NOEXECUTE))) { 52 printf("We do not support NX!!-----------\n"); 53 printf("%X------\n",cpuid_s.cpuid_edx); 54 cpu_halt(); 55 } 56 set_efer_flag(AMD_NXE_FLAG); 57 45 58 pm_init(); 46 59 -
arch/amd64/src/asm_utils.S
re4a6dda r89344d85 40 40 .global interrupt_handlers 41 41 .global panic_printf 42 .global cpuid 42 43 43 44 panic_printf: … … 47 48 .global has_cpuid 48 49 .global rdtsc 49 50 50 .global read_efer_flag 51 .global set_efer_flag 52 51 53 ## Determine CPUID support 52 54 # … … 71 73 ret 72 74 75 cpuid: 76 movq %rbx, %r10 # we have to preserve rbx across function calls 77 78 movl %edi,%eax # load the command into %eax 79 80 cpuid 81 movl %eax,0(%rsi) 82 movl %ebx,4(%rsi) 83 movl %ecx,8(%rsi) 84 movl %edx,12(%rsi) 85 86 movq %r10, %rbx 87 ret 73 88 74 89 rdtsc: … … 76 91 rdtsc 77 92 ret 78 93 94 set_efer_flag: 95 movq $0xc0000080, %rcx 96 rdmsr 97 btsl %edi, %eax 98 wrmsr 99 ret 100 101 read_efer_flag: 102 movq $0xc0000080, %rcx 103 rdmsr 104 ret 79 105 80 106 # Push all general purpose registers on stack except %rbp, %rsp -
arch/amd64/src/boot/boot.S
re4a6dda r89344d85 32 32 #include <arch/mm/ptl.h> 33 33 #include <arch/pm.h> 34 #include <arch/cpu.h> 34 35 35 36 #define START_STACK 0x7c00 … … 102 103 103 104 # Enable long mode 104 movl $ 0xc0000080, %ecx # EFER MSR number105 movl $EFER_MSR_NUM, %ecx # EFER MSR number 105 106 rdmsr # Read EFER 106 btsl $ 8, %eax # Set LME=1107 btsl $AMD_LME_FLAG, %eax # Set LME=1 107 108 wrmsr # Write EFER 108 109 -
arch/amd64/src/dummy.s
re4a6dda r89344d85 36 36 .global cpu_print_report 37 37 .global dummy 38 .global reset_TS_flag39 38 .global fpu_init 40 39 … … 45 44 cpu_sleep: 46 45 cpu_print_report: 47 reset_TS_flag:48 46 fpu_init: 49 47
Note:
See TracChangeset
for help on using the changeset viewer.
