标签: bios

BIOS加载到RAM中的哪些信息?

我知道,在启动时,BIOS会在内存0x7c00上加载预定义设备驱动器的第一个扇区(512字节),然后跳转到该地址.

因此,从0x7c00到0x7dff的内存被占用.RAM中是否有其他部分被占用?

如果我正在编程操作系统,我可以使用除了0x7c00到ox7dff之外的所有RAM用于我自己的目的吗?或者,是否还有其他部分在启动时填充了"宝贵"信息,我不能覆盖?

我知道在给定的时刻,我可以覆盖内存中加载的MBR(链式加载),我的问题集中在......操作系统可用的内存部分是什么?

对不起,我的英语不好.谢谢你的回答!!

boot mbr bios

12
推荐指数
3
解决办法
4210
查看次数

0000:7c00的内存对引导顺序有什么意义?

为什么bios读取分区的启动记录0000:7c00?那个地址有什么特别之处?':'在引用地址时做了什么?

bios bootloader

12
推荐指数
2
解决办法
6871
查看次数

普通的x86或AMD PC是直接从ROM运行启动/ BIOS代码,还是先将它们复制到RAM?

我知道现代计算机已经修改了哈佛架构.

事实上他们可以从他们保存数据的地方读取指令,这样他们可以直接从ROM芯片中获取指令吗?他们首先将BIOS加载到RAM,还是直接从芯片执行?我没有可以在附近打开的计算机,所以...如果我从内存插槽中删除所有RAM,计算机是否能够启动完整的BIOS,运行POST的东西并告诉我需要RAM?这很有趣我从未尝试过......

编辑:我的意图是要了解商业CPU(或至少是intel cpus)是否可以直接从ROM执行代码.它不是出于实际目的,而是为了增加我对计算机体系结构和内容的理解.删除RAM部分不是我的主要疑问,只是一个例子

cpu boot startup bios

12
推荐指数
1
解决办法
3718
查看次数

Linux内核中的硬件时钟信号实现

我正在寻找一些指导,以了解Linux内核如何实现各种硬件时钟的设置.这主要涉及设置各种时钟,如LCD,UART等硬件功能将使用.例如,当Linux引导它如何处理为UART或USB设置时钟时.也许像时钟经理之类的东西.

我基本上试图在我正在使用的新硬件上为不同的操作系统实现类似的功能.任何帮助将非常感激.

[编辑]
感谢您的回复和链接.所以这是我迄今为止所实施的内容.这应该可以让你了解我的目标.

我查看了硬件参考手册,了解了我所针对的特定系统,并编写了一些代码来监控/修改我感兴趣的外设的信号/引脚,即从命令行打开/关闭它们.现在收集这些时钟/信号一起控制外设.HRM会说如果你想打开UART或其他东西,那么打开这样的信号/引脚.和@BjoernD是的,我正在使用类似mmap()函数的东西与外围设备通信.

我的问题是,我想了解使用我已编写的实用程序的时钟/外围设备管理器的设计和实现.这个时钟/外设管理器可以让我控制启用/禁用我想要的外设.基本上这个管理器可以让我对正在运行的init代码进行更改.此外,在运行时,进程可以调用此Manager来打开/关闭设备,以便优化功耗.它可能没有完美的意义,但我自己试图绕过这个.

现在我确信这样的事情会在Linux中实现,或者就任何操作系统的性能问题而言都是如此(没有人希望通过在启动时打开所有外设来浪费电源).我想了解它的软件架构.任何操作系统的参考资料至今都可以实现至少获得一个先机.此外,我不是在编写自己的操作系统,有一个操作系统,但我正在寻找更多的板级软件,也就是BSP.但是,无论如何,感谢OS链接,它们真的很棒.欣赏它.

谢谢!

linux operating-system clock bios linux-kernel

12
推荐指数
1
解决办法
1812
查看次数

BIOS ROM如何映射到PC上的地址空间?

x86 CPU在物理地址0xFFFFFFF0处开始执行.BIOS ROM位于地址空间的末尾.CPU从ROM执行的第一条指令是远跳,导致重新加载CS段,因此从物理区0x000F0000 - 0x000FFFFF内执行下一条指令.

