esp-idf: esp_partition_mmap fails with partitions larger than 3MB (IDFGH-107)

Using esp_partition_mmap to map a partition larger than 3MB results in failures. The following reproduces the issue: https://github.com/OtherCrashOverride/esp32-flashtest

When the partition is: storage, 0x40, 0x01, 0x100000, 0x300000 the operation is successful.

When the partion is: storage, 0x40, 0x01, 0x100000, 0x400000 an error is returned (ESP_ERR_NO_MEM).

When the partition is: storage, 0x40, 0x01, 0x100000, 0x500000 a “double exception” occurs.

The test hardware is an ESP-WROOM32 with the flash chip removed and replaced with W25Q128JVSIQ (16MB). The flash is correctly detected for flash and boot:

I (48) boot: SPI Speed      : 40MHz
I (49) boot: SPI Mode       : DIO
I (53) boot: SPI Flash Size : 16MB

About this issue

  • Original URL
  • State: open
  • Created 7 years ago
  • Comments: 22 (9 by maintainers)

Most upvoted comments

Hello, I see something that looks like a variation of this issue. The following code

#include <stdio.h>
#include "sdkconfig.h"
#include "esp_system.h"
#include "spi_flash_mmap.h"
#include "esp_partition.h"

static void IRAM_ATTR dump_data(unsigned long base, unsigned long size)
{
        unsigned long i, j;

        for (i = 0; i < size; i += 65536) {
                unsigned long sum = 0;
                for (j = 0; j < 16384; ++j) {
                        sum += j[(unsigned long*)(base + i)];
                }
                printf("%08lx..%08lx: %08lx\n", base + i, base + i + 65535, sum);
        }
}

static const void * IRAM_ATTR map_partition(const char *name, unsigned long off)
{
        const void *ptr;
        spi_flash_mmap_handle_t handle;
        esp_partition_iterator_t it;
        const esp_partition_t *part;

        it = esp_partition_find(ESP_PARTITION_TYPE_ANY, ESP_PARTITION_SUBTYPE_ANY, name);
        part = esp_partition_get(it);
        if (esp_partition_mmap(part, off, part->size - off, SPI_FLASH_MMAP_INST, &ptr, &handle) != ESP_OK)
                abort();
        dump_data((unsigned long)ptr, part->size);
        return ptr;
}

static void IRAM_ATTR map_flash_and_go(void)
{
        const void *ptr0, *ptr;

        ptr0 = map_partition("linux", 0);
        printf("ptr = %p\n", ptr0);

        ptr = map_partition("rootfs", 0);
        printf("ptr = %p\n", ptr);

        spi_flash_mmap_dump();

        asm volatile ("jx %0" :: "r"(ptr0));
}

void app_main(void)
{   
    map_flash_and_go();
    esp_restart();
}

with the following partition table

## Label          type  ST       Offset      Length
nvs,              data, nvs,     0x0000a000, 0x00005000
phy_init,         data, phy,     0x0000f000, 0x00001000
factory,          app,  factory, 0x00010000, 0x00030000
linux,            0x40, 0x0,     0x00040000, 0x001c0000
rootfs,           0x40, 0x1,     0x00200000, 0x00200000

