aboutsummaryrefslogtreecommitdiff
path: root/src/arch/i386/init/crt0_romcc_epilogue.inc
blob: 9476607f1e1b2beecacf3cdbe406f5f9a9feb089 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* 
 * Copyright 2002 Eric Biederman
 *
 * This file is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; version 2 of the License.
 */

	/* clear boot_complete flag */
	xorl	%ebp, %ebp
__main:
	post_code(0x11)
	cld			/* clear direction flag */
	
	movl	%ebp, %esi

	/* For now: use CONFIG_RAMBASE + 1MB - 64K (counting downwards) as stack. This
	 * makes sure that we stay completely within the 1M-64K of memory that we
	 * preserve for suspend/resume.
	 */

#ifndef HIGH_MEMORY_SAVE
#warning Need a central place for HIGH_MEMORY_SAVE
#define HIGH_MEMORY_SAVE ( (1024 - 64) * 1024 )
#endif
	movl $(CONFIG_RAMBASE + HIGH_MEMORY_SAVE), %esp
	movl	%esp, %ebp
	pushl %esi
	call copy_and_run

.Lhlt:	
	post_code(0xee)
	hlt
	jmp	.Lhlt