Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
xv6-public
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸时代
OS Lab Group
奖励实验
xv6-public
提交
56082468
提交
56082468
8月 28, 2008
创建
作者:
rtm
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
the old explanation of AP startup might have been correct, but
I understand this one.
上级
02cc595f
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
10 行增加
和
9 行删除
+10
-9
bootother.S
bootother.S
+10
-9
没有找到文件。
bootother.S
浏览文件 @
56082468
#include "asm.h"
#include "asm.h"
# Start an Application Processor. This must be placed on a 4KB boundary
# Each non-boot CPU ("AP") is started up in response to a STARTUP
# somewhere in the 1st MB of conventional memory (APBOOTSTRAP). However,
# IPI from the boot CPU. Section B.4.2 of the Multi-Processor
# due to some shortcuts below it's restricted further to within the 1st
# Specification says that the AP will start in real mode with CS:IP
# 64KB. The AP starts in real-mode, with
# set to XY00:0000, where XY is an 8-bit value sent with the
# CS selector set to the startup memory address/16;
# STARTUP. Thus this code must start at a 4096-byte boundary.
# CS base set to startup memory address;
# CS limit set to 64KB;
# CPL and IP set to 0.
#
#
# Bootothers (in main.c) starts each non-boot CPU in turn.
# Because this code sets DS to zero, it must sit
# at an address in the low 2^16 bytes.
#
# Bootothers (in main.c) sends the STARTUPs, one at a time.
# It puts this code (start) at 0x7000.
# It puts the correct %esp in start-4,
# It puts the correct %esp in start-4,
# and the place to jump to in start-8.
# and the place to jump to in start-8.
#
#
...
...
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论