作者awaysu (阿伟苏)
看板LinuxDev
标题[问题] 请问树莓派RPI3的bootloader?
时间Tue Feb 6 15:01:51 2018
请教一下
我接触过的板子
里面都会有bootloader partition
最近在玩树莓派
我下载网路上的image更新到SD card後
我在SD card里面却找不到bootloader的file
它的bootloader是有另外烧在板子上吗?
没有的话 它是怎麽知道要读uEnv.txt来开到kernel?
感谢
--------------------------------------------------------
拍谢更新一下
因为手上除了RPI3之外还有Pine A64
看来RPI3的sd card是有bootcode.bin
而之前上续的档案结构是Pine A64
也就是Pine A64找不到boodloder partition or file
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.130.45.196
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1517900514.A.8C4.html
1F:推 filiaslayers: bootloader应该是在机器上吧?不然怎麽开机 02/06 15:51
我之前板子的都是存在nor or nand or emmc
2F:→ leolarrel: 树梅派的bootloader 不就是uboot 吗? 02/06 15:59
3F:→ hizuki: 你仔细看说明,是写到一个SD卡上一个规定位置上面去 02/06 16:24
4F:→ hizuki: 至於这个位置,是晶片固化好的位置,使用MMC设备时候都去 02/06 16:25
5F:→ hizuki: 读这个位置到SRAM中,然後整个bootloader会初始化记忆体 02/06 16:26
我没看到特别的位置
sd card就二个partition, 一个是放开机的档案包含kernel,另一个则是rootfs
6F:→ chuegou: 你以前的板子有跑os吗 02/06 20:05
有压
※ 编辑: awaysu (220.130.45.196), 02/07/2018 15:24:43
7F:→ leolarrel: 因为bootloader放在sd卡的区域,正好没有标在partition 02/08 08:57
8F:→ leolarrel: 区域里,所以你看partition自然看不到bootloader 02/08 08:58
9F:嘘 hizuki: 请先补充储存系统的基本常时吧,看看UEFI,BIOS的启动流程 02/10 08:55
10F:嘘 galic: 纯嘘楼上... 嵌入式平台你跟我谈UEFI? 02/10 14:27
11F:嘘 hizuki: UEFI在ARM平台上的使用你不知道吗?只是一个标准,让你好 02/11 11:04
12F:→ hizuki: 理解而已 02/11 11:04
13F:→ hizuki: 不然每个平台在load 1st bootloader的细节上差异都很大, 02/11 11:05
14F:→ hizuki: 你让人怎麽理解 02/11 11:05
15F:嘘 GaliTW: 要我再次强调「嵌入式」吗?有需要这麽复杂吗?标准又如何 02/11 11:16
16F:→ GaliTW: ?那是Intel跟小老弟们养的小圈圈。这又跟储存系统有何关 02/11 11:16
17F:→ GaliTW: 系?笑死 02/11 11:16
18F:→ GaliTW: 要理解开机流程不就看ARM跟Raspberry PI的Spec就好,在那 02/11 11:17
19F:→ GaliTW: 乱推荐东西,不要误导人啊 02/11 11:17
20F:→ GaliTW: 你就算读懂UEFI,对PI的启动程序一点帮助都没有 02/11 11:18
21F:嘘 GaliTW: 你自己都强调差异很大了,那不是更应该根据平台来决定该读 02/11 11:21
22F:→ GaliTW: 什麽资料吗? 02/11 11:21
23F:→ hizuki: 要理解存在差异必须知道一般作法。就拿取偏移来载loader来 02/11 15:19
24F:→ hizuki: 讲,这个是BIOS时代针对MS 分割表就存在的内容。另外现代A 02/11 15:20
25F:→ hizuki: RM晶片为了兼容GPT对读取位置也做了相应更改。这设计是一 02/11 15:20
26F:→ hizuki: 个过程而不是停留过去 02/11 15:20
27F:嘘 galic: 可是这篇是Raspberry Pi耶 你到底在说三小? 02/11 16:47
28F:→ galic: ARM兼容GPT不就是要打入UEFI圈圈 那是for 64bit Server应用 02/11 16:48
29F:→ galic: 的「策略」 不是UEFI就叫「一般作法」就是「走在前面」 02/11 16:48
30F:→ galic: 你要不要等到人家原生就走UEFI在来说你的笑话阿? 02/11 16:53
31F:嘘 hizuki: 要不要我给你举ARMv7的晶片,还停留在自己的世界不懂外界 02/12 07:49
32F:→ hizuki: 变化吗?无论如何本意上只是要说明这种期待方式和电脑无异 02/12 07:49
33F:→ hizuki: 不要觉得奇怪 02/12 07:49
34F:→ leolarrel: 赞成不要新手去搞懂什麽UEFI for ARM,那个太复杂了, 02/12 10:54
35F:推 smmoon: 有大大可以讲解pi的启动流程吗? 最近在学习中 感恩! 02/13 09:04
如我後来说的 我现在是在看PINE A64
开机流程可以参考
https://linux-sunxi.org/Pine64#Boot_sequence
https://linux-sunxi.org/BROM#A64
至於RPI的可参考
就是SD Card的bootcode.bin
https://raspberrypi.stackexchange.com/questions/10442/what-is-the-boot-sequence
另外回一下hizuki
我自己做嵌入式做过Wince, linux 到现在andoird
是还没有碰过用UEFI
可能我接触不够广
※ 编辑: awaysu (1.169.131.125), 02/13/2018 20:57:26
36F:推 explora26: 其实linaro有在几个平台上搞UEFI 02/15 07:57
37F:→ explora26: 可以参考Android官方支援的Hikey Board 02/15 07:58
38F:→ GaliTW: 除非你要用windows iot 不然现在搞UEFI根本自爽而已 02/17 00:10
39F:→ GaliTW: RPI的启动流程还比UEFI还屌 人家可是先用GPU开机的 还能吃 02/17 00:11
40F:→ GaliTW: EFI的Image 你根本不知道高通在里面搞了啥神奇的东西 02/17 00:12
41F:→ GaliTW: 你还在乱推新手去读ARM怎麽吃UEFI 真的不要让人笑死 02/17 00:13
42F:推 tjjh89017: ARM很自由der,u-boot也是很自由的,ODROID系列也是 02/21 00:48
43F:→ tjjh89017: uboot,但是他的uboot,是去读sd卡的first sector 02/21 00:49
44F:→ tjjh89017: 很类似IBM BIOS的玩法,而rpi2的uboot则是去读sd卡的 02/21 00:49
45F:→ tjjh89017: FAT找uENV.txt,然後吃kernel.img。然其他的uboot还有 02/21 00:50
46F:→ tjjh89017: 不同玩法。 02/21 00:50
47F:推 askacis: 基本上都是看SOC怎麽设计开机flow,FW跟着做而已 02/21 12:32
48F:→ hizuki: 多做点Google的项目再来嘴我吧。 02/24 15:09
49F:→ jiansu: arm通常用Uboot或是自己写的小bootloader 就够了,UFEI不 03/25 23:56
50F:→ jiansu: 常见,有些大厂确实用UFEI的 但是还不是主流的样子 03/25 23:56
51F:→ qwaszx771129: 的确在嵌入式上使用UEFI还不是主流。 08/28 18:24
52F:→ qwaszx771129: 推askacis,通常就看boot flow怎麽设计 fw跟着做。 08/28 18:25
53F:→ qwaszx771129: 扯到UEFI的确比较远一点。 08/28 18:26