当前位置: 首页 > news >正文

巴彦淖尔市网站制作响应式网站怎么写

巴彦淖尔市网站制作,响应式网站怎么写,提升学历被骗怎么投诉,青海个人旅游网站建设ATF BL1 UFS初始化分析 1 ATF的下载链接2 ATF BL1 UFS 初始化简易流程图3 ATF BL1 ufs初始化简单过程分析3.1 调用过程3.2 hikey960_ufs_init3.3 dw_ufs_init3.3 ufs_init 以海思hikey960为例来介绍#xff0c;简单介绍在ATF BL1阶段的初始化处理。 1 ATF的下载链接 https:/… ATF BL1 UFS初始化分析 1 ATF的下载链接2 ATF BL1 UFS 初始化简易流程图3 ATF BL1 ufs初始化简单过程分析3.1 调用过程3.2 hikey960_ufs_init3.3 dw_ufs_init3.3 ufs_init 以海思hikey960为例来介绍简单介绍在ATF BL1阶段的初始化处理。 1 ATF的下载链接 https://github.com/ARM-software/arm-trusted-firmware 可以通过下面的命令来下载ATF的代码或者通过打包下载的方式也可以。 git clone gitgithub.com:ARM-software/arm-trusted-firmware.git2 ATF BL1 UFS 初始化简易流程图 3 ATF BL1 ufs初始化简单过程分析 3.1 调用过程 以以海思hikey960为例来介绍ATF BL1 ufs 初始化的调用关系 | -- bl1_main -------- bl1_main.c| - bl1_platform_setup -------- plat/hisilicon/hikey960/hikey960_bl1_setup.c| - hikey960_ufs_init -------- plat/hisilicon/hikey960/hikey960_bl1_setup.c| - hikey960_ufs_reset -------- plat/hisilicon/hikey960/hikey960_bl1_setup.c| - dw_ufs_init -------- drivers/synopsys/ufs/dw_ufs.c| - ufs_init -------- drivers/synopsys/ufs/dw_ufs.c3.2 hikey960_ufs_init UFS_REG_BASE表示UFS 配置空间的基地址HIKEY960_UFS_DESC_BASE表示ufs 描述符的基地址HIKEY960_UFS_DESC_SIZE表示ufs描述符的大小(ufs_params.flags UFS_FLAGS_SKIPINIT) 0当前ufs驱动的flag如果是skipinit则先去做复位操作对于hikey960来说是不会参与该处理流程的。dw_ufs_init(ufs_params);dw ufs的初始化处理 static void hikey960_ufs_init(void) {dw_ufs_params_t ufs_params;memset(ufs_params, 0, sizeof(ufs_params));ufs_params.reg_base UFS_REG_BASE;ufs_params.desc_base HIKEY960_UFS_DESC_BASE; ufs_params.desc_size HIKEY960_UFS_DESC_SIZE;if ((ufs_params.flags UFS_FLAGS_SKIPINIT) 0)hikey960_ufs_reset();dw_ufs_init(ufs_params); }3.3 dw_ufs_init .phy_init ufs phy初始化的处理.phy_set_pwr_mode ufs phy 电源模式设置ufs_init(dw_ufs_ops, ufs_params); dw ufs以dw_ufs_ops作为初始化ops以及ufs_params配置参数去做对应的dw ufs初始化操作。 static const ufs_ops_t dw_ufs_ops {.phy_init dwufs_phy_init,.phy_set_pwr_mode dwufs_phy_set_pwr_mode, };int dw_ufs_init(dw_ufs_params_t *params) { ufs_params_t ufs_params;memset(ufs_params, 0, sizeof(ufs_params));ufs_params.reg_base params-reg_base;ufs_params.desc_base params-desc_base;ufs_params.desc_size params-desc_size;ufs_params.flags params-flags; ufs_init(dw_ufs_ops, ufs_params);return 0; }3.3 ufs_init nutrs (mmio_read_32(ufs_params.reg_base CAP) CAP_NUTRS_MASK) 1;读取CAP寄存器去获取UTP传输请求槽数量Number of UTP Transfer Request Slots (NUTRS)。当前在BL1阶段采用的是Legacy Single Doorbell mode。 Number of UTP Transfer Request Slots (NUTRS): For Legacy Single Doorbell mode, this indicates the number of slots provided by the UTP Transfer Request List. A minimum of 1 and maximum of 32 slots may be supported. UTP传输请求槽数 (NUTRS) 对于传统单门铃模式它表示UTP 传输请求列表提供的槽数量。可支持最少 1 个、最多 32 个插槽。 For MCQ mode, this field specifies how many active transfer tasks the Host HW controller is capable of managing in parallel. The minimum of 1 and maximum of 256 slots may be supported. 对于 MCQ 模式该字段指定主机硬件控制器能够并行管理的活动传输任务数量。最少可支持 1 个插槽最多可支持 256 个插槽。 ufshc_reset(ufs_params.reg_base); ufs 复位操作ops-phy_init(ufs_params); ufs phy初始化这个会调用在dw_ufs_init注册的ops的phy_init接口即dwufs_phy_initufshc_link_startup(ufs_params.reg_base);执行linkstartupufs_get_device_info(card);获取当前UFS设备的设备描述符ops-phy_set_pwr_mode(ufs_params);设置当前ufs的工作电源模式会调用到dw_ufs_init注册的opsphy_set_pwr_mode接口即dwufs_phy_set_pwr_mode函数 int ufs_init(const ufs_ops_t *ops, ufs_params_t *params) {int result;unsigned int data;uic_cmd_t cmd;struct ufs_dev_desc card {0};assert((params ! NULL) (params-reg_base ! 0) (params-desc_base ! 0) (params-desc_size UFS_DESC_SIZE));memcpy(ufs_params, params, sizeof(ufs_params_t));/* 0 means 1 slot */nutrs (mmio_read_32(ufs_params.reg_base CAP) CAP_NUTRS_MASK) 1;if (nutrs (ufs_params.desc_size / UFS_DESC_SIZE)) {nutrs ufs_params.desc_size / UFS_DESC_SIZE;}if (ufs_params.flags UFS_FLAGS_SKIPINIT) {mmio_write_32(ufs_params.reg_base UTRLBA,ufs_params.desc_base UINT32_MAX);mmio_write_32(ufs_params.reg_base UTRLBAU,(ufs_params.desc_base 32) UINT32_MAX);result ufshc_dme_get(0x1571, 0, data);assert(result 0);result ufshc_dme_get(0x41, 0, data);assert(result 0);if (data 1) {/* prepare to exit hibernate mode */memset(cmd, 0, sizeof(uic_cmd_t));cmd.op DME_HIBERNATE_EXIT; result ufshc_send_uic_cmd(ufs_params.reg_base,cmd);assert(result 0);data mmio_read_32(ufs_params.reg_base UCMDARG2);assert(data 0);do {data mmio_read_32(ufs_params.reg_base IS);} while ((data UFS_INT_UHXS) 0);mmio_write_32(ufs_params.reg_base IS, UFS_INT_UHXS);data mmio_read_32(ufs_params.reg_base HCS);assert((data HCS_UPMCRS_MASK) HCS_PWR_LOCAL);}result ufshc_dme_get(0x1568, 0, data);assert(result 0);assert((data 0) (data 3));} else {assert((ops ! NULL) (ops-phy_init ! NULL) (ops-phy_set_pwr_mode ! NULL));result ufshc_reset(ufs_params.reg_base);assert(result 0);ops-phy_init(ufs_params);result ufshc_link_startup(ufs_params.reg_base);assert(result 0);/* enable all interrupts */data UFS_INT_UCCS | UFS_INT_UHES | UFS_INT_UHXS | UFS_INT_UPMS;data | UFS_INT_UTRCS | UFS_INT_ERR;mmio_write_32(ufs_params.reg_base IE, data);ufs_enum();ufs_get_device_info(card);if (card.wmanufacturerid UFS_VENDOR_SKHYNIX) {ufs_params.flags | UFS_FLAGS_VENDOR_SKHYNIX;}ops-phy_set_pwr_mode(ufs_params);}(void)result;return 0; }
http://wiki.neutronadmin.com/news/52115/

