SDIO - DWC MSHC 电压切换和频率切换 我们的sdio访问sd card过去一直跑在低频上,HS50M。前段时间给eMMc添加了HS200模式,eMMc的总线模式定义是这样的:可以看到1.8V的IO 电压可以支持所有模式,我们过去的芯片,由硬件部门放到evb上,其IO 电压要不就是定死的,要不就是用跳帽来选择电压是3V3或者1V8,不支持电压切换,这对eMMc来说还尚可接受,因为我们可以将它定到1V8上,反正eMMc在这个电压上可以切换到各个速度,emmc的hs200也就在这个条件下跑起来了。
QEMU与KVM架构 QEMU与KVM架构总体上分为3部分。VMX root模式的应用层(左上)VMX root模式的内核层(左下)虚拟机的运行(右上)VMX root相对于VMX non-root模式,CPU引入了硬件虚拟化指令后有了这些概念,VMX root可以理解为宿主机模式,VMX non-root可以理解为虚拟机模式虚拟机运行在VMX non-root模式下VMX root模式与未引入VT-x之前是一样的,CPU在运行包括QEMU在内的普通进程和宿主机的操作系统内核时,CPU处于该模式。
读书笔记 - 虚拟化技术 - 0 QEMU/KVM概述与历史 David Wheeler:计算机科学中任何问题都可以通过增加一个中间层来解决。虚拟化思想存在与计算机科学的各个领域。主要思想:通过分层将底层的复杂,难用的资源虚拟抽象为简单用于的资源,提供给上层使用。(comment:驱动软件也是对设备的一种虚拟化?进程是对CPU的一种虚拟化?机器码,汇编,到C语言,再到高级语言,本质也是一个不断虚拟化的过程,将底层复杂的接口转变为上层容易使用的接口虚拟机,Virtual Machine,VM。
UART在Linux内核启动时突然不打印的问题 说实在的,我还没看过裸驱里怎么配置的GIC,那就跟一下它的代码,我发现它是通过汇编配置的,虽然代码里用宏定义配置了它的基地址,但是没人引用这个宏,且它的基地址是从CP15协处理器读出来的!为了证明串口是错误的,我开始修改串口驱动,中断模式改为poll模式,再启动,发现FPGA上也可以跑的更远了,这次跑到了inittab里(排除了init进程调用失败),停在了配置getty与console绑定的这一行(也是通过在rcS里加打印)来确认了。还是停住了,依然没进login,很苦恼,临门一脚了。
内核启动时减少log的方式 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。
计算机组成与设计 - 1.7 功耗墙 - 1.8 单处理器向多处理器的转变 - 1.9 基准 25 年间 1ntel x86 八代微处理器的时钟频率和功耗。奔腾 4 处理器时钟频率和功耗提高很大 ,但是性能提升不大。Prescott 发热问题导致奔腾 4 处理器的生产线被放弃。Core 2 生产线恢复使用低时钟频率的简单流水线和片上多处理器。Core i5 采用同样的流水线功耗提供了能够冷却的极限,在后PC时代,能量是真正关键的资源,对于个人移动设备来说,电池寿命比性能更关键。设计者要尽量降低功耗。评价功耗时,使用能耗,比使用功耗,更加科学。能耗的单位是。
计算机组成与设计 - 1.6 性能 一般来说,关于性能,我们主要考虑两个方面:1. 响应时间: 也叫执行时间,从开始一个任务到该任务完成的时间2. 吞吐率:也叫带宽,单位时间内完成的任务数量个人计算机更加关注响应时间,数据中心一般关注吞吐率多一些。将计算机中的处理器更换为更高频率的型号,既能减少其响应时间,也能增大其吞吐率。增加多个处理器分别处理任务,如搜索web,可以增大其吞吐率。当需要处理更多任务时,系统软件可以让后续的请求排队,多个任务可以同时在多个处理器上执行,增加了吞吐率的同时也减少了响应时间。
eMMC规范 - 寻址/信息寄存器/总线协议/时序图/速度模式 e•MMC 规范的早期实现(至 v4.1 的版本)是采用 32-bit 域实现字节寻址的。这种寻址机制允许最大 2 GB 的 e•MMC 容量。为了支持更大的容量,寻址机制升级到支持扇区寻址( 512B 扇区)。对所有容量大于2 GB 的设备应使用扇区地址。要确定所用的寻址模式,主机应读取 OCR 寄存器的 bit [30:29]