2012年10月11日 星期四

再度開啟AM335x 專案......

經過幾個月的等待  ,  TI 是出了 RTC-only mode 的 code , 不過....
我感覺是派幾個工程師 為我們需求寫的 , 並且確定在 下一版 official release 中不會有 rtc-mode 的 code.

所以表示 , 我們又是白老鼠 ?? 幫 TI 驗證這段 rtc-mode 的 code @@

真是有點無力.......

rtc-mode 主要在RTC block 內有 三個 register (RTC_SCRATCH0 ~ 3 )  是給使用者存東西的 , 在這 3 個 register 中放入 resume function address & 一些判別的資料 .

修改 u-boot , 在 reset 時候這些暫存器內容如果正確 , 直接回  DDR resume address function. 就可以叫醒 CPU 了 .

當然 suspend 的時候直接控制 PMIC , 將 CPU 電源都切除 (RTC block 除外) , 這樣就會省許多電力.

當 user 要 resume 的時候 , 就將 CPU 所有電源打開,  並且發 reset  給 CPU  , CPU 由 ROM Code 開始跑.....

u-boot 檢查到CPU RTC 內的那三個 register 正確 , 就直接回 DDR resume function, 整個 system 就可以 resume 了.


說的簡單 , 實際上 困難重重 ,首先 要對一些暫存器 , 設定 PMIC 的 sleep mode .
光儲存必要暫存器的值 .... 就翻天了.....
那麼多暫存器....那都能了解 , 並且  clock domain , power domain 還有 M3 這樣多的東西, 等我弄懂....往生了..... @@

TI 給的 code 又超亂 (臨時 加上去  , 並且感覺手動測試一下就丟出來了 , 反正不是 official release ) ,  我要 patch 半天.... 才搞懂改了那些 .

不過 , 看 patch file , 修改我的 code , 難免有錯誤.....
debug 才是大問題 , 一切靠自己了 @@








沒有留言:

張貼留言