runs to completion without an error, but the dumped data does not match the FLASH contents once the virtual address crosses the 0x40400000 boundary. The complete output:

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:5056
load:0x40078000,len:15032
load:0x40080400,len:3184
entry 0x400805c0
I (97) quad_psram: This chip is ESP32-D0WD
I (98) esp_psram: Found 8MB PSRAM device
I (98) esp_psram: Speed: 80MHz
I (99) esp_psram: PSRAM initialized, cache is in low/high (2-core) mode.
W (107) esp_psram: Virtual address not enough for PSRAM, map as much as we can. 4MB is mapped
I (116) cpu_start: Pro cpu up.
I (119) cpu_start: Starting app cpu, entry point is 0x400811b4
I (0) cpu_start: App cpu up.
I (640) esp_psram: SPI SRAM memory test OK
I (648) cpu_start: Pro cpu start user code
I (648) cpu_start: cpu freq: 160000000 Hz
I (648) cpu_start: Application information:
I (651) cpu_start: Project name:     linux_boot
I (656) cpu_start: App version:      v5.0.1-1-g3077be609d04-dirty
I (663) cpu_start: Compile time:     May  4 2023 16:29:41
I (669) cpu_start: ELF file SHA256:  2be9b7dd833fb31e...
I (675) cpu_start: ESP-IDF:          v5.0.1-1-g3077be609d04-dirty
I (682) cpu_start: Min chip rev:     v3.0
I (687) cpu_start: Max chip rev:     v3.99 
I (692) cpu_start: Chip rev:         v3.0
I (696) heap_init: Initializing. RAM available for dynamic allocation:
I (704) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (710) heap_init: At 3FFB2B18 len 0002D4E8 (181 KiB): DRAM
I (716) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (722) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (729) heap_init: At 4008CF48 len 000130B8 (76 KiB): IRAM
I (735) esp_psram: Adding pool of 4096K of PSRAM memory to heap allocator
I (743) spi_flash: detected chip: generic
I (747) spi_flash: flash io: dio
I (752) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (762) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations
400f0000..400fffff: 30f7d28c
40100000..4010ffff: 86d5c3ab
40110000..4011ffff: 8e367440
40120000..4012ffff: 40aedaaf
40130000..4013ffff: d1ceca70
40140000..4014ffff: 80e8c8ee
40150000..4015ffff: 91702aac
40160000..4016ffff: 08d82632
40170000..4017ffff: 5e13a0a7
40180000..4018ffff: 3fdf474c
40190000..4019ffff: 5f91e533
401a0000..401affff: e14afd52
401b0000..401bffff: 0a1bb4f2
401c0000..401cffff: 550359d7
401d0000..401dffff: c4df8bd6
401e0000..401effff: 319a0f8f
401f0000..401fffff: 5a206cad
40200000..4020ffff: 0f145f2c
40210000..4021ffff: 09933343
40220000..4022ffff: 00000000
40230000..4023ffff: 00000000
40240000..4024ffff: 00000000
40250000..4025ffff: 00000000
40260000..4026ffff: 00000000
40270000..4027ffff: 8889448a
40280000..4028ffff: f4d78ab7
40290000..4029ffff: ffffc000
402a0000..402affff: ffffc000
ptr = 0x400f0000
402b0000..402bffff: 24612087
402c0000..402cffff: fb43aa76
402d0000..402dffff: 92b5a7a2
402e0000..402effff: 19b74031
402f0000..402fffff: da8b13bd
40300000..4030ffff: 857ef3d0
40310000..4031ffff: e112b8d6
40320000..4032ffff: cbeba5b3
40330000..4033ffff: b1313919
40340000..4034ffff: e8589a91
40350000..4035ffff: 27df84a0
40360000..4036ffff: 709e934b
40370000..4037ffff: 033c0f2c
40380000..4038ffff: 18b66713
40390000..4039ffff: 9141bab3
403a0000..403affff: 400dc69f
403b0000..403bffff: 925063c1
403c0000..403cffff: 0eb3bd3e
403d0000..403dffff: 6280d15f
403e0000..403effff: 63601462
403f0000..403fffff: 7010780d
40400000..4040ffff: 02eb4000
40410000..4041ffff: 02eb4000
40420000..4042ffff: 02eb4000
40430000..4043ffff: 02eb4000
40440000..4044ffff: 02eb4000
40450000..4045ffff: 02eb4000
40460000..4046ffff: 02eb4000
40470000..4047ffff: 02eb4000
40480000..4048ffff: 02eb4000
40490000..4049ffff: 02eb4000
404a0000..404affff: 02eb4000
ptr = 0x402b0000
handle=3 page=107 count=32
handle=2 page=79 count=28
page 0: refcnt=1 paddr=1
page 77: refcnt=1 paddr=2
page 78: refcnt=1 paddr=3
page 79: refcnt=1 paddr=4
page 80: refcnt=1 paddr=5
page 81: refcnt=1 paddr=6
page 82: refcnt=1 paddr=7
page 83: refcnt=1 paddr=8
page 84: refcnt=1 paddr=9
page 85: refcnt=1 paddr=10
page 86: refcnt=1 paddr=11
page 87: refcnt=1 paddr=12
page 88: refcnt=1 paddr=13
page 89: refcnt=1 paddr=14
page 90: refcnt=1 paddr=15
page 91: refcnt=1 paddr=16
page 92: refcnt=1 paddr=17
page 93: refcnt=1 paddr=18
page 94: refcnt=1 paddr=19
page 95: refcnt=1 paddr=20
page 96: refcnt=1 paddr=21
page 97: refcnt=1 paddr=22
page 98: refcnt=1 paddr=23
page 99: refcnt=1 paddr=24
page 100: refcnt=1 paddr=25
page 101: refcnt=1 paddr=26
page 102: refcnt=1 paddr=27
page 103: refcnt=1 paddr=28
page 104: refcnt=1 paddr=29
page 105: refcnt=1 paddr=30
page 106: refcnt=1 paddr=31
page 107: refcnt=1 paddr=32
page 108: refcnt=1 paddr=33
page 109: refcnt=1 paddr=34
page 110: refcnt=1 paddr=35
page 111: refcnt=1 paddr=36
page 112: refcnt=1 paddr=37
page 113: refcnt=1 paddr=38
page 114: refcnt=1 paddr=39
page 115: refcnt=1 paddr=40
page 116: refcnt=1 paddr=41
page 117: refcnt=1 paddr=42
page 118: refcnt=1 paddr=43
page 119: refcnt=1 paddr=44
page 120: refcnt=1 paddr=45
page 121: refcnt=1 paddr=46
page 122: refcnt=1 paddr=47
page 123: refcnt=1 paddr=48
page 124: refcnt=1 paddr=49
page 125: refcnt=1 paddr=50
page 126: refcnt=1 paddr=51
page 127: refcnt=1 paddr=52
page 128: refcnt=1 paddr=53
page 129: refcnt=1 paddr=54
page 130: refcnt=1 paddr=55
page 131: refcnt=1 paddr=56
page 132: refcnt=1 paddr=57
page 133: refcnt=1 paddr=58
page 134: refcnt=1 paddr=59
page 135: refcnt=1 paddr=60
page 136: refcnt=1 paddr=61
page 137: refcnt=1 paddr=62
page 138: refcnt=1 paddr=63

