搜索了代码控制风扇的地方有三处
1、hboot1b
\drivers\firmware\bios\HwPkg\Xloader\products\as310p\HBOOT1_b\main\main.c,函数FanSpeedConfig()
\drivers\firmware\bios\HwPkg\Xloader\products\as310p\HBOOT1_b\include\platform.h,
#define PAD_PWM0 (0U)
2、boot2
\drivers\firmware\bios\HwPkg\UEFI\Hi\as310p\Library\MPConfigLib\MPConfigLib.c
第41行 (VOID)MmioWrite32(AO_IO_MUX_PWM0, 0x2)
3、内核
\Ascend310P-source\aquarius\src\drivers\dev_prod\pwm\pwm_drv.c
\Ascend310P-source\aquarius\src\drivers\dev_prod\pwm\pwm_drv.h,
#define IOMUX_PWM_MODE_310P 0 // IO复用使用PWM模式时,对应的寄存器应该配置的值
#define PWM_PHY_REG_SIZE_310P 0x1000
设备起来后是全速运转的,我们现在想控制上电后风扇风速,但是一直发现不能控制,看了下这三处的代码,怀疑是hboot2的代码初始化把PWM的模式设置错了,是不是 (VOID)MmioWrite32(AO_IO_MUX_PWM0, 0x0)这样修改就行了
搜索了代码控制风扇的地方有三处
1、hboot1b
\drivers\firmware\bios\HwPkg\Xloader\products\as310p\HBOOT1_b\main\main.c,函数FanSpeedConfig()
\drivers\firmware\bios\HwPkg\Xloader\products\as310p\HBOOT1_b\include\platform.h,
#define PAD_PWM0 (0U)
2、boot2
\drivers\firmware\bios\HwPkg\UEFI\Hi\as310p\Library\MPConfigLib\MPConfigLib.c
第41行 (VOID)MmioWrite32(AO_IO_MUX_PWM0, 0x2)
3、内核
\Ascend310P-source\aquarius\src\drivers\dev_prod\pwm\pwm_drv.c
\Ascend310P-source\aquarius\src\drivers\dev_prod\pwm\pwm_drv.h,
#define IOMUX_PWM_MODE_310P 0 // IO复用使用PWM模式时,对应的寄存器应该配置的值
#define PWM_PHY_REG_SIZE_310P 0x1000
设备起来后是全速运转的,我们现在想控制上电后风扇风速,但是一直发现不能控制,看了下这三处的代码,怀疑是hboot2的代码初始化把PWM的模式设置错了,是不是 (VOID)MmioWrite32(AO_IO_MUX_PWM0, 0x0)这样修改就行了