博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微视linux 根文件系统之二 bootloader(以uboot为例)的准备
阅读量:4070 次
发布时间:2019-05-25

本文共 1274 字,大约阅读时间需要 4 分钟。

初始化linux内核镜像结构

static int bootm_start(cmd_tbl_t *cmdtp, int flag, int argc,		       char * const argv[]){	memset((void *)&images, 0, sizeof(images));	images.verify = env_get_yesno("verify");	boot_start_lmb(&images);	bootstage_mark_name(BOOTSTAGE_ID_BOOTM_START, "bootm_start");	images.state = BOOTM_STATE_START;	return 0;}

读取内核镜像头部,获取os和initrd基地址和大小

static int bootm_find_os(cmd_tbl_t *cmdtp, int flag, int argc,			 char * const argv[]){	/* get kernel image header, start address and length */	os_hdr = boot_get_kernel(cmdtp, flag, argc, argv,			&images, &images.os.image_start, &images.os.image_len);				}

修正上一步获取的initrd基地址

int boot_ramdisk_high(struct lmb *lmb, ulong rd_data, ulong rd_len,		  ulong *initrd_start, ulong *initrd_end){	*initrd_start = (ulong)lmb_alloc_base(lmb, rd_len, 0x1000, initrd_high);		//挪到新的地址	memmove_wd((void *)*initrd_start, (void *)rd_data, rd_len, CHUNKSZ);	return 0;}

将initrd地址保存在设备树,将来用于内核解析

int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end){		err = fdt_setprop_uxx(fdt, nodeoffset, "linux,initrd-start",			      (uint64_t)initrd_start, is_u64);	err = fdt_setprop_uxx(fdt, nodeoffset, "linux,initrd-end",			      (uint64_t)initrd_end, is_u64);}

ramdisk与 initrd、initramfs的关系

https://blog.csdn.net/findstr/article/details/6990801

你可能感兴趣的文章
hd printer lexmark / dazifuyin / dayin / fuyin
查看>>
OS + Unix IBM Aix basic / topas / nmon / filemon / vmstat / iostat / sysstat/sar
查看>>
monitorServer nagios / cacti / tivoli / zabbix / SaltStack
查看>>
my ReadMap subway / metro / map / ditie / gaotie / traffic / jiaotong
查看>>
OS + Linux DNS Server Bind
查看>>
web test flow
查看>>
web test LoadRunner SAP / java / Java Vuser / web_set_max_html_param_len
查看>>
OS + UNIX AIX command
查看>>
OS + UNIX AIX performance
查看>>
OS + UNIX AIX Tools
查看>>
my ReadBook_liutongjingjixue / circulation economics
查看>>
my ReadBook_wangluoyingxiaoyucehua / network marketing / wangluoyingxiao
查看>>
db base database
查看>>
Spring2.5+MINA2搭建Socket Server
查看>>
jcharts画线图,饼图和柱状图
查看>>
监控服务器端口,Down掉会自动重启,并发送邮件 Linux Shell
查看>>
Git提交错误:RPC failed; result=22, HTTP code = 411
查看>>
Druid使用ConfigFilter
查看>>
Elicpse使用技巧-打开选中文件文件夹或者包的当前目录
查看>>
eclips 运行项目内存不足的解决方案
查看>>