Re: [請益] 關於 OS porting

看板LinuxDev作者 (...)時間13年前 (2011/03/12 21:32), 編輯推噓7(7039)
留言46則, 8人參與, 最新討論串2/3 (看更多)
※ 引述《green0924 (hmm...)》之銘言: :  不好意思,因為在別的板問不到,所以轉貼在這裡,要是有違板規 : 的話,小的會自d,感謝~:) : 請問.. : 1. OS Porting 的工作內容是做些什麼?(Linux) a. 取得cpu 廠商的sample code來更改 b. 針對自家SOC所擁有的特性抽離出 方便IC改朝換代後更改 c. 自家IC的kernel mode driver是否也要抽離出 <Ex: network, interrupt, timer, display, graphics...etc> d. 瞭解整個開機的過程 e. 瞭解linux scheduler <純嘴砲 當年我也沒去看> f. 記憶體使用規劃檔案 避免重新build kernel h. driver model, library 的使用 :  2. 須要事先學習的東西又有哪些? cpu spec <register sets,bus architecture, interrupts, memory mapping, control registers....> soc datasheet 周邊相關的事物 scope, LA, PC tool's waveform analysis.. make file 修改, link scripts 與開機的sections, scripts的修改 performance tuning... : 3. 使用的程式語言又是..? 一般是C, 但出問題時會用到 asm, 而且asm 與CPU架構有關 最好瞭解 方便知道怎麼操控以及瞭解CPU的狀態 :  4. 軟體出身的去做會很辛苦嗎?還是說硬體出身的來做好些? 這本來就是軟體的工作 : 5. 這工作以後的發展..? 其實都可以 既然懂了OS運作原理 那要懂ap frameworks 或者一些standards 並非太難的 :  小的之前做的是 driver porting 的工作,最近收到這樣的職 : 缺信件,感覺比寫 driver 又再更深入了..不知道會不會差很 : 大? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.56.89

03/12 23:09, , 1F
哇~肅然起敬!但不知board bring-up又包含哪些?可否告知
03/12 23:09, 1F

03/13 07:32, , 2F
現在應該不太需要對CPU的部份再porting了吧
03/13 07:32, 2F

03/13 07:35, , 3F
關於第五點, 說起來簡單, 其實真的porting過後不懂OS的人
03/13 07:35, 3F

03/13 07:35, , 4F
也是有的, 以Linux來說填好那些function pointer以後
03/13 07:35, 4F

03/13 07:36, , 5F
核心怎麼運作那些function 其實才是最有價值的部份
03/13 07:36, 5F

03/13 07:37, , 6F
通常搞定好那些硬體溝通的部份就累個大半天了
03/13 07:37, 6F

03/13 07:45, , 7F
以我感覺, 要走軟體就走再上層一點的軟體, 要硬體就去寫
03/13 07:45, 7F

03/13 07:45, , 8F
rtl code, 在這中間硬不硬軟不軟的, 最是辛苦...
03/13 07:45, 8F

03/13 09:07, , 9F
謝謝大大的解說,寫得好清楚~看起來真的要學得很精才有辦
03/13 09:07, 9F

03/13 09:08, , 10F
法做這樣的工作,Linux板上的高手果然很多~:)
03/13 09:08, 10F

03/13 09:09, , 11F
我們每次拿到新的板子或code base,都是先等高手porting
03/13 09:09, 11F

03/13 09:10, , 12F
好,並且bring up,搞好usb連線後,我們其他人才能夠開始寫
03/13 09:10, 12F

03/13 09:11, , 13F
driver,一直都覺得能夠做到那些真的很厲害,而且那些高手
03/13 09:11, 13F

03/13 09:12, , 14F
的薪資也比我們寫driver的人高一個等級的樣子(?)
03/13 09:12, 14F

03/13 09:18, , 15F
看到大大寫的那堆..難怪會做這個的能夠拿高薪,因為相對
03/13 09:18, 15F

03/13 09:19, , 16F
的要下的功夫也比其他人多很多~希望以後我也能有這樣的
03/13 09:19, 16F

