Hi Segher, On Sun, Jul 21, 2019 at 01:01:50PM -0500, Segher Boessenkool wrote: > On Sun, Jul 21, 2019 at 12:58:46AM -0700, Nathan Chancellor wrote: > > I have attached the disassembly of arch/powerpc/kernel/mem.o with > > clear_page (working) and broken_clear_page (broken), along with the side > > by side diff. My assembly knowledge is fairly limited as it stands and > > it is certainly not up to snuff on PowerPC so I have no idea what I am > > looking for. Please let me know if anything immediately looks off or if > > there is anything else I can do to help out. > > You might want to use a disassembler that shows most simplified mnemonics, > and you crucially should show the relocations. "objdump -dr" works nicely.
Copy, those are attached below if you want to take a further look at them. > > 0000017c clear_user_page: > > 17c: 38 80 00 80 li 4, 128 > > 180: 7c 89 03 a6 mtctr 4 > > 184: 7c 00 1f ec dcbz 0, 3 > > 188: 38 63 00 20 addi 3, 3, 32 > > 18c: 42 00 ff f8 bdnz .+65528 > > That offset is incorrectly disassembled, btw (it's a signed field, not > unsigned). > > > 0000017c clear_user_page: > > 17c: 94 21 ff f0 stwu 1, -16(1) > > 180: 38 80 00 80 li 4, 128 > > 184: 38 63 ff e0 addi 3, 3, -32 > > 188: 7c 89 03 a6 mtctr 4 > > 18c: 38 81 00 0f addi 4, 1, 15 > > 190: 8c c3 00 20 lbzu 6, 32(3) > > 194: 98 c1 00 0f stb 6, 15(1) > > 198: 7c 00 27 ec dcbz 0, 4 > > 19c: 42 00 ff f4 bdnz .+65524 > > Uh, yeah, well, I have no idea what clang tried here, but that won't > work. It's copying a byte from each target cache line to the stack, > and then does clears the cache line containing that byte on the stack. > > I *guess* this is about "Z" and not about "%y", but you'll have to ask > the clang people. > > Or it may be that they do not treat inline asm operands as lvalues > properly? That rings some bells. Yeah that looks like it. > > > Segher Okay, I think I understand... I think this is enough to bring up an LLVM bug report but I'll ask some of the LLVM folks I know before doing so. Thank you for all of the input, I really appreciate it, Nathan
mem-working.o: file format elf32-powerpc Disassembly of section .text: 00000000 <phys_mem_access_prot>: 0: 7c 08 02 a6 mflr r0 4: 90 01 00 04 stw r0,4(r1) 8: 94 21 ff e0 stwu r1,-32(r1) c: 93 a1 00 14 stw r29,20(r1) 10: 7c fd 3b 78 mr r29,r7 14: 3c e0 00 00 lis r7,0 16: R_PPC_ADDR16_HA ppc_md 18: 38 e7 00 00 addi r7,r7,0 1a: R_PPC_ADDR16_LO ppc_md 1c: 81 07 00 a0 lwz r8,160(r7) 20: 93 c1 00 18 stw r30,24(r1) 24: 28 08 00 00 cmplwi r8,0 28: 7c 7e 1b 78 mr r30,r3 2c: 41 82 00 20 beq 4c <phys_mem_access_prot+0x4c> 30: 80 7d 00 00 lwz r3,0(r29) 34: 38 e1 00 08 addi r7,r1,8 38: 7d 09 03 a6 mtctr r8 3c: 90 61 00 08 stw r3,8(r1) 40: 7f c3 f3 78 mr r3,r30 44: 4e 80 04 21 bctrl 48: 48 00 00 28 b 70 <phys_mem_access_prot+0x70> 4c: 7c a3 2b 78 mr r3,r5 50: 48 00 00 01 bl 50 <phys_mem_access_prot+0x50> 50: R_PPC_PLTREL24 page_is_ram 54: 28 03 00 00 cmplwi r3,0 58: 80 7d 00 00 lwz r3,0(r29) 5c: 40 82 00 10 bne 6c <phys_mem_access_prot+0x6c> 60: 54 63 06 26 rlwinm r3,r3,0,24,19 64: 60 63 05 00 ori r3,r3,1280 68: 90 7d 00 00 stw r3,0(r29) 6c: 90 7e 00 00 stw r3,0(r30) 70: 83 c1 00 18 lwz r30,24(r1) 74: 83 a1 00 14 lwz r29,20(r1) 78: 80 01 00 24 lwz r0,36(r1) 7c: 38 21 00 20 addi r1,r1,32 80: 7c 08 03 a6 mtlr r0 84: 4e 80 00 20 blr 00000088 <free_initmem>: 88: 7c 08 02 a6 mflr r0 8c: 90 01 00 04 stw r0,4(r1) 90: 94 21 ff f0 stwu r1,-16(r1) 94: 3c 60 00 00 lis r3,0 96: R_PPC_ADDR16_HA ppc_md 98: 3c 80 00 00 lis r4,0 9a: R_PPC_ADDR16_HA ppc_printk_progress 9c: 38 63 00 00 addi r3,r3,0 9e: R_PPC_ADDR16_LO ppc_md a0: 38 84 00 00 addi r4,r4,0 a2: R_PPC_ADDR16_LO ppc_printk_progress a4: 90 83 00 60 stw r4,96(r3) a8: 48 00 00 01 bl a8 <free_initmem+0x20> a8: R_PPC_PLTREL24 mark_initmem_nx ac: 3c 60 00 00 lis r3,0 ae: R_PPC_ADDR16_HA init_mem_is_free b0: 38 80 00 01 li r4,1 b4: 98 83 00 00 stb r4,0(r3) b6: R_PPC_ADDR16_LO init_mem_is_free b8: 3c 60 00 00 lis r3,0 ba: R_PPC_ADDR16_HA __init_begin bc: 3c 80 00 00 lis r4,0 be: R_PPC_ADDR16_HA __init_end c0: 3c a0 00 00 lis r5,0 c2: R_PPC_ADDR16_HA .rodata.str1.1+0x107 c4: 38 63 00 00 addi r3,r3,0 c6: R_PPC_ADDR16_LO __init_begin c8: 38 84 00 00 addi r4,r4,0 ca: R_PPC_ADDR16_LO __init_end cc: 38 c5 00 00 addi r6,r5,0 ce: R_PPC_ADDR16_LO .rodata.str1.1+0x107 d0: 38 a0 00 cc li r5,204 d4: 48 00 00 01 bl d4 <free_initmem+0x4c> d4: R_PPC_PLTREL24 free_reserved_area d8: 80 01 00 14 lwz r0,20(r1) dc: 38 21 00 10 addi r1,r1,16 e0: 7c 08 03 a6 mtlr r0 e4: 4e 80 00 20 blr 000000e8 <flush_dcache_page>: e8: 80 83 00 00 lwz r4,0(r3) ec: 70 84 08 00 andi. r4,r4,2048 f0: 4d 82 00 20 beqlr f4: 38 80 08 00 li r4,2048 f8: 7c a0 18 28 lwarx r5,0,r3 fc: 7c a5 20 78 andc r5,r5,r4 100: 7c a0 19 2d stwcx. r5,0,r3 104: 40 a2 ff f4 bne f8 <flush_dcache_page+0x10> 108: 4e 80 00 20 blr 0000010c <flush_dcache_icache_page>: 10c: 7c 08 02 a6 mflr r0 110: 90 01 00 04 stw r0,4(r1) 114: 94 21 ff f0 stwu r1,-16(r1) 118: 80 82 00 00 lwz r4,0(r2) 11c: 38 84 00 01 addi r4,r4,1 120: 90 82 00 00 stw r4,0(r2) 124: 80 82 0a e4 lwz r4,2788(r2) 128: 38 84 00 01 addi r4,r4,1 12c: 90 82 0a e4 stw r4,2788(r2) 130: 3c 80 00 00 lis r4,0 132: R_PPC_ADDR16_HA mem_map 134: 80 84 00 00 lwz r4,0(r4) 136: R_PPC_ADDR16_LO mem_map 138: 7c 64 18 50 subf r3,r4,r3 13c: 3c 80 cc cc lis r4,-13108 140: 54 63 e8 fe rlwinm r3,r3,29,3,31 144: 60 84 d0 00 ori r4,r4,53248 148: 7c 63 21 d6 mullw r3,r3,r4 14c: 3c 63 c0 00 addis r3,r3,-16384 150: 48 00 00 01 bl 150 <flush_dcache_icache_page+0x44> 150: R_PPC_PLTREL24 __flush_dcache_icache 154: 80 62 0a e4 lwz r3,2788(r2) 158: 38 63 ff ff addi r3,r3,-1 15c: 90 62 0a e4 stw r3,2788(r2) 160: 80 62 00 00 lwz r3,0(r2) 164: 38 63 ff ff addi r3,r3,-1 168: 90 62 00 00 stw r3,0(r2) 16c: 80 01 00 14 lwz r0,20(r1) 170: 38 21 00 10 addi r1,r1,16 174: 7c 08 03 a6 mtlr r0 178: 4e 80 00 20 blr 0000017c <clear_user_page>: 17c: 38 80 00 80 li r4,128 180: 7c 89 03 a6 mtctr r4 184: 7c 00 1f ec dcbz 0,r3 188: 38 63 00 20 addi r3,r3,32 18c: 42 00 ff f8 bdnz 184 <clear_user_page+0x8> 190: 80 65 00 00 lwz r3,0(r5) 194: 70 63 08 00 andi. r3,r3,2048 198: 4d 82 00 20 beqlr 19c: 38 60 08 00 li r3,2048 1a0: 7c 80 28 28 lwarx r4,0,r5 1a4: 7c 84 18 78 andc r4,r4,r3 1a8: 7c 80 29 2d stwcx. r4,0,r5 1ac: 40 a2 ff f4 bne 1a0 <clear_user_page+0x24> 1b0: 4e 80 00 20 blr 000001b4 <copy_user_page>: 1b4: 7c 08 02 a6 mflr r0 1b8: 90 01 00 04 stw r0,4(r1) 1bc: 94 21 ff f0 stwu r1,-16(r1) 1c0: 93 c1 00 08 stw r30,8(r1) 1c4: 7c de 33 78 mr r30,r6 1c8: 48 00 00 01 bl 1c8 <copy_user_page+0x14> 1c8: R_PPC_PLTREL24 copy_page 1cc: 80 7e 00 00 lwz r3,0(r30) 1d0: 70 63 08 00 andi. r3,r3,2048 1d4: 41 82 00 18 beq 1ec <copy_user_page+0x38> 1d8: 38 60 08 00 li r3,2048 1dc: 7c 80 f0 28 lwarx r4,0,r30 1e0: 7c 84 18 78 andc r4,r4,r3 1e4: 7c 80 f1 2d stwcx. r4,0,r30 1e8: 40 a2 ff f4 bne 1dc <copy_user_page+0x28> 1ec: 83 c1 00 08 lwz r30,8(r1) 1f0: 80 01 00 14 lwz r0,20(r1) 1f4: 38 21 00 10 addi r1,r1,16 1f8: 7c 08 03 a6 mtlr r0 1fc: 4e 80 00 20 blr 00000200 <flush_icache_user_range>: 200: 7c 08 02 a6 mflr r0 204: 90 01 00 04 stw r0,4(r1) 208: 94 21 ff e0 stwu r1,-32(r1) 20c: 3c 60 00 00 lis r3,0 20e: R_PPC_ADDR16_HA .rodata.str1.1+0x115 210: 93 81 00 10 stw r28,16(r1) 214: 7c 9c 23 78 mr r28,r4 218: 38 63 00 00 addi r3,r3,0 21a: R_PPC_ADDR16_LO .rodata.str1.1+0x115 21c: 38 80 00 53 li r4,83 220: 93 a1 00 14 stw r29,20(r1) 224: 7c bd 2b 78 mr r29,r5 228: 38 a0 00 00 li r5,0 22c: 93 c1 00 18 stw r30,24(r1) 230: 7c de 33 78 mr r30,r6 234: 48 00 00 01 bl 234 <flush_icache_user_range+0x34> 234: R_PPC_PLTREL24 __might_sleep 238: 3c 60 00 00 lis r3,0 23a: R_PPC_ADDR16_HA mem_map 23c: 3c 80 cc cc lis r4,-13108 240: 80 63 00 00 lwz r3,0(r3) 242: R_PPC_ADDR16_LO mem_map 244: 60 84 d0 00 ori r4,r4,53248 248: 7c 63 e0 50 subf r3,r3,r28 24c: 54 63 e8 fe rlwinm r3,r3,29,3,31 250: 7c 63 21 d6 mullw r3,r3,r4 254: 57 a4 05 3e clrlwi r4,r29,20 258: 50 64 00 26 rlwimi r4,r3,0,0,19 25c: 3c 64 c0 00 addis r3,r4,-16384 260: 7c 83 f2 14 add r4,r3,r30 264: 48 00 00 01 bl 264 <flush_icache_user_range+0x64> 264: R_PPC_PLTREL24 flush_icache_range 268: 83 c1 00 18 lwz r30,24(r1) 26c: 83 a1 00 14 lwz r29,20(r1) 270: 83 81 00 10 lwz r28,16(r1) 274: 80 01 00 24 lwz r0,36(r1) 278: 38 21 00 20 addi r1,r1,32 27c: 7c 08 03 a6 mtlr r0 280: 4e 80 00 20 blr 00000284 <update_mmu_cache>: 284: 4e 80 00 20 blr 00000288 <devmem_is_allowed>: 288: 7c 08 02 a6 mflr r0 28c: 90 01 00 04 stw r0,4(r1) 290: 94 21 ff f0 stwu r1,-16(r1) 294: 93 c1 00 08 stw r30,8(r1) 298: 7c 7e 1b 78 mr r30,r3 29c: 54 63 65 3e rlwinm r3,r3,12,20,31 2a0: 57 c4 60 26 rlwinm r4,r30,12,0,19 2a4: 48 00 00 01 bl 2a4 <devmem_is_allowed+0x1c> 2a4: R_PPC_PLTREL24 iomem_is_exclusive 2a8: 70 63 00 01 andi. r3,r3,1 2ac: 38 60 00 00 li r3,0 2b0: 41 81 00 14 bgt 2c4 <devmem_is_allowed+0x3c> 2b4: 7f c3 f3 78 mr r3,r30 2b8: 48 00 00 01 bl 2b8 <devmem_is_allowed+0x30> 2b8: R_PPC_PLTREL24 page_is_ram 2bc: 7c 63 00 34 cntlzw r3,r3 2c0: 54 63 df fe rlwinm r3,r3,27,31,31 2c4: 83 c1 00 08 lwz r30,8(r1) 2c8: 80 01 00 14 lwz r0,20(r1) 2cc: 38 21 00 10 addi r1,r1,16 2d0: 7c 08 03 a6 mtlr r0 2d4: 4e 80 00 20 blr Disassembly of section .init.text: 00000000 <mem_topology_setup>: 0: 7c 08 02 a6 mflr r0 4: 90 01 00 04 stw r0,4(r1) 8: 94 21 ff f0 stwu r1,-16(r1) c: 48 00 00 01 bl c <mem_topology_setup+0xc> c: R_PPC_PLTREL24 memblock_end_of_DRAM 10: 54 84 a0 3e rotlwi r4,r4,20 14: 3c a0 00 00 lis r5,0 16: R_PPC_ADDR16_HA max_pfn 18: 50 64 a0 16 rlwimi r4,r3,20,0,11 1c: 3c 60 00 00 lis r3,0 1e: R_PPC_ADDR16_HA max_low_pfn 20: 90 85 00 00 stw r4,0(r5) 22: R_PPC_ADDR16_LO max_pfn 24: 38 a0 ff ff li r5,-1 28: 90 83 00 00 stw r4,0(r3) 2a: R_PPC_ADDR16_LO max_low_pfn 2c: 3c 60 00 00 lis r3,0 2e: R_PPC_ADDR16_HA min_low_pfn 30: 38 80 00 00 li r4,0 34: 38 c0 ff ff li r6,-1 38: 39 00 00 00 li r8,0 3c: 90 83 00 00 stw r4,0(r3) 3e: R_PPC_ADDR16_LO min_low_pfn 40: 3c 60 00 00 lis r3,0 42: R_PPC_ADDR16_HA memblock 44: 38 80 00 00 li r4,0 48: 38 63 00 00 addi r3,r3,0 4a: R_PPC_ADDR16_LO memblock 4c: 38 e3 00 10 addi r7,r3,16 50: 38 60 00 00 li r3,0 54: 48 00 00 01 bl 54 <mem_topology_setup+0x54> 54: R_PPC_PLTREL24 memblock_set_node 58: 80 01 00 14 lwz r0,20(r1) 5c: 38 21 00 10 addi r1,r1,16 60: 7c 08 03 a6 mtlr r0 64: 4e 80 00 20 blr 00000068 <initmem_init>: 68: 7c 08 02 a6 mflr r0 6c: 90 01 00 04 stw r0,4(r1) 70: 94 21 ff f0 stwu r1,-16(r1) 74: 38 60 00 00 li r3,0 78: 48 00 00 01 bl 78 <initmem_init+0x10> 78: R_PPC_PLTREL24 sparse_memory_present_with_active_regions 7c: 80 01 00 14 lwz r0,20(r1) 80: 38 21 00 10 addi r1,r1,16 84: 7c 08 03 a6 mtlr r0 88: 4e 80 00 20 blr 0000008c <paging_init>: 8c: 7c 08 02 a6 mflr r0 90: 90 01 00 04 stw r0,4(r1) 94: 94 21 ff d0 stwu r1,-48(r1) 98: 93 21 00 14 stw r25,20(r1) 9c: 93 41 00 18 stw r26,24(r1) a0: 93 61 00 1c stw r27,28(r1) a4: 93 81 00 20 stw r28,32(r1) a8: 93 a1 00 24 stw r29,36(r1) ac: 93 c1 00 28 stw r30,40(r1) b0: 48 00 00 01 bl b0 <paging_init+0x24> b0: R_PPC_PLTREL24 memblock_phys_mem_size b4: 7c 7e 1b 78 mr r30,r3 b8: 7c 9d 23 78 mr r29,r4 bc: 3f 40 ff fe lis r26,-2 c0: 48 00 00 01 bl c0 <paging_init+0x34> c0: R_PPC_PLTREL24 memblock_end_of_DRAM c4: 7c 7c 1b 78 mr r28,r3 c8: 7c 9b 23 78 mr r27,r4 cc: 3b 20 00 00 li r25,0 d0: 38 e1 00 08 addi r7,r1,8 d4: 7f 43 d3 78 mr r3,r26 d8: 93 21 00 10 stw r25,16(r1) dc: 38 a0 00 00 li r5,0 e0: 38 c0 00 00 li r6,0 e4: 93 21 00 08 stw r25,8(r1) e8: 48 00 00 01 bl e8 <paging_init+0x5c> e8: R_PPC_PLTREL24 map_kernel_page ec: 3b 5a 10 00 addi r26,r26,4096 f0: 2c 1a f0 00 cmpwi r26,-4096 f4: 40 82 ff dc bne d0 <paging_init+0x44> f8: 3c 60 00 00 lis r3,0 fa: R_PPC_ADDR16_HA .rodata.str1.1 fc: 4c c6 31 82 crclr 4*cr1+eq 100: 7f 85 e3 78 mr r5,r28 104: 38 63 00 00 addi r3,r3,0 106: R_PPC_ADDR16_LO .rodata.str1.1 108: 7f 66 db 78 mr r6,r27 10c: 7f c7 f3 78 mr r7,r30 110: 7f a8 eb 78 mr r8,r29 114: 48 00 00 01 bl 114 <paging_init+0x88> 114: R_PPC_PLTREL24 printk 118: 7c 7d d8 10 subfc r3,r29,r27 11c: 4c c6 31 82 crclr 4*cr1+eq 120: 7c be e1 10 subfe r5,r30,r28 124: 54 64 60 3e rotlwi r4,r3,12 128: 3c 60 00 00 lis r3,0 12a: R_PPC_ADDR16_HA .rodata.str1.1+0x29 12c: 50 a4 60 26 rlwimi r4,r5,12,0,19 130: 38 63 00 00 addi r3,r3,0 132: R_PPC_ADDR16_LO .rodata.str1.1+0x29 134: 48 00 00 01 bl 134 <paging_init+0xa8> 134: R_PPC_PLTREL24 printk 138: 3c 60 00 00 lis r3,0 13a: R_PPC_ADDR16_HA max_low_pfn 13c: 80 83 00 00 lwz r4,0(r3) 13e: R_PPC_ADDR16_LO max_low_pfn 140: 3c 60 00 00 lis r3,0 142: R_PPC_ADDR16_HA .bss+0x10 144: 94 83 00 00 stwu r4,0(r3) 146: R_PPC_ADDR16_LO .bss+0x10 148: 48 00 00 01 bl 148 <paging_init+0xbc> 148: R_PPC_PLTREL24 free_area_init_nodes 14c: 83 c1 00 28 lwz r30,40(r1) 150: 83 a1 00 24 lwz r29,36(r1) 154: 83 81 00 20 lwz r28,32(r1) 158: 83 61 00 1c lwz r27,28(r1) 15c: 83 41 00 18 lwz r26,24(r1) 160: 83 21 00 14 lwz r25,20(r1) 164: 80 01 00 34 lwz r0,52(r1) 168: 38 21 00 30 addi r1,r1,48 16c: 7c 08 03 a6 mtlr r0 170: 4e 80 00 20 blr 00000174 <mem_init>: 174: 7c 08 02 a6 mflr r0 178: 90 01 00 04 stw r0,4(r1) 17c: 94 21 ff e0 stwu r1,-32(r1) 180: 3c 60 00 00 lis r3,0 182: R_PPC_ADDR16_HA max_low_pfn 184: 3c 80 00 00 lis r4,0 186: R_PPC_ADDR16_HA max_pfn 188: 93 81 00 10 stw r28,16(r1) 18c: 3f 80 00 00 lis r28,0 18e: R_PPC_ADDR16_HA high_memory 190: 80 63 00 00 lwz r3,0(r3) 192: R_PPC_ADDR16_LO max_low_pfn 194: 80 84 00 00 lwz r4,0(r4) 196: R_PPC_ADDR16_LO max_pfn 198: 54 63 60 26 rlwinm r3,r3,12,0,19 19c: 3c 63 c0 00 addis r3,r3,-16384 1a0: 90 7c 00 00 stw r3,0(r28) 1a2: R_PPC_ADDR16_LO high_memory 1a4: 3c 60 00 00 lis r3,0 1a6: R_PPC_ADDR16_HA max_mapnr 1a8: 93 a1 00 14 stw r29,20(r1) 1ac: 93 c1 00 18 stw r30,24(r1) 1b0: 90 83 00 00 stw r4,0(r3) 1b2: R_PPC_ADDR16_LO max_mapnr 1b4: 48 00 00 01 bl 1b4 <mem_init+0x40> 1b4: R_PPC_PLTREL24 memblock_free_all 1b8: 38 60 00 00 li r3,0 1bc: 48 00 00 01 bl 1bc <mem_init+0x48> 1bc: R_PPC_PLTREL24 mem_init_print_info 1c0: 3c 60 00 00 lis r3,0 1c2: R_PPC_ADDR16_HA .rodata.str1.1+0x44 1c4: 4c c6 31 82 crclr 4*cr1+eq 1c8: 38 63 00 00 addi r3,r3,0 1ca: R_PPC_ADDR16_LO .rodata.str1.1+0x44 1cc: 48 00 00 01 bl 1cc <mem_init+0x58> 1cc: R_PPC_PLTREL24 printk 1d0: 3c 80 ff fd lis r4,-3 1d4: 3c 60 00 00 lis r3,0 1d6: R_PPC_ADDR16_HA .rodata.str1.1+0x65 1d8: 4c c6 31 82 crclr 4*cr1+eq 1dc: 60 9e f0 00 ori r30,r4,61440 1e0: 38 63 00 00 addi r3,r3,0 1e2: R_PPC_ADDR16_LO .rodata.str1.1+0x65 1e4: 7f c4 f3 78 mr r4,r30 1e8: 38 a0 f0 00 li r5,-4096 1ec: 48 00 00 01 bl 1ec <mem_init+0x78> 1ec: R_PPC_PLTREL24 printk 1f0: 3c 80 ff dd lis r4,-35 1f4: 3c 60 00 00 lis r3,0 1f6: R_PPC_ADDR16_HA .rodata.str1.1+0x87 1f8: 4c c6 31 82 crclr 4*cr1+eq 1fc: 60 9d f0 00 ori r29,r4,61440 200: 38 63 00 00 addi r3,r3,0 202: R_PPC_ADDR16_LO .rodata.str1.1+0x87 204: 7f a4 eb 78 mr r4,r29 208: 7f c5 f3 78 mr r5,r30 20c: 48 00 00 01 bl 20c <mem_init+0x98> 20c: R_PPC_PLTREL24 printk 210: 3f c0 00 00 lis r30,0 212: R_PPC_ADDR16_HA ioremap_bot 214: 3c 60 00 00 lis r3,0 216: R_PPC_ADDR16_HA .rodata.str1.1+0xb1 218: 4c c6 31 82 crclr 4*cr1+eq 21c: 80 9e 00 00 lwz r4,0(r30) 21e: R_PPC_ADDR16_LO ioremap_bot 220: 38 63 00 00 addi r3,r3,0 222: R_PPC_ADDR16_LO .rodata.str1.1+0xb1 224: 7f a5 eb 78 mr r5,r29 228: 48 00 00 01 bl 228 <mem_init+0xb4> 228: R_PPC_PLTREL24 printk 22c: 80 7c 00 00 lwz r3,0(r28) 22e: R_PPC_ADDR16_LO high_memory 230: 3c 80 01 00 lis r4,256 234: 4c c6 31 82 crclr 4*cr1+eq 238: 38 63 ff ff addi r3,r3,-1 23c: 80 be 00 00 lwz r5,0(r30) 23e: R_PPC_ADDR16_LO ioremap_bot 240: 3c 63 10 00 addis r3,r3,4096 244: 54 63 00 06 rlwinm r3,r3,0,0,3 248: 50 64 02 0c rlwimi r4,r3,0,8,6 24c: 3c 60 00 00 lis r3,0 24e: R_PPC_ADDR16_HA .rodata.str1.1+0xda 250: 38 63 00 00 addi r3,r3,0 252: R_PPC_ADDR16_LO .rodata.str1.1+0xda 254: 48 00 00 01 bl 254 <mem_init+0xe0> 254: R_PPC_PLTREL24 printk 258: 83 c1 00 18 lwz r30,24(r1) 25c: 83 a1 00 14 lwz r29,20(r1) 260: 83 81 00 10 lwz r28,16(r1) 264: 80 01 00 24 lwz r0,36(r1) 268: 38 21 00 20 addi r1,r1,32 26c: 7c 08 03 a6 mtlr r0 270: 4e 80 00 20 blr 00000274 <add_system_ram_resources>: 274: 7c 08 02 a6 mflr r0 278: 90 01 00 04 stw r0,4(r1) 27c: 94 21 ff c0 stwu r1,-64(r1) 280: 3c 60 00 00 lis r3,0 282: R_PPC_ADDR16_HA memblock 284: 93 a1 00 34 stw r29,52(r1) 288: 3b a3 00 00 addi r29,r3,0 28a: R_PPC_ADDR16_LO memblock 28c: 80 7d 00 10 lwz r3,16(r29) 290: 93 81 00 30 stw r28,48(r1) 294: 1c 63 00 18 mulli r3,r3,24 298: 83 9d 00 20 lwz r28,32(r29) 29c: 7c 7c 1a 14 add r3,r28,r3 2a0: 92 a1 00 14 stw r21,20(r1) 2a4: 7c 1c 18 40 cmplw r28,r3 2a8: 92 c1 00 18 stw r22,24(r1) 2ac: 92 e1 00 1c stw r23,28(r1) 2b0: 93 01 00 20 stw r24,32(r1) 2b4: 93 21 00 24 stw r25,36(r1) 2b8: 93 41 00 28 stw r26,40(r1) 2bc: 93 61 00 2c stw r27,44(r1) 2c0: 93 c1 00 38 stw r30,56(r1) 2c4: 40 80 00 ac bge 370 <add_system_ram_resources+0xfc> 2c8: 3c 60 00 00 lis r3,0 2ca: R_PPC_ADDR16_HA kmalloc_caches 2cc: 3c 80 00 00 lis r4,0 2ce: R_PPC_ADDR16_HA .rodata.str1.1+0x199 2d0: 3c a0 81 00 lis r5,-32512 2d4: 3c c0 00 00 lis r6,0 2d6: R_PPC_ADDR16_HA iomem_resource 2d8: 3b 7c ff e8 addi r27,r28,-24 2dc: 3b 40 00 00 li r26,0 2e0: 3b 23 00 00 addi r25,r3,0 2e2: R_PPC_ADDR16_LO kmalloc_caches 2e4: 3b 04 00 00 addi r24,r4,0 2e6: R_PPC_ADDR16_LO .rodata.str1.1+0x199 2e8: 60 b7 02 00 ori r23,r5,512 2ec: 3b c6 00 00 addi r30,r6,0 2ee: R_PPC_ADDR16_LO iomem_resource 2f0: 80 79 00 18 lwz r3,24(r25) 2f4: 38 80 0d c0 li r4,3520 2f8: 38 a0 00 28 li r5,40 2fc: 82 db 00 1c lwz r22,28(r27) 300: 82 bb 00 24 lwz r21,36(r27) 304: 48 00 00 01 bl 304 <add_system_ram_resources+0x90> 304: R_PPC_PLTREL24 kmem_cache_alloc_trace 308: 7c 64 1b 78 mr r4,r3 30c: 7c 63 00 34 cntlzw r3,r3 310: 28 04 00 00 cmplwi r4,0 314: 54 63 df fe rlwinm r3,r3,27,31,31 318: 0f 03 00 00 twnei r3,0 31c: 41 82 00 34 beq 350 <add_system_ram_resources+0xdc> 320: 7c 76 aa 14 add r3,r22,r21 324: 93 04 00 10 stw r24,16(r4) 328: 38 63 ff ff addi r3,r3,-1 32c: 90 64 00 0c stw r3,12(r4) 330: 7f c3 f3 78 mr r3,r30 334: 93 44 00 00 stw r26,0(r4) 338: 92 c4 00 04 stw r22,4(r4) 33c: 93 44 00 08 stw r26,8(r4) 340: 92 e4 00 14 stw r23,20(r4) 344: 48 00 00 01 bl 344 <add_system_ram_resources+0xd0> 344: R_PPC_PLTREL24 request_resource 348: 54 63 0f fe rlwinm r3,r3,1,31,31 34c: 0f 03 00 00 twnei r3,0 350: 80 7d 00 10 lwz r3,16(r29) 354: 3b 9c 00 18 addi r28,r28,24 358: 3b 7b 00 18 addi r27,r27,24 35c: 80 9d 00 20 lwz r4,32(r29) 360: 1c 63 00 18 mulli r3,r3,24 364: 7c 64 1a 14 add r3,r4,r3 368: 7c 1c 18 40 cmplw r28,r3 36c: 41 80 ff 84 blt 2f0 <add_system_ram_resources+0x7c> 370: 38 60 00 00 li r3,0 374: 83 c1 00 38 lwz r30,56(r1) 378: 83 a1 00 34 lwz r29,52(r1) 37c: 83 81 00 30 lwz r28,48(r1) 380: 83 61 00 2c lwz r27,44(r1) 384: 83 41 00 28 lwz r26,40(r1) 388: 83 21 00 24 lwz r25,36(r1) 38c: 83 01 00 20 lwz r24,32(r1) 390: 82 e1 00 1c lwz r23,28(r1) 394: 82 c1 00 18 lwz r22,24(r1) 398: 82 a1 00 14 lwz r21,20(r1) 39c: 80 01 00 44 lwz r0,68(r1) 3a0: 38 21 00 40 addi r1,r1,64 3a4: 7c 08 03 a6 mtlr r0 3a8: 4e 80 00 20 blr
mem-broken.o: file format elf32-powerpc Disassembly of section .text: 00000000 <phys_mem_access_prot>: 0: 7c 08 02 a6 mflr r0 4: 90 01 00 04 stw r0,4(r1) 8: 94 21 ff e0 stwu r1,-32(r1) c: 93 a1 00 14 stw r29,20(r1) 10: 7c fd 3b 78 mr r29,r7 14: 3c e0 00 00 lis r7,0 16: R_PPC_ADDR16_HA ppc_md 18: 38 e7 00 00 addi r7,r7,0 1a: R_PPC_ADDR16_LO ppc_md 1c: 81 07 00 a0 lwz r8,160(r7) 20: 93 c1 00 18 stw r30,24(r1) 24: 28 08 00 00 cmplwi r8,0 28: 7c 7e 1b 78 mr r30,r3 2c: 41 82 00 20 beq 4c <phys_mem_access_prot+0x4c> 30: 80 7d 00 00 lwz r3,0(r29) 34: 38 e1 00 08 addi r7,r1,8 38: 7d 09 03 a6 mtctr r8 3c: 90 61 00 08 stw r3,8(r1) 40: 7f c3 f3 78 mr r3,r30 44: 4e 80 04 21 bctrl 48: 48 00 00 28 b 70 <phys_mem_access_prot+0x70> 4c: 7c a3 2b 78 mr r3,r5 50: 48 00 00 01 bl 50 <phys_mem_access_prot+0x50> 50: R_PPC_PLTREL24 page_is_ram 54: 28 03 00 00 cmplwi r3,0 58: 80 7d 00 00 lwz r3,0(r29) 5c: 40 82 00 10 bne 6c <phys_mem_access_prot+0x6c> 60: 54 63 06 26 rlwinm r3,r3,0,24,19 64: 60 63 05 00 ori r3,r3,1280 68: 90 7d 00 00 stw r3,0(r29) 6c: 90 7e 00 00 stw r3,0(r30) 70: 83 c1 00 18 lwz r30,24(r1) 74: 83 a1 00 14 lwz r29,20(r1) 78: 80 01 00 24 lwz r0,36(r1) 7c: 38 21 00 20 addi r1,r1,32 80: 7c 08 03 a6 mtlr r0 84: 4e 80 00 20 blr 00000088 <free_initmem>: 88: 7c 08 02 a6 mflr r0 8c: 90 01 00 04 stw r0,4(r1) 90: 94 21 ff f0 stwu r1,-16(r1) 94: 3c 60 00 00 lis r3,0 96: R_PPC_ADDR16_HA ppc_md 98: 3c 80 00 00 lis r4,0 9a: R_PPC_ADDR16_HA ppc_printk_progress 9c: 38 63 00 00 addi r3,r3,0 9e: R_PPC_ADDR16_LO ppc_md a0: 38 84 00 00 addi r4,r4,0 a2: R_PPC_ADDR16_LO ppc_printk_progress a4: 90 83 00 60 stw r4,96(r3) a8: 48 00 00 01 bl a8 <free_initmem+0x20> a8: R_PPC_PLTREL24 mark_initmem_nx ac: 3c 60 00 00 lis r3,0 ae: R_PPC_ADDR16_HA init_mem_is_free b0: 38 80 00 01 li r4,1 b4: 98 83 00 00 stb r4,0(r3) b6: R_PPC_ADDR16_LO init_mem_is_free b8: 3c 60 00 00 lis r3,0 ba: R_PPC_ADDR16_HA __init_begin bc: 3c 80 00 00 lis r4,0 be: R_PPC_ADDR16_HA __init_end c0: 3c a0 00 00 lis r5,0 c2: R_PPC_ADDR16_HA .rodata.str1.1+0x107 c4: 38 63 00 00 addi r3,r3,0 c6: R_PPC_ADDR16_LO __init_begin c8: 38 84 00 00 addi r4,r4,0 ca: R_PPC_ADDR16_LO __init_end cc: 38 c5 00 00 addi r6,r5,0 ce: R_PPC_ADDR16_LO .rodata.str1.1+0x107 d0: 38 a0 00 cc li r5,204 d4: 48 00 00 01 bl d4 <free_initmem+0x4c> d4: R_PPC_PLTREL24 free_reserved_area d8: 80 01 00 14 lwz r0,20(r1) dc: 38 21 00 10 addi r1,r1,16 e0: 7c 08 03 a6 mtlr r0 e4: 4e 80 00 20 blr 000000e8 <flush_dcache_page>: e8: 80 83 00 00 lwz r4,0(r3) ec: 70 84 08 00 andi. r4,r4,2048 f0: 4d 82 00 20 beqlr f4: 38 80 08 00 li r4,2048 f8: 7c a0 18 28 lwarx r5,0,r3 fc: 7c a5 20 78 andc r5,r5,r4 100: 7c a0 19 2d stwcx. r5,0,r3 104: 40 a2 ff f4 bne f8 <flush_dcache_page+0x10> 108: 4e 80 00 20 blr 0000010c <flush_dcache_icache_page>: 10c: 7c 08 02 a6 mflr r0 110: 90 01 00 04 stw r0,4(r1) 114: 94 21 ff f0 stwu r1,-16(r1) 118: 80 82 00 00 lwz r4,0(r2) 11c: 38 84 00 01 addi r4,r4,1 120: 90 82 00 00 stw r4,0(r2) 124: 80 82 0a e4 lwz r4,2788(r2) 128: 38 84 00 01 addi r4,r4,1 12c: 90 82 0a e4 stw r4,2788(r2) 130: 3c 80 00 00 lis r4,0 132: R_PPC_ADDR16_HA mem_map 134: 80 84 00 00 lwz r4,0(r4) 136: R_PPC_ADDR16_LO mem_map 138: 7c 64 18 50 subf r3,r4,r3 13c: 3c 80 cc cc lis r4,-13108 140: 54 63 e8 fe rlwinm r3,r3,29,3,31 144: 60 84 d0 00 ori r4,r4,53248 148: 7c 63 21 d6 mullw r3,r3,r4 14c: 3c 63 c0 00 addis r3,r3,-16384 150: 48 00 00 01 bl 150 <flush_dcache_icache_page+0x44> 150: R_PPC_PLTREL24 __flush_dcache_icache 154: 80 62 0a e4 lwz r3,2788(r2) 158: 38 63 ff ff addi r3,r3,-1 15c: 90 62 0a e4 stw r3,2788(r2) 160: 80 62 00 00 lwz r3,0(r2) 164: 38 63 ff ff addi r3,r3,-1 168: 90 62 00 00 stw r3,0(r2) 16c: 80 01 00 14 lwz r0,20(r1) 170: 38 21 00 10 addi r1,r1,16 174: 7c 08 03 a6 mtlr r0 178: 4e 80 00 20 blr 0000017c <clear_user_page>: 17c: 94 21 ff f0 stwu r1,-16(r1) 180: 38 80 00 80 li r4,128 184: 38 63 ff e0 addi r3,r3,-32 188: 7c 89 03 a6 mtctr r4 18c: 38 81 00 0f addi r4,r1,15 190: 8c c3 00 20 lbzu r6,32(r3) 194: 98 c1 00 0f stb r6,15(r1) 198: 7c 00 27 ec dcbz 0,r4 19c: 42 00 ff f4 bdnz 190 <clear_user_page+0x14> 1a0: 80 65 00 00 lwz r3,0(r5) 1a4: 70 63 08 00 andi. r3,r3,2048 1a8: 41 82 00 18 beq 1c0 <clear_user_page+0x44> 1ac: 38 60 08 00 li r3,2048 1b0: 7c 80 28 28 lwarx r4,0,r5 1b4: 7c 84 18 78 andc r4,r4,r3 1b8: 7c 80 29 2d stwcx. r4,0,r5 1bc: 40 a2 ff f4 bne 1b0 <clear_user_page+0x34> 1c0: 38 21 00 10 addi r1,r1,16 1c4: 4e 80 00 20 blr 000001c8 <copy_user_page>: 1c8: 7c 08 02 a6 mflr r0 1cc: 90 01 00 04 stw r0,4(r1) 1d0: 94 21 ff f0 stwu r1,-16(r1) 1d4: 93 c1 00 08 stw r30,8(r1) 1d8: 7c de 33 78 mr r30,r6 1dc: 48 00 00 01 bl 1dc <copy_user_page+0x14> 1dc: R_PPC_PLTREL24 copy_page 1e0: 80 7e 00 00 lwz r3,0(r30) 1e4: 70 63 08 00 andi. r3,r3,2048 1e8: 41 82 00 18 beq 200 <copy_user_page+0x38> 1ec: 38 60 08 00 li r3,2048 1f0: 7c 80 f0 28 lwarx r4,0,r30 1f4: 7c 84 18 78 andc r4,r4,r3 1f8: 7c 80 f1 2d stwcx. r4,0,r30 1fc: 40 a2 ff f4 bne 1f0 <copy_user_page+0x28> 200: 83 c1 00 08 lwz r30,8(r1) 204: 80 01 00 14 lwz r0,20(r1) 208: 38 21 00 10 addi r1,r1,16 20c: 7c 08 03 a6 mtlr r0 210: 4e 80 00 20 blr 00000214 <flush_icache_user_range>: 214: 7c 08 02 a6 mflr r0 218: 90 01 00 04 stw r0,4(r1) 21c: 94 21 ff e0 stwu r1,-32(r1) 220: 3c 60 00 00 lis r3,0 222: R_PPC_ADDR16_HA .rodata.str1.1+0x115 224: 93 81 00 10 stw r28,16(r1) 228: 7c 9c 23 78 mr r28,r4 22c: 38 63 00 00 addi r3,r3,0 22e: R_PPC_ADDR16_LO .rodata.str1.1+0x115 230: 38 80 00 53 li r4,83 234: 93 a1 00 14 stw r29,20(r1) 238: 7c bd 2b 78 mr r29,r5 23c: 38 a0 00 00 li r5,0 240: 93 c1 00 18 stw r30,24(r1) 244: 7c de 33 78 mr r30,r6 248: 48 00 00 01 bl 248 <flush_icache_user_range+0x34> 248: R_PPC_PLTREL24 __might_sleep 24c: 3c 60 00 00 lis r3,0 24e: R_PPC_ADDR16_HA mem_map 250: 3c 80 cc cc lis r4,-13108 254: 80 63 00 00 lwz r3,0(r3) 256: R_PPC_ADDR16_LO mem_map 258: 60 84 d0 00 ori r4,r4,53248 25c: 7c 63 e0 50 subf r3,r3,r28 260: 54 63 e8 fe rlwinm r3,r3,29,3,31 264: 7c 63 21 d6 mullw r3,r3,r4 268: 57 a4 05 3e clrlwi r4,r29,20 26c: 50 64 00 26 rlwimi r4,r3,0,0,19 270: 3c 64 c0 00 addis r3,r4,-16384 274: 7c 83 f2 14 add r4,r3,r30 278: 48 00 00 01 bl 278 <flush_icache_user_range+0x64> 278: R_PPC_PLTREL24 flush_icache_range 27c: 83 c1 00 18 lwz r30,24(r1) 280: 83 a1 00 14 lwz r29,20(r1) 284: 83 81 00 10 lwz r28,16(r1) 288: 80 01 00 24 lwz r0,36(r1) 28c: 38 21 00 20 addi r1,r1,32 290: 7c 08 03 a6 mtlr r0 294: 4e 80 00 20 blr 00000298 <update_mmu_cache>: 298: 4e 80 00 20 blr 0000029c <devmem_is_allowed>: 29c: 7c 08 02 a6 mflr r0 2a0: 90 01 00 04 stw r0,4(r1) 2a4: 94 21 ff f0 stwu r1,-16(r1) 2a8: 93 c1 00 08 stw r30,8(r1) 2ac: 7c 7e 1b 78 mr r30,r3 2b0: 54 63 65 3e rlwinm r3,r3,12,20,31 2b4: 57 c4 60 26 rlwinm r4,r30,12,0,19 2b8: 48 00 00 01 bl 2b8 <devmem_is_allowed+0x1c> 2b8: R_PPC_PLTREL24 iomem_is_exclusive 2bc: 70 63 00 01 andi. r3,r3,1 2c0: 38 60 00 00 li r3,0 2c4: 41 81 00 14 bgt 2d8 <devmem_is_allowed+0x3c> 2c8: 7f c3 f3 78 mr r3,r30 2cc: 48 00 00 01 bl 2cc <devmem_is_allowed+0x30> 2cc: R_PPC_PLTREL24 page_is_ram 2d0: 7c 63 00 34 cntlzw r3,r3 2d4: 54 63 df fe rlwinm r3,r3,27,31,31 2d8: 83 c1 00 08 lwz r30,8(r1) 2dc: 80 01 00 14 lwz r0,20(r1) 2e0: 38 21 00 10 addi r1,r1,16 2e4: 7c 08 03 a6 mtlr r0 2e8: 4e 80 00 20 blr Disassembly of section .init.text: 00000000 <mem_topology_setup>: 0: 7c 08 02 a6 mflr r0 4: 90 01 00 04 stw r0,4(r1) 8: 94 21 ff f0 stwu r1,-16(r1) c: 48 00 00 01 bl c <mem_topology_setup+0xc> c: R_PPC_PLTREL24 memblock_end_of_DRAM 10: 54 84 a0 3e rotlwi r4,r4,20 14: 3c a0 00 00 lis r5,0 16: R_PPC_ADDR16_HA max_pfn 18: 50 64 a0 16 rlwimi r4,r3,20,0,11 1c: 3c 60 00 00 lis r3,0 1e: R_PPC_ADDR16_HA max_low_pfn 20: 90 85 00 00 stw r4,0(r5) 22: R_PPC_ADDR16_LO max_pfn 24: 38 a0 ff ff li r5,-1 28: 90 83 00 00 stw r4,0(r3) 2a: R_PPC_ADDR16_LO max_low_pfn 2c: 3c 60 00 00 lis r3,0 2e: R_PPC_ADDR16_HA min_low_pfn 30: 38 80 00 00 li r4,0 34: 38 c0 ff ff li r6,-1 38: 39 00 00 00 li r8,0 3c: 90 83 00 00 stw r4,0(r3) 3e: R_PPC_ADDR16_LO min_low_pfn 40: 3c 60 00 00 lis r3,0 42: R_PPC_ADDR16_HA memblock 44: 38 80 00 00 li r4,0 48: 38 63 00 00 addi r3,r3,0 4a: R_PPC_ADDR16_LO memblock 4c: 38 e3 00 10 addi r7,r3,16 50: 38 60 00 00 li r3,0 54: 48 00 00 01 bl 54 <mem_topology_setup+0x54> 54: R_PPC_PLTREL24 memblock_set_node 58: 80 01 00 14 lwz r0,20(r1) 5c: 38 21 00 10 addi r1,r1,16 60: 7c 08 03 a6 mtlr r0 64: 4e 80 00 20 blr 00000068 <initmem_init>: 68: 7c 08 02 a6 mflr r0 6c: 90 01 00 04 stw r0,4(r1) 70: 94 21 ff f0 stwu r1,-16(r1) 74: 38 60 00 00 li r3,0 78: 48 00 00 01 bl 78 <initmem_init+0x10> 78: R_PPC_PLTREL24 sparse_memory_present_with_active_regions 7c: 80 01 00 14 lwz r0,20(r1) 80: 38 21 00 10 addi r1,r1,16 84: 7c 08 03 a6 mtlr r0 88: 4e 80 00 20 blr 0000008c <paging_init>: 8c: 7c 08 02 a6 mflr r0 90: 90 01 00 04 stw r0,4(r1) 94: 94 21 ff d0 stwu r1,-48(r1) 98: 93 21 00 14 stw r25,20(r1) 9c: 93 41 00 18 stw r26,24(r1) a0: 93 61 00 1c stw r27,28(r1) a4: 93 81 00 20 stw r28,32(r1) a8: 93 a1 00 24 stw r29,36(r1) ac: 93 c1 00 28 stw r30,40(r1) b0: 48 00 00 01 bl b0 <paging_init+0x24> b0: R_PPC_PLTREL24 memblock_phys_mem_size b4: 7c 7e 1b 78 mr r30,r3 b8: 7c 9d 23 78 mr r29,r4 bc: 3f 40 ff fe lis r26,-2 c0: 48 00 00 01 bl c0 <paging_init+0x34> c0: R_PPC_PLTREL24 memblock_end_of_DRAM c4: 7c 7c 1b 78 mr r28,r3 c8: 7c 9b 23 78 mr r27,r4 cc: 3b 20 00 00 li r25,0 d0: 38 e1 00 08 addi r7,r1,8 d4: 7f 43 d3 78 mr r3,r26 d8: 93 21 00 10 stw r25,16(r1) dc: 38 a0 00 00 li r5,0 e0: 38 c0 00 00 li r6,0 e4: 93 21 00 08 stw r25,8(r1) e8: 48 00 00 01 bl e8 <paging_init+0x5c> e8: R_PPC_PLTREL24 map_kernel_page ec: 3b 5a 10 00 addi r26,r26,4096 f0: 2c 1a f0 00 cmpwi r26,-4096 f4: 40 82 ff dc bne d0 <paging_init+0x44> f8: 3c 60 00 00 lis r3,0 fa: R_PPC_ADDR16_HA .rodata.str1.1 fc: 4c c6 31 82 crclr 4*cr1+eq 100: 7f 85 e3 78 mr r5,r28 104: 38 63 00 00 addi r3,r3,0 106: R_PPC_ADDR16_LO .rodata.str1.1 108: 7f 66 db 78 mr r6,r27 10c: 7f c7 f3 78 mr r7,r30 110: 7f a8 eb 78 mr r8,r29 114: 48 00 00 01 bl 114 <paging_init+0x88> 114: R_PPC_PLTREL24 printk 118: 7c 7d d8 10 subfc r3,r29,r27 11c: 4c c6 31 82 crclr 4*cr1+eq 120: 7c be e1 10 subfe r5,r30,r28 124: 54 64 60 3e rotlwi r4,r3,12 128: 3c 60 00 00 lis r3,0 12a: R_PPC_ADDR16_HA .rodata.str1.1+0x29 12c: 50 a4 60 26 rlwimi r4,r5,12,0,19 130: 38 63 00 00 addi r3,r3,0 132: R_PPC_ADDR16_LO .rodata.str1.1+0x29 134: 48 00 00 01 bl 134 <paging_init+0xa8> 134: R_PPC_PLTREL24 printk 138: 3c 60 00 00 lis r3,0 13a: R_PPC_ADDR16_HA max_low_pfn 13c: 80 83 00 00 lwz r4,0(r3) 13e: R_PPC_ADDR16_LO max_low_pfn 140: 3c 60 00 00 lis r3,0 142: R_PPC_ADDR16_HA .bss+0x10 144: 94 83 00 00 stwu r4,0(r3) 146: R_PPC_ADDR16_LO .bss+0x10 148: 48 00 00 01 bl 148 <paging_init+0xbc> 148: R_PPC_PLTREL24 free_area_init_nodes 14c: 83 c1 00 28 lwz r30,40(r1) 150: 83 a1 00 24 lwz r29,36(r1) 154: 83 81 00 20 lwz r28,32(r1) 158: 83 61 00 1c lwz r27,28(r1) 15c: 83 41 00 18 lwz r26,24(r1) 160: 83 21 00 14 lwz r25,20(r1) 164: 80 01 00 34 lwz r0,52(r1) 168: 38 21 00 30 addi r1,r1,48 16c: 7c 08 03 a6 mtlr r0 170: 4e 80 00 20 blr 00000174 <mem_init>: 174: 7c 08 02 a6 mflr r0 178: 90 01 00 04 stw r0,4(r1) 17c: 94 21 ff e0 stwu r1,-32(r1) 180: 3c 60 00 00 lis r3,0 182: R_PPC_ADDR16_HA max_low_pfn 184: 3c 80 00 00 lis r4,0 186: R_PPC_ADDR16_HA max_pfn 188: 93 81 00 10 stw r28,16(r1) 18c: 3f 80 00 00 lis r28,0 18e: R_PPC_ADDR16_HA high_memory 190: 80 63 00 00 lwz r3,0(r3) 192: R_PPC_ADDR16_LO max_low_pfn 194: 80 84 00 00 lwz r4,0(r4) 196: R_PPC_ADDR16_LO max_pfn 198: 54 63 60 26 rlwinm r3,r3,12,0,19 19c: 3c 63 c0 00 addis r3,r3,-16384 1a0: 90 7c 00 00 stw r3,0(r28) 1a2: R_PPC_ADDR16_LO high_memory 1a4: 3c 60 00 00 lis r3,0 1a6: R_PPC_ADDR16_HA max_mapnr 1a8: 93 a1 00 14 stw r29,20(r1) 1ac: 93 c1 00 18 stw r30,24(r1) 1b0: 90 83 00 00 stw r4,0(r3) 1b2: R_PPC_ADDR16_LO max_mapnr 1b4: 48 00 00 01 bl 1b4 <mem_init+0x40> 1b4: R_PPC_PLTREL24 memblock_free_all 1b8: 38 60 00 00 li r3,0 1bc: 48 00 00 01 bl 1bc <mem_init+0x48> 1bc: R_PPC_PLTREL24 mem_init_print_info 1c0: 3c 60 00 00 lis r3,0 1c2: R_PPC_ADDR16_HA .rodata.str1.1+0x44 1c4: 4c c6 31 82 crclr 4*cr1+eq 1c8: 38 63 00 00 addi r3,r3,0 1ca: R_PPC_ADDR16_LO .rodata.str1.1+0x44 1cc: 48 00 00 01 bl 1cc <mem_init+0x58> 1cc: R_PPC_PLTREL24 printk 1d0: 3c 80 ff fd lis r4,-3 1d4: 3c 60 00 00 lis r3,0 1d6: R_PPC_ADDR16_HA .rodata.str1.1+0x65 1d8: 4c c6 31 82 crclr 4*cr1+eq 1dc: 60 9e f0 00 ori r30,r4,61440 1e0: 38 63 00 00 addi r3,r3,0 1e2: R_PPC_ADDR16_LO .rodata.str1.1+0x65 1e4: 7f c4 f3 78 mr r4,r30 1e8: 38 a0 f0 00 li r5,-4096 1ec: 48 00 00 01 bl 1ec <mem_init+0x78> 1ec: R_PPC_PLTREL24 printk 1f0: 3c 80 ff dd lis r4,-35 1f4: 3c 60 00 00 lis r3,0 1f6: R_PPC_ADDR16_HA .rodata.str1.1+0x87 1f8: 4c c6 31 82 crclr 4*cr1+eq 1fc: 60 9d f0 00 ori r29,r4,61440 200: 38 63 00 00 addi r3,r3,0 202: R_PPC_ADDR16_LO .rodata.str1.1+0x87 204: 7f a4 eb 78 mr r4,r29 208: 7f c5 f3 78 mr r5,r30 20c: 48 00 00 01 bl 20c <mem_init+0x98> 20c: R_PPC_PLTREL24 printk 210: 3f c0 00 00 lis r30,0 212: R_PPC_ADDR16_HA ioremap_bot 214: 3c 60 00 00 lis r3,0 216: R_PPC_ADDR16_HA .rodata.str1.1+0xb1 218: 4c c6 31 82 crclr 4*cr1+eq 21c: 80 9e 00 00 lwz r4,0(r30) 21e: R_PPC_ADDR16_LO ioremap_bot 220: 38 63 00 00 addi r3,r3,0 222: R_PPC_ADDR16_LO .rodata.str1.1+0xb1 224: 7f a5 eb 78 mr r5,r29 228: 48 00 00 01 bl 228 <mem_init+0xb4> 228: R_PPC_PLTREL24 printk 22c: 80 7c 00 00 lwz r3,0(r28) 22e: R_PPC_ADDR16_LO high_memory 230: 3c 80 01 00 lis r4,256 234: 4c c6 31 82 crclr 4*cr1+eq 238: 38 63 ff ff addi r3,r3,-1 23c: 80 be 00 00 lwz r5,0(r30) 23e: R_PPC_ADDR16_LO ioremap_bot 240: 3c 63 10 00 addis r3,r3,4096 244: 54 63 00 06 rlwinm r3,r3,0,0,3 248: 50 64 02 0c rlwimi r4,r3,0,8,6 24c: 3c 60 00 00 lis r3,0 24e: R_PPC_ADDR16_HA .rodata.str1.1+0xda 250: 38 63 00 00 addi r3,r3,0 252: R_PPC_ADDR16_LO .rodata.str1.1+0xda 254: 48 00 00 01 bl 254 <mem_init+0xe0> 254: R_PPC_PLTREL24 printk 258: 83 c1 00 18 lwz r30,24(r1) 25c: 83 a1 00 14 lwz r29,20(r1) 260: 83 81 00 10 lwz r28,16(r1) 264: 80 01 00 24 lwz r0,36(r1) 268: 38 21 00 20 addi r1,r1,32 26c: 7c 08 03 a6 mtlr r0 270: 4e 80 00 20 blr 00000274 <add_system_ram_resources>: 274: 7c 08 02 a6 mflr r0 278: 90 01 00 04 stw r0,4(r1) 27c: 94 21 ff c0 stwu r1,-64(r1) 280: 3c 60 00 00 lis r3,0 282: R_PPC_ADDR16_HA memblock 284: 93 a1 00 34 stw r29,52(r1) 288: 3b a3 00 00 addi r29,r3,0 28a: R_PPC_ADDR16_LO memblock 28c: 80 7d 00 10 lwz r3,16(r29) 290: 93 81 00 30 stw r28,48(r1) 294: 1c 63 00 18 mulli r3,r3,24 298: 83 9d 00 20 lwz r28,32(r29) 29c: 7c 7c 1a 14 add r3,r28,r3 2a0: 92 a1 00 14 stw r21,20(r1) 2a4: 7c 1c 18 40 cmplw r28,r3 2a8: 92 c1 00 18 stw r22,24(r1) 2ac: 92 e1 00 1c stw r23,28(r1) 2b0: 93 01 00 20 stw r24,32(r1) 2b4: 93 21 00 24 stw r25,36(r1) 2b8: 93 41 00 28 stw r26,40(r1) 2bc: 93 61 00 2c stw r27,44(r1) 2c0: 93 c1 00 38 stw r30,56(r1) 2c4: 40 80 00 ac bge 370 <add_system_ram_resources+0xfc> 2c8: 3c 60 00 00 lis r3,0 2ca: R_PPC_ADDR16_HA kmalloc_caches 2cc: 3c 80 00 00 lis r4,0 2ce: R_PPC_ADDR16_HA .rodata.str1.1+0x199 2d0: 3c a0 81 00 lis r5,-32512 2d4: 3c c0 00 00 lis r6,0 2d6: R_PPC_ADDR16_HA iomem_resource 2d8: 3b 7c ff e8 addi r27,r28,-24 2dc: 3b 40 00 00 li r26,0 2e0: 3b 23 00 00 addi r25,r3,0 2e2: R_PPC_ADDR16_LO kmalloc_caches 2e4: 3b 04 00 00 addi r24,r4,0 2e6: R_PPC_ADDR16_LO .rodata.str1.1+0x199 2e8: 60 b7 02 00 ori r23,r5,512 2ec: 3b c6 00 00 addi r30,r6,0 2ee: R_PPC_ADDR16_LO iomem_resource 2f0: 80 79 00 18 lwz r3,24(r25) 2f4: 38 80 0d c0 li r4,3520 2f8: 38 a0 00 28 li r5,40 2fc: 82 db 00 1c lwz r22,28(r27) 300: 82 bb 00 24 lwz r21,36(r27) 304: 48 00 00 01 bl 304 <add_system_ram_resources+0x90> 304: R_PPC_PLTREL24 kmem_cache_alloc_trace 308: 7c 64 1b 78 mr r4,r3 30c: 7c 63 00 34 cntlzw r3,r3 310: 28 04 00 00 cmplwi r4,0 314: 54 63 df fe rlwinm r3,r3,27,31,31 318: 0f 03 00 00 twnei r3,0 31c: 41 82 00 34 beq 350 <add_system_ram_resources+0xdc> 320: 7c 76 aa 14 add r3,r22,r21 324: 93 04 00 10 stw r24,16(r4) 328: 38 63 ff ff addi r3,r3,-1 32c: 90 64 00 0c stw r3,12(r4) 330: 7f c3 f3 78 mr r3,r30 334: 93 44 00 00 stw r26,0(r4) 338: 92 c4 00 04 stw r22,4(r4) 33c: 93 44 00 08 stw r26,8(r4) 340: 92 e4 00 14 stw r23,20(r4) 344: 48 00 00 01 bl 344 <add_system_ram_resources+0xd0> 344: R_PPC_PLTREL24 request_resource 348: 54 63 0f fe rlwinm r3,r3,1,31,31 34c: 0f 03 00 00 twnei r3,0 350: 80 7d 00 10 lwz r3,16(r29) 354: 3b 9c 00 18 addi r28,r28,24 358: 3b 7b 00 18 addi r27,r27,24 35c: 80 9d 00 20 lwz r4,32(r29) 360: 1c 63 00 18 mulli r3,r3,24 364: 7c 64 1a 14 add r3,r4,r3 368: 7c 1c 18 40 cmplw r28,r3 36c: 41 80 ff 84 blt 2f0 <add_system_ram_resources+0x7c> 370: 38 60 00 00 li r3,0 374: 83 c1 00 38 lwz r30,56(r1) 378: 83 a1 00 34 lwz r29,52(r1) 37c: 83 81 00 30 lwz r28,48(r1) 380: 83 61 00 2c lwz r27,44(r1) 384: 83 41 00 28 lwz r26,40(r1) 388: 83 21 00 24 lwz r25,36(r1) 38c: 83 01 00 20 lwz r24,32(r1) 390: 82 e1 00 1c lwz r23,28(r1) 394: 82 c1 00 18 lwz r22,24(r1) 398: 82 a1 00 14 lwz r21,20(r1) 39c: 80 01 00 44 lwz r0,68(r1) 3a0: 38 21 00 40 addi r1,r1,64 3a4: 7c 08 03 a6 mtlr r0 3a8: 4e 80 00 20 blr
mem-working.o: file format elf32-powerpc | mem-broken.o: file format elf32-powerpc Disassembly of section .text: Disassembly of section .text: 00000000 <phys_mem_access_prot>: 00000000 <phys_mem_access_prot>: 0: 7c 08 02 a6 mflr r0 0: 7c 08 02 a6 mflr r0 4: 90 01 00 04 stw r0,4(r1) 4: 90 01 00 04 stw r0,4(r1) 8: 94 21 ff e0 stwu r1,-32(r1) 8: 94 21 ff e0 stwu r1,-32(r1) c: 93 a1 00 14 stw r29,20(r1) c: 93 a1 00 14 stw r29,20(r1) 10: 7c fd 3b 78 mr r29,r7 10: 7c fd 3b 78 mr r29,r7 14: 3c e0 00 00 lis r7,0 14: 3c e0 00 00 lis r7,0 16: R_PPC_ADDR16_HA ppc_md 16: R_PPC_ADDR16_HA ppc_md 18: 38 e7 00 00 addi r7,r7,0 18: 38 e7 00 00 addi r7,r7,0 1a: R_PPC_ADDR16_LO ppc_md 1a: R_PPC_ADDR16_LO ppc_md 1c: 81 07 00 a0 lwz r8,160(r7) 1c: 81 07 00 a0 lwz r8,160(r7) 20: 93 c1 00 18 stw r30,24(r1) 20: 93 c1 00 18 stw r30,24(r1) 24: 28 08 00 00 cmplwi r8,0 24: 28 08 00 00 cmplwi r8,0 28: 7c 7e 1b 78 mr r30,r3 28: 7c 7e 1b 78 mr r30,r3 2c: 41 82 00 20 beq 4c <phys_mem_access_prot+0x4c 2c: 41 82 00 20 beq 4c <phys_mem_access_prot+0x4c 30: 80 7d 00 00 lwz r3,0(r29) 30: 80 7d 00 00 lwz r3,0(r29) 34: 38 e1 00 08 addi r7,r1,8 34: 38 e1 00 08 addi r7,r1,8 38: 7d 09 03 a6 mtctr r8 38: 7d 09 03 a6 mtctr r8 3c: 90 61 00 08 stw r3,8(r1) 3c: 90 61 00 08 stw r3,8(r1) 40: 7f c3 f3 78 mr r3,r30 40: 7f c3 f3 78 mr r3,r30 44: 4e 80 04 21 bctrl 44: 4e 80 04 21 bctrl 48: 48 00 00 28 b 70 <phys_mem_access_prot+0x70 48: 48 00 00 28 b 70 <phys_mem_access_prot+0x70 4c: 7c a3 2b 78 mr r3,r5 4c: 7c a3 2b 78 mr r3,r5 50: 48 00 00 01 bl 50 <phys_mem_access_prot+0x50 50: 48 00 00 01 bl 50 <phys_mem_access_prot+0x50 50: R_PPC_PLTREL24 page_is_ram 50: R_PPC_PLTREL24 page_is_ram 54: 28 03 00 00 cmplwi r3,0 54: 28 03 00 00 cmplwi r3,0 58: 80 7d 00 00 lwz r3,0(r29) 58: 80 7d 00 00 lwz r3,0(r29) 5c: 40 82 00 10 bne 6c <phys_mem_access_prot+0x6c 5c: 40 82 00 10 bne 6c <phys_mem_access_prot+0x6c 60: 54 63 06 26 rlwinm r3,r3,0,24,19 60: 54 63 06 26 rlwinm r3,r3,0,24,19 64: 60 63 05 00 ori r3,r3,1280 64: 60 63 05 00 ori r3,r3,1280 68: 90 7d 00 00 stw r3,0(r29) 68: 90 7d 00 00 stw r3,0(r29) 6c: 90 7e 00 00 stw r3,0(r30) 6c: 90 7e 00 00 stw r3,0(r30) 70: 83 c1 00 18 lwz r30,24(r1) 70: 83 c1 00 18 lwz r30,24(r1) 74: 83 a1 00 14 lwz r29,20(r1) 74: 83 a1 00 14 lwz r29,20(r1) 78: 80 01 00 24 lwz r0,36(r1) 78: 80 01 00 24 lwz r0,36(r1) 7c: 38 21 00 20 addi r1,r1,32 7c: 38 21 00 20 addi r1,r1,32 80: 7c 08 03 a6 mtlr r0 80: 7c 08 03 a6 mtlr r0 84: 4e 80 00 20 blr 84: 4e 80 00 20 blr 00000088 <free_initmem>: 00000088 <free_initmem>: 88: 7c 08 02 a6 mflr r0 88: 7c 08 02 a6 mflr r0 8c: 90 01 00 04 stw r0,4(r1) 8c: 90 01 00 04 stw r0,4(r1) 90: 94 21 ff f0 stwu r1,-16(r1) 90: 94 21 ff f0 stwu r1,-16(r1) 94: 3c 60 00 00 lis r3,0 94: 3c 60 00 00 lis r3,0 96: R_PPC_ADDR16_HA ppc_md 96: R_PPC_ADDR16_HA ppc_md 98: 3c 80 00 00 lis r4,0 98: 3c 80 00 00 lis r4,0 9a: R_PPC_ADDR16_HA ppc_printk_pr 9a: R_PPC_ADDR16_HA ppc_printk_pr 9c: 38 63 00 00 addi r3,r3,0 9c: 38 63 00 00 addi r3,r3,0 9e: R_PPC_ADDR16_LO ppc_md 9e: R_PPC_ADDR16_LO ppc_md a0: 38 84 00 00 addi r4,r4,0 a0: 38 84 00 00 addi r4,r4,0 a2: R_PPC_ADDR16_LO ppc_printk_pr a2: R_PPC_ADDR16_LO ppc_printk_pr a4: 90 83 00 60 stw r4,96(r3) a4: 90 83 00 60 stw r4,96(r3) a8: 48 00 00 01 bl a8 <free_initmem+0x20> a8: 48 00 00 01 bl a8 <free_initmem+0x20> a8: R_PPC_PLTREL24 mark_initmem_ a8: R_PPC_PLTREL24 mark_initmem_ ac: 3c 60 00 00 lis r3,0 ac: 3c 60 00 00 lis r3,0 ae: R_PPC_ADDR16_HA init_mem_is_f ae: R_PPC_ADDR16_HA init_mem_is_f b0: 38 80 00 01 li r4,1 b0: 38 80 00 01 li r4,1 b4: 98 83 00 00 stb r4,0(r3) b4: 98 83 00 00 stb r4,0(r3) b6: R_PPC_ADDR16_LO init_mem_is_f b6: R_PPC_ADDR16_LO init_mem_is_f b8: 3c 60 00 00 lis r3,0 b8: 3c 60 00 00 lis r3,0 ba: R_PPC_ADDR16_HA __init_begin ba: R_PPC_ADDR16_HA __init_begin bc: 3c 80 00 00 lis r4,0 bc: 3c 80 00 00 lis r4,0 be: R_PPC_ADDR16_HA __init_end be: R_PPC_ADDR16_HA __init_end c0: 3c a0 00 00 lis r5,0 c0: 3c a0 00 00 lis r5,0 c2: R_PPC_ADDR16_HA .rodata.str1. c2: R_PPC_ADDR16_HA .rodata.str1. c4: 38 63 00 00 addi r3,r3,0 c4: 38 63 00 00 addi r3,r3,0 c6: R_PPC_ADDR16_LO __init_begin c6: R_PPC_ADDR16_LO __init_begin c8: 38 84 00 00 addi r4,r4,0 c8: 38 84 00 00 addi r4,r4,0 ca: R_PPC_ADDR16_LO __init_end ca: R_PPC_ADDR16_LO __init_end cc: 38 c5 00 00 addi r6,r5,0 cc: 38 c5 00 00 addi r6,r5,0 ce: R_PPC_ADDR16_LO .rodata.str1. ce: R_PPC_ADDR16_LO .rodata.str1. d0: 38 a0 00 cc li r5,204 d0: 38 a0 00 cc li r5,204 d4: 48 00 00 01 bl d4 <free_initmem+0x4c> d4: 48 00 00 01 bl d4 <free_initmem+0x4c> d4: R_PPC_PLTREL24 free_reserved d4: R_PPC_PLTREL24 free_reserved d8: 80 01 00 14 lwz r0,20(r1) d8: 80 01 00 14 lwz r0,20(r1) dc: 38 21 00 10 addi r1,r1,16 dc: 38 21 00 10 addi r1,r1,16 e0: 7c 08 03 a6 mtlr r0 e0: 7c 08 03 a6 mtlr r0 e4: 4e 80 00 20 blr e4: 4e 80 00 20 blr 000000e8 <flush_dcache_page>: 000000e8 <flush_dcache_page>: e8: 80 83 00 00 lwz r4,0(r3) e8: 80 83 00 00 lwz r4,0(r3) ec: 70 84 08 00 andi. r4,r4,2048 ec: 70 84 08 00 andi. r4,r4,2048 f0: 4d 82 00 20 beqlr f0: 4d 82 00 20 beqlr f4: 38 80 08 00 li r4,2048 f4: 38 80 08 00 li r4,2048 f8: 7c a0 18 28 lwarx r5,0,r3 f8: 7c a0 18 28 lwarx r5,0,r3 fc: 7c a5 20 78 andc r5,r5,r4 fc: 7c a5 20 78 andc r5,r5,r4 100: 7c a0 19 2d stwcx. r5,0,r3 100: 7c a0 19 2d stwcx. r5,0,r3 104: 40 a2 ff f4 bne f8 <flush_dcache_page+0x10> 104: 40 a2 ff f4 bne f8 <flush_dcache_page+0x10> 108: 4e 80 00 20 blr 108: 4e 80 00 20 blr 0000010c <flush_dcache_icache_page>: 0000010c <flush_dcache_icache_page>: 10c: 7c 08 02 a6 mflr r0 10c: 7c 08 02 a6 mflr r0 110: 90 01 00 04 stw r0,4(r1) 110: 90 01 00 04 stw r0,4(r1) 114: 94 21 ff f0 stwu r1,-16(r1) 114: 94 21 ff f0 stwu r1,-16(r1) 118: 80 82 00 00 lwz r4,0(r2) 118: 80 82 00 00 lwz r4,0(r2) 11c: 38 84 00 01 addi r4,r4,1 11c: 38 84 00 01 addi r4,r4,1 120: 90 82 00 00 stw r4,0(r2) 120: 90 82 00 00 stw r4,0(r2) 124: 80 82 0a e4 lwz r4,2788(r2) 124: 80 82 0a e4 lwz r4,2788(r2) 128: 38 84 00 01 addi r4,r4,1 128: 38 84 00 01 addi r4,r4,1 12c: 90 82 0a e4 stw r4,2788(r2) 12c: 90 82 0a e4 stw r4,2788(r2) 130: 3c 80 00 00 lis r4,0 130: 3c 80 00 00 lis r4,0 132: R_PPC_ADDR16_HA mem_map 132: R_PPC_ADDR16_HA mem_map 134: 80 84 00 00 lwz r4,0(r4) 134: 80 84 00 00 lwz r4,0(r4) 136: R_PPC_ADDR16_LO mem_map 136: R_PPC_ADDR16_LO mem_map 138: 7c 64 18 50 subf r3,r4,r3 138: 7c 64 18 50 subf r3,r4,r3 13c: 3c 80 cc cc lis r4,-13108 13c: 3c 80 cc cc lis r4,-13108 140: 54 63 e8 fe rlwinm r3,r3,29,3,31 140: 54 63 e8 fe rlwinm r3,r3,29,3,31 144: 60 84 d0 00 ori r4,r4,53248 144: 60 84 d0 00 ori r4,r4,53248 148: 7c 63 21 d6 mullw r3,r3,r4 148: 7c 63 21 d6 mullw r3,r3,r4 14c: 3c 63 c0 00 addis r3,r3,-16384 14c: 3c 63 c0 00 addis r3,r3,-16384 150: 48 00 00 01 bl 150 <flush_dcache_icache_page 150: 48 00 00 01 bl 150 <flush_dcache_icache_page 150: R_PPC_PLTREL24 __flush_dcach 150: R_PPC_PLTREL24 __flush_dcach 154: 80 62 0a e4 lwz r3,2788(r2) 154: 80 62 0a e4 lwz r3,2788(r2) 158: 38 63 ff ff addi r3,r3,-1 158: 38 63 ff ff addi r3,r3,-1 15c: 90 62 0a e4 stw r3,2788(r2) 15c: 90 62 0a e4 stw r3,2788(r2) 160: 80 62 00 00 lwz r3,0(r2) 160: 80 62 00 00 lwz r3,0(r2) 164: 38 63 ff ff addi r3,r3,-1 164: 38 63 ff ff addi r3,r3,-1 168: 90 62 00 00 stw r3,0(r2) 168: 90 62 00 00 stw r3,0(r2) 16c: 80 01 00 14 lwz r0,20(r1) 16c: 80 01 00 14 lwz r0,20(r1) 170: 38 21 00 10 addi r1,r1,16 170: 38 21 00 10 addi r1,r1,16 174: 7c 08 03 a6 mtlr r0 174: 7c 08 03 a6 mtlr r0 178: 4e 80 00 20 blr 178: 4e 80 00 20 blr 0000017c <clear_user_page>: 0000017c <clear_user_page>: 17c: 38 80 00 80 li r4,128 | 17c: 94 21 ff f0 stwu r1,-16(r1) 180: 7c 89 03 a6 mtctr r4 | 180: 38 80 00 80 li r4,128 184: 7c 00 1f ec dcbz 0,r3 | 184: 38 63 ff e0 addi r3,r3,-32 188: 38 63 00 20 addi r3,r3,32 | 188: 7c 89 03 a6 mtctr r4 18c: 42 00 ff f8 bdnz 184 <clear_user_page+0x8> | 18c: 38 81 00 0f addi r4,r1,15 190: 80 65 00 00 lwz r3,0(r5) | 190: 8c c3 00 20 lbzu r6,32(r3) 194: 70 63 08 00 andi. r3,r3,2048 | 194: 98 c1 00 0f stb r6,15(r1) 198: 4d 82 00 20 beqlr | 198: 7c 00 27 ec dcbz 0,r4 19c: 38 60 08 00 li r3,2048 | 19c: 42 00 ff f4 bdnz 190 <clear_user_page+0x14> 1a0: 7c 80 28 28 lwarx r4,0,r5 | 1a0: 80 65 00 00 lwz r3,0(r5) 1a4: 7c 84 18 78 andc r4,r4,r3 | 1a4: 70 63 08 00 andi. r3,r3,2048 1a8: 7c 80 29 2d stwcx. r4,0,r5 | 1a8: 41 82 00 18 beq 1c0 <clear_user_page+0x44> 1ac: 40 a2 ff f4 bne 1a0 <clear_user_page+0x24> | 1ac: 38 60 08 00 li r3,2048 1b0: 4e 80 00 20 blr | 1b0: 7c 80 28 28 lwarx r4,0,r5 | 1b4: 7c 84 18 78 andc r4,r4,r3 000001b4 <copy_user_page>: | 1b8: 7c 80 29 2d stwcx. r4,0,r5 1b4: 7c 08 02 a6 mflr r0 | 1bc: 40 a2 ff f4 bne 1b0 <clear_user_page+0x34> 1b8: 90 01 00 04 stw r0,4(r1) | 1c0: 38 21 00 10 addi r1,r1,16 1bc: 94 21 ff f0 stwu r1,-16(r1) | 1c4: 4e 80 00 20 blr 1c0: 93 c1 00 08 stw r30,8(r1) | 1c4: 7c de 33 78 mr r30,r6 | 000001c8 <copy_user_page>: 1c8: 48 00 00 01 bl 1c8 <copy_user_page+0x14> | 1c8: 7c 08 02 a6 mflr r0 1c8: R_PPC_PLTREL24 copy_page | 1cc: 90 01 00 04 stw r0,4(r1) 1cc: 80 7e 00 00 lwz r3,0(r30) | 1d0: 94 21 ff f0 stwu r1,-16(r1) 1d0: 70 63 08 00 andi. r3,r3,2048 | 1d4: 93 c1 00 08 stw r30,8(r1) 1d4: 41 82 00 18 beq 1ec <copy_user_page+0x38> | 1d8: 7c de 33 78 mr r30,r6 1d8: 38 60 08 00 li r3,2048 | 1dc: 48 00 00 01 bl 1dc <copy_user_page+0x14> 1dc: 7c 80 f0 28 lwarx r4,0,r30 | 1dc: R_PPC_PLTREL24 copy_page 1e0: 7c 84 18 78 andc r4,r4,r3 | 1e0: 80 7e 00 00 lwz r3,0(r30) 1e4: 7c 80 f1 2d stwcx. r4,0,r30 | 1e4: 70 63 08 00 andi. r3,r3,2048 1e8: 40 a2 ff f4 bne 1dc <copy_user_page+0x28> | 1e8: 41 82 00 18 beq 200 <copy_user_page+0x38> 1ec: 83 c1 00 08 lwz r30,8(r1) | 1ec: 38 60 08 00 li r3,2048 1f0: 80 01 00 14 lwz r0,20(r1) | 1f0: 7c 80 f0 28 lwarx r4,0,r30 1f4: 38 21 00 10 addi r1,r1,16 | 1f4: 7c 84 18 78 andc r4,r4,r3 1f8: 7c 08 03 a6 mtlr r0 | 1f8: 7c 80 f1 2d stwcx. r4,0,r30 1fc: 4e 80 00 20 blr | 1fc: 40 a2 ff f4 bne 1f0 <copy_user_page+0x28> | 200: 83 c1 00 08 lwz r30,8(r1) 00000200 <flush_icache_user_range>: | 204: 80 01 00 14 lwz r0,20(r1) 200: 7c 08 02 a6 mflr r0 | 208: 38 21 00 10 addi r1,r1,16 204: 90 01 00 04 stw r0,4(r1) | 20c: 7c 08 03 a6 mtlr r0 208: 94 21 ff e0 stwu r1,-32(r1) | 210: 4e 80 00 20 blr 20c: 3c 60 00 00 lis r3,0 | 20e: R_PPC_ADDR16_HA .rodata.str1. | 00000214 <flush_icache_user_range>: 210: 93 81 00 10 stw r28,16(r1) | 214: 7c 08 02 a6 mflr r0 214: 7c 9c 23 78 mr r28,r4 | 218: 90 01 00 04 stw r0,4(r1) 218: 38 63 00 00 addi r3,r3,0 | 21c: 94 21 ff e0 stwu r1,-32(r1) 21a: R_PPC_ADDR16_LO .rodata.str1. | 220: 3c 60 00 00 lis r3,0 21c: 38 80 00 53 li r4,83 | 222: R_PPC_ADDR16_HA .rodata.str1. 220: 93 a1 00 14 stw r29,20(r1) | 224: 93 81 00 10 stw r28,16(r1) 224: 7c bd 2b 78 mr r29,r5 | 228: 7c 9c 23 78 mr r28,r4 228: 38 a0 00 00 li r5,0 | 22c: 38 63 00 00 addi r3,r3,0 22c: 93 c1 00 18 stw r30,24(r1) | 22e: R_PPC_ADDR16_LO .rodata.str1. 230: 7c de 33 78 mr r30,r6 | 230: 38 80 00 53 li r4,83 234: 48 00 00 01 bl 234 <flush_icache_user_range+ | 234: 93 a1 00 14 stw r29,20(r1) 234: R_PPC_PLTREL24 __might_sleep | 238: 7c bd 2b 78 mr r29,r5 238: 3c 60 00 00 lis r3,0 | 23c: 38 a0 00 00 li r5,0 23a: R_PPC_ADDR16_HA mem_map | 240: 93 c1 00 18 stw r30,24(r1) 23c: 3c 80 cc cc lis r4,-13108 | 244: 7c de 33 78 mr r30,r6 240: 80 63 00 00 lwz r3,0(r3) | 248: 48 00 00 01 bl 248 <flush_icache_user_range+ 242: R_PPC_ADDR16_LO mem_map | 248: R_PPC_PLTREL24 __might_sleep 244: 60 84 d0 00 ori r4,r4,53248 | 24c: 3c 60 00 00 lis r3,0 248: 7c 63 e0 50 subf r3,r3,r28 | 24e: R_PPC_ADDR16_HA mem_map 24c: 54 63 e8 fe rlwinm r3,r3,29,3,31 | 250: 3c 80 cc cc lis r4,-13108 250: 7c 63 21 d6 mullw r3,r3,r4 | 254: 80 63 00 00 lwz r3,0(r3) 254: 57 a4 05 3e clrlwi r4,r29,20 | 256: R_PPC_ADDR16_LO mem_map 258: 50 64 00 26 rlwimi r4,r3,0,0,19 | 258: 60 84 d0 00 ori r4,r4,53248 25c: 3c 64 c0 00 addis r3,r4,-16384 | 25c: 7c 63 e0 50 subf r3,r3,r28 260: 7c 83 f2 14 add r4,r3,r30 | 260: 54 63 e8 fe rlwinm r3,r3,29,3,31 264: 48 00 00 01 bl 264 <flush_icache_user_range+ | 264: 7c 63 21 d6 mullw r3,r3,r4 264: R_PPC_PLTREL24 flush_icache_ | 268: 57 a4 05 3e clrlwi r4,r29,20 268: 83 c1 00 18 lwz r30,24(r1) | 26c: 50 64 00 26 rlwimi r4,r3,0,0,19 26c: 83 a1 00 14 lwz r29,20(r1) | 270: 3c 64 c0 00 addis r3,r4,-16384 270: 83 81 00 10 lwz r28,16(r1) | 274: 7c 83 f2 14 add r4,r3,r30 274: 80 01 00 24 lwz r0,36(r1) | 278: 48 00 00 01 bl 278 <flush_icache_user_range+ 278: 38 21 00 20 addi r1,r1,32 | 278: R_PPC_PLTREL24 flush_icache_ 27c: 7c 08 03 a6 mtlr r0 | 27c: 83 c1 00 18 lwz r30,24(r1) 280: 4e 80 00 20 blr | 280: 83 a1 00 14 lwz r29,20(r1) | 284: 83 81 00 10 lwz r28,16(r1) 00000284 <update_mmu_cache>: | 288: 80 01 00 24 lwz r0,36(r1) 284: 4e 80 00 20 blr | 28c: 38 21 00 20 addi r1,r1,32 | 290: 7c 08 03 a6 mtlr r0 00000288 <devmem_is_allowed>: | 294: 4e 80 00 20 blr 288: 7c 08 02 a6 mflr r0 | 28c: 90 01 00 04 stw r0,4(r1) | 00000298 <update_mmu_cache>: 290: 94 21 ff f0 stwu r1,-16(r1) | 298: 4e 80 00 20 blr 294: 93 c1 00 08 stw r30,8(r1) | 298: 7c 7e 1b 78 mr r30,r3 | 0000029c <devmem_is_allowed>: 29c: 54 63 65 3e rlwinm r3,r3,12,20,31 | 29c: 7c 08 02 a6 mflr r0 2a0: 57 c4 60 26 rlwinm r4,r30,12,0,19 | 2a0: 90 01 00 04 stw r0,4(r1) 2a4: 48 00 00 01 bl 2a4 <devmem_is_allowed+0x1c> | 2a4: 94 21 ff f0 stwu r1,-16(r1) 2a4: R_PPC_PLTREL24 iomem_is_excl | 2a8: 93 c1 00 08 stw r30,8(r1) 2a8: 70 63 00 01 andi. r3,r3,1 | 2ac: 7c 7e 1b 78 mr r30,r3 2ac: 38 60 00 00 li r3,0 | 2b0: 54 63 65 3e rlwinm r3,r3,12,20,31 2b0: 41 81 00 14 bgt 2c4 <devmem_is_allowed+0x3c> | 2b4: 57 c4 60 26 rlwinm r4,r30,12,0,19 2b4: 7f c3 f3 78 mr r3,r30 | 2b8: 48 00 00 01 bl 2b8 <devmem_is_allowed+0x1c> 2b8: 48 00 00 01 bl 2b8 <devmem_is_allowed+0x30> | 2b8: R_PPC_PLTREL24 iomem_is_excl 2b8: R_PPC_PLTREL24 page_is_ram | 2bc: 70 63 00 01 andi. r3,r3,1 2bc: 7c 63 00 34 cntlzw r3,r3 | 2c0: 38 60 00 00 li r3,0 2c0: 54 63 df fe rlwinm r3,r3,27,31,31 | 2c4: 41 81 00 14 bgt 2d8 <devmem_is_allowed+0x3c> 2c4: 83 c1 00 08 lwz r30,8(r1) | 2c8: 7f c3 f3 78 mr r3,r30 2c8: 80 01 00 14 lwz r0,20(r1) | 2cc: 48 00 00 01 bl 2cc <devmem_is_allowed+0x30> 2cc: 38 21 00 10 addi r1,r1,16 | 2cc: R_PPC_PLTREL24 page_is_ram 2d0: 7c 08 03 a6 mtlr r0 | 2d0: 7c 63 00 34 cntlzw r3,r3 2d4: 4e 80 00 20 blr | 2d4: 54 63 df fe rlwinm r3,r3,27,31,31 > 2d8: 83 c1 00 08 lwz r30,8(r1) > 2dc: 80 01 00 14 lwz r0,20(r1) > 2e0: 38 21 00 10 addi r1,r1,16 > 2e4: 7c 08 03 a6 mtlr r0 > 2e8: 4e 80 00 20 blr Disassembly of section .init.text: Disassembly of section .init.text: 00000000 <mem_topology_setup>: 00000000 <mem_topology_setup>: 0: 7c 08 02 a6 mflr r0 0: 7c 08 02 a6 mflr r0 4: 90 01 00 04 stw r0,4(r1) 4: 90 01 00 04 stw r0,4(r1) 8: 94 21 ff f0 stwu r1,-16(r1) 8: 94 21 ff f0 stwu r1,-16(r1) c: 48 00 00 01 bl c <mem_topology_setup+0xc> c: 48 00 00 01 bl c <mem_topology_setup+0xc> c: R_PPC_PLTREL24 memblock_end_ c: R_PPC_PLTREL24 memblock_end_ 10: 54 84 a0 3e rotlwi r4,r4,20 10: 54 84 a0 3e rotlwi r4,r4,20 14: 3c a0 00 00 lis r5,0 14: 3c a0 00 00 lis r5,0 16: R_PPC_ADDR16_HA max_pfn 16: R_PPC_ADDR16_HA max_pfn 18: 50 64 a0 16 rlwimi r4,r3,20,0,11 18: 50 64 a0 16 rlwimi r4,r3,20,0,11 1c: 3c 60 00 00 lis r3,0 1c: 3c 60 00 00 lis r3,0 1e: R_PPC_ADDR16_HA max_low_pfn 1e: R_PPC_ADDR16_HA max_low_pfn 20: 90 85 00 00 stw r4,0(r5) 20: 90 85 00 00 stw r4,0(r5) 22: R_PPC_ADDR16_LO max_pfn 22: R_PPC_ADDR16_LO max_pfn 24: 38 a0 ff ff li r5,-1 24: 38 a0 ff ff li r5,-1 28: 90 83 00 00 stw r4,0(r3) 28: 90 83 00 00 stw r4,0(r3) 2a: R_PPC_ADDR16_LO max_low_pfn 2a: R_PPC_ADDR16_LO max_low_pfn 2c: 3c 60 00 00 lis r3,0 2c: 3c 60 00 00 lis r3,0 2e: R_PPC_ADDR16_HA min_low_pfn 2e: R_PPC_ADDR16_HA min_low_pfn 30: 38 80 00 00 li r4,0 30: 38 80 00 00 li r4,0 34: 38 c0 ff ff li r6,-1 34: 38 c0 ff ff li r6,-1 38: 39 00 00 00 li r8,0 38: 39 00 00 00 li r8,0 3c: 90 83 00 00 stw r4,0(r3) 3c: 90 83 00 00 stw r4,0(r3) 3e: R_PPC_ADDR16_LO min_low_pfn 3e: R_PPC_ADDR16_LO min_low_pfn 40: 3c 60 00 00 lis r3,0 40: 3c 60 00 00 lis r3,0 42: R_PPC_ADDR16_HA memblock 42: R_PPC_ADDR16_HA memblock 44: 38 80 00 00 li r4,0 44: 38 80 00 00 li r4,0 48: 38 63 00 00 addi r3,r3,0 48: 38 63 00 00 addi r3,r3,0 4a: R_PPC_ADDR16_LO memblock 4a: R_PPC_ADDR16_LO memblock 4c: 38 e3 00 10 addi r7,r3,16 4c: 38 e3 00 10 addi r7,r3,16 50: 38 60 00 00 li r3,0 50: 38 60 00 00 li r3,0 54: 48 00 00 01 bl 54 <mem_topology_setup+0x54> 54: 48 00 00 01 bl 54 <mem_topology_setup+0x54> 54: R_PPC_PLTREL24 memblock_set_ 54: R_PPC_PLTREL24 memblock_set_ 58: 80 01 00 14 lwz r0,20(r1) 58: 80 01 00 14 lwz r0,20(r1) 5c: 38 21 00 10 addi r1,r1,16 5c: 38 21 00 10 addi r1,r1,16 60: 7c 08 03 a6 mtlr r0 60: 7c 08 03 a6 mtlr r0 64: 4e 80 00 20 blr 64: 4e 80 00 20 blr 00000068 <initmem_init>: 00000068 <initmem_init>: 68: 7c 08 02 a6 mflr r0 68: 7c 08 02 a6 mflr r0 6c: 90 01 00 04 stw r0,4(r1) 6c: 90 01 00 04 stw r0,4(r1) 70: 94 21 ff f0 stwu r1,-16(r1) 70: 94 21 ff f0 stwu r1,-16(r1) 74: 38 60 00 00 li r3,0 74: 38 60 00 00 li r3,0 78: 48 00 00 01 bl 78 <initmem_init+0x10> 78: 48 00 00 01 bl 78 <initmem_init+0x10> 78: R_PPC_PLTREL24 sparse_memory 78: R_PPC_PLTREL24 sparse_memory 7c: 80 01 00 14 lwz r0,20(r1) 7c: 80 01 00 14 lwz r0,20(r1) 80: 38 21 00 10 addi r1,r1,16 80: 38 21 00 10 addi r1,r1,16 84: 7c 08 03 a6 mtlr r0 84: 7c 08 03 a6 mtlr r0 88: 4e 80 00 20 blr 88: 4e 80 00 20 blr 0000008c <paging_init>: 0000008c <paging_init>: 8c: 7c 08 02 a6 mflr r0 8c: 7c 08 02 a6 mflr r0 90: 90 01 00 04 stw r0,4(r1) 90: 90 01 00 04 stw r0,4(r1) 94: 94 21 ff d0 stwu r1,-48(r1) 94: 94 21 ff d0 stwu r1,-48(r1) 98: 93 21 00 14 stw r25,20(r1) 98: 93 21 00 14 stw r25,20(r1) 9c: 93 41 00 18 stw r26,24(r1) 9c: 93 41 00 18 stw r26,24(r1) a0: 93 61 00 1c stw r27,28(r1) a0: 93 61 00 1c stw r27,28(r1) a4: 93 81 00 20 stw r28,32(r1) a4: 93 81 00 20 stw r28,32(r1) a8: 93 a1 00 24 stw r29,36(r1) a8: 93 a1 00 24 stw r29,36(r1) ac: 93 c1 00 28 stw r30,40(r1) ac: 93 c1 00 28 stw r30,40(r1) b0: 48 00 00 01 bl b0 <paging_init+0x24> b0: 48 00 00 01 bl b0 <paging_init+0x24> b0: R_PPC_PLTREL24 memblock_phys b0: R_PPC_PLTREL24 memblock_phys b4: 7c 7e 1b 78 mr r30,r3 b4: 7c 7e 1b 78 mr r30,r3 b8: 7c 9d 23 78 mr r29,r4 b8: 7c 9d 23 78 mr r29,r4 bc: 3f 40 ff fe lis r26,-2 bc: 3f 40 ff fe lis r26,-2 c0: 48 00 00 01 bl c0 <paging_init+0x34> c0: 48 00 00 01 bl c0 <paging_init+0x34> c0: R_PPC_PLTREL24 memblock_end_ c0: R_PPC_PLTREL24 memblock_end_ c4: 7c 7c 1b 78 mr r28,r3 c4: 7c 7c 1b 78 mr r28,r3 c8: 7c 9b 23 78 mr r27,r4 c8: 7c 9b 23 78 mr r27,r4 cc: 3b 20 00 00 li r25,0 cc: 3b 20 00 00 li r25,0 d0: 38 e1 00 08 addi r7,r1,8 d0: 38 e1 00 08 addi r7,r1,8 d4: 7f 43 d3 78 mr r3,r26 d4: 7f 43 d3 78 mr r3,r26 d8: 93 21 00 10 stw r25,16(r1) d8: 93 21 00 10 stw r25,16(r1) dc: 38 a0 00 00 li r5,0 dc: 38 a0 00 00 li r5,0 e0: 38 c0 00 00 li r6,0 e0: 38 c0 00 00 li r6,0 e4: 93 21 00 08 stw r25,8(r1) e4: 93 21 00 08 stw r25,8(r1) e8: 48 00 00 01 bl e8 <paging_init+0x5c> e8: 48 00 00 01 bl e8 <paging_init+0x5c> e8: R_PPC_PLTREL24 map_kernel_pa e8: R_PPC_PLTREL24 map_kernel_pa ec: 3b 5a 10 00 addi r26,r26,4096 ec: 3b 5a 10 00 addi r26,r26,4096 f0: 2c 1a f0 00 cmpwi r26,-4096 f0: 2c 1a f0 00 cmpwi r26,-4096 f4: 40 82 ff dc bne d0 <paging_init+0x44> f4: 40 82 ff dc bne d0 <paging_init+0x44> f8: 3c 60 00 00 lis r3,0 f8: 3c 60 00 00 lis r3,0 fa: R_PPC_ADDR16_HA .rodata.str1. fa: R_PPC_ADDR16_HA .rodata.str1. fc: 4c c6 31 82 crclr 4*cr1+eq fc: 4c c6 31 82 crclr 4*cr1+eq 100: 7f 85 e3 78 mr r5,r28 100: 7f 85 e3 78 mr r5,r28 104: 38 63 00 00 addi r3,r3,0 104: 38 63 00 00 addi r3,r3,0 106: R_PPC_ADDR16_LO .rodata.str1. 106: R_PPC_ADDR16_LO .rodata.str1. 108: 7f 66 db 78 mr r6,r27 108: 7f 66 db 78 mr r6,r27 10c: 7f c7 f3 78 mr r7,r30 10c: 7f c7 f3 78 mr r7,r30 110: 7f a8 eb 78 mr r8,r29 110: 7f a8 eb 78 mr r8,r29 114: 48 00 00 01 bl 114 <paging_init+0x88> 114: 48 00 00 01 bl 114 <paging_init+0x88> 114: R_PPC_PLTREL24 printk 114: R_PPC_PLTREL24 printk 118: 7c 7d d8 10 subfc r3,r29,r27 118: 7c 7d d8 10 subfc r3,r29,r27 11c: 4c c6 31 82 crclr 4*cr1+eq 11c: 4c c6 31 82 crclr 4*cr1+eq 120: 7c be e1 10 subfe r5,r30,r28 120: 7c be e1 10 subfe r5,r30,r28 124: 54 64 60 3e rotlwi r4,r3,12 124: 54 64 60 3e rotlwi r4,r3,12 128: 3c 60 00 00 lis r3,0 128: 3c 60 00 00 lis r3,0 12a: R_PPC_ADDR16_HA .rodata.str1. 12a: R_PPC_ADDR16_HA .rodata.str1. 12c: 50 a4 60 26 rlwimi r4,r5,12,0,19 12c: 50 a4 60 26 rlwimi r4,r5,12,0,19 130: 38 63 00 00 addi r3,r3,0 130: 38 63 00 00 addi r3,r3,0 132: R_PPC_ADDR16_LO .rodata.str1. 132: R_PPC_ADDR16_LO .rodata.str1. 134: 48 00 00 01 bl 134 <paging_init+0xa8> 134: 48 00 00 01 bl 134 <paging_init+0xa8> 134: R_PPC_PLTREL24 printk 134: R_PPC_PLTREL24 printk 138: 3c 60 00 00 lis r3,0 138: 3c 60 00 00 lis r3,0 13a: R_PPC_ADDR16_HA max_low_pfn 13a: R_PPC_ADDR16_HA max_low_pfn 13c: 80 83 00 00 lwz r4,0(r3) 13c: 80 83 00 00 lwz r4,0(r3) 13e: R_PPC_ADDR16_LO max_low_pfn 13e: R_PPC_ADDR16_LO max_low_pfn 140: 3c 60 00 00 lis r3,0 140: 3c 60 00 00 lis r3,0 142: R_PPC_ADDR16_HA .bss+0x10 142: R_PPC_ADDR16_HA .bss+0x10 144: 94 83 00 00 stwu r4,0(r3) 144: 94 83 00 00 stwu r4,0(r3) 146: R_PPC_ADDR16_LO .bss+0x10 146: R_PPC_ADDR16_LO .bss+0x10 148: 48 00 00 01 bl 148 <paging_init+0xbc> 148: 48 00 00 01 bl 148 <paging_init+0xbc> 148: R_PPC_PLTREL24 free_area_ini 148: R_PPC_PLTREL24 free_area_ini 14c: 83 c1 00 28 lwz r30,40(r1) 14c: 83 c1 00 28 lwz r30,40(r1) 150: 83 a1 00 24 lwz r29,36(r1) 150: 83 a1 00 24 lwz r29,36(r1) 154: 83 81 00 20 lwz r28,32(r1) 154: 83 81 00 20 lwz r28,32(r1) 158: 83 61 00 1c lwz r27,28(r1) 158: 83 61 00 1c lwz r27,28(r1) 15c: 83 41 00 18 lwz r26,24(r1) 15c: 83 41 00 18 lwz r26,24(r1) 160: 83 21 00 14 lwz r25,20(r1) 160: 83 21 00 14 lwz r25,20(r1) 164: 80 01 00 34 lwz r0,52(r1) 164: 80 01 00 34 lwz r0,52(r1) 168: 38 21 00 30 addi r1,r1,48 168: 38 21 00 30 addi r1,r1,48 16c: 7c 08 03 a6 mtlr r0 16c: 7c 08 03 a6 mtlr r0 170: 4e 80 00 20 blr 170: 4e 80 00 20 blr 00000174 <mem_init>: 00000174 <mem_init>: 174: 7c 08 02 a6 mflr r0 174: 7c 08 02 a6 mflr r0 178: 90 01 00 04 stw r0,4(r1) 178: 90 01 00 04 stw r0,4(r1) 17c: 94 21 ff e0 stwu r1,-32(r1) 17c: 94 21 ff e0 stwu r1,-32(r1) 180: 3c 60 00 00 lis r3,0 180: 3c 60 00 00 lis r3,0 182: R_PPC_ADDR16_HA max_low_pfn 182: R_PPC_ADDR16_HA max_low_pfn 184: 3c 80 00 00 lis r4,0 184: 3c 80 00 00 lis r4,0 186: R_PPC_ADDR16_HA max_pfn 186: R_PPC_ADDR16_HA max_pfn 188: 93 81 00 10 stw r28,16(r1) 188: 93 81 00 10 stw r28,16(r1) 18c: 3f 80 00 00 lis r28,0 18c: 3f 80 00 00 lis r28,0 18e: R_PPC_ADDR16_HA high_memory 18e: R_PPC_ADDR16_HA high_memory 190: 80 63 00 00 lwz r3,0(r3) 190: 80 63 00 00 lwz r3,0(r3) 192: R_PPC_ADDR16_LO max_low_pfn 192: R_PPC_ADDR16_LO max_low_pfn 194: 80 84 00 00 lwz r4,0(r4) 194: 80 84 00 00 lwz r4,0(r4) 196: R_PPC_ADDR16_LO max_pfn 196: R_PPC_ADDR16_LO max_pfn 198: 54 63 60 26 rlwinm r3,r3,12,0,19 198: 54 63 60 26 rlwinm r3,r3,12,0,19 19c: 3c 63 c0 00 addis r3,r3,-16384 19c: 3c 63 c0 00 addis r3,r3,-16384 1a0: 90 7c 00 00 stw r3,0(r28) 1a0: 90 7c 00 00 stw r3,0(r28) 1a2: R_PPC_ADDR16_LO high_memory 1a2: R_PPC_ADDR16_LO high_memory 1a4: 3c 60 00 00 lis r3,0 1a4: 3c 60 00 00 lis r3,0 1a6: R_PPC_ADDR16_HA max_mapnr 1a6: R_PPC_ADDR16_HA max_mapnr 1a8: 93 a1 00 14 stw r29,20(r1) 1a8: 93 a1 00 14 stw r29,20(r1) 1ac: 93 c1 00 18 stw r30,24(r1) 1ac: 93 c1 00 18 stw r30,24(r1) 1b0: 90 83 00 00 stw r4,0(r3) 1b0: 90 83 00 00 stw r4,0(r3) 1b2: R_PPC_ADDR16_LO max_mapnr 1b2: R_PPC_ADDR16_LO max_mapnr 1b4: 48 00 00 01 bl 1b4 <mem_init+0x40> 1b4: 48 00 00 01 bl 1b4 <mem_init+0x40> 1b4: R_PPC_PLTREL24 memblock_free 1b4: R_PPC_PLTREL24 memblock_free 1b8: 38 60 00 00 li r3,0 1b8: 38 60 00 00 li r3,0 1bc: 48 00 00 01 bl 1bc <mem_init+0x48> 1bc: 48 00 00 01 bl 1bc <mem_init+0x48> 1bc: R_PPC_PLTREL24 mem_init_prin 1bc: R_PPC_PLTREL24 mem_init_prin 1c0: 3c 60 00 00 lis r3,0 1c0: 3c 60 00 00 lis r3,0 1c2: R_PPC_ADDR16_HA .rodata.str1. 1c2: R_PPC_ADDR16_HA .rodata.str1. 1c4: 4c c6 31 82 crclr 4*cr1+eq 1c4: 4c c6 31 82 crclr 4*cr1+eq 1c8: 38 63 00 00 addi r3,r3,0 1c8: 38 63 00 00 addi r3,r3,0 1ca: R_PPC_ADDR16_LO .rodata.str1. 1ca: R_PPC_ADDR16_LO .rodata.str1. 1cc: 48 00 00 01 bl 1cc <mem_init+0x58> 1cc: 48 00 00 01 bl 1cc <mem_init+0x58> 1cc: R_PPC_PLTREL24 printk 1cc: R_PPC_PLTREL24 printk 1d0: 3c 80 ff fd lis r4,-3 1d0: 3c 80 ff fd lis r4,-3 1d4: 3c 60 00 00 lis r3,0 1d4: 3c 60 00 00 lis r3,0 1d6: R_PPC_ADDR16_HA .rodata.str1. 1d6: R_PPC_ADDR16_HA .rodata.str1. 1d8: 4c c6 31 82 crclr 4*cr1+eq 1d8: 4c c6 31 82 crclr 4*cr1+eq 1dc: 60 9e f0 00 ori r30,r4,61440 1dc: 60 9e f0 00 ori r30,r4,61440 1e0: 38 63 00 00 addi r3,r3,0 1e0: 38 63 00 00 addi r3,r3,0 1e2: R_PPC_ADDR16_LO .rodata.str1. 1e2: R_PPC_ADDR16_LO .rodata.str1. 1e4: 7f c4 f3 78 mr r4,r30 1e4: 7f c4 f3 78 mr r4,r30 1e8: 38 a0 f0 00 li r5,-4096 1e8: 38 a0 f0 00 li r5,-4096 1ec: 48 00 00 01 bl 1ec <mem_init+0x78> 1ec: 48 00 00 01 bl 1ec <mem_init+0x78> 1ec: R_PPC_PLTREL24 printk 1ec: R_PPC_PLTREL24 printk 1f0: 3c 80 ff dd lis r4,-35 1f0: 3c 80 ff dd lis r4,-35 1f4: 3c 60 00 00 lis r3,0 1f4: 3c 60 00 00 lis r3,0 1f6: R_PPC_ADDR16_HA .rodata.str1. 1f6: R_PPC_ADDR16_HA .rodata.str1. 1f8: 4c c6 31 82 crclr 4*cr1+eq 1f8: 4c c6 31 82 crclr 4*cr1+eq 1fc: 60 9d f0 00 ori r29,r4,61440 1fc: 60 9d f0 00 ori r29,r4,61440 200: 38 63 00 00 addi r3,r3,0 200: 38 63 00 00 addi r3,r3,0 202: R_PPC_ADDR16_LO .rodata.str1. 202: R_PPC_ADDR16_LO .rodata.str1. 204: 7f a4 eb 78 mr r4,r29 204: 7f a4 eb 78 mr r4,r29 208: 7f c5 f3 78 mr r5,r30 208: 7f c5 f3 78 mr r5,r30 20c: 48 00 00 01 bl 20c <mem_init+0x98> 20c: 48 00 00 01 bl 20c <mem_init+0x98> 20c: R_PPC_PLTREL24 printk 20c: R_PPC_PLTREL24 printk 210: 3f c0 00 00 lis r30,0 210: 3f c0 00 00 lis r30,0 212: R_PPC_ADDR16_HA ioremap_bot 212: R_PPC_ADDR16_HA ioremap_bot 214: 3c 60 00 00 lis r3,0 214: 3c 60 00 00 lis r3,0 216: R_PPC_ADDR16_HA .rodata.str1. 216: R_PPC_ADDR16_HA .rodata.str1. 218: 4c c6 31 82 crclr 4*cr1+eq 218: 4c c6 31 82 crclr 4*cr1+eq 21c: 80 9e 00 00 lwz r4,0(r30) 21c: 80 9e 00 00 lwz r4,0(r30) 21e: R_PPC_ADDR16_LO ioremap_bot 21e: R_PPC_ADDR16_LO ioremap_bot 220: 38 63 00 00 addi r3,r3,0 220: 38 63 00 00 addi r3,r3,0 222: R_PPC_ADDR16_LO .rodata.str1. 222: R_PPC_ADDR16_LO .rodata.str1. 224: 7f a5 eb 78 mr r5,r29 224: 7f a5 eb 78 mr r5,r29 228: 48 00 00 01 bl 228 <mem_init+0xb4> 228: 48 00 00 01 bl 228 <mem_init+0xb4> 228: R_PPC_PLTREL24 printk 228: R_PPC_PLTREL24 printk 22c: 80 7c 00 00 lwz r3,0(r28) 22c: 80 7c 00 00 lwz r3,0(r28) 22e: R_PPC_ADDR16_LO high_memory 22e: R_PPC_ADDR16_LO high_memory 230: 3c 80 01 00 lis r4,256 230: 3c 80 01 00 lis r4,256 234: 4c c6 31 82 crclr 4*cr1+eq 234: 4c c6 31 82 crclr 4*cr1+eq 238: 38 63 ff ff addi r3,r3,-1 238: 38 63 ff ff addi r3,r3,-1 23c: 80 be 00 00 lwz r5,0(r30) 23c: 80 be 00 00 lwz r5,0(r30) 23e: R_PPC_ADDR16_LO ioremap_bot 23e: R_PPC_ADDR16_LO ioremap_bot 240: 3c 63 10 00 addis r3,r3,4096 240: 3c 63 10 00 addis r3,r3,4096 244: 54 63 00 06 rlwinm r3,r3,0,0,3 244: 54 63 00 06 rlwinm r3,r3,0,0,3 248: 50 64 02 0c rlwimi r4,r3,0,8,6 248: 50 64 02 0c rlwimi r4,r3,0,8,6 24c: 3c 60 00 00 lis r3,0 24c: 3c 60 00 00 lis r3,0 24e: R_PPC_ADDR16_HA .rodata.str1. 24e: R_PPC_ADDR16_HA .rodata.str1. 250: 38 63 00 00 addi r3,r3,0 250: 38 63 00 00 addi r3,r3,0 252: R_PPC_ADDR16_LO .rodata.str1. 252: R_PPC_ADDR16_LO .rodata.str1. 254: 48 00 00 01 bl 254 <mem_init+0xe0> 254: 48 00 00 01 bl 254 <mem_init+0xe0> 254: R_PPC_PLTREL24 printk 254: R_PPC_PLTREL24 printk 258: 83 c1 00 18 lwz r30,24(r1) 258: 83 c1 00 18 lwz r30,24(r1) 25c: 83 a1 00 14 lwz r29,20(r1) 25c: 83 a1 00 14 lwz r29,20(r1) 260: 83 81 00 10 lwz r28,16(r1) 260: 83 81 00 10 lwz r28,16(r1) 264: 80 01 00 24 lwz r0,36(r1) 264: 80 01 00 24 lwz r0,36(r1) 268: 38 21 00 20 addi r1,r1,32 268: 38 21 00 20 addi r1,r1,32 26c: 7c 08 03 a6 mtlr r0 26c: 7c 08 03 a6 mtlr r0 270: 4e 80 00 20 blr 270: 4e 80 00 20 blr 00000274 <add_system_ram_resources>: 00000274 <add_system_ram_resources>: 274: 7c 08 02 a6 mflr r0 274: 7c 08 02 a6 mflr r0 278: 90 01 00 04 stw r0,4(r1) 278: 90 01 00 04 stw r0,4(r1) 27c: 94 21 ff c0 stwu r1,-64(r1) 27c: 94 21 ff c0 stwu r1,-64(r1) 280: 3c 60 00 00 lis r3,0 280: 3c 60 00 00 lis r3,0 282: R_PPC_ADDR16_HA memblock 282: R_PPC_ADDR16_HA memblock 284: 93 a1 00 34 stw r29,52(r1) 284: 93 a1 00 34 stw r29,52(r1) 288: 3b a3 00 00 addi r29,r3,0 288: 3b a3 00 00 addi r29,r3,0 28a: R_PPC_ADDR16_LO memblock 28a: R_PPC_ADDR16_LO memblock 28c: 80 7d 00 10 lwz r3,16(r29) 28c: 80 7d 00 10 lwz r3,16(r29) 290: 93 81 00 30 stw r28,48(r1) 290: 93 81 00 30 stw r28,48(r1) 294: 1c 63 00 18 mulli r3,r3,24 294: 1c 63 00 18 mulli r3,r3,24 298: 83 9d 00 20 lwz r28,32(r29) 298: 83 9d 00 20 lwz r28,32(r29) 29c: 7c 7c 1a 14 add r3,r28,r3 29c: 7c 7c 1a 14 add r3,r28,r3 2a0: 92 a1 00 14 stw r21,20(r1) 2a0: 92 a1 00 14 stw r21,20(r1) 2a4: 7c 1c 18 40 cmplw r28,r3 2a4: 7c 1c 18 40 cmplw r28,r3 2a8: 92 c1 00 18 stw r22,24(r1) 2a8: 92 c1 00 18 stw r22,24(r1) 2ac: 92 e1 00 1c stw r23,28(r1) 2ac: 92 e1 00 1c stw r23,28(r1) 2b0: 93 01 00 20 stw r24,32(r1) 2b0: 93 01 00 20 stw r24,32(r1) 2b4: 93 21 00 24 stw r25,36(r1) 2b4: 93 21 00 24 stw r25,36(r1) 2b8: 93 41 00 28 stw r26,40(r1) 2b8: 93 41 00 28 stw r26,40(r1) 2bc: 93 61 00 2c stw r27,44(r1) 2bc: 93 61 00 2c stw r27,44(r1) 2c0: 93 c1 00 38 stw r30,56(r1) 2c0: 93 c1 00 38 stw r30,56(r1) 2c4: 40 80 00 ac bge 370 <add_system_ram_resources 2c4: 40 80 00 ac bge 370 <add_system_ram_resources 2c8: 3c 60 00 00 lis r3,0 2c8: 3c 60 00 00 lis r3,0 2ca: R_PPC_ADDR16_HA kmalloc_cache 2ca: R_PPC_ADDR16_HA kmalloc_cache 2cc: 3c 80 00 00 lis r4,0 2cc: 3c 80 00 00 lis r4,0 2ce: R_PPC_ADDR16_HA .rodata.str1. 2ce: R_PPC_ADDR16_HA .rodata.str1. 2d0: 3c a0 81 00 lis r5,-32512 2d0: 3c a0 81 00 lis r5,-32512 2d4: 3c c0 00 00 lis r6,0 2d4: 3c c0 00 00 lis r6,0 2d6: R_PPC_ADDR16_HA iomem_resourc 2d6: R_PPC_ADDR16_HA iomem_resourc 2d8: 3b 7c ff e8 addi r27,r28,-24 2d8: 3b 7c ff e8 addi r27,r28,-24 2dc: 3b 40 00 00 li r26,0 2dc: 3b 40 00 00 li r26,0 2e0: 3b 23 00 00 addi r25,r3,0 2e0: 3b 23 00 00 addi r25,r3,0 2e2: R_PPC_ADDR16_LO kmalloc_cache 2e2: R_PPC_ADDR16_LO kmalloc_cache 2e4: 3b 04 00 00 addi r24,r4,0 2e4: 3b 04 00 00 addi r24,r4,0 2e6: R_PPC_ADDR16_LO .rodata.str1. 2e6: R_PPC_ADDR16_LO .rodata.str1. 2e8: 60 b7 02 00 ori r23,r5,512 2e8: 60 b7 02 00 ori r23,r5,512 2ec: 3b c6 00 00 addi r30,r6,0 2ec: 3b c6 00 00 addi r30,r6,0 2ee: R_PPC_ADDR16_LO iomem_resourc 2ee: R_PPC_ADDR16_LO iomem_resourc 2f0: 80 79 00 18 lwz r3,24(r25) 2f0: 80 79 00 18 lwz r3,24(r25) 2f4: 38 80 0d c0 li r4,3520 2f4: 38 80 0d c0 li r4,3520 2f8: 38 a0 00 28 li r5,40 2f8: 38 a0 00 28 li r5,40 2fc: 82 db 00 1c lwz r22,28(r27) 2fc: 82 db 00 1c lwz r22,28(r27) 300: 82 bb 00 24 lwz r21,36(r27) 300: 82 bb 00 24 lwz r21,36(r27) 304: 48 00 00 01 bl 304 <add_system_ram_resources 304: 48 00 00 01 bl 304 <add_system_ram_resources 304: R_PPC_PLTREL24 kmem_cache_al 304: R_PPC_PLTREL24 kmem_cache_al 308: 7c 64 1b 78 mr r4,r3 308: 7c 64 1b 78 mr r4,r3 30c: 7c 63 00 34 cntlzw r3,r3 30c: 7c 63 00 34 cntlzw r3,r3 310: 28 04 00 00 cmplwi r4,0 310: 28 04 00 00 cmplwi r4,0 314: 54 63 df fe rlwinm r3,r3,27,31,31 314: 54 63 df fe rlwinm r3,r3,27,31,31 318: 0f 03 00 00 twnei r3,0 318: 0f 03 00 00 twnei r3,0 31c: 41 82 00 34 beq 350 <add_system_ram_resources 31c: 41 82 00 34 beq 350 <add_system_ram_resources 320: 7c 76 aa 14 add r3,r22,r21 320: 7c 76 aa 14 add r3,r22,r21 324: 93 04 00 10 stw r24,16(r4) 324: 93 04 00 10 stw r24,16(r4) 328: 38 63 ff ff addi r3,r3,-1 328: 38 63 ff ff addi r3,r3,-1 32c: 90 64 00 0c stw r3,12(r4) 32c: 90 64 00 0c stw r3,12(r4) 330: 7f c3 f3 78 mr r3,r30 330: 7f c3 f3 78 mr r3,r30 334: 93 44 00 00 stw r26,0(r4) 334: 93 44 00 00 stw r26,0(r4) 338: 92 c4 00 04 stw r22,4(r4) 338: 92 c4 00 04 stw r22,4(r4) 33c: 93 44 00 08 stw r26,8(r4) 33c: 93 44 00 08 stw r26,8(r4) 340: 92 e4 00 14 stw r23,20(r4) 340: 92 e4 00 14 stw r23,20(r4) 344: 48 00 00 01 bl 344 <add_system_ram_resources 344: 48 00 00 01 bl 344 <add_system_ram_resources 344: R_PPC_PLTREL24 request_resou 344: R_PPC_PLTREL24 request_resou 348: 54 63 0f fe rlwinm r3,r3,1,31,31 348: 54 63 0f fe rlwinm r3,r3,1,31,31 34c: 0f 03 00 00 twnei r3,0 34c: 0f 03 00 00 twnei r3,0 350: 80 7d 00 10 lwz r3,16(r29) 350: 80 7d 00 10 lwz r3,16(r29) 354: 3b 9c 00 18 addi r28,r28,24 354: 3b 9c 00 18 addi r28,r28,24 358: 3b 7b 00 18 addi r27,r27,24 358: 3b 7b 00 18 addi r27,r27,24 35c: 80 9d 00 20 lwz r4,32(r29) 35c: 80 9d 00 20 lwz r4,32(r29) 360: 1c 63 00 18 mulli r3,r3,24 360: 1c 63 00 18 mulli r3,r3,24 364: 7c 64 1a 14 add r3,r4,r3 364: 7c 64 1a 14 add r3,r4,r3 368: 7c 1c 18 40 cmplw r28,r3 368: 7c 1c 18 40 cmplw r28,r3 36c: 41 80 ff 84 blt 2f0 <add_system_ram_resources 36c: 41 80 ff 84 blt 2f0 <add_system_ram_resources 370: 38 60 00 00 li r3,0 370: 38 60 00 00 li r3,0 374: 83 c1 00 38 lwz r30,56(r1) 374: 83 c1 00 38 lwz r30,56(r1) 378: 83 a1 00 34 lwz r29,52(r1) 378: 83 a1 00 34 lwz r29,52(r1) 37c: 83 81 00 30 lwz r28,48(r1) 37c: 83 81 00 30 lwz r28,48(r1) 380: 83 61 00 2c lwz r27,44(r1) 380: 83 61 00 2c lwz r27,44(r1) 384: 83 41 00 28 lwz r26,40(r1) 384: 83 41 00 28 lwz r26,40(r1) 388: 83 21 00 24 lwz r25,36(r1) 388: 83 21 00 24 lwz r25,36(r1) 38c: 83 01 00 20 lwz r24,32(r1) 38c: 83 01 00 20 lwz r24,32(r1) 390: 82 e1 00 1c lwz r23,28(r1) 390: 82 e1 00 1c lwz r23,28(r1) 394: 82 c1 00 18 lwz r22,24(r1) 394: 82 c1 00 18 lwz r22,24(r1) 398: 82 a1 00 14 lwz r21,20(r1) 398: 82 a1 00 14 lwz r21,20(r1) 39c: 80 01 00 44 lwz r0,68(r1) 39c: 80 01 00 44 lwz r0,68(r1) 3a0: 38 21 00 40 addi r1,r1,64 3a0: 38 21 00 40 addi r1,r1,64 3a4: 7c 08 03 a6 mtlr r0 3a4: 7c 08 03 a6 mtlr r0 3a8: 4e 80 00 20 blr 3a8: 4e 80 00 20 blr