AST2500 NC-SI功能调试

1、背景介绍

目前在项目中使用到AST2500作为板上BMC进行管理,其中有个功能是NC-SI,所谓NC-SI可以用下面一张图表示。

上图中AST2500可通过NC-SI连接网卡,从而连接到外网,更详细的连线如下

在我们这个项目中,网卡使用的是Intel的I350。注意:网卡的固件一定要支持NC-SI功能。
2、AST2500功能配置

使用AMI提供的MDS开发工具,可以很方便的进行AST2500的设置,只需要打开PRJ文件进行设置即可。在进行NC-SI功能配置时注意下面几点。

    NCSI记得配置为手动模式
    Default channel id需要根据硬件设计判断连接的是网卡的哪个channel
    Default interface name默认使用NC-SI功能的网卡,一般为eth0

在调试的过程中发现一个BUG,就是NC-SI调整为手动模式后串口会无打印,发现是uartmirroring功能导致的,把该功能关掉就行了。

如果不知道b)中的default channel填什么,可以在操作系统启动之后进行手动修改验证,如下图所示,可以在/confs/ncsicfg.conf中配置channel,然后执行/usr/local/bin目录下的ncsicfg让ncsi的配置生效。修改channel值,直到ast2500能ping通外网电脑,然后将正确的channel值填入PRJ中,重新编译镜像就行了。


3、MAC地址配置

默认eth0的mac地址是不配的,如果想在编译镜像时就配好地址,可以修改下面文件,注意路径是在source目录下,用root权限修改

修改完后rebuild工程,会出现CONFIG_ETHADDR重复定义错误

此时要去修改common.cfg文件,将其中的CONFIG_ETHADDR设置为一样的即可。

然后继续build即可,这样编出来的镜像设置mac地址就成功了。当然,还有一种方法就是启动时在uboot中使用setenv和saveenv方式设置mac地址,这种方式比较简单。
4、其他

当网络通了以后配置好AST2500的IP地址,就可以在浏览器中输入该地址登录到ast2500进行板级检测和控制了。用户名密码都是admin。

也可以通过网络进行rom.ima远程更新了。

关于NC-SI的详细描述可以参看这篇文档:https://wenku.baidu.com/view/b53ce6550b4c2e3f57276383.html
 

### AST2600 NC-SI 接口概述 AST2600 是一款广泛应用于服务器管理和嵌入式系统的片上系统(SoC),其内置的NC-SI (Network Controller Sideband Interface) 功能允许通过侧带信号线实现网络控制器与基板管理控制器(BMC)之间的通信[^1]。 ### NC-SI 接口的主要特性 - **集成度高**:支持在同一物理连接器内传输多种协议的数据流。 - **低功耗设计**:优化了待机模式下的能耗表现。 - **易于部署**:简化了硬件布线复杂度,降低了成本并提高了可靠性。 - **安全性增强**:提供安全启动选项和支持加密算法加速引擎等功能。 ### 使用方法简介 对于基于 AST2600 的平台而言,在配置和使用 NC-SI 接口前需完成如下准备工作: #### 配置 BIOS/UEFI 设置 确保主板BIOS/UEFI已正确设置以启用 NC-SI 支持。通常情况下,默认出厂设定已经激活此功能;如果未开启,则按照制造商提供的指导手册调整相应参数。 #### 安装驱动程序 安装适用于目标操作系统环境下的最新版 NC-SI 驱动软件包。这些资源可以从芯片组供应商官方网站获取下载链接,并遵循官方发布的安装指南执行操作。 #### 编程接口调用实例 以下是 Python 中利用 pyghmi 库来访问 BMC 设备并通过 NC-SI 进行交互的一个简单例子: ```python from pyghmi.ipmi import command def get_bmc_info(host, username, password): cmd = command.Command(bmc=host, userid=username, password=password) info = cmd.get_device_id() return info if __name__ == "__main__": host = 'your.bmc.host' user = 'admin' pwd = 'password' try: result = get_bmc_info(host, user, pwd) print(result) except Exception as e: print(f"Error occurred: {e}") ``` 这段代码展示了如何建立与远程BMC设备的安全连接以及查询基本设备信息的方法。实际应用中可能还需要处理更多细节问题,比如错误重试机制、日志记录等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值