gnattu 发表于 2023-3-21 16:35

slymitec 发表于 2023-3-21 16:30
uefi一开始就是32位保护模式,这个应该还是没啥争议的……(我刚查了一下,UEFI第一个指令位移内存映射地 ...

如果你对于启动的概念就是CPU启动直接就是UEFI那你的想法是有偏差的,在加载UEFI之前还可以有其他初始化,等到启动UEFI的时候模式早就切换过了

slymitec 发表于 2023-3-21 16:39

panzerlied 发表于 2023-3-21 16:39

gnattu 发表于 2023-3-21 16:10
你怎么偷换概念

给一个硬件增加软件平台支持是需要大量工程的,这个根本不是“用的好好的为啥去掉支持” ...

楼主是气氛组,但是我喜欢看你的回复。

slymitec 发表于 2023-3-21 16:40

xy. 发表于 2023-3-21 17:02

0xFFFFFFF0 和 uefi 又没关系, CPU 通电时就从这里开始执行, 无论 bios 还是 uefi, 这个地址直接映射到 bios 芯片
16 位实模式也一样能访问 32 位地址空间, 有段, 你本来就有 20 位地址空间, 在第一次 long jump 之前, 低于 0xFFF00000 的地址是不给访问的

gnattu 发表于 2023-3-21 17:05

本帖最后由 gnattu 于 2023-3-21 17:26 编辑

slymitec 发表于 2023-3-21 16:39
这可能需要进一步的考证,但是根据目前的理解,cpu上电、芯片组撤销reset信号后, cpu默认就从这个地址开 ...

我也没有说有什么技术问题啊 我的核心不就是 可以 但没必要

然后你否定这个理由 你觉得很有必要 我已经不知道该怎么讲了
你从头到尾觉得可以移除的理由非常不充分 因为你觉得这个东西没用了可以丢
然后我告诉你这个东西还在用 要丢掉不是不可以但是要改东西 没必要
然后你又说 对CPU进行修改就不是问题 那不就回到了 可以 但没必要了吗[震惊]

顺便 这个CPU上电以后直接读UEFI固件代码是非常理想化的一个想法,现代CPU并不这么初始化自己,只不过我们都假装是这么初始化的

举个实际的例子吧:一些AMD CPU, 比如Picasso,他们把部分AGESA功能放进了PSP,这样你的x86核心在第一个fetch之前面对的直接就是一个已经被初始化过的内存,并且CPU所期待的第一条指令也不会在0xfffffff0,而是PSP算出来的一个位置。PSP有自己的魔法,从flash当中读取BIOS,然后解密/解压到一个计算出的内存地址,然后丢回给x86 CPU进行接下来的加载,x86核心会假装自己启动在0xfffffff0,但是其实这个位置已经经过了一大堆的魔法

shiangyeh 发表于 2023-3-21 17:09

严格来讲,现在的intel cpu还运行在8080的兼容模式,所以这也不意外

lh4357 发表于 2023-3-21 17:11

本帖最后由 lh4357 于 2023-3-21 17:20 编辑

问题是,你装不上win98 95这种系统。
装win98安装到一半就提示非法操作。
装win95直接启动不了系统。

要16位有何用?

slymitec 发表于 2023-3-21 17:16

页: 1 [2]
查看完整版本: 新CPU还保留16位实模式,纯粹是主要为32位OS提供启动支持?