|
@@ -2,11 +2,10 @@
|
2
|
2
|
#include "stddef.h"
|
3
|
3
|
#include "registers.h"
|
4
|
4
|
#include "string.h"
|
5
|
|
-#include "hooks.h"
|
6
|
5
|
#include "init.h"
|
7
|
6
|
#include "main.h"
|
8
|
|
-#include "relocate.h"
|
9
|
7
|
#include "etherboot.h"
|
|
8
|
+#include "hooks.h"
|
10
|
9
|
|
11
|
10
|
/* Symbols defined by the linker */
|
12
|
11
|
extern char _bss[], _ebss[];
|
|
@@ -19,15 +18,9 @@ extern char _bss[], _ebss[];
|
19
|
18
|
|
20
|
19
|
/*
|
21
|
20
|
* arch_initialise(): perform any required initialisation such as
|
22
|
|
- * setting up the console device and relocating to high memory. Note
|
23
|
|
- * that if we relocate to high memory and the prefix is in base
|
24
|
|
- * memory, then we will need to install a copy of librm in base
|
25
|
|
- * memory. librm's reset function takes care of this.
|
|
21
|
+ * setting up the console device and relocating to high memory.
|
26
|
22
|
*
|
27
|
23
|
*/
|
28
|
|
-
|
29
|
|
-#include "librm.h"
|
30
|
|
-
|
31
|
24
|
void arch_initialise ( struct i386_all_regs *regs __unused ) {
|
32
|
25
|
/* Zero the BSS */
|
33
|
26
|
memset ( _bss, 0, _ebss - _bss );
|
|
@@ -35,27 +28,6 @@ void arch_initialise ( struct i386_all_regs *regs __unused ) {
|
35
|
28
|
/* Call all registered initialisation functions.
|
36
|
29
|
*/
|
37
|
30
|
call_init_fns ();
|
38
|
|
-
|
39
|
|
- /* Relocate to high memory. (This is a no-op under
|
40
|
|
- * -DKEEP_IT_REAL.)
|
41
|
|
- */
|
42
|
|
- relocate();
|
43
|
|
-
|
44
|
|
- /* Call all registered reset functions. Note that if librm is
|
45
|
|
- * included, it is the reset function that will install a
|
46
|
|
- * fresh copy of librm in base memory. It follows from this
|
47
|
|
- * that (a) librm must be first in the reset list and (b) you
|
48
|
|
- * cannot call console output functions between relocate() and
|
49
|
|
- * call_reset_fns(), because real-mode calls will crash the
|
50
|
|
- * machine.
|
51
|
|
- */
|
52
|
|
- call_reset_fns();
|
53
|
|
-
|
54
|
|
- printf ( "init finished\n" );
|
55
|
|
-
|
56
|
|
- regs->es = virt_to_phys ( installed_librm ) >> 4;
|
57
|
|
-
|
58
|
|
- __asm__ ( "xchgw %bx, %bx" );
|
59
|
31
|
}
|
60
|
32
|
|
61
|
33
|
/*
|