![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARMv8
乾龙_Heron
Linux ARM POWER8 cc-NUMA BootLoader
展开
-
ARMv8中branch指令分类、格式及用法
ARMv8虽然还没有出商用芯片,但是ARM内部已经有成型的模拟器了,其中ARMv8的Fast Models已经内测,虽然还没上市。目前已有ARMv8的Foundation Model可以用来测试ARMv8的应用程序。一:ARMv8 Branch指令分类:1、 无条件分支+立即数:直接跳转到某地址,不能跳转到寄存器指令有两个:”b label” ”bl label”。在编译原创 2012-12-01 20:41:58 · 14462 阅读 · 0 评论 -
【解答】关于内核中没开MMU之前的虚拟地址物理地址转换问题
1. 内核没开MMU之前有虚拟地址吗?没有MMU哪来的虚拟地址?答:有,因为加载时地址和运行时地址不同导致的没打开MMU之前也会有虚实地址问题。2. 加载时地址和运行时地址什么区别,为什么有这种区别?答:加载时地址:把可执行文件放到物理内存的内存地址,例如把镜像放到0x80000000地址处,则加载时地址=0x80000000运行时地址:镜像生成后的虚拟地址,由编译器和连接脚本决定。内核镜像放到内存中时,放置的地址是任意的,所以要考虑到这种情况,在没打开mmu之前使用内存中的数据都要计算偏移原创 2014-09-29 10:55:21 · 4173 阅读 · 4 评论 -
ARMv8 Linux内核源码分析:__flush_dcache_all()
ARMv8 Linux内核源码分析:__flush_dcache_all()原创 2014-05-30 16:56:35 · 3249 阅读 · 0 评论 -
ARMv8 Linux内核异常处理过程分析
看了Linaro提供的开源ARMv8 Linux内核源码,发现ARMv8异常处理与ARMv7及之前的架构有所不同,详细分析之。原创 2014-05-30 17:13:12 · 9250 阅读 · 0 评论 -
从编译器源码中提取ARMv8的指令编码
2012年时,ARMv8 体系结构手册还没发布,当时项目需要ARMv8指令编码,我就从ARMv8交叉编译工具链的binutils中提取出了所有ARMv8指令的二进制编码,虽然ARMv8手册中已经详细公布,但方法还是值得一读。现把方法列出。原创 2014-05-29 11:40:00 · 4229 阅读 · 0 评论 -
关于ARMv8指令的几个问题
问题一:ARMv8 branch指令格式及用法(《ARMv8 ISA overview》中 page 25有相关叙述):问题二:ARMv8指令分类:问题三:ARMv8有没有两个目的操作数的指令?问题四:ARMv8中源操作数超过三个的指令及分类:问题五:branch指令向前向后跳转的区别原创 2014-05-29 11:48:39 · 7387 阅读 · 5 评论 -
armv8(aarch64)linux内核中flush_dcache_all函数详细分析
/* * __flush_dcache_all()* Flush the wholeD-cache. * Corrupted registers: x0-x7, x9-x11 */ENTRY(__flush_dcache_all)//保证之前的访存指令的顺序 dsb sy //读cache level id regi原创 2013-09-26 17:49:36 · 9929 阅读 · 2 评论 -
ARMv8 Linux内核异常处理过程分析
看了Linaro提供的开源ARMv8 Linux内核源码,发现ARMv8异常处理与ARMv7及之前的架构有所不同,简单分析。LinaroARMv8工程:http://www.linaro.org/engineering/engineering-projects/armv81.1 Linux内核异常处理相关文件Linux内核中,异常处理主要由两个文件完成,entry.S和traps.c,原创 2013-09-08 10:50:40 · 37579 阅读 · 1 评论 -
【解决】SPECCPU编译出错“f951: error: argument to '-O' should be a non-negative integer”
交叉编译speccpu2006时,遇到一个错误,把错误现象摘录如下:1、执行编译命令:runspec --action=build --config=armv8.cfg --rebuild --tune=base 4102、编译报错结果:runspec v6152 - Copyright 1999-2008 Standard Performance Evaluation Corpor原创 2013-02-19 15:02:36 · 7036 阅读 · 0 评论 -
ARMv8 Linux内核head.S源码分析
ARMv8 Linue 内核Head.S主要工作内容:1、 从el2特权级退回到el12、 确认处理器类型3、 计算内核镜像的起始物理地址及物理地址与虚拟地址之间的偏移4、 验证设备树的地址是否有效5、 创建页表,用于启动内核6、 设置CPU(cpu_setup),用于使能MMU7、 使能MMU8、 交换数据段9、 跳转到start_kernel函数继续运行。 /*原创 2013-09-03 11:55:11 · 9405 阅读 · 0 评论