系列文章目录

https://blog.csdn.net/weixin_44177847/article/details/154943373?spm=1011.2124.3001.6209



前言

前面介绍了基于Cix P1芯片的整体Bring Up需要事项,以及BU过程中GPIO合入配置。本文中主要深入的介绍BU过程中Uefi的模组配置规则。


一、有哪些SOC 模组需要配置

首先客户已经提供了模组的mapping信息,比如PCIE、USB、I2C等,和前一章节对应的PCIE<–>port对应关系一致,X4是port1对应的是SSD的CLK, 前面配置好了pio reset pin,还有USB, PD, EC等需要根据实际需要来决定是都要Enable。

SOC Func
SOC Mapping

二、Uefi Enable USB/GMAC

1.以USB为例

代码如下(示例):SOC持10个USB Port

  • 4个USB TypeC Port: USBC0 supports dual-role mode, USBC1/USBC2/USBC3 are host mode only
  • 2个USB3.2 Gen2 TypeA Port: Support 10Gbps port and dual role mode
  • 4个USB2.0 Port: Host mode only

参考平台提供了如下USB 配置项,每个配置项的意义如下:

参数 电路图管脚 描述
PcdUsbCDrdControl0Enable USB0 or USBC0 使能或者关闭 USBC Drd Control, TRUE:使能 FALSE:关闭
PcdUsbCDrdControl0DataRole USB0 or USBC0 设置USBC Drd Control 作为host controller 还是device FALSE:host, TRUE:device
PcdUsbCDrdControl0MaxSpeed USB0 or USBC0 设置USBC Drd Control 最大速度 3:high, 2:full, 4:super, 5:super plus
  # USBC0
  gCixTokenSpaceGuid.PcdUsbCDrdControl0Enable|TRUE
  gCixTokenSpaceGuid.PcdUsbCDrdControl0DataRole|TRUE
  # USBC1
  ... ...

2.DTS enable usb

以USB C0为例,其对应的GPIO pin就是CPIO036
usbc0对应gpio036

{ 36,  INPUT,             INOUT_VALUE_DEFAULT, INTERRUPT_ENABLE_DEFAULT, INTERRUPT_TYPE_DEFAULT }, // 

DTS中需要配置对应的GPIO Function:

&sky1_usbss_0 {
	sof_clk_freq = <8000000>;
	lpm_clk_freq = <32000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usb0>;
	oc-gpio = <&s5_gpio0 25 IRQ_TYPE_LEVEL_LOW>;
	status = "okay";
};
	
pinctrl_usb0: pinctrl_usb0_oc_grp {
	sky1,pins = <
		CIX_PAD_GPIO036_FUNC_GPIO036 (PULL_UP|DS_LEVEL4)
	>;
};

总结

以上就是今天要讲的内容,本文仅仅简单介绍了usb为例的UEFI gpio map,以及DTS中配置对应的GPIO Func。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