跳转到内容

Aros/平台/x86 64 支持

来自维基教科书,开放的书籍,开放的世界
Aros 维基教科书的导航栏
Aros 用户
Aros 用户文档
Aros 用户常见问题
Aros 用户应用程序
Aros 用户 DOS Shell
Aros/用户/AmigaLegacy
Aros 开发文档
Aros 开发人员文档
从 AmigaOS/SDL 移植软件
为 Zune 初学者
Zune .MUI 类
为 SDL 初学者
Aros 开发人员构建系统
特定平台
Aros x86 完整系统 HCL
Aros x86 音频/视频支持
Aros x86 网络支持
Aros 英特尔 AMD x86 安装
Aros 存储支持 IDE SATA 等
Aros Poseidon USB 支持
x86-64 支持
摩托罗拉 68k Amiga 支持
Linux 和 FreeBSD 支持
Windows Mingw 和 MacOSX 支持
Android 支持
Arm Raspberry Pi 支持
PPC Power Architecture
其他
Aros 公共许可证

从 2007 年 11 月开始,AROS 获得了 64 位移植版本。它缺乏软件和驱动程序支持,但有一些 AROS 从未拥有的新功能 - 一种内存保护机制和

x86_64 原生环境

[编辑 | 编辑源代码]

AROS x86_64 针对新的 PC 系统,包括 AMD 和英特尔处理器。您也可以在 QEMU 模拟器中尝试此端口,使用其 64 位模式。请注意,可以使用来自 x86 的 PCI 卡和其他内容,因此此页面主要用于 CPU/芯片组/笔记本电脑支持。

x86_64 兼容驱动程序

[编辑 | 编辑源代码]

已知工作硬件

[编辑 | 编辑源代码]

笔记本电脑

主板

  • VMWare Virtual PC。
  • ECS 755-A2 配备 Athlon 64 CPU。
从 SIS5513 IDE 控制器上的 CD 启动。此主板具有 SATA SIS180 控制器,带有
1 个 PATA 和 2 个 SATA 通道。但是,在硬盘上安装失败,显示
“未知错误 100”消息。(请添加测试日期...... 2008 年 8 月 20 日 17:10(UTC))
  • Shuttle

显卡

声卡

网络接口卡

已知问题硬件,可工作但支持有限

[编辑 | 编辑源代码]

