首先必須明確bootloader的機器碼和kernel的機器碼要一致,kernel才能被引導。
1.位置
linux核心的機器碼在:arch\arm/tools/mach-types
u-boot的機器碼是在:include\asm-arm/mach-types.h
只要兩者保持一致便可,所以可以任意修改其中之一。
例如:
$vimarch/arm/mach-s3c2440/mach-smdk2440.c
178 machine_start(s3c2440 , "smdk2440")
179
180
.phys_io
= s3c2410_pa_uart,
181
.io_pg_offst
= (((u32)s3c24xx_va_uart) >> 18) & 0xfffc,
182
.boot_params
= s3c2410_sdram_pa + 0x100,
183184
.init_irq
= s3c24xx_init_irq,
185
.map_io
= smdk2440_map_io,
186
.init_machine
= smdk2440_machine_init,
187
.timer
= &s3c24xx_timer,
188 machine_end
修改機器碼,使之與bootloader的機器碼相同
這裡使用的是u-boot
$vi include/asm-arm/mach-types.h
377 #define mach_type_s3c2440
168
bootloader和bootstrap的區別
bootloader和bootstrap的區別 在 embedded linux primer 上看到的,其實還有一些分歧和不精確的地方,比如bootstrap 和bootstrap loader似乎在pc上還有區別,不過還是不影響理解了 又如redboot redhat embedded debu...
bootloader和bootstrap的區別
在 embedded linux primer 上看到的,其實還有一些分歧和不精確的地方,比如bootstrap 和bootstrap loader似乎在pc上還有區別,不過還是不影響理解了 又如redboot redhat embedded debug and bootstrap 本質是乙個boo...
關於BSP,BIOS,和bootloader區別
bsp是板級支援包,是介於主機板硬體和作業系統之間的一層,應該說是屬於作業系統的一部分,主要目的是為了支援作業系統,使之能夠更好的執行於硬體主機板。bsp是相對於作業系統而言的,不同的作業系統對應於不同定義形式的bsp,例如vxworks的bsp和linux的bsp相對於某一cpu來說儘管實現的功能...