asm-offsets.c 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /*
  2. * Adapted from Linux v2.6.36 kernel: arch/powerpc/kernel/asm-offsets.c
  3. *
  4. * Generate definitions needed by assembly language modules.
  5. * This code generates raw asm output which is post-processed to extract
  6. * and format the required data.
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License version 2 as
  10. * published by the Free Software Foundation.
  11. */
  12. #include <common.h>
  13. #include <linux/kbuild.h>
  14. int main(void)
  15. {
  16. /*
  17. * TODO : Check if each entry in this file is really necessary.
  18. * - struct ftahbc02s
  19. * - struct ftsdmc021
  20. * - struct andes_pcu
  21. * - struct dwcddr21mctl
  22. * are used only for generating asm-offsets.h.
  23. * It means their offset addresses are referenced only from assembly
  24. * code. Is it better to define the macros directly in headers?
  25. */
  26. #ifdef CONFIG_FTSMC020
  27. OFFSET(FTSMC020_BANK0_CR, ftsmc020, bank[0].cr);
  28. OFFSET(FTSMC020_BANK0_TPR, ftsmc020, bank[0].tpr);
  29. #endif
  30. BLANK();
  31. #ifdef CONFIG_FTAHBC020S
  32. OFFSET(FTAHBC020S_SLAVE_BSR_4, ftahbc02s, s_bsr[4]);
  33. OFFSET(FTAHBC020S_SLAVE_BSR_6, ftahbc02s, s_bsr[6]);
  34. OFFSET(FTAHBC020S_CR, ftahbc02s, cr);
  35. #endif
  36. BLANK();
  37. #ifdef CONFIG_FTPMU010
  38. OFFSET(FTPMU010_PDLLCR0, ftpmu010, PDLLCR0);
  39. #endif
  40. BLANK();
  41. #ifdef CONFIG_FTSDMC021
  42. OFFSET(FTSDMC021_TP1, ftsdmc021, tp1);
  43. OFFSET(FTSDMC021_TP2, ftsdmc021, tp2);
  44. OFFSET(FTSDMC021_CR1, ftsdmc021, cr1);
  45. OFFSET(FTSDMC021_CR2, ftsdmc021, cr2);
  46. OFFSET(FTSDMC021_BANK0_BSR, ftsdmc021, bank0_bsr);
  47. OFFSET(FTSDMC021_BANK1_BSR, ftsdmc021, bank1_bsr);
  48. OFFSET(FTSDMC021_BANK2_BSR, ftsdmc021, bank2_bsr);
  49. OFFSET(FTSDMC021_BANK3_BSR, ftsdmc021, bank3_bsr);
  50. #endif
  51. BLANK();
  52. #ifdef CONFIG_ANDES_PCU
  53. OFFSET(ANDES_PCU_PCS4, andes_pcu, pcs4.parm); /* 0x104 */
  54. #endif
  55. BLANK();
  56. #ifdef CONFIG_DWCDDR21MCTL
  57. OFFSET(DWCDDR21MCTL_CCR, dwcddr21mctl, ccr); /* 0x04 */
  58. OFFSET(DWCDDR21MCTL_DCR, dwcddr21mctl, dcr); /* 0x04 */
  59. OFFSET(DWCDDR21MCTL_IOCR, dwcddr21mctl, iocr); /* 0x08 */
  60. OFFSET(DWCDDR21MCTL_CSR, dwcddr21mctl, csr); /* 0x0c */
  61. OFFSET(DWCDDR21MCTL_DRR, dwcddr21mctl, drr); /* 0x10 */
  62. OFFSET(DWCDDR21MCTL_DLLCR0, dwcddr21mctl, dllcr[0]); /* 0x24 */
  63. OFFSET(DWCDDR21MCTL_DLLCR1, dwcddr21mctl, dllcr[1]); /* 0x28 */
  64. OFFSET(DWCDDR21MCTL_DLLCR2, dwcddr21mctl, dllcr[2]); /* 0x2c */
  65. OFFSET(DWCDDR21MCTL_DLLCR3, dwcddr21mctl, dllcr[3]); /* 0x30 */
  66. OFFSET(DWCDDR21MCTL_DLLCR4, dwcddr21mctl, dllcr[4]); /* 0x34 */
  67. OFFSET(DWCDDR21MCTL_DLLCR5, dwcddr21mctl, dllcr[5]); /* 0x38 */
  68. OFFSET(DWCDDR21MCTL_DLLCR6, dwcddr21mctl, dllcr[6]); /* 0x3c */
  69. OFFSET(DWCDDR21MCTL_DLLCR7, dwcddr21mctl, dllcr[7]); /* 0x40 */
  70. OFFSET(DWCDDR21MCTL_DLLCR8, dwcddr21mctl, dllcr[8]); /* 0x44 */
  71. OFFSET(DWCDDR21MCTL_DLLCR9, dwcddr21mctl, dllcr[9]); /* 0x48 */
  72. OFFSET(DWCDDR21MCTL_RSLR0, dwcddr21mctl, rslr[0]); /* 0x4c */
  73. OFFSET(DWCDDR21MCTL_RDGR0, dwcddr21mctl, rdgr[0]); /* 0x5c */
  74. OFFSET(DWCDDR21MCTL_DTAR, dwcddr21mctl, dtar); /* 0xa4 */
  75. OFFSET(DWCDDR21MCTL_MR, dwcddr21mctl, mr); /* 0x1f0 */
  76. #endif
  77. return 0;
  78. }