14.OP-TEE OS启动(五)--driver_init和driver_init_late

   

  

初始化阶段完成了initcall1和initcall2段的代码执行之后,系统将执行initcall3和initcall4段中代码的执行,该部分主要完成一些驱动的初始化操作,包括串口,外围设备。在OP-TEE中,driver_init和driver_init_late定义的initcall3和initcall4段的基本如下:

  以hikey支持为例,执行initcall3段的代码是,将会初始化外围设备的启动操作,而该操作是通过执行peripherals_init函数来实现,该函数的内容如下:

static TEE_Result peripherals_init(void)
{
	vaddr_t pmussi_base = nsec_periph_base(PMUSSI_BASE);

	DMSG("enable LD021_1V8 source (pin 35) on LS connector\n");
	/*
	 * Mezzanine cards usually use this to source level shifters for
	 * UART, GPIO, SPI, I2C, etc so if not enabled, connected
	 * peripherals will not work either (during bootloader stage)
	 * until linux is booted.
	 */
	io_mask8(pmussi_base + PMUSSI_LDO21_REG_ADJ, PMUSSI_LDO21_REG_VL_1V8,
		PMUSSI_LDO21_REG_VL_MASK);
	write8(PMUSSI_ENA_LDO21, pmussi_base + PMUSSI_ENA_LDO17_22);

#ifdef CFG_SPI
	spi_init();
#endif
	return TEE_SUCCESS;
}

driver_init(peripherals_init);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值