Linux驱动之ioremap源码跟踪
2023-06-25 10:28 作者:有AI野心的电工和码农 | 我要投稿
又一篇讲老版本内核驱动的,多年没写过内核驱动了,也不知这些技术现在还适用不,权当纪念吧。
Original address:http://blog.chinaunix.net/uid-26009923-id-3291183.html
TQ2440的watchdog linux驱动在内核源码linux-2.6.30.4的:./drivers/watchdog/s3c2410_wdt.c下
watchdog ioremap的过程:
将物理地址res->start映射到了虚拟地址0xc5400000处,映射大小为:size=0x100000.
注: 不知道为什么刚开始这个size=8, 后来就成了0x100000(1M)。
2. arch/arm/include/asm/io.h中, 找到ioremap的定义:
3. 在arch/arm/mm/ioremap.c中
4. 在arch/arm/mm/ioremap.c中
area = get_vm_area(size, VM_IOREMAP); //分配虚拟地址空间
err = remap_area_pages(addr, pfn, size, type);
这两个函数。
5. 在arch/arm/mm/ioremap.c中

