Line 98: |
Line 98: |
| * vmem 0xFFFFFFF800000000 is mapped to physmem 0x80000000. Similar to above, except tmp=0 due to wrap-around, etc. The chunksize used when increasing addr is 0xfffffff840000000, with another +=0x40000000 separate from the addr cmp for the loop. | | * vmem 0xFFFFFFF800000000 is mapped to physmem 0x80000000. Similar to above, except tmp=0 due to wrap-around, etc. The chunksize used when increasing addr is 0xfffffff840000000, with another +=0x40000000 separate from the addr cmp for the loop. |
| ** "endaddr = 0x3fffffff + (<size from above> | 0xfffffff800000000); enaddr = (endaddr & 0xffffffffc0000000)-1; if(endaddr >= 0xfffffff800000001){<map mem>}" | | ** "endaddr = 0x3fffffff + (<size from above> | 0xfffffff800000000); enaddr = (endaddr & 0xffffffffc0000000)-1; if(endaddr >= 0xfffffff800000001){<map mem>}" |
− |
| |
− |
| |
| | | |
| * Initializes level2 pagetable descriptor for vmem 0xFFFFFFF7C0000000. descriptor = 0x3 | physaddr. physaddr is core-specific. | | * Initializes level2 pagetable descriptor for vmem 0xFFFFFFF7C0000000. descriptor = 0x3 | physaddr. physaddr is core-specific. |
Line 115: |
Line 113: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Vmem | + | ! Virtual |
− | ! Physmem | + | ! Physical |
| ! Size | | ! Size |
− | ! Descriptor ORR-value | + | ! Attributes |
| ! Permissions | | ! Permissions |
| ! Description | | ! Description |
| |- | | |- |
− | | 0xFFFFFFF7FFC00000..0xFFFFFFF7FFC62000 (inclusive) | + | | 0xFFFFFFF800000000-... || 0x80000000 || ... || ? || ? || Raw DRAM access |
− | | 0x800A0000 | |
− | | 0x63000 | |
− | | 0x78B | |
− | | | |
− | | Kernel .text | |
| |- | | |- |
− | | 0xFFFFFFF7FFC63000..0xFFFFFFF7FFC65000 (inclusive) | + | | 0xFFFFFFF7FFC00000-0xFFFFFFF7FFC62FFF || 0x800A0000 || 0x63000 || 0x78B || R-X || Kernel .text |
− | | 0x80103000 | |
− | | 0x3000 | |
− | | 0x6000000000078B | |
− | | | |
− | | Kernel .rodata | |
| |- | | |- |
− | | 0xFFFFFFF7FFC66000..0xFFFFFFF7FFC6E000 (inclusive) | + | | 0xFFFFFFF7FFC63000-0xFFFFFFF7FFC65FFF || 0x80103000 || 0x3000 || 0x6000000000078B || R-- || Kernel .rodata |
− | | 0x80106000 | |
− | | 0x9000 | |
− | | 0x6000000000070B | |
− | | | |
− | | Kernel .data/... | |
− | |} | |
− | | |
− | The following uses descriptor ORR-value 0x6000000000070B, the size of each one is 0x1000-bytes.
| |
− | {| class="wikitable" border="1"
| |
| |- | | |- |
− | ! Vmem
| + | | 0xFFFFFFF7FFC66000-0xFFFFFFF7FFC6EFFF || 0x80106000 || 0x9000 || 0x6000000000070B || RW- || Kernel .data+.bss |
− | ! Physmem
| |
| |- | | |- |
− | | 0xFFFFFFF7FFDCA000 || 0x80060000 | + | | 0xFFFFFFF7FFDCA000-0xFFFFFFF7FFDCAFFF || 0x80060000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDCB000 || 0x80061000 | + | | 0xFFFFFFF7FFDCB000-0xFFFFFFF7FFDCBFFF || 0x80061000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDCE000 || 0x80068000 | + | | 0xFFFFFFF7FFDCE000-0xFFFFFFF7FFDCEFFF || 0x80068000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDD4000 || 0x80062000 | + | | 0xFFFFFFF7FFDD4000-0xFFFFFFF7FFDD4FFF || 0x80062000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDD5000 || 0x80063000 | + | | 0xFFFFFFF7FFDD5000-0xFFFFFFF7FFDD5FFF || 0x80063000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDD8000 || 0x8006A000 | + | | 0xFFFFFFF7FFDD8000-0xFFFFFFF7FFDD8FFF || 0x8006A000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDD9000 || 0x8006B000 | + | | 0xFFFFFFF7FFDD9000-0xFFFFFFF7FFDD9FFF || 0x8006B000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDDE000 || 0x80064000 | + | | 0xFFFFFFF7FFDDE000-0xFFFFFFF7FFDDEFFF || 0x80064000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDDF000 || 0x80065000 | + | | 0xFFFFFFF7FFDDF000-0xFFFFFFF7FFDDFFFF || 0x80065000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDE2000 || 0x8006C000 | + | | 0xFFFFFFF7FFDE2000-0xFFFFFFF7FFDE2FFF || 0x8006C000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDE3000 || 0x8006D000 | + | | 0xFFFFFFF7FFDE3000-0xFFFFFFF7FFDE3FFF || 0x8006D000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDE8000 || 0x80066000 | + | | 0xFFFFFFF7FFDE8000-0xFFFFFFF7FFDE8FFF || 0x80066000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDE9000 || 0x80067000 | + | | 0xFFFFFFF7FFDE9000-0xFFFFFFF7FFDE9FFF || 0x80067000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDCF000 || 0x80069000 | + | | 0xFFFFFFF7FFDCF000-0xFFFFFFF7FFDCFFFF || 0x80069000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDEC000 || 0x8006E000 | + | | 0xFFFFFFF7FFDEC000-0xFFFFFFF7FFDECFFF || 0x8006E000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDED000 || 0x8006F000 | + | | 0xFFFFFFF7FFDED000-0xFFFFFFF7FFDEDFFF || 0x8006F000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDD2000 || 0x80070000 | + | | 0xFFFFFFF7FFDD2000-0xFFFFFFF7FFDD2FFF || 0x80070000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDDC000 || 0x80071000 | + | | 0xFFFFFFF7FFDDC000-0xFFFFFFF7FFDDCFFF || 0x80071000 || 0x1000 || 0x6000000000070B || RW- || |
| |- | | |- |
− | | 0xFFFFFFF7FFDE6000 || 0x80072000 | + | | 0xFFFFFFF7FFDE6000-0xFFFFFFF7FFDE6FFF || 0x80072000 || 0x1000 || 0x6000000000070B || RW- || |
− | |- | |
− | | 0xFFFFFFF7FFDF0000 || 0x80073000 | |
− | |} | |
− | | |
− | The following uses descriptor ORR-value 0x60000000000607, the size of each one is 0x1000-bytes.
| |
− | {| class="wikitable" border="1"
| |
| |- | | |- |
− | ! Vmem
| + | | 0xFFFFFFF7FFDF0000-0xFFFFFFF7FFDF0FFF || 0x80073000 || 0x1000 || 0x6000000000070B || RW- || |
− | ! Physmem
| |
| |- | | |- |
− | | 0xFFFFFFF7FFDC6000 | + | | 0xFFFFFFF7FFDC6000-0xFFFFFFF7FFDC6FFF || 0x70019000 || 0x1000 || 0x60000000000607 || RW- || MC IO |
− | | 0x70019000 | |
| |- | | |- |
− | | 0xFFFFFFF7FFDC4000 | + | | 0xFFFFFFF7FFDC4000-0xFFFFFFF7FFDC4FFF || 0x7001C000 || 0x1000 || 0x60000000000607 || RW- || MC0 IO |
− | | 0x7001C000 | |
| |- | | |- |
− | | 0xFFFFFFF7FFDC2000 | + | | 0xFFFFFFF7FFDC2000-0xFFFFFFF7FFDC2FFF || 0x7001D000 || 0x1000 || 0x60000000000607 || RW- || MC1 IO |
− | | 0x7001D000 | |
| |- | | |- |
− | | 0xFFFFFFF7FFDC0000 | + | | 0xFFFFFFF7FFDC0000-0xFFFFFFF7FFDC0FFF || 0x60006000 || 0x1000 || 0x60000000000607 || RW- || CLK IO |
− | | 0x60006000 | |
| |- | | |- |
− | | 0xFFFFFFF7FFDC8000 | + | | 0xFFFFFFF7FFDC8000-0xFFFFFFF7FFDC8FFF || 0x70006000 || 0x1000 || 0x60000000000607 || RW- || UART-A IO |
− | | 0x70006000 | |
| |- | | |- |
− | | 0xFFFFFFF7FFDFB000 | + | | 0xFFFFFFF7FFDFB000-0xFFFFFFF7FFDFBFFF || 0x50041000 || 0x1000 || 0x60000000000607 || RW- || Interrupt Distributor IO |
− | | 0x50041000 | |
| |- | | |- |
− | | 0xFFFFFFF7FFDFD000 | + | | 0xFFFFFFF7FFDFD000-0xFFFFFFF7FFDFDFFF || 0x50042000 || 0x1000 || 0x60000000000607 || RW- || Interrupt Controller IO |
− | | 0x50042000 | |
| |} | | |} |
| | | |