I know that the correct data is in the FLASH, because changing map_partition("rootfs", 0); to map_partition("rootfs", 20 << 16); prints the missing data.

That is I have two questions here. First there seems to be a bug that the function esp_partition_mmap returns success, but the mapping is not fully functional. I guess I should report it as a separate issue, right? Second it looks very much like a hardware issue, so the question is: is it supposed to work at all on esp32 (simultaneous mapping of 4MB of PSRAM and 4MB of FLASH)?

@negativekelvin yes, you’re right, it should be 4 * 64 not 3 * 64. And the other issue is incorrect bail-out a couple of lines below (shouldn’t return from the function with the cache disabled). Still looking into the data corruption issue here, will update this ticket once we have some progress.

https://github.com/OtherCrashOverride/esp32-flashtest/tree/instmap

The output of spi_flash_mmap_dump follows. Note that spi_flash_mmap_dump for the 8MB mapping can not be provided since it “double exception” panics:

storage,  0x40, 0x01,    0x100000, 0x400000
-------------------------------------------
partition: type=64, subtype=1, address=0x100000, size=0x400000, label='storage', encrypted=0
pre mmap heap=0x46774
post mmap heap=0x4675c
mmap=0x400f0000
handle=2 page=79 count=64
page 0: refcnt=1 paddr=1
page 77: refcnt=1 paddr=2
page 78: refcnt=1 paddr=3
page 79: refcnt=1 paddr=16
page 80: refcnt=1 paddr=17
page 81: refcnt=1 paddr=18
page 82: refcnt=1 paddr=19
page 83: refcnt=1 paddr=20
page 84: refcnt=1 paddr=21
page 85: refcnt=1 paddr=22
page 86: refcnt=1 paddr=23
page 87: refcnt=1 paddr=24
page 88: refcnt=1 paddr=25
page 89: refcnt=1 paddr=26
page 90: refcnt=1 paddr=27
page 91: refcnt=1 paddr=28
page 92: refcnt=1 paddr=29
page 93: refcnt=1 paddr=30
page 94: refcnt=1 paddr=31
page 95: refcnt=1 paddr=32
page 96: refcnt=1 paddr=33
page 97: refcnt=1 paddr=34
page 98: refcnt=1 paddr=35
page 99: refcnt=1 paddr=36
page 100: refcnt=1 paddr=37
page 101: refcnt=1 paddr=38
page 102: refcnt=1 paddr=39
page 103: refcnt=1 paddr=40
page 104: refcnt=1 paddr=41
page 105: refcnt=1 paddr=42
page 106: refcnt=1 paddr=43
page 107: refcnt=1 paddr=44
page 108: refcnt=1 paddr=45
page 109: refcnt=1 paddr=46
page 110: refcnt=1 paddr=47
page 111: refcnt=1 paddr=48
page 112: refcnt=1 paddr=49
page 113: refcnt=1 paddr=50
page 114: refcnt=1 paddr=51
page 115: refcnt=1 paddr=52
page 116: refcnt=1 paddr=53
page 117: refcnt=1 paddr=54
page 118: refcnt=1 paddr=55
page 119: refcnt=1 paddr=56
page 120: refcnt=1 paddr=57
page 121: refcnt=1 paddr=58
page 122: refcnt=1 paddr=59
page 123: refcnt=1 paddr=60
page 124: refcnt=1 paddr=61
page 125: refcnt=1 paddr=62
page 126: refcnt=1 paddr=63
page 127: refcnt=1 paddr=64
page 128: refcnt=1 paddr=65
page 129: refcnt=1 paddr=66
page 130: refcnt=1 paddr=67
page 131: refcnt=1 paddr=68
page 132: refcnt=1 paddr=69
page 133: refcnt=1 paddr=70
page 134: refcnt=1 paddr=71
page 135: refcnt=1 paddr=72
page 136: refcnt=1 paddr=73
page 137: refcnt=1 paddr=74
page 138: refcnt=1 paddr=75
page 139: refcnt=1 paddr=76
page 140: refcnt=1 paddr=77
page 141: refcnt=1 paddr=78
page 142: refcnt=1 paddr=79
storage,  0x40, 0x01,    0x100000, 0x500000
-------------------------------------------
partition: type=64, subtype=1, address=0x100000, size=0x500000, label='storage', encrypted=0
pre mmap heap=0x46774
post mmap heap=0x4675c
mmap=0x400f0000
handle=2 page=79 count=80
page 0: refcnt=1 paddr=1
page 77: refcnt=1 paddr=2
page 78: refcnt=1 paddr=3
page 79: refcnt=1 paddr=16
page 80: refcnt=1 paddr=17
page 81: refcnt=1 paddr=18
page 82: refcnt=1 paddr=19
page 83: refcnt=1 paddr=20
page 84: refcnt=1 paddr=21
page 85: refcnt=1 paddr=22
page 86: refcnt=1 paddr=23
page 87: refcnt=1 paddr=24
page 88: refcnt=1 paddr=25
page 89: refcnt=1 paddr=26
page 90: refcnt=1 paddr=27
page 91: refcnt=1 paddr=28
page 92: refcnt=1 paddr=29
page 93: refcnt=1 paddr=30
page 94: refcnt=1 paddr=31
page 95: refcnt=1 paddr=32
page 96: refcnt=1 paddr=33
page 97: refcnt=1 paddr=34
page 98: refcnt=1 paddr=35
page 99: refcnt=1 paddr=36
page 100: refcnt=1 paddr=37
page 101: refcnt=1 paddr=38
page 102: refcnt=1 paddr=39
page 103: refcnt=1 paddr=40
page 104: refcnt=1 paddr=41
page 105: refcnt=1 paddr=42
page 106: refcnt=1 paddr=43
page 107: refcnt=1 paddr=44
page 108: refcnt=1 paddr=45
page 109: refcnt=1 paddr=46
page 110: refcnt=1 paddr=47
page 111: refcnt=1 paddr=48
page 112: refcnt=1 paddr=49
page 113: refcnt=1 paddr=50
page 114: refcnt=1 paddr=51
page 115: refcnt=1 paddr=52
page 116: refcnt=1 paddr=53
page 117: refcnt=1 paddr=54
page 118: refcnt=1 paddr=55
page 119: refcnt=1 paddr=56
page 120: refcnt=1 paddr=57
page 121: refcnt=1 paddr=58
page 122: refcnt=1 paddr=59
page 123: refcnt=1 paddr=60
page 124: refcnt=1 paddr=61
page 125: refcnt=1 paddr=62
page 126: refcnt=1 paddr=63
page 127: refcnt=1 paddr=64
page 128: refcnt=1 paddr=65
page 129: refcnt=1 paddr=66
page 130: refcnt=1 paddr=67
page 131: refcnt=1 paddr=68
page 132: refcnt=1 paddr=69
page 133: refcnt=1 paddr=70
page 134: refcnt=1 paddr=71
page 135: refcnt=1 paddr=72
page 136: refcnt=1 paddr=73
page 137: refcnt=1 paddr=74
page 138: refcnt=1 paddr=75
page 139: refcnt=1 paddr=76
page 140: refcnt=1 paddr=77
page 141: refcnt=1 paddr=78
page 142: refcnt=1 paddr=79
page 143: refcnt=1 paddr=80
page 144: refcnt=1 paddr=81
page 145: refcnt=1 paddr=82
page 146: refcnt=1 paddr=83
page 147: refcnt=1 paddr=84
page 148: refcnt=1 paddr=85
page 149: refcnt=1 paddr=86
page 150: refcnt=1 paddr=87
page 151: refcnt=1 paddr=88
page 152: refcnt=1 paddr=89
page 153: refcnt=1 paddr=90
page 154: refcnt=1 paddr=91
page 155: refcnt=1 paddr=92
page 156: refcnt=1 paddr=93
page 157: refcnt=1 paddr=94
page 158: refcnt=1 paddr=95
storage,  0x40, 0x01,    0x100000, 0x600000
-------------------------------------------
partition: type=64, subtype=1, address=0x100000, size=0x600000, label='storage', encrypted=0
pre mmap heap=0x46774
post mmap heap=0x4675c
mmap=0x400f0000
handle=2 page=79 count=96
page 0: refcnt=1 paddr=1
page 77: refcnt=1 paddr=2
page 78: refcnt=1 paddr=3
page 79: refcnt=1 paddr=16
page 80: refcnt=1 paddr=17
page 81: refcnt=1 paddr=18
page 82: refcnt=1 paddr=19
page 83: refcnt=1 paddr=20
page 84: refcnt=1 paddr=21
page 85: refcnt=1 paddr=22
page 86: refcnt=1 paddr=23
page 87: refcnt=1 paddr=24
page 88: refcnt=1 paddr=25
page 89: refcnt=1 paddr=26
page 90: refcnt=1 paddr=27
page 91: refcnt=1 paddr=28
page 92: refcnt=1 paddr=29
page 93: refcnt=1 paddr=30
page 94: refcnt=1 paddr=31
page 95: refcnt=1 paddr=32
page 96: refcnt=1 paddr=33
page 97: refcnt=1 paddr=34
page 98: refcnt=1 paddr=35
page 99: refcnt=1 paddr=36
page 100: refcnt=1 paddr=37
page 101: refcnt=1 paddr=38
page 102: refcnt=1 paddr=39
page 103: refcnt=1 paddr=40
page 104: refcnt=1 paddr=41
page 105: refcnt=1 paddr=42
page 106: refcnt=1 paddr=43
page 107: refcnt=1 paddr=44
page 108: refcnt=1 paddr=45
page 109: refcnt=1 paddr=46
page 110: refcnt=1 paddr=47
page 111: refcnt=1 paddr=48
page 112: refcnt=1 paddr=49
page 113: refcnt=1 paddr=50
page 114: refcnt=1 paddr=51
page 115: refcnt=1 paddr=52
page 116: refcnt=1 paddr=53
page 117: refcnt=1 paddr=54
page 118: refcnt=1 paddr=55
page 119: refcnt=1 paddr=56
page 120: refcnt=1 paddr=57
page 121: refcnt=1 paddr=58
page 122: refcnt=1 paddr=59
page 123: refcnt=1 paddr=60
page 124: refcnt=1 paddr=61
page 125: refcnt=1 paddr=62
page 126: refcnt=1 paddr=63
page 127: refcnt=1 paddr=64
page 128: refcnt=1 paddr=65
page 129: refcnt=1 paddr=66
page 130: refcnt=1 paddr=67
page 131: refcnt=1 paddr=68
page 132: refcnt=1 paddr=69
page 133: refcnt=1 paddr=70
page 134: refcnt=1 paddr=71
page 135: refcnt=1 paddr=72
page 136: refcnt=1 paddr=73
page 137: refcnt=1 paddr=74
page 138: refcnt=1 paddr=75
page 139: refcnt=1 paddr=76
page 140: refcnt=1 paddr=77
page 141: refcnt=1 paddr=78
page 142: refcnt=1 paddr=79
page 143: refcnt=1 paddr=80
page 144: refcnt=1 paddr=81
page 145: refcnt=1 paddr=82
page 146: refcnt=1 paddr=83
page 147: refcnt=1 paddr=84
page 148: refcnt=1 paddr=85
page 149: refcnt=1 paddr=86
page 150: refcnt=1 paddr=87
page 151: refcnt=1 paddr=88
page 152: refcnt=1 paddr=89
page 153: refcnt=1 paddr=90
page 154: refcnt=1 paddr=91
page 155: refcnt=1 paddr=92
page 156: refcnt=1 paddr=93
page 157: refcnt=1 paddr=94
page 158: refcnt=1 paddr=95
page 159: refcnt=1 paddr=96
page 160: refcnt=1 paddr=97
page 161: refcnt=1 paddr=98
page 162: refcnt=1 paddr=99
page 163: refcnt=1 paddr=100
page 164: refcnt=1 paddr=101
page 165: refcnt=1 paddr=102
page 166: refcnt=1 paddr=103
page 167: refcnt=1 paddr=104
page 168: refcnt=1 paddr=105
page 169: refcnt=1 paddr=106
page 170: refcnt=1 paddr=107
page 171: refcnt=1 paddr=108
page 172: refcnt=1 paddr=109
page 173: refcnt=1 paddr=110
page 174: refcnt=1 paddr=111
storage,  0x40, 0x01,    0x100000, 0x700000
-------------------------------------------
partition: type=64, subtype=1, address=0x100000, size=0x700000, label='storage', encrypted=0
pre mmap heap=0x46774
post mmap heap=0x4675c
mmap=0x400f0000
handle=2 page=79 count=112
page 0: refcnt=1 paddr=1
page 77: refcnt=1 paddr=2
page 78: refcnt=1 paddr=3
page 79: refcnt=1 paddr=16
page 80: refcnt=1 paddr=17
page 81: refcnt=1 paddr=18
page 82: refcnt=1 paddr=19
page 83: refcnt=1 paddr=20
page 84: refcnt=1 paddr=21
page 85: refcnt=1 paddr=22
page 86: refcnt=1 paddr=23
page 87: refcnt=1 paddr=24
page 88: refcnt=1 paddr=25
page 89: refcnt=1 paddr=26
page 90: refcnt=1 paddr=27
page 91: refcnt=1 paddr=28
page 92: refcnt=1 paddr=29
page 93: refcnt=1 paddr=30
page 94: refcnt=1 paddr=31
page 95: refcnt=1 paddr=32
page 96: refcnt=1 paddr=33
page 97: refcnt=1 paddr=34
page 98: refcnt=1 paddr=35
page 99: refcnt=1 paddr=36
page 100: refcnt=1 paddr=37
page 101: refcnt=1 paddr=38
page 102: refcnt=1 paddr=39
page 103: refcnt=1 paddr=40
page 104: refcnt=1 paddr=41
page 105: refcnt=1 paddr=42
page 106: refcnt=1 paddr=43
page 107: refcnt=1 paddr=44
page 108: refcnt=1 paddr=45
page 109: refcnt=1 paddr=46
page 110: refcnt=1 paddr=47
page 111: refcnt=1 paddr=48
page 112: refcnt=1 paddr=49
page 113: refcnt=1 paddr=50
page 114: refcnt=1 paddr=51
page 115: refcnt=1 paddr=52
page 116: refcnt=1 paddr=53
page 117: refcnt=1 paddr=54
page 118: refcnt=1 paddr=55
page 119: refcnt=1 paddr=56
page 120: refcnt=1 paddr=57
page 121: refcnt=1 paddr=58
page 122: refcnt=1 paddr=59
page 123: refcnt=1 paddr=60
page 124: refcnt=1 paddr=61
page 125: refcnt=1 paddr=62
page 126: refcnt=1 paddr=63
page 127: refcnt=1 paddr=64
page 128: refcnt=1 paddr=65
page 129: refcnt=1 paddr=66
page 130: refcnt=1 paddr=67
page 131: refcnt=1 paddr=68
page 132: refcnt=1 paddr=69
page 133: refcnt=1 paddr=70
page 134: refcnt=1 paddr=71
page 135: refcnt=1 paddr=72
page 136: refcnt=1 paddr=73
page 137: refcnt=1 paddr=74
page 138: refcnt=1 paddr=75
page 139: refcnt=1 paddr=76
page 140: refcnt=1 paddr=77
page 141: refcnt=1 paddr=78
page 142: refcnt=1 paddr=79
page 143: refcnt=1 paddr=80
page 144: refcnt=1 paddr=81
page 145: refcnt=1 paddr=82
page 146: refcnt=1 paddr=83
page 147: refcnt=1 paddr=84
page 148: refcnt=1 paddr=85
page 149: refcnt=1 paddr=86
page 150: refcnt=1 paddr=87
page 151: refcnt=1 paddr=88
page 152: refcnt=1 paddr=89
page 153: refcnt=1 paddr=90
page 154: refcnt=1 paddr=91
page 155: refcnt=1 paddr=92
page 156: refcnt=1 paddr=93
page 157: refcnt=1 paddr=94
page 158: refcnt=1 paddr=95
page 159: refcnt=1 paddr=96
page 160: refcnt=1 paddr=97
page 161: refcnt=1 paddr=98
page 162: refcnt=1 paddr=99
page 163: refcnt=1 paddr=100
page 164: refcnt=1 paddr=101
page 165: refcnt=1 paddr=102
page 166: refcnt=1 paddr=103
page 167: refcnt=1 paddr=104
page 168: refcnt=1 paddr=105
page 169: refcnt=1 paddr=106
page 170: refcnt=1 paddr=107
page 171: refcnt=1 paddr=108
page 172: refcnt=1 paddr=109
page 173: refcnt=1 paddr=110
page 174: refcnt=1 paddr=111
page 175: refcnt=1 paddr=112
page 176: refcnt=1 paddr=113
page 177: refcnt=1 paddr=114
page 178: refcnt=1 paddr=115
page 179: refcnt=1 paddr=116
page 180: refcnt=1 paddr=117
page 181: refcnt=1 paddr=118
page 182: refcnt=1 paddr=119
page 183: refcnt=1 paddr=120
page 184: refcnt=1 paddr=121
page 185: refcnt=1 paddr=122
page 186: refcnt=1 paddr=123
page 187: refcnt=1 paddr=124
page 188: refcnt=1 paddr=125
page 189: refcnt=1 paddr=126
page 190: refcnt=1 paddr=127