head-ftvpci.S
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* 
  2.  * linux/arch/arm/boot/compressed/head-ftvpci.S
  3.  * 
  4.  * Copyright (C) 2000 FutureTV Labs Ltd.
  5.  * 
  6.  * Special startup code for FTV PCI board.
  7.  */
  8. /*
  9.  * This program is free software; you can redistribute it and/or
  10.  * modify it under the terms of the GNU General Public License
  11.  * as published by the Free Software Foundation; either version
  12.  * 2 of the License, or (at your option) any later version.
  13.  */
  14. .section        ".start", "ax"
  15. ftv_start:
  16. mcr p15, 0, r0, c7, c5, 0 @ flush I cache
  17. mrc p15, 0, r0, c1, c0
  18. orr r0, r0, #1 << 12
  19. mcr p15, 0, r0, c1, c0 @ enable I cache
  20. mov r0, #0
  21. mcreq p15, 0, r0, c15, c1, 2 @ enable clock switching
  22. /* check to see if the kernel must be relocated */
  23. ldr ip, =ftv_start
  24. adr sl, ftv_start
  25. teq ip, sl
  26. beq 2f @ no need to copy
  27. /* in the wrong place -> presumably, executing out of ROM */
  28. sub ip, ip, sl @ displacement
  29. ldr lr, =_start @ destination
  30. sub sp, lr, ip @ source
  31. ldr fp, =_edata @ end of copied area
  32. 1: ldmia sp!, {r0, r1, r2, r3, r4, r5, r6, r10}
  33. stmia lr!, {r0, r1, r2, r3, r4, r5, r6, r10}
  34. cmp lr, fp
  35. ble 1b
  36. 2:
  37. mov r8, #0
  38. mov r7, #3
  39. b 1f
  40. .ltorg
  41. 1:
  42. /* fall back into head.S */