mirror of
				https://git.proxmox.com/git/grub2
				synced 2025-10-26 05:38:09 +00:00 
			
		
		
		
	 766f7d0809
			
		
	
	
		766f7d0809
		
	
	
	
	
		
			
			* grub-core/kern/i386/coreboot/init.c (grub_machine_init): Use _edata and _start. * grub-core/kern/i386/coreboot/startup.S: Move multiboot header after the small code. It moves it only by few bytes but simplifies the code. * grub-core/kern/i386/pc/init.c (grub_machine_init): Use _edata and _start. * grub-core/kern/i386/pc/startup.S: Use _edata and _start. (grub_kernel_image_size): Removed. * grub-core/kern/i386/qemu/startup.S: Use _edata and _start. (grub_kernel_image_size): Removed. [APPLE_CC]: Remove apple compiler support. i386-qemu port can't be compiled with Apple toolchain. * grub-core/kern/sparc64/ieee1275/crt0.S: Remove leftover fields. * include/grub/i386/pc/kernel.h (grub_kernel_image_size): Removed. * include/grub/i386/qemu/kernel.h (grub_kernel_image_size): Removed. (grub_total_module_size): Likewise. * include/grub/offsets.h (GRUB_KERNEL_I386_PC_KERNEL_IMAGE_SIZE): Removed. (GRUB_KERNEL_I386_PC_COMPRESSED_SIZE): Put it lower. (GRUB_KERNEL_I386_PC_INSTALL_DOS_PART): Likewise. (GRUB_KERNEL_I386_PC_INSTALL_BSD_PART): Likewise. (GRUB_KERNEL_I386_PC_REED_SOLOMON_REDUNDANCY): Likewise. (GRUB_KERNEL_I386_QEMU_KERNEL_IMAGE_SIZE): Removed. (GRUB_KERNEL_SPARC64_IEEE1275_KERNEL_IMAGE_SIZE): Likewise. (GRUB_KERNEL_SPARC64_IEEE1275_COMPRESSED_SIZE): Likewise. * include/grub/sparc64/ieee1275/kernel.h (grub_kernel_image_size): Removed. (grub_total_module_size): Removed. * util/grub-mkimage.c (image_target_desc): Remove image_size. (image_targets): Likewise. Set .compressed_size to no field on sparc. (generate_image): Remove kernel_image_size handling.
		
			
				
	
	
		
			79 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /*
 | |
|  *  GRUB  --  GRand Unified Bootloader
 | |
|  *  Copyright (C) 1999,2000,2001,2002,2003,2005,2006,2007,2008,2009 Free Software Foundation, Inc.
 | |
|  *
 | |
|  *  GRUB 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, either version 3 of the License, or
 | |
|  *  (at your option) any later version.
 | |
|  *
 | |
|  *  GRUB is distributed in the hope that it will be useful,
 | |
|  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  *  GNU General Public License for more details.
 | |
|  *
 | |
|  *  You should have received a copy of the GNU General Public License
 | |
|  *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
 | |
|  */
 | |
| 
 | |
| #include <config.h>
 | |
| #include <grub/symbol.h>
 | |
| 
 | |
| #include <grub/i386/pc/memory.h>
 | |
| #include <grub/machine/memory.h>
 | |
| #include <grub/machine/kernel.h>
 | |
| 
 | |
| 	.text
 | |
| 	.code32
 | |
| 	.globl _start
 | |
| _start:
 | |
| 	jmp	codestart
 | |
| 
 | |
| 	. = _start + GRUB_KERNEL_I386_QEMU_CORE_ENTRY_ADDR
 | |
| VARIABLE(grub_core_entry_addr)
 | |
| 	.long	0
 | |
| 
 | |
| codestart:
 | |
| 	/* Relocate to low memory.  First we figure out our location.
 | |
| 	   We will derive the rom start address from it.  */
 | |
| 	call	1f
 | |
| 1:	popl	%esi
 | |
| 
 | |
| 	/* Rom size is a multiple of 64 kiB.  With this we get the
 | |
| 	   value of `grub_core_entry_addr' in %esi.  */
 | |
| 	xorw	%si, %si
 | |
| 
 | |
| 	movl    $(_edata - _start), %ecx
 | |
| 	movl	$_start, %edi
 | |
| 	cld
 | |
| 	rep
 | |
| 	movsb
 | |
| 	ljmp	$GRUB_MEMORY_MACHINE_PROT_MODE_CSEG, $1f
 | |
| 1:
 | |
| 
 | |
| 	/* clean out the bss */
 | |
| 	movl	$BSS_START_SYMBOL, %edi
 | |
| 
 | |
| 	/* compute the bss length */
 | |
| 	movl	$END_SYMBOL, %ecx
 | |
| 	subl	%edi, %ecx
 | |
| 		
 | |
| 	/* clean out */
 | |
| 	xorl	%eax, %eax
 | |
| 	cld
 | |
| 	rep
 | |
| 	stosb
 | |
| 
 | |
| 	/*
 | |
| 	 *  Call the start of main body of C code.
 | |
| 	 */
 | |
| 	call	EXT_C(grub_main)
 | |
| 
 | |
| 	/* This should never happen.  */
 | |
| 	cli
 | |
| 1:	
 | |
| 	hlt
 | |
| 	jmp 1b
 | |
| 
 | |
| #include "../realmode.S"
 |