Linux kernel 2.6.24 Porting 雜記.

最近將某個 Device Porting 從 2.6.16 Porting 上 2.6.24, 記錄一下碰到的問題.

1. Network Driver

當有這樣的訊息時
# ifconfig eth0 up
SIOCSIFFLAGS : invalid agument

我碰到的狀況是, MAC Address 必需要在 probe 時先行 initial 完成.
若是沒有完成, ifconfig 就會出現這樣的錯誤訊息, 原因仍然不明.
我的做法就是加一行
memcpy(dev->dev_addr , addr, 6); 這樣就可以了.

2.6.24 的 NAPI Interface 改過了, 上比對一下 2.6.23 和 2.6.24 的 Code 就可以知道改了什麼地方.
netif_poll_* 的 interface 改名了以外, NAPI hook 的 _poll function 在傳入參數和結構上有小小的修正

2.6.24 修改了 NAPI 的呼叫法, 對我這邊比較複雜的 Switch Driver 也應該修正一下.

2. PCI
pci_find_device 要改用 pci_get_device. 這個 function 還很早就改名了,
只是在 porting 這一版的時候, 多了一個選項
[ ] Enable deprecated pci_find_* API.
如果不想開就不用改了.

3. CPU
2.6.24 CPU proc.info 結構和2.6.16 有一點點不一樣, 如果直接放上 2.6.24 則 CPU Info 會錯誤,
這時要修改 mm/CPU-proc.S , 附上部份的 patch, 增加一個 word 大小, 這樣就可以顯示正常了.

PMD_BIT4 | \
PMD_SECT_AP_WRITE | \
PMD_SECT_AP_READ
+ .long PMD_TYPE_SECT | \
+ PMD_SECT_AP_WRITE | \
+ PMD_SECT_AP_READ

4. Interrupt.
原來 SA_INTERRUPT/SA_SHIRQ 都改叫 IRQF_SHARED, 事實上, 這一組定義己經完全換掉了
詳情請見 include\linux\Interrupt.h

5. DMA
pci_free_consistent 被 dma_free_coherent 取代
pci_alloc_consistent(..); 被 dma_alloc_coherent(.., GFP_KERNEL); 取代, 後面要多加一個參數.
consistent_sync 被 dma_cache_maint 取代.
算是小改….

On this day..

Comments

comments

Related Posts
  1. Using Mozilla Firefox Mozilla Firefox 2.0.0.14 on Windows Windows XP

    嗨 Rich 你好:

    我是傳識資訊的Mountain, 很高興有機會和你聯繫, 看到你部落格的資料發現你對Linux有很多的經驗, 很想和你交個朋友, 所以和你聯繫

    我們公司–傳識資訊 ( http://www.fitpi.com ),是一家專業的教育訓練單位,也是ARM與MIPS在台所授權的 教育訓練中心,我們的定位是針對企業用戶提供所需的課程訓練,我們的專長在嵌入式產品,網路,及通信的教育訓練,所以會依據企業的課程需求,尋找適合的兼任講師。

    因我們在教育訓練有多年的經驗, 也訓練出不少嵌入式相關的學員, 若是你們有相關領域人員尋找的需求, 我們也可提供一些協助。 因為我們和很多技術人員接洽過, 所以很希望能善用這些人力資源,

    下列是我們目前所提供的課程, 提供給你作參考:
    http://www.fitpi.com.tw/products/emb_sys/index.html

    我們目前主要的課程領域是嵌入式Win ce, Linux及多媒體相關的課程, 假如你有合適的朋友也可以幫忙介紹,讓我們共同為資訊產業素質的提升盡一份心力。

    謝謝你

    期盼與你交朋友的Mountain
    如有任何問題歡迎來電( 0930-037436 ), MSN: mountain@fitpi.com 或以e-mail告知,

  2. Using Mozilla Firefox Mozilla Firefox 3.0.7 on Windows Windows XP

    請教長輩一個問題,如果不用 napi而是自己用tasklet去schedule isr, 效能會比較好嗎?因為看到有些driver不走napi卻自己做schedule isr

    • Using Mozilla Firefox Mozilla Firefox 3.0.7 on Windows Windows XP

      你應該碰到的是 Wireless driver 吧.

      就我的角度來看, NAPT 和 tasklet 效率應該差不多.

      至於 Wireless 為什麼不用 NAPI, 我想應該是相容性問題.

  3. Using Opera Opera 9.64 on Windows Windows XP

    我碰到的是 SoC 的 ethernet/switch driver. (AR231x), 今天的 Talk 會稍微提到。不過之後就沒有空繼續弄了。

  4. Newer New API | Cash's Blog - pingback on 2013/07/15 at 11:35 下午

Reply to 匿名訪客 ¬
Cancel reply


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Trackbacks and Pingbacks: