Browse Source

Removed Machine.Init from module Modules --> moved the call to Machine.Init to Machine module (Portability / EFI !)

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6601 8c9fc860-2736-0410-a75d-ab315db34111
felixf 9 years ago
parent
commit
3253ae6ebc

+ 11 - 9
source/EFI.AMD64.Machine.Mod

@@ -3852,15 +3852,17 @@ END InitTrace;
 
 (* The following procedure is linked as the first block in the bootfile *)
 PROCEDURE {NOPAF, FIXED(0100000H)} FirstAddress;
-CODE{SYSTEM.AMD64}
-	; save arguments passed by bootloader
-	MOV bootFlag, RAX
-	MOV initRegs0,RSI
-	MOV initRegs1, RCX
-	
-	MOV fbadr, RDI
-	MOV fbInfoPtr, RDX
-
+BEGIN
+	CODE{SYSTEM.AMD64}
+		; save arguments passed by bootloader
+		MOV bootFlag, RAX
+		MOV initRegs0,RSI
+		MOV initRegs1, RCX
+		
+		MOV fbadr, RDI
+		MOV fbInfoPtr, RDX
+	END;
+	Init;
 END FirstAddress;
 
 (*

+ 11 - 13
source/EFI.I386.Machine.Mod

@@ -1844,19 +1844,15 @@ BEGIN
 	freeStackIndex := 0;
 	(* mappings *)
 	mapTop := MapAreaAdr ;
-	(*! remove if works 
 	IF fbadr + 1024 * PS * 10 > mapTop THEN mapTop := fbadr + 1024 * PS * 10 END; (* frame buffer ! *)
-	*)
 	(* create the address space *)
 	NewPage(kernelPD); ASSERT(kernelPD # NilAdr);
 	Fill32(kernelPD, PTEs*4, PageNotPresent);
 	IF ~MapDirect(LowAdr, mTop-LowAdr, LowAdr + UserPage) THEN HALT(99) END	;(* map heap direct *)
 	
-	(*! remove if works 
 	IF ~MapDirect(fbadr, PS*1024*10, fbadr + UserPage) THEN  (* map frame buffer  direct *)
 		Trace.String("map direct failed at fbadr"); Trace.Address(fbadr); Trace.Ln;
 	END; 
-	*)
 
 END InitPages;
 
@@ -3653,15 +3649,17 @@ PROCEDURE {NOPAF, FIXED(0100000H)} FirstAddress;
 ;	JMP DWORD 100000H - 1000H + Skip
 ;Skip:
 *)
-CODE{SYSTEM.i386}
-	; save arguments passed by bootloader
-	MOV bootFlag, EAX
-	MOV initRegs0,ESI
-	MOV initRegs1, ECX
-	
-	MOV fbadr, EDI
-	MOV fbInfoPtr, EDX
-
+BEGIN
+	CODE{SYSTEM.i386}
+		; save arguments passed by bootloader
+		MOV bootFlag, EAX
+		MOV initRegs0,ESI
+		MOV initRegs1, ECX
+		
+		MOV fbadr, EDI
+		MOV fbInfoPtr, EDX
+	END;
+	Init;
 END FirstAddress;
 
 (* empty section allocated at end of bootfile *)

+ 8 - 5
source/Generic.I386.Machine.Mod

@@ -3640,11 +3640,14 @@ PROCEDURE {NOPAF, FIXED(0100000H)} FirstAddress;
 ;	JMP DWORD 100000H - 1000H + Skip
 ;Skip:
 *)
-CODE{SYSTEM.i386}
-	; save arguments passed by bootloader
-	MOV bootFlag, EAX
-	MOV initRegs0,ESI
-	MOV initRegs1, EDI
+BEGIN (* no PAF --> no variables !! *)
+	CODE{SYSTEM.i386}
+		; save arguments passed by bootloader
+		MOV bootFlag, EAX
+		MOV initRegs0,ESI
+		MOV initRegs1, EDI
+	END; 
+	Init; (* call initializer as first action of the kernel *)
 END FirstAddress;
 
 (* empty section allocated at end of bootfile *)

+ 0 - 1
source/StartConsole.Mod

@@ -6,7 +6,6 @@ VAR fbadr: ADDRESS;
 	
 	PROCEDURE {INITIAL} First ;
 	BEGIN
-		Machine.Init;
 		Trace.String("first ? "); Trace.Ln; 
 		Trace.Address(Machine.fbadr);  Trace.Ln;
 		Machine.MapPhysical(Machine.fbadr, 	1024*768*4, fbadr);