MDM9607 SE1801A安全芯片调试记录
目录
1 芯片介绍.... 4
2 运行环境.... 4
3 硬件原理图.... 5
4 调试修改步骤.... 6
a. 6
b. 7
c. 9
d. 9
5 芯片测试.... 10
6 参考文档.... 11
1 芯片介绍
vSE1801A安全芯片是广东为辰信息科技有限公司针对智能汽车网络安全需求定制研发的安全专用芯片,通过CC EAL4+认证,具有安全性高、支持密码算法丰富、功耗低等特点。经国家密码管理局批准,配用SM2、SM3、SM4等商用密码算法,同时支持DES、3DES、AES、RSA、ECC、SHA等国际常用密码算法。
vSE1801A安全芯片内置安全协处理器,主要提供密钥生成、数字签名、签名验证、数据加解密等密码服务,并提供安全存储空间用于保存密钥及用户私有数据。
芯片COS系统符合GlobalPlatform、JavaCard等国际标准,具有完善的安全管理体系,密钥的生成、存储及管理符合国家密码管理局相关规范。
芯片CPU工作频率为40MHz,工作温度范围为-40~85摄氏度。
芯片封装:QFN 32PIN
硬件接口:SPI/IIC
2 运行环境
硬件环境:高通MDM9607
运行系统:linux kernel3.18
3 硬件原理图
SPI接口:
4 调试修改步骤
本芯片采用SPI接口可看做标准的spi slave设备
a 创建SPI master和 slave node DTS配置:(master部分一般配置好了不用修改)
..\kernel\arch\arm\boot\dts\qcom\mdm9607.dtsi
aliases {
……
/* spi device */
spi1 = &spi_1; /*suvine add for spi2*/
……
};
spi_1: spi@78b6000 { /* BLSP1 QUP1 */
compatible = "qcom,spi-qup-v2";
#address-cells = <1>;
#size-cells = <0>;
reg-names = "spi_physical", "spi_bam_physical";
reg = <0x78b6000 0x600>,
<0x7884000 0x2b000>;
interrupt-names = "spi_irq", "spi_bam_irq";
interrupts = <0 96 0>, <0 238 0>;
spi-max-frequency = <19200000>;
pinctrl-names = "spi_default", "spi_sleep";
pinctrl-0 = <&spi1_default &spi1_cs0_active>;
pinctrl-1 = <&spi1_sleep &spi1_cs0_sleep>;
clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>,
<&clock_gcc clk_gcc_blsp1_qup2_spi_apps_clk>;
clock-names = "iface_clk", "core_clk";
qcom,infinite-mode = <0>;
qcom,use-bam;
qcom,use-pinctrl;
qcom,ver-reg-exists;
qcom,bam-consumer-pipe-index = <14>;
qcom,bam-producer-pipe-index = <15>;
qcom,master-id = <86>;
status = "ok";
spidev@0{
status = "ok";
compatible= "vecentek,vSE1801A";
reg= <0>;
spi-max-frequency= <1000000>;
};
};
b 配置相应管脚
..\kernel\arch\arm\boot\dts\qcom\mdm9607-pinctrl.dtsi
&soc {
tlmm_pinmux: pinctrl@1000000 {
……//snip
spi1 {
spi1_default: spi1_default {
/* active state */
mux {
/* MOSI, MISO, CLK */
pins = "gpio4", "gpio5", "gpio7";
function = "blsp_spi2";
};
config {
pins = "gpio4", "gpio5", "gpio7";
drive-strength = <12>; /* 12 MA */
bias-disable = <0>; /* No PULL */
};
};
spi1_sleep: spi1_sleep {
/* suspended state */
mux {
/* MOSI, MISO, CLK */
pins = "gpio4", "gpio5", "gpio7";
function = "gpio";
};
config {
pins = "gpio4", "gpio5", "gpio7";
drive-strength = <2>; /* 2 MA */
bias-pull-down; /* PULL Down */
};
};
spi1_cs0_active: cs0_active {
/* CS */
mux {
pins = "gpio6";
function = "blsp_spi2";
};
config {
pins = "gpio6";
drive-strength = <2>;
bias-disable = <0>;
};
};
spi1_cs0_sleep: cs0_sleep {
/* CS */
mux {
pins = "gpio6";
function = "gpio";
};
config {
pins = "gpio6";
drive-strength = <2>;
bias-disable = <0>;
};
};
};
如果以上配置正确的话 SPI 总线会被注册在 /sys/class/spi_master/spi
c 使用kernel自带的spidev驱动
..\kernel\arch\arm\configs\mdm9607_defconfig:
……
CONFIG_SPI_SPIDEV=y
……
..\kernel\drivers\spi\spidev.c:
static const struct of_device_id spidev_dt_ids[] = {
{ .compatible = "rohm,dh2228fv", },
{ .compatible = "qcom,spi-msm-codec-slave", },
{ .compatible = "vecentek,vSE1801A", }, //对应DTS的compatible
{},
};
以上配置修改正确后可以看见spi slave设备节点
d 由于reset脚接在pmic的GPIO_04上,我们可以直接用qpnp-pin驱动
DTS配置mdm9607-mtp.dtsi:
……
&pm8019_gpios {
gpio@c300 { /* GPIO 4 */
qcom,mode = <1>; /* Digital output */
qcom,output-type = <1>; /* CMOS logic */
qcom,invert = <1>; /* Output high */
qcom,vin-sel = <0>; /* VPH_PWR */
qcom,src-sel = <0>; /* GPIO */
qcom,out-strength = <1>; /* Low drive strength */
qcom,master-en = <1>; /* Enable GPIO */
};
};
打开CONFIG_GPIO_QPNP_PIN_DEBUG宏就可控制reset脚了
..\kernel\arch\arm\configs\mdm9607_defconfig:
……
CONFIG_GPIO_QPNP_PIN_DEBUG=y
……
相应控制节点:
Echo 1 > invert 拉高;0 拉低
5 芯片测试
芯片厂商给了个自测程序代码,整合进我们的平台交缠编译生成可执行文件se_spi_test
执行se_spi_test后14s左右后正确结果会显示如下log,否则失败:
……
se_applet_version_get finish
SE get applet version surcess.
SNContent:
00010003
se_get_se_applet_version_self_test PASS.
6 参考文档
80-p1511-1b_f_mdm9x07_mdm8207_mdm9628_gpio_pin_assignment_spreadsheet.xlsm
80-nu767-1_h_linux_bam_low-speed_peripherals_configuration_and_debug_guide.pdf
mdm9x07_linux_pmic_gpio_and_mpp_software_configuration.pdf
MDM9607 SE1801A安全芯片调试记录相关推荐
- RK3568开发笔记-iSL1208 RTC时钟芯片调试记录
文章目录 目录 文章目录 前言 一.RTC部分原理图 二.设备树配置 三.内核配置 四.设备信息查看 五.RTC时间读写设置 总结 前言 实时时钟的缩写是RTC(Real_Time Clock).RT ...
- RN8209C单相电量计量芯片调试记录
芯片数据手册-简化版 调试功能是读取直流电池电压,出于这个需求,也就是要读取芯片的3路AD值,因为有效值是针对交流的,这点可以查看手册. 前提知道: 通信: 本次调试采用uart通信,rn8209c只 ...
- PIC芯片调试记录:配置字对程序调试和烧录后是否工作的影响,及部分应用总结
在实际应用中,出现过配置字不同,仿真程序能工作,但是下载到芯片后,程序不能运行的情况,后面修改相应的配置字后,程序下载后可以能正常运行.补充:后面在开发过程中,发现还是出现程序下载后不能运行,后面测量 ...
- KSZ8081RNB-PHY芯片调试记录
1 概述 选用的PHY型号为Micrel KSZ8081-RNB .该PHY与处理器MAC 控制器的Interface为RMII模式,对外的Media Interface为电口(RJ45).硬 ...
- TI DSP28377D芯片上基于UDS的BOOT调试记录
本次开发所用平台为TI的DSP芯片,型号TMS320F28377D.在开发过程中难点是芯片的驱动调试,下面记录在开发中的调试记录及问题点和解决方式. 首先本芯片在官方能够得到例程,但是未找到例程的完善 ...
- CAN控制器芯片MCP2510调试记录
CAN控制器芯片MCP2510调试记录 配置CAN内核选项 配置CAN相关的内核选项,将下面几项配置添加到defconfig中: kernel/arch/arm/configs/xxx_defconf ...
- ai算子是什么_肇观电子刷新端侧AI芯片性能记录并发布“5分钟部署”AI开发平台 - 企业资讯...
基于多年研发的CVKit™ NN IP的N1系列SoC芯片刷新了端侧AI芯片性能记录.领先的每TOPs处理帧数,实时数据流处理能力,支持高精度FP16神经网络模型直接无损部署,高性能的INT8网络支持 ...
- ADF4350调试记录及频点锁定
ADF4350调试记录及频点锁定 简介 宽带频率合成器,集成VCO 控制时序 调试记录 无法锁定 最开始,一直无法锁定,参考的官方例子程序,硬件外围电路也排查了好几遍,环路滤波带宽等设定,硬件软件来回 ...
- 【tm1650调试记录】
tm1650调试记录 阅读芯片手册 调试遇到的问题 1:数据的写入 2:数码管不亮 3:数码管调试模式亮,正常运行不亮 TM1650的应用补充--仅适用于LED驱动 亮度 片选信号DIG 配置顺序 代 ...
最新文章
- 手机下载Python_手机也能编程?盘点这6个可以用手机编程的App!快收藏
- System.Net.Dns.GetHostByAddress(string) 已经过时
- android不同机型上界面适配问题
- 【Scratch】青少年蓝桥杯_每日一题_7.01_正五边形组成的美丽春花
- unity发布android报错,Unity移动端入门 - Android那些事 /AAR包发布错误
- 距离向量算法_阿里北大:深度哈希算法最新综述
- linux日志不区分大小写,windows系统迁移到linux下,Nginx实现url请求不区分大小写...
- Centos6的VSFTP服务器配置使用教程
- android圆形头像 demo,Android图像处理之绘制圆形头像
- 某个网页一直不停刷新_利用浏览器做网页长截图
- 从此,懂一点CDMA
- eclipse测试java程序_java-同一项目中的Eclipse junit测试
- spring注入bean的三种方法
- vb.net的UI设计
- vmware安装笔记
- python syntax error_python提示Syntax Error报错解决教程
- 客户端监控要怎么做?
- Ubuntu和Windows双系统服务器互相切换的简单方案
- Tryton 相关软件简介及名字背后的神话
- Verilog-组合电路设计
热门文章
- 这些年我的不足(不够专注,不善于推迟满足感,阅读量不够……-无网不剩 http://t.cn/zOe1RPz)
- 程序猿的办公桌都长啥样?
- 国资优选—兰溪市金融控股投资有限公司思想工作会议召开
- Revo Uninstaller专业版
- 读取、回收和重用:使用 Excel、XML 和 Java 技术轻松搞定报告,第 2 部分
- RASP | 远程Java应用的RASP调试教程
- Google网盘 百度网盘文件互传-Multcloud
- Stream和方法引用
- 如何使用Easy-POI导入复杂表头的Excel报表(含源码级分析)
- mysql表的基础操作: Create,,Retrieve,Update,Delete(大量示例)