看板 LinuxDev 關於我們 聯絡資訊
※ 引述《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
wgst88w:哇~肅然起敬!但不知board bring-up又包含哪些?可否告知 03/12 23:09
shaopin:現在應該不太需要對CPU的部份再porting了吧 03/13 07:32
shaopin:關於第五點, 說起來簡單, 其實真的porting過後不懂OS的人 03/13 07:35
shaopin:也是有的, 以Linux來說填好那些function pointer以後 03/13 07:35
shaopin:核心怎麼運作那些function 其實才是最有價值的部份 03/13 07:36
shaopin:通常搞定好那些硬體溝通的部份就累個大半天了 03/13 07:37
shaopin:以我感覺, 要走軟體就走再上層一點的軟體, 要硬體就去寫 03/13 07:45
shaopin:rtl code, 在這中間硬不硬軟不軟的, 最是辛苦... 03/13 07:45
green0924:謝謝大大的解說,寫得好清楚~看起來真的要學得很精才有辦 03/13 09:07
green0924:法做這樣的工作,Linux板上的高手果然很多~:) 03/13 09:08
green0924:我們每次拿到新的板子或code base,都是先等高手porting 03/13 09:09
green0924:好,並且bring up,搞好usb連線後,我們其他人才能夠開始寫 03/13 09:10
green0924:driver,一直都覺得能夠做到那些真的很厲害,而且那些高手 03/13 09:11
green0924:的薪資也比我們寫driver的人高一個等級的樣子(?) 03/13 09:12
green0924:看到大大寫的那堆..難怪會做這個的能夠拿高薪,因為相對 03/13 09:18
green0924:的要下的功夫也比其他人多很多~希望以後我也能有這樣的 03/13 09:19
green0924:功力~:) 03/13 09:19
clampsakura:to shaopin: multi core其實需要懂, 這是trend 03/14 01:07
clampsakura:不然我也不會寫上這點 03/14 01:08
clampsakura:to wgst88w: board bring up取決於版子狀況 最基本 03/14 01:08
clampsakura:就是讓kernel能跑到shell, busybox等一些程式能跑正常 03/14 01:09
clampsakura:其餘類似usb, flash, network , graphic driver 03/14 01:09
clampsakura:video driver等嚴格來說也可算是board bringup一部份 03/14 01:10
clampsakura:to shaopin: cpu還是需要懂得 因為你的CPU不見得 03/14 01:11
clampsakura:支援所有的功能,台灣喜歡 reduce一些東西 03/14 01:12
wgst88w:謝謝!因為我真的很想去徹底地了解這一塊;但被抽象卡住。 03/14 11:26
fuha:好強 真想學到這樣 03/15 09:47
goldie:講解的真是精辟,好強啊!!! 03/16 22:23
i386:OS porting如果你公司不是自己開新的一顆SoC的話... 03/16 23:30
i386:一般來說都會拿到一包BSP..這包BSP通常都可以讓Linux起來.. 03/16 23:31
i386:起不來的話,就問賣你SoC那家公司FAE或RD 03/16 23:32
clampsakura:樓上 就算是作SOC 也會拿到一包 cpu 廠的BSP的.... 03/17 20:16
clampsakura:但很遺憾這包CPU公司 並無法在你自家的SOC BOOT起來 03/17 20:16
clampsakura:CPU公司也無法給你一包可以BOOT起來的KERNEL 03/17 20:17
clampsakura:因為他不知道你的SOC是怎麼搞的.然後會有MAIL飛來飛去 03/17 20:18
clampsakura:CPU公司給你的CODE也不見得都是對的.因為他只給你公版 03/17 20:21
clampsakura:如果是他最新的CODE 你會發現裡面還有test code 03/17 20:22
clampsakura:混在整個linux kernel內.. 不過台灣公司真的不是很好 03/17 20:23
clampsakura:小弟前公司號稱Mxxx牌CPU出貨最多 03/17 20:23
clampsakura:但Mxxx說他們沒有賺到太多這家合作公司的錢 03/17 20:24
askacis:所以自家的ASIC還沒送出之前要拿公板搭FPGA驗自家的IP以及 03/17 20:53
askacis:cpu廠給的相關IP,同時修改kernel相關的Code以及DD,等沒問 03/17 20:55
askacis:題再送出去tape out,理論上回來就應該會動了(理論上啦XD) 03/17 20:56
askacis:像linux還可以事後改的還好,有些boot code直接放在ASIC裡 03/17 21:02
askacis:萬一有大bug模擬又沒跑到的話,那一次tape out基本上就廢了 03/17 21:03
clampsakura:樓上正解 03/18 03:20