Chinaunix首页 | 论坛 | 博客
  • 博客访问: 377930
  • 博文数量: 160
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 250
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-18 01:16
文章分类

全部博文(160)

文章存档

2016年(4)

2015年(13)

2014年(29)

2013年(114)

我的朋友

分类: LINUX

2013-07-30 14:23:20

原文地址:arm smp 记录 作者:dogsun88

很久没有发文章了,忙里偷闲写点。

1、先记录一个栈
__cpu_up
    
     boot_secondary

          secondary_startup
 
              __v7_setup

                  __enable_mmu

                         __secondary_switched

                                secondary_start_kernel

2、栈的说明
1)、主核负责执行:
__cpu_up(在此函数中组secondary_data结构)
     boot_secondary
(在此函数中唤醒从核并调用wait_for_completion_timeout(&cpu_running,msecs_to_jiffies(1000));等待)
2)、如何唤醒从核?
以zynq板子来说,如下:

因此,如上所述,只需要在boot_secondary函数中将secondary_startup地址写入0xFFFFFFF0,并sev即可。

3)、从核执行如下函数:
          secondary_startup
 
              __v7_setup

                  __enable_mmu

                         __secondary_switched

                                secondary_start_kernel

并在 secondary_start_kernel 函数中,调用complete(&cpu_running);来通知主核,我ok了(进入idle状态),你继续执行吧。

4)、__cpu_up谁来调用

smp_init,rcu_torture_onoff(Execute random CPU-hotplug operations at the interval specified by the onoff_interval),还用省电相关的。


参考文献:
http://blog.chinaunix.net/uid-20648445-id-3329217.html

阅读(543) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~