hisi3559AV100开发之系统移植
1、概述
开发环境 :ubuntu18.04,
hisi开发包版本《Hi3559AV100R001C02SPC020;
开发板型号为"EVM3559AV_A2"。
2、hisi平台uboot移植
1、适用于hisi3559平台的uboot生成需要两个步骤:a、生成uboot,make -j4;b、根据hisi脚本配置相关硬件寄存器。参考服务器代码
Hi3559AV100_SDK_V2.0.2.0/osdrv/tools/pc/uboot_tools/make.sh
其中Hi3559AV100-DMEB_8L_T-DDR4_2664M_2GB_16bitx4-A73_1608M.xlsm为配置文件
2、DDR配置:修改配置文件.xlsm,此处只对ddrc进行了配置,修改了行的寻址bit位宽
DMC1_CFG_RNKVOL 0x9060 0x542
具体对于DDR的配置请参考DDR相关内存说明。
3、网络配置:针对不同的gmac_phy芯片,需要对代码修改:a、修改phy_addr;b、修正延时。uboot中海思平台提供了相关的网络代码
u-boot-2016.11/drivers/net/higmacv300\higmac.c
中添加相关代码,包括 FLP延迟和CLK_TIMING延迟;
u-boot-2016.11/include/common.h
打开DEBUG ;
4、默认模式为RGMII,如适配只支持RMII 或MII的phy芯片,更改include/configs/hi3559av100.h中CONFIG_HIGMAC_PHY0_INTERFACE_MODE的值适配不同模式。
5、可在hi3559av100.h中添加 CONFIG_ETHADDR、CONFIG_IPADDR等相关默认。
3、kernel移植
hisi提供的内核中不支持KSZ9031RNX phy芯片。需根据实际情况配置网络phy芯片;
1、配置phy_addr:通过设备树配置,具体路劲
linux-4.9.y_multi-core/arch/arm64/boot/dts/hisilicon/hi3559av100-demb.dts
中&mdio;
2、phy修复时序:相关代码
linux-4.9.y_multi-core/drivers/net/ethernet/hisilicon/higmac
中phy_register_fixups函数下添加 修正函数,进行CLK_TIMING和FLP修正;
PHY_ID通过u-boot下mii命令获取获取。
如:
mii dump 1 2
(001c) -- PHY ID 1 register --
mii dump 1 3
(c916) -- PHY ID 2 register --