笔记本电脑

  • 宏碁 Aspire 5101AWLMi(AMD Turion 64 MK-36 - 2 GHz,512KB L2 缓存,ATI Xpress 1100 芯片组,1Gb DDR2-533 MHz,ATI Mobility Radeon x1300,15.4" TFT(1280 x 800),无线局域网:802.11b/g)
正常启动。视频(vesa/vga)和触控板/USB 鼠标正常工作。AHI 首选项会挂起系统。在软件启动时会随机挂起。

主板

显卡

声卡

网络接口卡

  • 英特尔千兆网卡 - 驱动程序尚未完成...... 请参阅网络文档。

无法工作硬件

[编辑 | 编辑源代码]

笔记本电脑

主板

显卡

声卡

网络接口卡

参考资料

[编辑 | 编辑源代码]

目前我甚至无法再次测试它,因为它在引导加载程序中崩溃了 -

[BOOT] Entered AROS Bootstrap @ 001100d0
[BOOT] Stack @ 00116e40, [65536 bytes]
[BOOT] Multiboot structure @ 011271b0
[BOOT] Command line @ 01127228 : 'vesa=1024x768x16 ATA=32bit
nomonitors debug=serial'
[BOOT] Memory map at 0x011272d0, length 288
[BOOT] Low memory 638 KB, upper memory 522176 KB
[BOOT] Backing up low memory, buffer at 0x001271a0
[BOOT] setupVESA: vesa.bin @ 001155dc [size=6197]
[BOOT] setupVESA: BestModeMatch for 1024x768x16 =

这是显示的所有内容,然后机器重新启动。

仔细检查 VESA 代码。在引导重构期间,某些内容可能已损坏。我无法测试 VESA 代码,因为我在 Mac 上测试,EFI 在原生模式下不提供 PC BIOS API。而且,如果这是最近出现的,请检查嵌入式 16 位代码的链接方式。Jason 对 %rule_link_binary 做了修改,也许这就是原因。此外,您可以通过在 VGA 或原生显示模式下运行来解决此问题。

acpi.resource 的开头。目前它只尝试定位 RSDP。在扫描 EBDA 时会由于页面错误而崩溃。即使在 SuperState()/UserState() 内运行也是如此。这些函数本身可以正常工作,测试证实了这一点。此外,processor.resource 成功查询了 CPU 速度。

MMU 表中的“存在”标志也会影响主管模式,它被设置为“0”。但是目前我已经转向切换到 Multiboot V2。在 EFI 环境中,您需要一个指向 EFI 系统表的指针才能检索 RSDP。既没有提供 EBDA 也没有提供 BIOS 映像(扫描失败)。顺便说一下,我已经提交了我的 WIP 代码(那里没有太多内容,只是一个 RSDP 定位器)。

研究了 AMD 的手册,64 位模式非常简单,我只在 CS 中有一个带有特权级别的描述符,仅此而已。也许我在 MMU 表中有什么错误?您可以检查代码,它是最新的,除了 acpi.resource 框架外,我没有未提交的部分。此外,processor.resource 必须在每个核心上调用 CPU 检测代码以收集信息。但是,此代码是否可以在 kernel.resource 之前执行?IMO,它应该在当前位置(在内核资源中)执行,因为它直接与内核资源控制的系统资源进行交互。尝试将所有内容都移出来只会增加代码重复/不必要的膨胀。一直设想 kernel.resource 设置核心,然后有一个函数允许在特定核心上执行代码。 processor.resource 使用此函数运行核心功能检测代码。

想法是

  • acpi.resource RTF_COLDSTART Pri=125 - 解析 ACPI 表。
  • processor.resource 启动其他 CPU。它有自己的引导代码供它们使用。此代码调用 InitCode(RTF_SINGLETASK)。
  • kernel.resource 检测辅助 CPU 并中断 InitCode()。

它提供了什么

  • 对模块私有数据的独立性。
  • 模块化,作为结果。
  • 当辅助 CPU 启动时,我们已经拥有了工作的内核甚至执行环境。

例如,在调度代码中只使用存储在 TLS 中的 thisTask 版本(这样不同的内核就会看到它们自己正确的版本),使用 apic 本地计时器添加任务执行时间(基于 sam440 的做法......)并尝试稍微整理一下 APIC/IPI 代码,但我目前无法检查它的工作效果如何。

acpi.resource 在 SINGLETASK 级别初始化。所有 SINGLETASK 常驻程序完成之后,InitCode() 返回到引导代码。这允许执行额外的设置,无论需要什么。多任务在 exec.library 中启动,它是第一个 COLDSTART 常驻程序。此外,SINGLETASK 使用主管特权调用,这消除了额外的混乱。这与原始 AmigaOS 引导顺序非常接近。并且允许将硬件控制组件与内核完全分离。

此外,processor.resource 成功查询了 CPU 速度。研究了 AMD 的手册,64 位模式非常简单,我只在 CS 中有一个带有特权级别的描述符,仅此而已。也许我在 MMU 表中有什么错误?您可以检查代码,它是最新的,除了 acpi.resource 框架外,我没有未提交的部分。此外,processor.resource 必须在每个核心上调用 CPU 检测代码以收集信息。但是,此代码是否可以在 kernel.resource 之前执行?IMO,它应该在当前位置(在内核资源中)执行,因为它直接与内核资源控制的系统资源进行交互。尝试将所有内容都移出来只会增加代码重复/不必要的膨胀。一直设想 kernel.resource 设置核心,然后有一个函数允许在特定核心上执行代码。 processor.resource 使用此函数运行核心功能检测代码。

华夏公益教科书