Davinci DM6446 Linux 内核分析——head.S(一)

来源:互联网 发布:办公室网络布线图片 编辑:程序博客网 时间:2024/06/05 07:22

源地址:http://bbs.ivsok.com/blog-2-8.html


//内核解压过程

/*
 * linux/arch/arm/boot/compressed/head.S
 *
 * Copyright (C) 1996-2002 Russell King
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
#include <linux/config.h>
#include <linux/linkage.h>
/*
 * Debugging stuff
 *
 * Note that these macros must not contain any code which is not
 * 100% relocatable. Any attempt to do so will result in a crash.
 * Please select one of the following when turning on debugging.
 */
 
 /* 一下是一些调试用的宏。*/
#ifdef DEBUG
#if defined(CONFIG_DEBUG_DC21285_PORT)

/*
 这里定义了一个宏,宏名是loadsp,rb是这个宏的参数。宏的参数在宏里被引用时必须加”\”,如:
 mov \rb, #0x50000000.
*/
  .macro loadsp, rb
  mov \rb, #0x42000000
  .endm
  .macro writeb, rb
  str \rb, [r3, #0x160]
  .endm
#elif defined(CONFIG_DEBUG_ICEDCC)
  .macro loadsp, rb
  .endm
  .macro writeb, rb
  mcr p14, 0, \rb, c0, c1, 0
  .endm
#elif defined(CONFIG_FOOTBRIDGE)
  .macro loadsp, rb
  mov \rb