作者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/m.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