03/13 09:19, , 17F
功力~:)
03/13 09:19, 17F

03/14 01:07, , 18F
to shaopin: multi core其實需要懂, 這是trend
03/14 01:07, 18F

03/14 01:08, , 19F
不然我也不會寫上這點
03/14 01:08, 19F

03/14 01:08, , 20F
to wgst88w: board bring up取決於版子狀況 最基本
03/14 01:08, 20F

03/14 01:09, , 21F
就是讓kernel能跑到shell, busybox等一些程式能跑正常
03/14 01:09, 21F

03/14 01:09, , 22F
其餘類似usb, flash, network , graphic driver
03/14 01:09, 22F

03/14 01:10, , 23F
video driver等嚴格來說也可算是board bringup一部份
03/14 01:10, 23F

03/14 01:11, , 24F
to shaopin: cpu還是需要懂得 因為你的CPU不見得
03/14 01:11, 24F

03/14 01:12, , 25F
支援所有的功能,台灣喜歡 reduce一些東西
03/14 01:12, 25F

03/14 11:26, , 26F
謝謝!因為我真的很想去徹底地了解這一塊;但被抽象卡住。
03/14 11:26, 26F

03/15 09:47, , 27F
好強 真想學到這樣
03/15 09:47, 27F

03/16 22:23, , 28F
講解的真是精辟,好強啊!!!
03/16 22:23, 28F

03/16 23:30, , 29F
OS porting如果你公司不是自己開新的一顆SoC的話...
03/16 23:30, 29F

03/16 23:31, , 30F
一般來說都會拿到一包BSP..這包BSP通常都可以讓Linux起來..
03/16 23:31, 30F

03/16 23:32, , 31F
起不來的話,就問賣你SoC那家公司FAE或RD
03/16 23:32, 31F

03/17 20:16, , 32F
樓上 就算是作SOC 也會拿到一包 cpu 廠的BSP的....
03/17 20:16, 32F

03/17 20:16, , 33F
但很遺憾這包CPU公司 並無法在你自家的SOC BOOT起來
03/17 20:16, 33F

03/17 20:17, , 34F
CPU公司也無法給你一包可以BOOT起來的KERNEL
03/17 20:17, 34F

03/17 20:18, , 35F
因為他不知道你的SOC是怎麼搞的.然後會有MAIL飛來飛去
03/17 20:18, 35F

03/17 20:21, , 36F
CPU公司給你的CODE也不見得都是對的.因為他只給你公版
03/17 20:21, 36F

03/17 20:22, , 37F
如果是他最新的CODE 你會發現裡面還有test code
03/17 20:22, 37F

03/17 20:23, , 38F
混在整個linux kernel內.. 不過台灣公司真的不是很好
03/17 20:23, 38F

03/17 20:23, , 39F
小弟前公司號稱Mxxx牌CPU出貨最多
03/17 20:23, 39F

03/17 20:24, , 40F
但Mxxx說他們沒有賺到太多這家合作公司的錢
03/17 20:24, 40F

03/17 20:53, , 41F
所以自家的ASIC還沒送出之前要拿公板搭FPGA驗自家的IP以及
03/17 20:53, 41F

03/17 20:55, , 42F
cpu廠給的相關IP,同時修改kernel相關的Code以及DD,等沒問
03/17 20:55, 42F

03/17 20:56, , 43F
題再送出去tape out,理論上回來就應該會動了(理論上啦XD)
03/17 20:56, 43F

03/17 21:02, , 44F
像linux還可以事後改的還好,有些boot code直接放在ASIC裡
03/17 21:02, 44F

03/17 21:03, , 45F
萬一有大bug模擬又沒跑到的話,那一次tape out基本上就廢了
03/17 21:03, 45F

03/18 03:20, , 46F
樓上正解
03/18 03:20, 46F
文章代碼(AID): #1DUtNhL6 (LinuxDev)
討論串 (同標題文章)
文章代碼(AID): #1DUtNhL6 (LinuxDev)