BMC相關

BMC基本概念介紹:

BMC:基板管理控制器 (Baseboard Management Controller)

  BMC(Baseboard Management Controller,基板管理控制器)支持行業標準的 IPMI 規範。該規範描述了已經內置到主板上的管理功能。這些功能包括:本地和遠程診斷、控制檯支持、配置管理、硬件管理和故障排除。

  BMC 提供下列功能:

  與 IPMI 1.0 的兼容性

  用於風扇轉速監視的轉速計輸入

  用於風扇轉速控制的脈衝寬度調節器輸出

  用於前面板按鈕和開關的按鈕輸入

  與服務器控制檯端口進行多路傳輸的一個串行端口

  遠程訪問和 ICMB(Intelligent Chassis Management Bus,智能機箱管理總線)支持

  三個 I2C 主端口和備用端口(其中一個端口用於 智能機箱管理總線 )

  LPC(Low Pin Count,低針計數)總線提供對三種 KCS(Keyboard Controller Style,鍵盤控制器方式)和 BT(One-Block Transfer,單塊傳輸)接口的訪問

  32 位 ARM7 處理器

  160 針 LQFP(Low Profile Flat Pack,薄形扁平封裝)

 

 

NC-SI介紹

實現原理:

https://blog.csdn.net/fivedoumi/article/details/50073025

基本概念介紹:

什麼是共享網口方式? 
  這裏要簡單地提到NC-SI(Network Controller – Sideband Interface)技術,即網絡控制器邊帶接口技術。這一技術是用來實現BMC芯片和以太網控制器之間信息傳遞的,它使得BMC芯片能夠像使用獨立管理網口那樣使用主板上的網絡接口。以下是共享訪問模式的實現結構圖: 

簡單理解: 
  BMC其實是一個單片機,它有自己獨立的IO設備,而獨立網口就是其中之一。將BMC芯片和網絡控制器互聯,通過NC-SI技術使得BMC芯片能夠使用網絡控制器上的接口。

爲何要使用共享網口訪問管理控制器? 
  1、減少物料成本:共享訪問模式能夠爲單機節省一根網線; 
  2、減少人力成本:如果業務網只需要接一根網線,共享方案可以減少一半的佈線人力支出; 
  3、減少交換機投入:獨立網口會多佔用一個交換機端口,增加交換機採購數量,使用共享模式減少了這部分的支出和額外的交換機運維成本;

 

Openbmc的u-boot和openbmc開發相關:

openbmc/u-boot

https://github.com/openbmc/u-boot

openbmc/openbmc

https://github.com/openbmc/openbmc

 

OpenBMC cheatsheet

This document is intended to provide a set of recipes for common OpenBMC customisation tasks, without having to know the full yocto build process.

Using a local kernel build

The kernel recipe is in:

 meta-phosphor/common/recipes-kernel/linux/linux-obmc_X.Y.bb

To use a local git tree, change the SRC_URI to a git:// URL without a hostname. For example:

SRC_URI = "git:///home/jk/devel/linux;protocol=git;branch=${KBRANCH}"

The SRCREV variable can be used to set an explicit git commit. The default (${AUTOREV}) will use the latest commit in KBRANCH.

Building a specific machine configuration

If the system you want to build contains different machine configurations:

meta-<layer>/meta-<system>/conf/machine/machineA.conf
meta-<layer>/meta-<system>/conf/machine/machineB.conf

You can specify the machine configuration you want to build by setting the MACHINE environment variable.

$ cd openbmc
$ TEMPLATECONF=meta-<layer>/meta-<system>/conf . openbmc-env
$ export MACHINE="machineB"
$ bitbake obmc-phosphor-image

Building the OpenBMC SDK

Looking for a way to compile your programs for 'ARM' but you happen to be running on a 'PPC' or 'x86' system? You can build the sdk receive a fakeroot environment.

$ bitbake -c populate_sdk obmc-phosphor-image
$ ./tmp/deploy/sdk/openbmc-phosphor-glibc-x86_64-obmc-phosphor-image-armv5e-toolchain-2.1.sh

Follow the prompts. After it has been installed the default to setup your env will be similar to this command

. /opt/openbmc-phosphor/2.1/environment-setup-armv5e-openbmc-linux-gnueabi

Rebuilds & Reconfiguration

You can reconfigure your build by removing the build/conf dir:

rm -rf build/conf

and running openbmc-env again (possibly with TEMPLATECONF set).

 

 

 

參考資料:

https://www.jianshu.com/p/12139db32e49

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章