什么原因导致ROM在两个区域都做出响应?PC上有一些特殊的地址解码逻辑吗?我在Bochs源代码中发现了一条评论,该代码指出最后128K的BIOS ROM映射到0xE0000 - 0xFFFFF.但是我找不到更多关于此的信息.很明显,这是PC特有的,因为我有x86嵌入式主板,并且这种镜像不会发生在那里.我只能用近跳.

embedded cpu x86 bios

12
推荐指数
2
解决办法
4957
查看次数

在BIOS中没有选项的情况下启用英特尔虚拟化(VT-X)

对不起,如果问题已经得到解答,但我没有找到适合我的具体情况的答案,那就有点不同了.

我正在安装android编程所需的所有工具.我已经创建了一个android虚拟设备,但问题是安装英特尔硬件加速(HAXM),安装程序告诉我,我需要激活VT-x,似乎这个工具只能在BIOS中激活,但我的BIOS是InsydeH20 rev 3.5并且该选项不会出现在任何地方.

我能做什么?如何在没有BIOS的情况下激活VT-x?

我的处理器是intel i7 2630qm,如果我的处理器与VT-x兼容,我已经检查了intel页面,是的.

非常感谢你!!

virtualization android intel bios haxm

12
推荐指数
1
解决办法
6万
查看次数

更改bios代码/刷新BIOS

我花了很多时间开发一个操作系统并在我的低级引导加载程序上工作.但是现在我想从操作系统上抽出一些时间,而不是离开低级环境并做一些涉及安全的事情.

因此,我选择按照预启动身份验证方案构建自己的标准密码实用程序.由于我希望软件至少具有一点便携性,我希望它尽可能少地使用外部支持.我认为如果我以某种方式设法在运行的实模式操作系统内的自检和int 19引导程序之间"挂钩"到bios中,我会是最好的.

然而,找到关于如何修改bios代码的信息被证明是不可能的.我没有发现如何实现前面提到的.我只找到了描述如何刷新BIOS的页面.

有谁知道我如何读/写BIOS代码?或者有人可以提供描述这个的页面的链接?

我知道这不仅可能会破坏我的设备,但它也很可能,我知道风险并愿意接受它.

security assembly operating-system bios osdev

11
推荐指数
1
解决办法
2367
查看次数

操作系统如何检测硬件?

操作系统是从BIOS获取此信息还是单独扫描总线以检测系统上安装的硬件.在网上浏览不同的消息来源说不同的事情.有人说BIOS检测到硬件,然后将其存储在操作系统随后读取的内存中,其他人则说OS扫描总线(例如pci)以了解硬件.

我会想到现代操作系统会忽略BIOS并自行完成.

任何帮助,将不胜感激.

谢谢.

hardware operating-system kernel bios

11
推荐指数
1
解决办法
5619
查看次数

什么"wmic BIOS得到序列号"实际上检索?

我想知道wmic bios get serialnumberWindows commad实际上给你的序列号是什么?

它是你主板的序列号吗?文档不清楚.

bios wmic

11
推荐指数
1
解决办法
11万
查看次数

没有BIOS支持的IOMMU初始化

注意:如果您在支持IOMMU的主板上安装了AMD A55芯片组,请将您的副本/sys/firmware/acpi/tables/DMAR(或任何描述IOMMU的名称)发送给我.你没有任何风险.谢谢!


大多数主板制造商都不打算发布支持IOMMU的BIOS(BIOS中没有选项).

我不赞成AMD 的这篇文章是BIOS通过添加ACPI表来初始化IOMMU.

因此,如果我可以从具有不同主板但支持IOMMU的相同芯片组的系统转储ACPI表(acpidump/acpiextract),是否可以通过在iommu模块之前的某个时刻插入这些表来激活IOMMU装?

如果iommu内置在内核中(而不是模块),是否有任何机制允许在内核启动的早期阶段动态更改acpi表?否则也许引导程序(grub/lilo)可以做到这一点?

很可能这些"新"表中的某些地址需要更新.这些地址是否会在现有的ACPI表中(这样差异会有所帮助)?

bios acpi linux-kernel iommu

11
推荐指数
1
解决办法
1378
查看次数