openbmc 开发三(ast2500)适配u-boot/kernel

1.codebase

1.1 文档

  • 1.基础文档:SDK_User_Guide_v08.05.pdf

1.2 代码

  • openbmc代码:
$ git clone https://github.com/AspeedTech-BMC/openbmc
$ git checkout v08.05
  • 编译
# . setup ast2500-default
# bitbake obmc-phosphor-image

2.适配

2.1 初始版本

初始版本烧录进去后,可以看到BMCuboot中来回重启,没有办法进入到kernel中。如下图所示:
在这里插入图片描述
可以通过如下命令查看哪一个watchdog被启用了。

# md 0x1e78500c 1
1e78500c: 00000010                               ....
# md 0x1e78502c 1   //bit1表示启用
1e78502c: 00000093                               ....
# md 0x1e78504c 1
1e78504c: 00000010                               ....

可以确认到,watchdog2被启用了。

uboot下禁用watchdog2:

# mw 0x1e78502c 0x10   //设置
# md 0x1e78502c  1     //查看
1e78502c: 00000010                               ....

启动kernel:

# boot

可以看到成功启动:
在这里插入图片描述

2.2 修改u-boot代码

使用命令:

$ devtool modify u-boot

下载源代码。

uboot/home/wityuan/Desktop/aspeed/openbmc/build/ast2500-default/workspace/sources/u-boot-aspeed-sdk/arch/arm/mach-aspeed/ast2500/board_common.c的函数board_add_ram_info()添加代码:

	{
		unsigned long value = 0;
        //disable watchdog
        *((volatile unsigned long *)(0x1e78502c)) = 0x10;
		value = *((volatile unsigned long *)(0x1e78502c));
        printf("\nwatchdog stop: 0x%08x \n", value);
	}

如此,BMC能正常启动并进入系统。系统用户名与密码:

用户名: root
密码: 0penBmc

在这里插入图片描述

2.3 修改linux-aspeed代码

2.3.1 支持ncsi网络:

硬件结构:
在这里插入图片描述

在这里插入图片描述

修改文件:/home/wityuan/Desktop/aspeed/openbmc/build/ast2500-default/workspace/sources/linux-aspeed/arch/arm/boot/dts/aspeed-ast2500-evb.dts

&mac0 {
	status = "okay";
	use-ncsi;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
};

其中:use-ncsi;是新增内容。

  • 修改前,串口日志

在这里插入图片描述

  • 修改后,串口日志:

在这里插入图片描述
可以通过网络访问BMC:
在这里插入图片描述
可以看到,能访问BMC KVM:
在这里插入图片描述

2.4 修改分区

查看当前的分区大小,可以看到:

在这里插入图片描述
实际代码的配置也是按照32 Mbytes大小配置的。可以在文件:meta-aspeed-sdk/meta-ast2500-sdk/conf/machine/ast2500-default.conf中找到配置:

# Overwrite flash layout
FLASH_SIZE = "32768"
FLASH_UBOOT_OFFSET = "0"
FLASH_KERNEL_OFFSET = "1024"
FLASH_ROFS_OFFSET = "6144"
FLASH_RWFS_OFFSET = "29952"
RWFS_SIZE = "2883584"

实际使用的flash大小为64Mbytes大小的,需要修改配置:

# Overwrite flash layout
FLASH_SIZE = "65535"
FLASH_UBOOT_OFFSET = "0"
FLASH_KERNEL_OFFSET = "1024"
FLASH_ROFS_OFFSET = "10240"
FLASH_RWFS_OFFSET = "47104"
RWFS_SIZE = "18874368"

分布图为:
在这里插入图片描述

另外,需要修改build/ast2500-default/workspace/sources/linux-aspeed/arch/arm/boot/dts/aspeed-ast2500-evb.dts中的空间布局:

&fmc {
	status = "okay";
	flash@0 {
		status = "okay";
		m25p,fast-read;
		label = "bmc";
		spi-max-frequency = <50000000>;
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			u-boot@0 {
				reg = <0x0 0xf0000>; // 960KB
				label = "u-boot";
			};

			u-boot-env@f0000 {
				reg = <0xf0000 0x10000>; // 64KB
				label = "u-boot-env";
			};

			kernel@100000 {
				reg = <0x100000 0x900000>; // 9MB
				label = "kernel";
			};

			rofs@600000 {
				reg = <0xa00000 0x2400000>; // 36MB
				label = "rofs";
			};

			rwfs@1d40000 {
				reg = <0x2e00000 0x1200000>; //18MB
				label = "rwfs";
			};
		};
	};
};

修改完成后,编译烧录,可以看到布局:

在这里插入图片描述

2.5 支持nfs

在实际做开发的过程中,挂在调试是必不可少的内容,能大大减少开发时间。可以使用如下命令进行修改linux kernel配置,支持nfs

$ bitbake  -c menuconfig linux-aspeed

修改完成后,保存文件,文件名称为:.config.new
编译镜像,即可使用如下命令挂载主机文件系统,实现调试的目的。

mount -o nolock -t nfs serverip:serverfolder bmcdir

可以执行命令:

$ bitbake -c  savedefconfig linux-aspeed

保存配置文件,可以看到保存到的文件路径为:
/home/wityuan/Desktop/aspeed/openbmc/build/ast2500-default/tmp/work/ast2500_default-openbmc-linux-gnueabi/linux-aspeed/5.15.0+git999-r0/linux-aspeed-5.15.0+git999/defconfig

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
AST2500A2-GP规格书是指AST2500A2-GP芯片的技术规格和功能描述文档。AST2500A2-GP芯片是一款集成了多种功能和特性的专用芯片。它主要用于服务器、工作站和网络设备等高性能计算领域。 AST2500A2-GP芯片具有以下主要功能和特性: 1. 处理器支持:AST2500A2-GP芯片采用高性能的ARM Cortex-A7处理器,能够在低功耗下高效执行任务。 2. 图形处理:芯片内集成的图形处理器能够支持高分辨率的视频输出,提供流畅的图像显示效果。 3. 视频编码解码:AST2500A2-GP芯片支持多种视频编码和解码格式,能够实现高质量的视频处理和传输。 4. 存储接口:芯片内置多个存储接口,包括SATA、NVMe和USB等,能够方便地连接各种存储设备,提供高速的数据传输和存储能力。 5. 网络接口:AST2500A2-GP芯片支持多个千兆以太网接口,可以实现高速的数据传输和网络连接。 6. 安全性:芯片内置了多种安全功能,包括硬件加密和数据隔离等,能够保护数据的安全性和完整性。 AST2500A2-GP规格书详细描述了芯片的物理尺寸、引脚定义、电气参数、功耗特性、工作温度范围等技术信息。此外,规格书还包括芯片的软件支持和开发工具,以及外部接口和引脚连线示意图等详细资料。 AST2500A2-GP是一款功能强大、性能稳定的专用芯片,广泛应用于网络服务器、数据存储和网络安全等领域。它能够满足高性能计算和存储需求,为企业和用户提供可靠的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值