Fork me on GitHub
上一页 1 ··· 55 56 57 58 59 60 61 62 63 ··· 99 下一页
摘要: 虽说前文分析内存管理框架构建的实现,提到了find_zone_movable_pfns_for_nodes(),但这里不准备复述什么,仅针对required_movablecore和required_kernelcore做一个补充。 以required_movablecore为例,代码中没有很清晰地 阅读全文
posted @ 2019-10-06 22:32 yooooooo 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 此处接前文,分析free_area_init_nodes()函数最后部分,分析其末尾的循环: 这里面的关键函数是free_area_init_node(),其入参find_min_pfn_for_node()用于获取node节点中最低的内存页框号。 而free_area_init_node()其实现 阅读全文
posted @ 2019-10-05 17:29 yooooooo 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 前面构建内存管理框架,已经将内存管理node节点设置完毕,接下来将是管理区和页面管理的构建。此处代码实现主要在于setup_arch()下的一处钩子:x86_init.paging.pagetable_init()。据前面分析可知x86_init结构体内该钩子实际上挂接的是native_pageta 阅读全文
posted @ 2019-10-05 16:59 yooooooo 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 传统的计算机结构中,整个物理内存都是一条线上的,CPU访问整个内存空间所需要的时间都是相同的。这种内存结构被称之为UMA(Uniform Memory Architecture,一致存储结构)。但是随着计算机的发展,一些新型的服务器结构中,尤其是多CPU的情况下,物理内存空间的访问就难以控制所需的时 阅读全文
posted @ 2019-10-04 16:34 yooooooo 阅读(683) 评论(0) 推荐(0) 编辑
摘要: 前面已经分析了内核页表的准备工作以及内核低端内存页表的建立,接着回到init_mem_mapping()中,低端内存页表建立后紧随着还有一个函数early_ioremap_page_table_range_init(): 该函数主要是用于建立固定内存映射区的。固定内存映射区是指FIXADDR_STA 阅读全文
posted @ 2019-10-04 11:00 yooooooo 阅读(631) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 power supply class为编写供电设备(power supply,后面简称PSY)的驱动提供了统一的框架,功能包括: 1)抽象PSY设备的共性,向用户空间提供统一的API。 2)为底层PSY驱动的编写,提供简单、统一的方式。同时封装并实现公共逻辑,驱动工程师只需把精力集中在和 阅读全文
posted @ 2019-09-30 15:09 yooooooo 阅读(1462) 评论(0) 推荐(2) 编辑
摘要: 前面的前奏已经分析介绍了建立内核页表相关变量的设置准备,接下来转入正题分析内核页表的建立。 建立内核页表的关键函数init_mem_mapping(): init_mem_mapping()里面关键操作有三个split_mem_range()、kernel_physical_mapping_init 阅读全文
posted @ 2019-09-29 09:30 yooooooo 阅读(746) 评论(0) 推荐(0) 编辑
摘要: 前面已经分析过了Intel的内存映射和linux的基本使用情况,已知head_32.S仅是建立临时页表,内核还是要建立内核页表,做到全面映射的。下面就基于RAM大于896MB,而小于4GB ,切CONFIG_HIGHMEM配置了高端内存的环境情况进行分析。 建立内核页表前奏,了解两个很关键的变量: 阅读全文
posted @ 2019-09-28 17:14 yooooooo 阅读(972) 评论(0) 推荐(0) 编辑
摘要: 1. compatible节点: qpnp vm bms.c使用来控制电池曲线的和BMS功能的,其compatible节点是"qcom,qpnp vm bms" 2. probe函数: qpnp_vm_bms_probe函数如下: 2.1 parse_bms_dt_properties()函数 在这 阅读全文
posted @ 2019-09-27 15:39 yooooooo 阅读(3847) 评论(0) 推荐(0) 编辑
摘要: 最近一直在搞电源管理相关内容,之前是8610的bms,现在8916的bms,发现两者还是有点区别的,8916把对last_ocv_uv的估值算法分装成执行文件,作为服务一直运行。 电源管理方面,应该是Android驱动开发的一大难点,主要涉及的方面多,如充、放电、休眠唤醒等。这一部分主要讲BMS相关 阅读全文
posted @ 2019-09-26 14:37 yooooooo 阅读(659) 评论(0) 推荐(0) 编辑
上一页 1 ··· 55 56 57 58 59 60 61 62 63 ··· 99 下一页