相关文章:

  • 中文域名和网站的关系淄博网站建设
  • 网站建设基本模板介绍作图网站都有哪些
  • 企业在网站建设上的不足常熟东南开发区人才网
  • 网站建设实训建议河池网站优化
  • 微企点建站怎么样谷歌网站 百度
  • 建设一个网站引言网站制作公司北京
  • 河南中国建设银行官网站WordPress可以配置163邮箱吗
  • 建设网站条件wordpress漏洞上传php文件夹
  • 专门做防盗门的网站网站seo优化推广教程
  • 福州室内设计学校企业关键词排名优化哪家好
  • 网站增加栏目费用如何做网站
  • 网站服务器如何更改解析公司的 SEO与网站建设
  • 简单个人网站模板下载做国外的网站有什么不用钱的
  • 做单页网站怎么选产品微信网站建设公司费用
  • 如何实现网站的快速排名英文的购物网站
  • 重庆网站制作公司重庆wordpress custom post type
  • 国外网站 国内做镜像电商网站项目经验介绍ppt模板
  • 广西最优秀的品牌网站建设公司网站开发开票交税额
  • 58同城枣庄网站建设济南做平台网站的
  • 商城网站设计图商会网站建设开发
  • 高端网站建设公司wordpress多站点是什么
  • 网站简约式布局特点东莞市住房和城乡建设局网
  • 网站域名删除时间查询win 2003 网站 管理员
  • 虚拟主机wordpress石家庄seo优化公司
  • 自己有主机怎么做论坛网站大数据培训费用多少钱
  • 易做文学网站的logo做网站 套用模板之后用什么改
  • 做网站的公司叫什么dede免费模板
  • 如何自学网站建设承接网站开发 小程序开发
  • 常见行业门户网站免费公司起名字大全
  • 响应式网站项目徐州网络推广