原创 MDM9x25 Flashless boot&IPC over HSIC

概述 以EXYNOS加MDM9x25爲例,連接示意圖如下: Exynos5433需要這幾個GPIO以及HSIC,給MDM9x25上電,下載MDM9x25的binary,efs同步以及MDM9x25出錯的時候的ramdump

原创 MDM9x25 Flashless boot(Power Manager)

設置的device tree和相關的platform初始化函數,主要設置HOST_WAKE, DEVICE_RDY, HOST_RDY 三個GPIO和設置 HOST_WAKE和DEVICE_RDY的中斷函數。並設置PM和HSIC

原创 Linux內核架構:動態頻率調節系統CPUFreq

概述 在Linux中,內核提供了一套框架模型來完成CPU頻率的動態調節,以達到省電的目的。 這就是所謂的CPUFreq系統。 1. sysfs接口 我們先從CPUFreq提供的sysfs接口入手,直觀地看看它提供了那些功能。

原创 Linux驅動基礎:device tree

Bootloader設置 msm平臺爲例,在bootloader代碼中會根據當前ddr開始的地址,按照一定的offset定義了kernel開始的地址,ramdisk開始地址以及TAG開始的地址。其中kernel代碼開始的地址和ra

原创 Linux內核相關論壇問題回覆(1)

http://bbs.csdn.net/topics/391048758?page=1#post-399361268 有人在論壇提了下面的問題,比較典型。 最近在調試SPI子系統時發現如下錯誤: [ 3777.005000]

原创 Camera HAL(Camera Preview)

看看Android系統,高通camera hal(camera3)當中camera preview數據是怎麼從kernel一層一層傳遞,最終發給SurfaceView的。 高通的Camera HAL的module在Qualco

原创 64位ARMv8的芯片-reserved memory-mmu

基於64位ARMv8的一些AP芯片,支持32位和64位代碼之間無縫運行(比如有芯片在用CortexA53 OCTA core)。 以之前做過的項目爲例,說明64位芯片的寄存器,以及說明在64爲模式下的內存地址表示和整個Linux系

原创 Linux內存管理: mmap詳解

mmap系統調用 mmap系統調用 mmap將一個文件或者其它對象映射進內存。文件被映射到多個頁上,如果文件的大小不是所有頁的大小之和,最後一個頁不被使用的空間將會清零。munmap執行相反的操作,刪除特定地址區域的對象映射。

原创 Linux : CPU Idle

CPU Idle狀態可以分爲很多種Idle狀態,在CPU準備進入idle的時候在很多狀態中進行選擇以達到省電的目的。 CPU Idle相關的軟件架構可以分以下幾種: CPUIDLE core:CPUIdle的內核驅動,在kern

原创 Linux 定時器的引擎:clock_event_device

http://blog.csdn.net/droidphone/article/details/8017604 早期的內核版本中,進程的調度基於一個稱之爲tick的時鐘滴答,通常使用時鐘中斷來定時地產生tick信號,每次tick定

原创 Linux內核同步:RCU

http://www.ibm.com/developerworks/cn/linux/l-rcu/index.html 一、 引言 衆所周知,爲了保護共享數據,需要一些同步機制,如自旋鎖(spinlock),讀寫鎖(rwloc

原创 Linux:時間的維護者:timekeeper

http://blog.csdn.net/droidphone/article/details/7989566 本系列文章的前兩節討論了用於計時的時鐘源:clocksource,以及內核內部時間的一些表示方法,但是對於真實的用戶來

原创 Linux內核架構: workqueue

http://lwn.net/Articles/403891/ linux內核中斷處理的工作隊列workqueue機制 工作隊列(workqueue)是另外一種將工作推後執行的形式。工作隊列可以把工作推後,交由一個內核線程去執行,

原创 Linux Malloc分析-從用戶空間到內核空間

本文介紹malloc的實現及其malloc在進行堆擴展操作,並分析了虛擬地址到物理地址是如何實現映射關係。 ordeder原創,原文鏈接: http://blog.csdn.net/ordeder/article/details

原创 Linux內核同步:同步規則和說明

什麼是同步 像下面的代碼段裏邊一樣,有一個棧。一個系統調用的函數從棧裏邊讀,一箇中斷函數保存數據到棧裏邊。 這時候,這個棧的數據就是一個需要保護的數據。 在多進程系統中,有以下幾種情況下會出現race condition。(這