Advertisement
Guest User

Untitled

a guest
Aug 18th, 2021
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.69 KB | None | 0 0
  1. Output I get:
  2. ^M[0]:memstart af000000
  3. ^M[0]:virt_addr ffffffc000082700
  4. ^M[0]:sizeof 8
  5. ^M[0]:start kernel map ffffffc000000000
  6. ^M[0]:PHYS_OFFSET af000000
  7. ^M[0]:pa symbol ffffffffaf082700 < ---- wrong!
  8.  
  9. unsigned long
  10. __phys_addr(unsigned long virt_addr)
  11. {
  12. /* Handle kernel symbols */
  13. printk("memstart %llx\n",memstart_addr);
  14. printk("virt_addr %llx\n", virt_addr);
  15. printk("sizeof %d\n", sizeof(unsigned long));
  16. printk("start kernel map %llx\n", __START_KERNEL_map);
  17. printk("PHYS_OFFSET %llx\n", PHYS_OFFSET);
  18. if (virt_addr >= __START_KERNEL_map)
  19. return (unsigned long)virt_addr - (unsigned long)__START_KERNEL_map + (unsigned long)PHYS_OFFSET;
  20. /* Handle kernel data */
  21. return (unsigned long)virt_addr - (unsigned long)PAGE_OFFSET;
  22. }
  23.  
  24. static int cpu_psci_cpu_boot(unsigned int cpu)
  25. {
  26. unsigned long e = __pa_symbol(secondary_entry);
  27. // printk("pa symbol %llx\n", e);
  28. int err = psci_ops.cpu_on((unsigned long)cpu_logical_map(cpu), e);
  29. if (err)
  30. pr_err("failed to boot CPU%d (%d)\n", cpu, err);
  31.  
  32. return err;
  33. }
  34.  
  35. Dump of phys_addr:
  36.  
  37. Disassembly of section .text.__phys_addr:
  38.  
  39. ffffffc0000883a8 <__phys_addr>:
  40. ffffffc0000883a8: a9be7bfd stp x29, x30, [sp, #-32]!
  41. ffffffc0000883ac: 910003fd mov x29, sp
  42. ffffffc0000883b0: a90153f3 stp x19, x20, [sp, #16]
  43. ffffffc0000883b4: d00004b4 adrp x20, ffffffc00011e000 <boot_cpu_pda+0x1000>
  44. ffffffc0000883b8: aa0003f3 mov x19, x0
  45. ffffffc0000883bc: f9430281 ldr x1, [x20, #1536]
  46. ffffffc0000883c0: d0000120 adrp x0, ffffffc0000ae000 <psci_of_match+0x1e90>
  47. ffffffc0000883c4: 9117a000 add x0, x0, #0x5e8
  48. ffffffc0000883c8: 94000544 bl ffffffc0000898d8 <printk>
  49. ffffffc0000883cc: aa1303e1 mov x1, x19
  50. ffffffc0000883d0: d0000120 adrp x0, ffffffc0000ae000 <psci_of_match+0x1e90>
  51. ffffffc0000883d4: 9117e000 add x0, x0, #0x5f8
  52. ffffffc0000883d8: 94000540 bl ffffffc0000898d8 <printk>
  53. ffffffc0000883dc: d2800101 mov x1, #0x8 // #8
  54. ffffffc0000883e0: d0000120 adrp x0, ffffffc0000ae000 <psci_of_match+0x1e90>
  55. ffffffc0000883e4: 91182000 add x0, x0, #0x608
  56. ffffffc0000883e8: 9400053c bl ffffffc0000898d8 <printk>
  57. ffffffc0000883ec: b25a67e1 mov x1, #0xffffffc000000000 // #-274877906944
  58. ffffffc0000883f0: d0000120 adrp x0, ffffffc0000ae000 <psci_of_match+0x1e90>
  59. ffffffc0000883f4: 91186000 add x0, x0, #0x618
  60. ffffffc0000883f8: 94000538 bl ffffffc0000898d8 <printk>
  61. ffffffc0000883fc: f9430281 ldr x1, [x20, #1536]
  62. ffffffc000088400: d0000120 adrp x0, ffffffc0000ae000 <psci_of_match+0x1e90>
  63. ffffffc000088404: 9118c000 add x0, x0, #0x630
  64. ffffffc000088408: 94000534 bl ffffffc0000898d8 <printk>
  65. ffffffc00008840c: 92c00800 mov x0, #0xffffffbfffffffff // #-274877906945
  66. ffffffc000088410: eb00027f cmp x19, x0
  67. ffffffc000088414: 540000c9 b.ls ffffffc00008842c <__phys_addr+0x84> // b.plast
  68. ffffffc000088418: f9430280 ldr x0, [x20, #1536]
  69. ffffffc00008841c: d2c00801 mov x1, #0x4000000000 // #274877906944
  70. ffffffc000088420: 8b010000 add x0, x0, x1
  71. ffffffc000088424: 8b130000 add x0, x0, x19
  72. ffffffc000088428: 14000003 b ffffffc000088434 <__phys_addr+0x8c>
  73. ffffffc00008842c: d2c00800 mov x0, #0x4000000000 // #274877906944
  74. ffffffc000088430: 8b000260 add x0, x19, x0
  75. ffffffc000088434: a94153f3 ldp x19, x20, [sp, #16]
  76. ffffffc000088438: a8c27bfd ldp x29, x30, [sp], #32
  77. ffffffc00008843c: d65f03c0 ret
  78.  
  79.  
  80. Dump of cpu_psci_cpu_boot:
  81.  
  82. Disassembly of section .text.cpu_psci_cpu_boot:
  83.  
  84. ffffffc000085430 <cpu_psci_cpu_boot>:
  85. ffffffc000085430: a9be7bfd stp x29, x30, [sp, #-32]!
  86. ffffffc000085434: 910003fd mov x29, sp
  87. ffffffc000085438: a90153f3 stp x19, x20, [sp, #16]
  88. ffffffc00008543c: 2a0003f4 mov w20, w0
  89. ffffffc000085440: b0ffffe0 adrp x0, ffffffc000082000 <memmove+0x40>
  90. ffffffc000085444: 911c0000 add x0, x0, #0x700
  91. ffffffc000085448: 94000bd8 bl ffffffc0000883a8 <__phys_addr>
  92. ffffffc00008544c: 900001e2 adrp x2, ffffffc0000c1000 <__data_loc+0x2000>
  93. ffffffc000085450: 9105e042 add x2, x2, #0x178
  94. ffffffc000085454: 900005c3 adrp x3, ffffffc00013d000 <irqs+0x5890>
  95. ffffffc000085458: 93407c01 sxtw x1, w0
  96. ffffffc00008545c: f947d063 ldr x3, [x3, #4000]
  97. ffffffc000085460: f8745840 ldr x0, [x2, w20, uxtw #3]
  98. ffffffc000085464: d63f0060 blr x3
  99. ffffffc000085468: 2a0003f3 mov w19, w0
  100. ffffffc00008546c: 340000c0 cbz w0, ffffffc000085484 <cpu_psci_cpu_boot+0x54>
  101. ffffffc000085470: 90000140 adrp x0, ffffffc0000ad000 <psci_of_match+0xe90>
  102. ffffffc000085474: 2a1403e1 mov w1, w20
  103. ffffffc000085478: 2a1303e2 mov w2, w19
  104. ffffffc00008547c: 911a8000 add x0, x0, #0x6a0
  105. ffffffc000085480: 94001116 bl ffffffc0000898d8 <printk>
  106. ffffffc000085484: 2a1303e0 mov w0, w19
  107. ffffffc000085488: a94153f3 ldp x19, x20, [sp, #16]
  108. ffffffc00008548c: a8c27bfd ldp x29, x30, [sp], #32
  109. ffffffc000085490: d65f03c0 ret
  110.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement