u-boot-brain/arch/x86/include/asm/zimage.h
Gabe Black 233dbc1194 x86: Add support for booting Linux using the 32 bit boot protocol
This change conditionally modifies the zboot command so that it can use the
32 bit boot protocol. This is necessary because the 16 bit realmode entry
point assumes that it can call BIOS services which neither coreboot nor
u-boot provide.

Signed-off-by: Gabe Black <gabeblack@chromium.org>
2011-12-19 13:26:16 +11:00

59 lines
1.8 KiB
C

/*
* (C) Copyright 2002
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program 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 2 of
* the License, or (at your option) any later version.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
#ifndef _ASM_ZIMAGE_H_
#define _ASM_ZIMAGE_H_
#include <asm/e820.h>
/* linux i386 zImage/bzImage header. Offsets relative to
* the start of the image */
#define HEAP_FLAG 0x80
#define BIG_KERNEL_FLAG 0x01
/* magic numbers */
#define KERNEL_MAGIC 0xaa55
#define KERNEL_V2_MAGIC 0x53726448
#define COMMAND_LINE_MAGIC 0xA33F
/* limits */
#define BZIMAGE_MAX_SIZE 15*1024*1024 /* 15MB */
#define ZIMAGE_MAX_SIZE 512*1024 /* 512k */
#define SETUP_MAX_SIZE 32768
#define SETUP_START_OFFSET 0x200
#define BZIMAGE_LOAD_ADDR 0x100000
#define ZIMAGE_LOAD_ADDR 0x10000
/* Implementation defined function to install an e820 map. */
unsigned install_e820_map(unsigned max_entries, struct e820entry *);
void *load_zimage(char *image, unsigned long kernel_size,
unsigned long initrd_addr, unsigned long initrd_size,
int auto_boot, void **load_address);
void boot_zimage(void *setup_base, void *load_address);
#endif