EFI Driver初始化過程

來源:互聯網
上載者:User

EFI Driver再被LoadImage()載入進記憶體之前,是存在於儲存空間中的,例如:系統ROMs,Flash晶片,PCI option ROM,或者網路伺服器中。

(1)LoadImage()

LoadImage()為Boot Service,通過調用LoadImage()將driver載入進記憶體,同時該driver會產生自己的Image Handle,並且在Image Handle下安裝EFI_LOADED_IMAGE_PROTOCOL,注意此時driver只是當做Image處理的,還不能明確它就是driver

(2)StartImage()

通過StartImage()啟動driver,driver會在Image Handle上安裝其他的Protocol,如果為EFI Driver Model的driver,那麼會安裝EFI_DRIVER_BINDING_PROTOCOL,這時Driver Image才真正被當做Driver來處理

(3)ConnectController()

LoadImage()和StartImage()之後,driver會等待被ConnectController()調用去串連到某個Controller。其實這時在記憶體中已經Load了很多的Driver都在等待被connect到controller,這時ConnectController()會以輪詢方式去調用每個Driver Handle中的EFI_DRIVER_BINDING_PROTOCOL.Supported(),如果返回EFI_SUCCESS,那麼該driver就會被connect到controller上了。

 

對於匯流排驅動和裝置驅動,在Connect到Controller的時候所做的動作是不一樣的。例如PCI匯流排驅動串連到PCI主橋之後,它會為每個PCI Device建立Child Device Handle,而PCI裝置驅動不能建立新的Handle,它只是在Device Handle上安裝Protocol Interface。

(4)匯流排驅動

匯流排驅動會為在該匯流排上發現的子裝置建立新的Device Handle,並且會在Child Device Handle上安裝一些Protocol Interface。該操作是通過EFI_DRIVER_BINDING_PROTOCOL.Start()來完成的。

 

(5)裝置驅動

裝置驅動不允許創造任何的新的Child Device Handle,它只是在現存的裝置Handle上安裝其他的協議介面。大多數常見裝置驅動負責把I/O抽象掛到由匯流排驅動所創造的裝置Device Handle上,該I/O抽象可以被用於啟動EFI相容的作業系統。

(6)下面通過EFI_DRIVER_BINDING_PROTOCOL的代碼來看一下。

typedef struct _EFI_DRIVER_BINDING_PROTOCOL {EFI_DRIVER_BINDING_PROTOCOL_SUPPORTED Supported;EFI_DRIVER_BINDING_PROTOCOL_START Start;EFI_DRIVER_BINDING_PROTOCOL_STOP Stop;UINT32 Version;EFI_HANDLE ImageHandle;EFI_HANDLE DriverBindingHandle;} EFI_DRIVER_BINDING_PROTOCOL;

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.