⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bootm.c

📁 uboot详细解读可用启动引导LINUX2.6内核
💻 C
字号:
/* * U-boot - bootm.c - misc boot helper functions * * Copyright (c) 2005-2008 Analog Devices Inc. * * (C) Copyright 2000-2004 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. * * Licensed under the GPL-2 or later. */#include <common.h>#include <command.h>#include <image.h>#include <asm/blackfin.h>extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);#ifdef SHARED_RESOURCESextern void swap_to(int device_id);#endifstatic char *make_command_line(void){	char *dest = (char *)CMD_LINE_ADDR;	char *bootargs = getenv("bootargs");	if (bootargs == NULL)		return NULL;	strncpy(dest, bootargs, 0x1000);	dest[0xfff] = 0;	return dest;}void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],		    bootm_headers_t *images){	int	(*appl) (char *cmdline);	char	*cmdline;	ulong	ep = 0;#ifdef SHARED_RESOURCES	swap_to(FLASH);#endif	/* find kernel entry point */	if (images->legacy_hdr_valid) {		ep = image_get_ep (&images->legacy_hdr_os_copy);#if defined(CONFIG_FIT)	} else if (images->fit_uname_os) {		int ret = fit_image_get_entry (images->fit_hdr_os,				images->fit_noffset_os, &ep);		if (ret) {			puts ("Can't get entry point property!\n");			goto error;		}#endif	} else {		puts ("Could not find kernel entry point!\n");		goto error;	}	appl = (int (*)(char *))ep;	printf("Starting Kernel at = %x\n", appl);	cmdline = make_command_line();	icache_disable();	dcache_disable();	(*appl) (cmdline);	/* does not return */	return; error:	do_reset (cmdtp, flag, argc, argv);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -