Linux page table is located in (PA) 0x4000 ~ 0x7FFF or (VA) 0xC0004000 ~ 0xC0007FFF.
1st level descriptor used: Coarse (16KB) / Section (1MB)
2nd level descriptor used: Small (4KB)
1. C source code to dump page table in kernel space
{
int i;
void *src1, *src2, *src3;
dma_addr_t pa1, pa2, pa3;
unsigned int first_level_pa;
src1 = dma_alloc_coherent(NULL, 512, &pa1, GFP_KERNEL);
src2 = dma_alloc_coherent(NULL, 512 * 4, &pa2, GFP_KERNEL);
src3 = dma_alloc_coherent(NULL, 512 * 10, &pa3, GFP_KERNEL);
printk("... (dma_alloc_coherent) src1=0x%x, pa1=0x%x, src2=0x%x, pa2=0x%x, src3=0x%x, pa3=0x%x\n", src1, pa1, src2, pa2, src3, pa3);
writel(1, src1);
writel(1, src2);
writel(1, src3);
for (i=0x4000; i<0x8000; i+=0x10)
printk("0x%x: 0x%x 0x%x 0x%x 0x%x\n", phys_to_virt(i), readl(phys_to_virt(i)), readl(phys_to_virt(i + 4)), readl(phys_to_virt(i + 8)), readl(phys_to_virt(i + 0xc)));
printk("\nprint the 2nd level descriptor address's value\n");
for (i=0x6fc0; i<0x6fc8; i+=0x10) {
int j;
first_level_pa = readl(phys_to_virt(i)) & 0xfffffc00;
for (j=0; j<1024; j+=0x10) {
printk("... 0x%x: 0x%x 0x%x 0x%x 0x%x\n", phys_to_virt(first_level_pa + j), readl(phys_to_virt(first_level_pa + j)), readl(phys_to_virt(first_level_pa + j + 0x4)), readl(phys_to_virt(first_level_pa + j + 0x8)), readl(phys_to_virt(first_level_pa + j + 0xc)));
}
}
for (i=0x7120; i<0x7128; i+=0x10) {
int j;
first_level_pa = readl(phys_to_virt(i)) & 0xfffffc00;
for (j=0; j<1024; j+=0x10) {
printk("... 0x%x: 0x%x 0x%x 0x%x 0x%x\n", phys_to_virt(first_level_pa + j), readl(phys_to_virt(first_level_pa + j)), readl(phys_to_virt(first_level_pa + j + 0x4)), readl(phys_to_virt(first_level_pa + j + 0x8)), readl(phys_to_virt(first_level_pa + j + 0xc)));
}
}
for (i=0x7e00; i<0x7e40; i+=0x10) {
first_level_pa = readl(phys_to_virt(i)) & 0xfffffc00;
printk("0x%x: 0x%x 0x%x 0x%x 0x%x\n", phys_to_virt(i), readl(phys_to_virt(first_level_pa)), readl(phys_to_virt(first_level_pa + 4)), readl(phys_to_virt(first_level_pa + 8)), readl(phys_to_virt(first_level_pa + 0xc)));
}
for (i=0x7c00; i<0x7c50; i+=0x10) {
first_level_pa = readl(phys_to_virt(i)) & 0xfffffc00;
printk("0x%x: 0x%x 0x%x 0x%x 0x%x\n", phys_to_virt(i), readl(phys_to_virt(first_level_pa)), readl(phys_to_virt(first_level_pa + 4)), readl(phys_to_virt(first_level_pa + 8)), readl(phys_to_virt(first_level_pa + 0xc)));
}
for (i=0x7fc0; i<0x8000; i+=0x10) {
int j;
first_level_pa = readl(phys_to_virt(i)) & 0xfffffc00;
for (j=0; j<1024; j+=0x10) {
printk("... 0x%x: 0x%x 0x%x 0x%x 0x%x\n", phys_to_virt(first_level_pa + j), readl(phys_to_virt(first_level_pa + j)), readl(phys_to_virt(first_level_pa + j + 0x4)), readl(phys_to_virt(first_level_pa + j + 0x8)), readl(phys_to_virt(first_level_pa + j + 0xc)));
}
}
dma_free_coherent(NULL, 512, src1, pa1);
dma_free_coherent(NULL, 512 * 4, src2, pa2);
dma_free_coherent(NULL, 512 * 10, src3, pa3);
}
2. Output:
memcpy: DMA dst 0xc25a0000 src 0xc25b0000 val A len 0x00010000
async_memcpy ... 928 usec
... (dma_alloc_coherent) src1=0xff008000, pa1=0x24fe000, src2=0xff009000, pa2=0x2519000, src3=0xff00a000, pa3=0x2afc000
0xc0004000: 0x0 0x0 0x0 0x0
0xc0004010: 0x0 0x0 0x0 0x0
0xc0004020: 0x0 0x0 0x0 0x0
0xc0004030: 0x0 0x0 0x0 0x0
0xc0004040: 0x0 0x0 0x0 0x0
0xc0004050: 0x0 0x0 0x0 0x0
0xc0004060: 0x0 0x0 0x0 0x0
0xc0004070: 0x0 0x0 0x0 0x0
0xc0004080: 0x0 0x0 0x0 0x0
0xc0004090: 0x0 0x0 0x0 0x0
0xc00040a0: 0x0 0x0 0x0 0x0
0xc00040b0: 0x0 0x0 0x0 0x0
0xc00040c0: 0x0 0x0 0x0 0x0
0xc00040d0: 0x0 0x0 0x0 0x0
0xc00040e0: 0x0 0x0 0x0 0x0
0xc00040f0: 0x0 0x0 0x0 0x0
0xc0004100: 0x0 0x0 0x0 0x0
0xc0004110: 0x0 0x0 0x0 0x0
0xc0004120: 0x0 0x0 0x0 0x0
0xc0004130: 0x0 0x0 0x0 0x0
0xc0004140: 0x0 0x0 0x0 0x0
0xc0004150: 0x0 0x0 0x0 0x0
0xc0004160: 0x0 0x0 0x0 0x0
0xc0004170: 0x0 0x0 0x0 0x0
0xc0004180: 0x0 0x0 0x0 0x0
0xc0004190: 0x0 0x0 0x0 0x0
0xc00041a0: 0x0 0x0 0x0 0x0
0xc00041b0: 0x0 0x0 0x0 0x0
0xc00041c0: 0x0 0x0 0x0 0x0
0xc00041d0: 0x0 0x0 0x0 0x0
0xc00041e0: 0x0 0x0 0x0 0x0
0xc00041f0: 0x0 0x0 0x0 0x0
0xc0004200: 0x0 0x0 0x0 0x0
0xc0004210: 0x0 0x0 0x0 0x0
0xc0004220: 0x0 0x0 0x0 0x0
0xc0004230: 0x0 0x0 0x0 0x0
0xc0004240: 0x0 0x0 0x0 0x0
0xc0004250: 0x0 0x0 0x0 0x0
0xc0004260: 0x0 0x0 0x0 0x0
0xc0004270: 0x0 0x0 0x0 0x0
0xc0004280: 0x0 0x0 0x0 0x0
0xc0004290: 0x0 0x0 0x0 0x0
0xc00042a0: 0x0 0x0 0x0 0x0
0xc00042b0: 0x0 0x0 0x0 0x0
0xc00042c0: 0x0 0x0 0x0 0x0
0xc00042d0: 0x0 0x0 0x0 0x0
0xc00042e0: 0x0 0x0 0x0 0x0
0xc00042f0: 0x0 0x0 0x0 0x0
0xc0004300: 0x0 0x0 0x0 0x0
0xc0004310: 0x0 0x0 0x0 0x0
0xc0004320: 0x0 0x0 0x0 0x0
0xc0004330: 0x0 0x0 0x0 0x0
0xc0004340: 0x0 0x0 0x0 0x0
0xc0004350: 0x0 0x0 0x0 0x0
0xc0004360: 0x0 0x0 0x0 0x0
0xc0004370: 0x0 0x0 0x0 0x0
0xc0004380: 0x0 0x0 0x0 0x0
0xc0004390: 0x0 0x0 0x0 0x0
0xc00043a0: 0x0 0x0 0x0 0x0
0xc00043b0: 0x0 0x0 0x0 0x0
0xc00043c0: 0x0 0x0 0x0 0x0
0xc00043d0: 0x0 0x0 0x0 0x0
0xc00043e0: 0x0 0x0 0x0 0x0
0xc00043f0: 0x0 0x0 0x0 0x0
0xc0004400: 0x0 0x0 0x0 0x0
0xc0004410: 0x0 0x0 0x0 0x0
0xc0004420: 0x0 0x0 0x0 0x0
0xc0004430: 0x0 0x0 0x0 0x0
0xc0004440: 0x0 0x0 0x0 0x0
0xc0004450: 0x0 0x0 0x0 0x0
0xc0004460: 0x0 0x0 0x0 0x0
0xc0004470: 0x0 0x0 0x0 0x0
0xc0004480: 0x0 0x0 0x0 0x0
0xc0004490: 0x0 0x0 0x0 0x0
0xc00044a0: 0x0 0x0 0x0 0x0
0xc00044b0: 0x0 0x0 0x0 0x0
0xc00044c0: 0x0 0x0 0x0 0x0
0xc00044d0: 0x0 0x0 0x0 0x0
0xc00044e0: 0x0 0x0 0x0 0x0
0xc00044f0: 0x0 0x0 0x0 0x0
0xc0004500: 0x0 0x0 0x0 0x0
0xc0004510: 0x0 0x0 0x0 0x0
0xc0004520: 0x0 0x0 0x0 0x0
0xc0004530: 0x0 0x0 0x0 0x0
0xc0004540: 0x0 0x0 0x0 0x0
0xc0004550: 0x0 0x0 0x0 0x0
0xc0004560: 0x0 0x0 0x0 0x0
0xc0004570: 0x0 0x0 0x0 0x0
0xc0004580: 0x0 0x0 0x0 0x0
0xc0004590: 0x0 0x0 0x0 0x0
0xc00045a0: 0x0 0x0 0x0 0x0
0xc00045b0: 0x0 0x0 0x0 0x0
0xc00045c0: 0x0 0x0 0x0 0x0
0xc00045d0: 0x0 0x0 0x0 0x0
0xc00045e0: 0x0 0x0 0x0 0x0
0xc00045f0: 0x0 0x0 0x0 0x0
0xc0004600: 0x0 0x0 0x0 0x0
0xc0004610: 0x0 0x0 0x0 0x0
0xc0004620: 0x0 0x0 0x0 0x0
0xc0004630: 0x0 0x0 0x0 0x0
0xc0004640: 0x0 0x0 0x0 0x0
0xc0004650: 0x0 0x0 0x0 0x0
0xc0004660: 0x0 0x0 0x0 0x0
0xc0004670: 0x0 0x0 0x0 0x0
0xc0004680: 0x0 0x0 0x0 0x0
0xc0004690: 0x0 0x0 0x0 0x0
0xc00046a0: 0x0 0x0 0x0 0x0
0xc00046b0: 0x0 0x0 0x0 0x0
0xc00046c0: 0x0 0x0 0x0 0x0
0xc00046d0: 0x0 0x0 0x0 0x0
0xc00046e0: 0x0 0x0 0x0 0x0
0xc00046f0: 0x0 0x0 0x0 0x0
0xc0004700: 0x0 0x0 0x0 0x0
0xc0004710: 0x0 0x0 0x0 0x0
0xc0004720: 0x0 0x0 0x0 0x0
0xc0004730: 0x0 0x0 0x0 0x0
0xc0004740: 0x0 0x0 0x0 0x0
0xc0004750: 0x0 0x0 0x0 0x0
0xc0004760: 0x0 0x0 0x0 0x0
0xc0004770: 0x0 0x0 0x0 0x0
0xc0004780: 0x0 0x0 0x0 0x0
0xc0004790: 0x0 0x0 0x0 0x0
0xc00047a0: 0x0 0x0 0x0 0x0
0xc00047b0: 0x0 0x0 0x0 0x0
0xc00047c0: 0x0 0x0 0x0 0x0
0xc00047d0: 0x0 0x0 0x0 0x0
0xc00047e0: 0x0 0x0 0x0 0x0
0xc00047f0: 0x0 0x0 0x0 0x0
0xc0004800: 0x0 0x0 0x0 0x0
0xc0004810: 0x0 0x0 0x0 0x0
0xc0004820: 0x0 0x0 0x0 0x0
0xc0004830: 0x0 0x0 0x0 0x0
0xc0004840: 0x0 0x0 0x0 0x0
0xc0004850: 0x0 0x0 0x0 0x0
0xc0004860: 0x0 0x0 0x0 0x0
0xc0004870: 0x0 0x0 0x0 0x0
0xc0004880: 0x0 0x0 0x0 0x0
0xc0004890: 0x0 0x0 0x0 0x0
0xc00048a0: 0x0 0x0 0x0 0x0
0xc00048b0: 0x0 0x0 0x0 0x0
0xc00048c0: 0x0 0x0 0x0 0x0
0xc00048d0: 0x0 0x0 0x0 0x0
0xc00048e0: 0x0 0x0 0x0 0x0
0xc00048f0: 0x0 0x0 0x0 0x0
0xc0004900: 0x0 0x0 0x0 0x0
0xc0004910: 0x0 0x0 0x0 0x0
0xc0004920: 0x0 0x0 0x0 0x0
0xc0004930: 0x0 0x0 0x0 0x0
0xc0004940: 0x0 0x0 0x0 0x0
0xc0004950: 0x0 0x0 0x0 0x0
0xc0004960: 0x0 0x0 0x0 0x0
0xc0004970: 0x0 0x0 0x0 0x0
0xc0004980: 0x0 0x0 0x0 0x0
0xc0004990: 0x0 0x0 0x0 0x0
0xc00049a0: 0x0 0x0 0x0 0x0
0xc00049b0: 0x0 0x0 0x0 0x0
0xc00049c0: 0x0 0x0 0x0 0x0
0xc00049d0: 0x0 0x0 0x0 0x0
0xc00049e0: 0x0 0x0 0x0 0x0
0xc00049f0: 0x0 0x0 0x0 0x0
0xc0004a00: 0x0 0x0 0x0 0x0
0xc0004a10: 0x0 0x0 0x0 0x0
0xc0004a20: 0x0 0x0 0x0 0x0
0xc0004a30: 0x0 0x0 0x0 0x0
0xc0004a40: 0x0 0x0 0x0 0x0
0xc0004a50: 0x0 0x0 0x0 0x0
0xc0004a60: 0x0 0x0 0x0 0x0
0xc0004a70: 0x0 0x0 0x0 0x0
0xc0004a80: 0x0 0x0 0x0 0x0
0xc0004a90: 0x0 0x0 0x0 0x0
0xc0004aa0: 0x0 0x0 0x0 0x0
0xc0004ab0: 0x0 0x0 0x0 0x0
0xc0004ac0: 0x0 0x0 0x0 0x0
0xc0004ad0: 0x0 0x0 0x0 0x0
0xc0004ae0: 0x0 0x0 0x0 0x0
0xc0004af0: 0x0 0x0 0x0 0x0
0xc0004b00: 0x0 0x0 0x0 0x0
0xc0004b10: 0x0 0x0 0x0 0x0
0xc0004b20: 0x0 0x0 0x0 0x0
0xc0004b30: 0x0 0x0 0x0 0x0
0xc0004b40: 0x0 0x0 0x0 0x0
0xc0004b50: 0x0 0x0 0x0 0x0
0xc0004b60: 0x0 0x0 0x0 0x0
0xc0004b70: 0x0 0x0 0x0 0x0
0xc0004b80: 0x0 0x0 0x0 0x0
0xc0004b90: 0x0 0x0 0x0 0x0
0xc0004ba0: 0x0 0x0 0x0 0x0
0xc0004bb0: 0x0 0x0 0x0 0x0
0xc0004bc0: 0x0 0x0 0x0 0x0
0xc0004bd0: 0x0 0x0 0x0 0x0
0xc0004be0: 0x0 0x0 0x0 0x0
0xc0004bf0: 0x0 0x0 0x0 0x0
0xc0004c00: 0x0 0x0 0x0 0x0
0xc0004c10: 0x0 0x0 0x0 0x0
0xc0004c20: 0x0 0x0 0x0 0x0
0xc0004c30: 0x0 0x0 0x0 0x0
0xc0004c40: 0x0 0x0 0x0 0x0
0xc0004c50: 0x0 0x0 0x0 0x0
0xc0004c60: 0x0 0x0 0x0 0x0
0xc0004c70: 0x0 0x0 0x0 0x0
0xc0004c80: 0x0 0x0 0x0 0x0
0xc0004c90: 0x0 0x0 0x0 0x0
0xc0004ca0: 0x0 0x0 0x0 0x0
0xc0004cb0: 0x0 0x0 0x0 0x0
0xc0004cc0: 0x0 0x0 0x0 0x0
0xc0004cd0: 0x0 0x0 0x0 0x0
0xc0004ce0: 0x0 0x0 0x0 0x0
0xc0004cf0: 0x0 0x0 0x0 0x0
0xc0004d00: 0x0 0x0 0x0 0x0
0xc0004d10: 0x0 0x0 0x0 0x0
0xc0004d20: 0x0 0x0 0x0 0x0
0xc0004d30: 0x0 0x0 0x0 0x0
0xc0004d40: 0x0 0x0 0x0 0x0
0xc0004d50: 0x0 0x0 0x0 0x0
0xc0004d60: 0x0 0x0 0x0 0x0
0xc0004d70: 0x0 0x0 0x0 0x0
0xc0004d80: 0x0 0x0 0x0 0x0
0xc0004d90: 0x0 0x0 0x0 0x0
0xc0004da0: 0x0 0x0 0x0 0x0
0xc0004db0: 0x0 0x0 0x0 0x0
0xc0004dc0: 0x0 0x0 0x0 0x0
0xc0004dd0: 0x0 0x0 0x0 0x0
0xc0004de0: 0x0 0x0 0x0 0x0
0xc0004df0: 0x0 0x0 0x0 0x0
0xc0004e00: 0x0 0x0 0x0 0x0
0xc0004e10: 0x0 0x0 0x0 0x0
0xc0004e20: 0x0 0x0 0x0 0x0
0xc0004e30: 0x0 0x0 0x0 0x0
0xc0004e40: 0x0 0x0 0x0 0x0
0xc0004e50: 0x0 0x0 0x0 0x0
0xc0004e60: 0x0 0x0 0x0 0x0
0xc0004e70: 0x0 0x0 0x0 0x0
0xc0004e80: 0x0 0x0 0x0 0x0
0xc0004e90: 0x0 0x0 0x0 0x0
0xc0004ea0: 0x0 0x0 0x0 0x0
0xc0004eb0: 0x0 0x0 0x0 0x0
0xc0004ec0: 0x0 0x0 0x0 0x0
0xc0004ed0: 0x0 0x0 0x0 0x0
0xc0004ee0: 0x0 0x0 0x0 0x0
0xc0004ef0: 0x0 0x0 0x0 0x0
0xc0004f00: 0x0 0x0 0x0 0x0
0xc0004f10: 0x0 0x0 0x0 0x0
0xc0004f20: 0x0 0x0 0x0 0x0
0xc0004f30: 0x0 0x0 0x0 0x0
0xc0004f40: 0x0 0x0 0x0 0x0
0xc0004f50: 0x0 0x0 0x0 0x0
0xc0004f60: 0x0 0x0 0x0 0x0
0xc0004f70: 0x0 0x0 0x0 0x0
0xc0004f80: 0x0 0x0 0x0 0x0
0xc0004f90: 0x0 0x0 0x0 0x0
0xc0004fa0: 0x0 0x0 0x0 0x0
0xc0004fb0: 0x0 0x0 0x0 0x0
0xc0004fc0: 0x0 0x0 0x0 0x0
0xc0004fd0: 0x0 0x0 0x0 0x0
0xc0004fe0: 0x0 0x0 0x0 0x0
0xc0004ff0: 0x0 0x0 0x0 0x0
0xc0005000: 0x0 0x0 0x0 0x0
0xc0005010: 0x0 0x0 0x0 0x0
0xc0005020: 0x0 0x0 0x0 0x0
0xc0005030: 0x0 0x0 0x0 0x0
0xc0005040: 0x0 0x0 0x0 0x0
0xc0005050: 0x0 0x0 0x0 0x0
0xc0005060: 0x0 0x0 0x0 0x0
0xc0005070: 0x0 0x0 0x0 0x0
0xc0005080: 0x0 0x0 0x0 0x0
0xc0005090: 0x0 0x0 0x0 0x0
0xc00050a0: 0x0 0x0 0x0 0x0
0xc00050b0: 0x0 0x0 0x0 0x0
0xc00050c0: 0x0 0x0 0x0 0x0
0xc00050d0: 0x0 0x0 0x0 0x0
0xc00050e0: 0x0 0x0 0x0 0x0
0xc00050f0: 0x0 0x0 0x0 0x0
0xc0005100: 0x0 0x0 0x0 0x0
0xc0005110: 0x0 0x0 0x0 0x0
0xc0005120: 0x0 0x0 0x0 0x0
0xc0005130: 0x0 0x0 0x0 0x0
0xc0005140: 0x0 0x0 0x0 0x0
0xc0005150: 0x0 0x0 0x0 0x0
0xc0005160: 0x0 0x0 0x0 0x0
0xc0005170: 0x0 0x0 0x0 0x0
0xc0005180: 0x0 0x0 0x0 0x0
0xc0005190: 0x0 0x0 0x0 0x0
0xc00051a0: 0x0 0x0 0x0 0x0
0xc00051b0: 0x0 0x0 0x0 0x0
0xc00051c0: 0x0 0x0 0x0 0x0
0xc00051d0: 0x0 0x0 0x0 0x0
0xc00051e0: 0x0 0x0 0x0 0x0
0xc00051f0: 0x0 0x0 0x0 0x0
0xc0005200: 0x0 0x0 0x0 0x0
0xc0005210: 0x0 0x0 0x0 0x0
0xc0005220: 0x0 0x0 0x0 0x0
0xc0005230: 0x0 0x0 0x0 0x0
0xc0005240: 0x0 0x0 0x0 0x0
0xc0005250: 0x0 0x0 0x0 0x0
0xc0005260: 0x0 0x0 0x0 0x0
0xc0005270: 0x0 0x0 0x0 0x0
0xc0005280: 0x0 0x0 0x0 0x0
0xc0005290: 0x0 0x0 0x0 0x0
0xc00052a0: 0x0 0x0 0x0 0x0
0xc00052b0: 0x0 0x0 0x0 0x0
0xc00052c0: 0x0 0x0 0x0 0x0
0xc00052d0: 0x0 0x0 0x0 0x0
0xc00052e0: 0x0 0x0 0x0 0x0
0xc00052f0: 0x0 0x0 0x0 0x0
0xc0005300: 0x0 0x0 0x0 0x0
0xc0005310: 0x0 0x0 0x0 0x0
0xc0005320: 0x0 0x0 0x0 0x0
0xc0005330: 0x0 0x0 0x0 0x0
0xc0005340: 0x0 0x0 0x0 0x0
0xc0005350: 0x0 0x0 0x0 0x0
0xc0005360: 0x0 0x0 0x0 0x0
0xc0005370: 0x0 0x0 0x0 0x0
0xc0005380: 0x0 0x0 0x0 0x0
0xc0005390: 0x0 0x0 0x0 0x0
0xc00053a0: 0x0 0x0 0x0 0x0
0xc00053b0: 0x0 0x0 0x0 0x0
0xc00053c0: 0x0 0x0 0x0 0x0
0xc00053d0: 0x0 0x0 0x0 0x0
0xc00053e0: 0x0 0x0 0x0 0x0
0xc00053f0: 0x0 0x0 0x0 0x0
0xc0005400: 0x0 0x0 0x0 0x0
0xc0005410: 0x0 0x0 0x0 0x0
0xc0005420: 0x0 0x0 0x0 0x0
0xc0005430: 0x0 0x0 0x0 0x0
0xc0005440: 0x0 0x0 0x0 0x0
0xc0005450: 0x0 0x0 0x0 0x0
0xc0005460: 0x0 0x0 0x0 0x0
0xc0005470: 0x0 0x0 0x0 0x0
0xc0005480: 0x0 0x0 0x0 0x0
0xc0005490: 0x0 0x0 0x0 0x0
0xc00054a0: 0x0 0x0 0x0 0x0
0xc00054b0: 0x0 0x0 0x0 0x0
0xc00054c0: 0x0 0x0 0x0 0x0
0xc00054d0: 0x0 0x0 0x0 0x0
0xc00054e0: 0x0 0x0 0x0 0x0
0xc00054f0: 0x0 0x0 0x0 0x0
0xc0005500: 0x0 0x0 0x0 0x0
0xc0005510: 0x0 0x0 0x0 0x0
0xc0005520: 0x0 0x0 0x0 0x0
0xc0005530: 0x0 0x0 0x0 0x0
0xc0005540: 0x0 0x0 0x0 0x0
0xc0005550: 0x0 0x0 0x0 0x0
0xc0005560: 0x0 0x0 0x0 0x0
0xc0005570: 0x0 0x0 0x0 0x0
0xc0005580: 0x0 0x0 0x0 0x0
0xc0005590: 0x0 0x0 0x0 0x0
0xc00055a0: 0x0 0x0 0x0 0x0
0xc00055b0: 0x0 0x0 0x0 0x0
0xc00055c0: 0x0 0x0 0x0 0x0
0xc00055d0: 0x0 0x0 0x0 0x0
0xc00055e0: 0x0 0x0 0x0 0x0
0xc00055f0: 0x0 0x0 0x0 0x0
0xc0005600: 0x0 0x0 0x0 0x0
0xc0005610: 0x0 0x0 0x0 0x0
0xc0005620: 0x0 0x0 0x0 0x0
0xc0005630: 0x0 0x0 0x0 0x0
0xc0005640: 0x0 0x0 0x0 0x0
0xc0005650: 0x0 0x0 0x0 0x0
0xc0005660: 0x0 0x0 0x0 0x0
0xc0005670: 0x0 0x0 0x0 0x0
0xc0005680: 0x0 0x0 0x0 0x0
0xc0005690: 0x0 0x0 0x0 0x0
0xc00056a0: 0x0 0x0 0x0 0x0
0xc00056b0: 0x0 0x0 0x0 0x0
0xc00056c0: 0x0 0x0 0x0 0x0
0xc00056d0: 0x0 0x0 0x0 0x0
0xc00056e0: 0x0 0x0 0x0 0x0
0xc00056f0: 0x0 0x0 0x0 0x0
0xc0005700: 0x0 0x0 0x0 0x0
0xc0005710: 0x0 0x0 0x0 0x0
0xc0005720: 0x0 0x0 0x0 0x0
0xc0005730: 0x0 0x0 0x0 0x0
0xc0005740: 0x0 0x0 0x0 0x0
0xc0005750: 0x0 0x0 0x0 0x0
0xc0005760: 0x0 0x0 0x0 0x0
0xc0005770: 0x0 0x0 0x0 0x0
0xc0005780: 0x0 0x0 0x0 0x0
0xc0005790: 0x0 0x0 0x0 0x0
0xc00057a0: 0x0 0x0 0x0 0x0
0xc00057b0: 0x0 0x0 0x0 0x0
0xc00057c0: 0x0 0x0 0x0 0x0
0xc00057d0: 0x0 0x0 0x0 0x0
0xc00057e0: 0x0 0x0 0x0 0x0
0xc00057f0: 0x0 0x0 0x0 0x0
0xc0005800: 0x0 0x0 0x0 0x0
0xc0005810: 0x0 0x0 0x0 0x0
0xc0005820: 0x0 0x0 0x0 0x0
0xc0005830: 0x0 0x0 0x0 0x0
0xc0005840: 0x0 0x0 0x0 0x0
0xc0005850: 0x0 0x0 0x0 0x0
0xc0005860: 0x0 0x0 0x0 0x0
0xc0005870: 0x0 0x0 0x0 0x0
0xc0005880: 0x0 0x0 0x0 0x0
0xc0005890: 0x0 0x0 0x0 0x0
0xc00058a0: 0x0 0x0 0x0 0x0
0xc00058b0: 0x0 0x0 0x0 0x0
0xc00058c0: 0x0 0x0 0x0 0x0
0xc00058d0: 0x0 0x0 0x0 0x0
0xc00058e0: 0x0 0x0 0x0 0x0
0xc00058f0: 0x0 0x0 0x0 0x0
0xc0005900: 0x0 0x0 0x0 0x0
0xc0005910: 0x0 0x0 0x0 0x0
0xc0005920: 0x0 0x0 0x0 0x0
0xc0005930: 0x0 0x0 0x0 0x0
0xc0005940: 0x0 0x0 0x0 0x0
0xc0005950: 0x0 0x0 0x0 0x0
0xc0005960: 0x0 0x0 0x0 0x0
0xc0005970: 0x0 0x0 0x0 0x0
0xc0005980: 0x0 0x0 0x0 0x0
0xc0005990: 0x0 0x0 0x0 0x0
0xc00059a0: 0x0 0x0 0x0 0x0
0xc00059b0: 0x0 0x0 0x0 0x0
0xc00059c0: 0x0 0x0 0x0 0x0
0xc00059d0: 0x0 0x0 0x0 0x0
0xc00059e0: 0x0 0x0 0x0 0x0
0xc00059f0: 0x0 0x0 0x0 0x0
0xc0005a00: 0x0 0x0 0x0 0x0
0xc0005a10: 0x0 0x0 0x0 0x0
0xc0005a20: 0x0 0x0 0x0 0x0
0xc0005a30: 0x0 0x0 0x0 0x0
0xc0005a40: 0x0 0x0 0x0 0x0
0xc0005a50: 0x0 0x0 0x0 0x0
0xc0005a60: 0x0 0x0 0x0 0x0
0xc0005a70: 0x0 0x0 0x0 0x0
0xc0005a80: 0x0 0x0 0x0 0x0
0xc0005a90: 0x0 0x0 0x0 0x0
0xc0005aa0: 0x0 0x0 0x0 0x0
0xc0005ab0: 0x0 0x0 0x0 0x0
0xc0005ac0: 0x0 0x0 0x0 0x0
0xc0005ad0: 0x0 0x0 0x0 0x0
0xc0005ae0: 0x0 0x0 0x0 0x0
0xc0005af0: 0x0 0x0 0x0 0x0
0xc0005b00: 0x0 0x0 0x0 0x0
0xc0005b10: 0x0 0x0 0x0 0x0
0xc0005b20: 0x0 0x0 0x0 0x0
0xc0005b30: 0x0 0x0 0x0 0x0
0xc0005b40: 0x0 0x0 0x0 0x0
0xc0005b50: 0x0 0x0 0x0 0x0
0xc0005b60: 0x0 0x0 0x0 0x0
0xc0005b70: 0x0 0x0 0x0 0x0
0xc0005b80: 0x0 0x0 0x0 0x0
0xc0005b90: 0x0 0x0 0x0 0x0
0xc0005ba0: 0x0 0x0 0x0 0x0
0xc0005bb0: 0x0 0x0 0x0 0x0
0xc0005bc0: 0x0 0x0 0x0 0x0
0xc0005bd0: 0x0 0x0 0x0 0x0
0xc0005be0: 0x0 0x0 0x0 0x0
0xc0005bf0: 0x0 0x0 0x0 0x0
0xc0005c00: 0x0 0x0 0x0 0x0
0xc0005c10: 0x0 0x0 0x0 0x0
0xc0005c20: 0x0 0x0 0x0 0x0
0xc0005c30: 0x0 0x0 0x0 0x0
0xc0005c40: 0x0 0x0 0x0 0x0
0xc0005c50: 0x0 0x0 0x0 0x0
0xc0005c60: 0x0 0x0 0x0 0x0
0xc0005c70: 0x0 0x0 0x0 0x0
0xc0005c80: 0x0 0x0 0x0 0x0
0xc0005c90: 0x0 0x0 0x0 0x0
0xc0005ca0: 0x0 0x0 0x0 0x0
0xc0005cb0: 0x0 0x0 0x0 0x0
0xc0005cc0: 0x0 0x0 0x0 0x0
0xc0005cd0: 0x0 0x0 0x0 0x0
0xc0005ce0: 0x0 0x0 0x0 0x0
0xc0005cf0: 0x0 0x0 0x0 0x0
0xc0005d00: 0x0 0x0 0x0 0x0
0xc0005d10: 0x0 0x0 0x0 0x0
0xc0005d20: 0x0 0x0 0x0 0x0
0xc0005d30: 0x0 0x0 0x0 0x0
0xc0005d40: 0x0 0x0 0x0 0x0
0xc0005d50: 0x0 0x0 0x0 0x0
0xc0005d60: 0x0 0x0 0x0 0x0
0xc0005d70: 0x0 0x0 0x0 0x0
0xc0005d80: 0x0 0x0 0x0 0x0
0xc0005d90: 0x0 0x0 0x0 0x0
0xc0005da0: 0x0 0x0 0x0 0x0
0xc0005db0: 0x0 0x0 0x0 0x0
0xc0005dc0: 0x0 0x0 0x0 0x0
0xc0005dd0: 0x0 0x0 0x0 0x0
0xc0005de0: 0x0 0x0 0x0 0x0
0xc0005df0: 0x0 0x0 0x0 0x0
0xc0005e00: 0x0 0x0 0x0 0x0
0xc0005e10: 0x0 0x0 0x0 0x0
0xc0005e20: 0x0 0x0 0x0 0x0
0xc0005e30: 0x0 0x0 0x0 0x0
0xc0005e40: 0x0 0x0 0x0 0x0
0xc0005e50: 0x0 0x0 0x0 0x0
0xc0005e60: 0x0 0x0 0x0 0x0
0xc0005e70: 0x0 0x0 0x0 0x0
0xc0005e80: 0x0 0x0 0x0 0x0
0xc0005e90: 0x0 0x0 0x0 0x0
0xc0005ea0: 0x0 0x0 0x0 0x0
0xc0005eb0: 0x0 0x0 0x0 0x0
0xc0005ec0: 0x0 0x0 0x0 0x0
0xc0005ed0: 0x0 0x0 0x0 0x0
0xc0005ee0: 0x0 0x0 0x0 0x0
0xc0005ef0: 0x0 0x0 0x0 0x0
0xc0005f00: 0x0 0x0 0x0 0x0
0xc0005f10: 0x0 0x0 0x0 0x0
0xc0005f20: 0x0 0x0 0x0 0x0
0xc0005f30: 0x0 0x0 0x0 0x0
0xc0005f40: 0x0 0x0 0x0 0x0
0xc0005f50: 0x0 0x0 0x0 0x0
0xc0005f60: 0x0 0x0 0x0 0x0
0xc0005f70: 0x0 0x0 0x0 0x0
0xc0005f80: 0x0 0x0 0x0 0x0
0xc0005f90: 0x0 0x0 0x0 0x0
0xc0005fa0: 0x0 0x0 0x0 0x0
0xc0005fb0: 0x0 0x0 0x0 0x0
0xc0005fc0: 0x0 0x0 0x0 0x0
0xc0005fd0: 0x0 0x0 0x0 0x0
0xc0005fe0: 0x0 0x0 0x0 0x0
0xc0005ff0: 0x0 0x0 0x0 0x0
0xc0006000: 0x0 0x0 0x0 0x0
0xc0006010: 0x0 0x0 0x0 0x0
0xc0006020: 0x0 0x0 0x0 0x0
0xc0006030: 0x0 0x0 0x0 0x0
0xc0006040: 0x0 0x0 0x0 0x0
0xc0006050: 0x0 0x0 0x0 0x0
0xc0006060: 0x0 0x0 0x0 0x0
0xc0006070: 0x0 0x0 0x0 0x0
0xc0006080: 0x0 0x0 0x0 0x0
0xc0006090: 0x0 0x0 0x0 0x0
0xc00060a0: 0x0 0x0 0x0 0x0
0xc00060b0: 0x0 0x0 0x0 0x0
0xc00060c0: 0x0 0x0 0x0 0x0
0xc00060d0: 0x0 0x0 0x0 0x0
0xc00060e0: 0x0 0x0 0x0 0x0
0xc00060f0: 0x0 0x0 0x0 0x0
0xc0006100: 0x0 0x0 0x0 0x0
0xc0006110: 0x0 0x0 0x0 0x0
0xc0006120: 0x0 0x0 0x0 0x0
0xc0006130: 0x0 0x0 0x0 0x0
0xc0006140: 0x0 0x0 0x0 0x0
0xc0006150: 0x0 0x0 0x0 0x0
0xc0006160: 0x0 0x0 0x0 0x0
0xc0006170: 0x0 0x0 0x0 0x0
0xc0006180: 0x0 0x0 0x0 0x0
0xc0006190: 0x0 0x0 0x0 0x0
0xc00061a0: 0x0 0x0 0x0 0x0
0xc00061b0: 0x0 0x0 0x0 0x0
0xc00061c0: 0x0 0x0 0x0 0x0
0xc00061d0: 0x0 0x0 0x0 0x0
0xc00061e0: 0x0 0x0 0x0 0x0
0xc00061f0: 0x0 0x0 0x0 0x0
0xc0006200: 0x0 0x0 0x0 0x0
0xc0006210: 0x0 0x0 0x0 0x0
0xc0006220: 0x0 0x0 0x0 0x0
0xc0006230: 0x0 0x0 0x0 0x0
0xc0006240: 0x0 0x0 0x0 0x0
0xc0006250: 0x0 0x0 0x0 0x0
0xc0006260: 0x0 0x0 0x0 0x0
0xc0006270: 0x0 0x0 0x0 0x0
0xc0006280: 0x0 0x0 0x0 0x0
0xc0006290: 0x0 0x0 0x0 0x0
0xc00062a0: 0x0 0x0 0x0 0x0
0xc00062b0: 0x0 0x0 0x0 0x0
0xc00062c0: 0x0 0x0 0x0 0x0
0xc00062d0: 0x0 0x0 0x0 0x0
0xc00062e0: 0x0 0x0 0x0 0x0
0xc00062f0: 0x0 0x0 0x0 0x0
0xc0006300: 0x0 0x0 0x0 0x0
0xc0006310: 0x0 0x0 0x0 0x0
0xc0006320: 0x0 0x0 0x0 0x0
0xc0006330: 0x0 0x0 0x0 0x0
0xc0006340: 0x0 0x0 0x0 0x0
0xc0006350: 0x0 0x0 0x0 0x0
0xc0006360: 0x0 0x0 0x0 0x0
0xc0006370: 0x0 0x0 0x0 0x0
0xc0006380: 0x0 0x0 0x0 0x0
0xc0006390: 0x0 0x0 0x0 0x0
0xc00063a0: 0x0 0x0 0x0 0x0
0xc00063b0: 0x0 0x0 0x0 0x0
0xc00063c0: 0x0 0x0 0x0 0x0
0xc00063d0: 0x0 0x0 0x0 0x0
0xc00063e0: 0x0 0x0 0x0 0x0
0xc00063f0: 0x0 0x0 0x0 0x0
0xc0006400: 0x0 0x0 0x0 0x0
0xc0006410: 0x0 0x0 0x0 0x0
0xc0006420: 0x0 0x0 0x0 0x0
0xc0006430: 0x0 0x0 0x0 0x0
0xc0006440: 0x0 0x0 0x0 0x0
0xc0006450: 0x0 0x0 0x0 0x0
0xc0006460: 0x0 0x0 0x0 0x0
0xc0006470: 0x0 0x0 0x0 0x0
0xc0006480: 0x0 0x0 0x0 0x0
0xc0006490: 0x0 0x0 0x0 0x0
0xc00064a0: 0x0 0x0 0x0 0x0
0xc00064b0: 0x0 0x0 0x0 0x0
0xc00064c0: 0x0 0x0 0x0 0x0
0xc00064d0: 0x0 0x0 0x0 0x0
0xc00064e0: 0x0 0x0 0x0 0x0
0xc00064f0: 0x0 0x0 0x0 0x0
0xc0006500: 0x0 0x0 0x0 0x0
0xc0006510: 0x0 0x0 0x0 0x0
0xc0006520: 0x0 0x0 0x0 0x0
0xc0006530: 0x0 0x0 0x0 0x0
0xc0006540: 0x0 0x0 0x0 0x0
0xc0006550: 0x0 0x0 0x0 0x0
0xc0006560: 0x0 0x0 0x0 0x0
0xc0006570: 0x0 0x0 0x0 0x0
0xc0006580: 0x0 0x0 0x0 0x0
0xc0006590: 0x0 0x0 0x0 0x0
0xc00065a0: 0x0 0x0 0x0 0x0
0xc00065b0: 0x0 0x0 0x0 0x0
0xc00065c0: 0x0 0x0 0x0 0x0
0xc00065d0: 0x0 0x0 0x0 0x0
0xc00065e0: 0x0 0x0 0x0 0x0
0xc00065f0: 0x0 0x0 0x0 0x0
0xc0006600: 0x0 0x0 0x0 0x0
0xc0006610: 0x0 0x0 0x0 0x0
0xc0006620: 0x0 0x0 0x0 0x0
0xc0006630: 0x0 0x0 0x0 0x0
0xc0006640: 0x0 0x0 0x0 0x0
0xc0006650: 0x0 0x0 0x0 0x0
0xc0006660: 0x0 0x0 0x0 0x0
0xc0006670: 0x0 0x0 0x0 0x0
0xc0006680: 0x0 0x0 0x0 0x0
0xc0006690: 0x0 0x0 0x0 0x0
0xc00066a0: 0x0 0x0 0x0 0x0
0xc00066b0: 0x0 0x0 0x0 0x0
0xc00066c0: 0x0 0x0 0x0 0x0
0xc00066d0: 0x0 0x0 0x0 0x0
0xc00066e0: 0x0 0x0 0x0 0x0
0xc00066f0: 0x0 0x0 0x0 0x0
0xc0006700: 0x0 0x0 0x0 0x0
0xc0006710: 0x0 0x0 0x0 0x0
0xc0006720: 0x0 0x0 0x0 0x0
0xc0006730: 0x0 0x0 0x0 0x0
0xc0006740: 0x0 0x0 0x0 0x0
0xc0006750: 0x0 0x0 0x0 0x0
0xc0006760: 0x0 0x0 0x0 0x0
0xc0006770: 0x0 0x0 0x0 0x0
0xc0006780: 0x0 0x0 0x0 0x0
0xc0006790: 0x0 0x0 0x0 0x0
0xc00067a0: 0x0 0x0 0x0 0x0
0xc00067b0: 0x0 0x0 0x0 0x0
0xc00067c0: 0x0 0x0 0x0 0x0
0xc00067d0: 0x0 0x0 0x0 0x0
0xc00067e0: 0x0 0x0 0x0 0x0
0xc00067f0: 0x0 0x0 0x0 0x0
0xc0006800: 0x0 0x0 0x0 0x0
0xc0006810: 0x0 0x0 0x0 0x0
0xc0006820: 0x0 0x0 0x0 0x0
0xc0006830: 0x0 0x0 0x0 0x0
0xc0006840: 0x0 0x0 0x0 0x0
0xc0006850: 0x0 0x0 0x0 0x0
0xc0006860: 0x0 0x0 0x0 0x0
0xc0006870: 0x0 0x0 0x0 0x0
0xc0006880: 0x0 0x0 0x0 0x0
0xc0006890: 0x0 0x0 0x0 0x0
0xc00068a0: 0x0 0x0 0x0 0x0
0xc00068b0: 0x0 0x0 0x0 0x0
0xc00068c0: 0x0 0x0 0x0 0x0
0xc00068d0: 0x0 0x0 0x0 0x0
0xc00068e0: 0x0 0x0 0x0 0x0
0xc00068f0: 0x0 0x0 0x0 0x0
0xc0006900: 0x0 0x0 0x0 0x0
0xc0006910: 0x0 0x0 0x0 0x0
0xc0006920: 0x0 0x0 0x0 0x0
0xc0006930: 0x0 0x0 0x0 0x0
0xc0006940: 0x0 0x0 0x0 0x0
0xc0006950: 0x0 0x0 0x0 0x0
0xc0006960: 0x0 0x0 0x0 0x0
0xc0006970: 0x0 0x0 0x0 0x0
0xc0006980: 0x0 0x0 0x0 0x0
0xc0006990: 0x0 0x0 0x0 0x0
0xc00069a0: 0x0 0x0 0x0 0x0
0xc00069b0: 0x0 0x0 0x0 0x0
0xc00069c0: 0x0 0x0 0x0 0x0
0xc00069d0: 0x0 0x0 0x0 0x0
0xc00069e0: 0x0 0x0 0x0 0x0
0xc00069f0: 0x0 0x0 0x0 0x0
0xc0006a00: 0x0 0x0 0x0 0x0
0xc0006a10: 0x0 0x0 0x0 0x0
0xc0006a20: 0x0 0x0 0x0 0x0
0xc0006a30: 0x0 0x0 0x0 0x0
0xc0006a40: 0x0 0x0 0x0 0x0
0xc0006a50: 0x0 0x0 0x0 0x0
0xc0006a60: 0x0 0x0 0x0 0x0
0xc0006a70: 0x0 0x0 0x0 0x0
0xc0006a80: 0x0 0x0 0x0 0x0
0xc0006a90: 0x0 0x0 0x0 0x0
0xc0006aa0: 0x0 0x0 0x0 0x0
0xc0006ab0: 0x0 0x0 0x0 0x0
0xc0006ac0: 0x0 0x0 0x0 0x0
0xc0006ad0: 0x0 0x0 0x0 0x0
0xc0006ae0: 0x0 0x0 0x0 0x0
0xc0006af0: 0x0 0x0 0x0 0x0
0xc0006b00: 0x0 0x0 0x0 0x0
0xc0006b10: 0x0 0x0 0x0 0x0
0xc0006b20: 0x0 0x0 0x0 0x0
0xc0006b30: 0x0 0x0 0x0 0x0
0xc0006b40: 0x0 0x0 0x0 0x0
0xc0006b50: 0x0 0x0 0x0 0x0
0xc0006b60: 0x0 0x0 0x0 0x0
0xc0006b70: 0x0 0x0 0x0 0x0
0xc0006b80: 0x0 0x0 0x0 0x0
0xc0006b90: 0x0 0x0 0x0 0x0
0xc0006ba0: 0x0 0x0 0x0 0x0
0xc0006bb0: 0x0 0x0 0x0 0x0
0xc0006bc0: 0x0 0x0 0x0 0x0
0xc0006bd0: 0x0 0x0 0x0 0x0
0xc0006be0: 0x0 0x0 0x0 0x0
0xc0006bf0: 0x0 0x0 0x0 0x0
0xc0006c00: 0x0 0x0 0x0 0x0
0xc0006c10: 0x0 0x0 0x0 0x0
0xc0006c20: 0x0 0x0 0x0 0x0
0xc0006c30: 0x0 0x0 0x0 0x0
0xc0006c40: 0x0 0x0 0x0 0x0
0xc0006c50: 0x0 0x0 0x0 0x0
0xc0006c60: 0x0 0x0 0x0 0x0
0xc0006c70: 0x0 0x0 0x0 0x0
0xc0006c80: 0x0 0x0 0x0 0x0
0xc0006c90: 0x0 0x0 0x0 0x0
0xc0006ca0: 0x0 0x0 0x0 0x0
0xc0006cb0: 0x0 0x0 0x0 0x0
0xc0006cc0: 0x0 0x0 0x0 0x0
0xc0006cd0: 0x0 0x0 0x0 0x0
0xc0006ce0: 0x0 0x0 0x0 0x0
0xc0006cf0: 0x0 0x0 0x0 0x0
0xc0006d00: 0x0 0x0 0x0 0x0
0xc0006d10: 0x0 0x0 0x0 0x0
0xc0006d20: 0x0 0x0 0x0 0x0
0xc0006d30: 0x0 0x0 0x0 0x0
0xc0006d40: 0x0 0x0 0x0 0x0
0xc0006d50: 0x0 0x0 0x0 0x0
0xc0006d60: 0x0 0x0 0x0 0x0
0xc0006d70: 0x0 0x0 0x0 0x0
0xc0006d80: 0x0 0x0 0x0 0x0
0xc0006d90: 0x0 0x0 0x0 0x0
0xc0006da0: 0x0 0x0 0x0 0x0
0xc0006db0: 0x0 0x0 0x0 0x0
0xc0006dc0: 0x0 0x0 0x0 0x0
0xc0006dd0: 0x0 0x0 0x0 0x0
0xc0006de0: 0x0 0x0 0x0 0x0
0xc0006df0: 0x0 0x0 0x0 0x0
0xc0006e00: 0x0 0x0 0x0 0x0
0xc0006e10: 0x0 0x0 0x0 0x0
0xc0006e20: 0x0 0x0 0x0 0x0
0xc0006e30: 0x0 0x0 0x0 0x0
0xc0006e40: 0x0 0x0 0x0 0x0
0xc0006e50: 0x0 0x0 0x0 0x0
0xc0006e60: 0x0 0x0 0x0 0x0
0xc0006e70: 0x0 0x0 0x0 0x0
0xc0006e80: 0x0 0x0 0x0 0x0
0xc0006e90: 0x0 0x0 0x0 0x0
0xc0006ea0: 0x0 0x0 0x0 0x0
0xc0006eb0: 0x0 0x0 0x0 0x0
0xc0006ec0: 0x0 0x0 0x0 0x0
0xc0006ed0: 0x0 0x0 0x0 0x0
0xc0006ee0: 0x0 0x0 0x0 0x0
0xc0006ef0: 0x0 0x0 0x0 0x0
0xc0006f00: 0x0 0x0 0x0 0x0
0xc0006f10: 0x0 0x0 0x0 0x0
0xc0006f20: 0x0 0x0 0x0 0x0
0xc0006f30: 0x0 0x0 0x0 0x0
0xc0006f40: 0x0 0x0 0x0 0x0
0xc0006f50: 0x0 0x0 0x0 0x0
0xc0006f60: 0x0 0x0 0x0 0x0
0xc0006f70: 0x0 0x0 0x0 0x0
0xc0006f80: 0x0 0x0 0x0 0x0
0xc0006f90: 0x0 0x0 0x0 0x0
0xc0006fa0: 0x0 0x0 0x0 0x0
0xc0006fb0: 0x0 0x0 0x0 0x0
0xc0006fc0: 0x2588011 0x2588411 0x0 0x0
0xc0006fd0: 0x0 0x0 0x0 0x0
0xc0006fe0: 0x0 0x0 0x0 0x0
0xc0006ff0: 0x0 0x0 0x0 0x0
0xc0007000: 0x41e 0x10041e 0x20041e 0x30041e
0xc0007010: 0x40041e 0x50041e 0x60041e 0x70041e
0xc0007020: 0x80041e 0x90041e 0xa0041e 0xb0041e
0xc0007030: 0xc0041e 0xd0041e 0xe0041e 0xf0041e
0xc0007040: 0x100041e 0x110041e 0x120041e 0x130041e
0xc0007050: 0x140041e 0x150041e 0x160041e 0x170041e
0xc0007060: 0x180041e 0x190041e 0x1a0041e 0x1b0041e
0xc0007070: 0x1c0041e 0x1d0041e 0x1e0041e 0x1f0041e
0xc0007080: 0x200041e 0x210041e 0x220041e 0x230041e
0xc0007090: 0x240041e 0x250041e 0x260041e 0x270041e
0xc00070a0: 0x280041e 0x290041e 0x2a0041e 0x2b0041e
0xc00070b0: 0x2c0041e 0x2d0041e 0x2e0041e 0x2f0041e
0xc00070c0: 0x300041e 0x310041e 0x320041e 0x330041e
0xc00070d0: 0x340041e 0x350041e 0x360041e 0x370041e
0xc00070e0: 0x380041e 0x390041e 0x3a0041e 0x3b0041e
0xc00070f0: 0x3c0041e 0x3d0041e 0x3e0041e 0x3f0041e
0xc0007100: 0x0 0x0 0x0 0x0
0xc0007110: 0x0 0x0 0x0 0x0
0xc0007120: 0x3c16011 0x3c16411 0x0 0x0
0xc0007130: 0x0 0x0 0x0 0x0
0xc0007140: 0x0 0x0 0x0 0x0
0xc0007150: 0x0 0x0 0x0 0x0
0xc0007160: 0x0 0x0 0x0 0x0
0xc0007170: 0x0 0x0 0x0 0x0
0xc0007180: 0x0 0x0 0x0 0x0
0xc0007190: 0x0 0x0 0x0 0x0
0xc00071a0: 0x0 0x0 0x0 0x0
0xc00071b0: 0x0 0x0 0x0 0x0
0xc00071c0: 0x0 0x0 0x0 0x0
0xc00071d0: 0x0 0x0 0x0 0x0
0xc00071e0: 0x0 0x0 0x0 0x0
0xc00071f0: 0x0 0x0 0x0 0x0
0xc0007200: 0x0 0x0 0x0 0x0
0xc0007210: 0x0 0x0 0x0 0x0
0xc0007220: 0x0 0x0 0x0 0x0
0xc0007230: 0x0 0x0 0x0 0x0
0xc0007240: 0x0 0x0 0x0 0x0
0xc0007250: 0x0 0x0 0x0 0x0
0xc0007260: 0x0 0x0 0x0 0x0
0xc0007270: 0x0 0x0 0x0 0x0
0xc0007280: 0x0 0x0 0x0 0x0
0xc0007290: 0x0 0x0 0x0 0x0
0xc00072a0: 0x0 0x0 0x0 0x0
0xc00072b0: 0x0 0x0 0x0 0x0
0xc00072c0: 0x0 0x0 0x0 0x0
0xc00072d0: 0x0 0x0 0x0 0x0
0xc00072e0: 0x0 0x0 0x0 0x0
0xc00072f0: 0x0 0x0 0x0 0x0
0xc0007300: 0x0 0x0 0x0 0x0
0xc0007310: 0x0 0x0 0x0 0x0
0xc0007320: 0x0 0x0 0x0 0x0
0xc0007330: 0x0 0x0 0x0 0x0
0xc0007340: 0x0 0x0 0x0 0x0
0xc0007350: 0x0 0x0 0x0 0x0
0xc0007360: 0x0 0x0 0x0 0x0
0xc0007370: 0x0 0x0 0x0 0x0
0xc0007380: 0x0 0x0 0x0 0x0
0xc0007390: 0x0 0x0 0x0 0x0
0xc00073a0: 0x0 0x0 0x0 0x0
0xc00073b0: 0x0 0x0 0x0 0x0
0xc00073c0: 0x0 0x0 0x0 0x0
0xc00073d0: 0x0 0x0 0x0 0x0
0xc00073e0: 0x0 0x0 0x0 0x0
0xc00073f0: 0x0 0x0 0x0 0x0
0xc0007400: 0x0 0x0 0x0 0x0
0xc0007410: 0x0 0x0 0x0 0x0
0xc0007420: 0x0 0x0 0x0 0x0
0xc0007430: 0x0 0x0 0x0 0x0
0xc0007440: 0x0 0x0 0x0 0x0
0xc0007450: 0x0 0x0 0x0 0x0
0xc0007460: 0x0 0x0 0x0 0x0
0xc0007470: 0x0 0x0 0x0 0x0
0xc0007480: 0x0 0x0 0x0 0x0
0xc0007490: 0x0 0x0 0x0 0x0
0xc00074a0: 0x0 0x0 0x0 0x0
0xc00074b0: 0x0 0x0 0x0 0x0
0xc00074c0: 0x0 0x0 0x0 0x0
0xc00074d0: 0x0 0x0 0x0 0x0
0xc00074e0: 0x0 0x0 0x0 0x0
0xc00074f0: 0x0 0x0 0x0 0x0
0xc0007500: 0x0 0x0 0x0 0x0
0xc0007510: 0x0 0x0 0x0 0x0
0xc0007520: 0x0 0x0 0x0 0x0
0xc0007530: 0x0 0x0 0x0 0x0
0xc0007540: 0x0 0x0 0x0 0x0
0xc0007550: 0x0 0x0 0x0 0x0
0xc0007560: 0x0 0x0 0x0 0x0
0xc0007570: 0x0 0x0 0x0 0x0
0xc0007580: 0x0 0x0 0x0 0x0
0xc0007590: 0x0 0x0 0x0 0x0
0xc00075a0: 0x0 0x0 0x0 0x0
0xc00075b0: 0x0 0x0 0x0 0x0
0xc00075c0: 0x0 0x0 0x0 0x0
0xc00075d0: 0x0 0x0 0x0 0x0
0xc00075e0: 0x0 0x0 0x0 0x0
0xc00075f0: 0x0 0x0 0x0 0x0
0xc0007600: 0x0 0x0 0x0 0x0
0xc0007610: 0x0 0x0 0x0 0x0
0xc0007620: 0x0 0x0 0x0 0x0
0xc0007630: 0x0 0x0 0x0 0x0
0xc0007640: 0x0 0x0 0x0 0x0
0xc0007650: 0x0 0x0 0x0 0x0
0xc0007660: 0x0 0x0 0x0 0x0
0xc0007670: 0x0 0x0 0x0 0x0
0xc0007680: 0x0 0x0 0x0 0x0
0xc0007690: 0x0 0x0 0x0 0x0
0xc00076a0: 0x0 0x0 0x0 0x0
0xc00076b0: 0x0 0x0 0x0 0x0
0xc00076c0: 0x0 0x0 0x0 0x0
0xc00076d0: 0x0 0x0 0x0 0x0
0xc00076e0: 0x0 0x0 0x0 0x0
0xc00076f0: 0x0 0x0 0x0 0x0
0xc0007700: 0x0 0x0 0x0 0x0
0xc0007710: 0x0 0x0 0x0 0x0
0xc0007720: 0x0 0x0 0x0 0x0
0xc0007730: 0x0 0x0 0x0 0x0
0xc0007740: 0x0 0x0 0x0 0x0
0xc0007750: 0x0 0x0 0x0 0x0
0xc0007760: 0x0 0x0 0x0 0x0
0xc0007770: 0x0 0x0 0x0 0x0
0xc0007780: 0x0 0x0 0x0 0x0
0xc0007790: 0x0 0x0 0x0 0x0
0xc00077a0: 0x0 0x0 0x0 0x0
0xc00077b0: 0x0 0x0 0x0 0x0
0xc00077c0: 0x0 0x0 0x0 0x0
0xc00077d0: 0x0 0x0 0x0 0x0
0xc00077e0: 0x0 0x0 0x0 0x0
0xc00077f0: 0x0 0x0 0x0 0x0
0xc0007800: 0x0 0x0 0x0 0x0
0xc0007810: 0x0 0x0 0x0 0x0
0xc0007820: 0x0 0x0 0x0 0x0
0xc0007830: 0x0 0x0 0x0 0x0
0xc0007840: 0x0 0x0 0x0 0x0
0xc0007850: 0x0 0x0 0x0 0x0
0xc0007860: 0x0 0x0 0x0 0x0
0xc0007870: 0x0 0x0 0x0 0x0
0xc0007880: 0x0 0x0 0x0 0x0
0xc0007890: 0x0 0x0 0x0 0x0
0xc00078a0: 0x0 0x0 0x0 0x0
0xc00078b0: 0x0 0x0 0x0 0x0
0xc00078c0: 0x0 0x0 0x0 0x0
0xc00078d0: 0x0 0x0 0x0 0x0
0xc00078e0: 0x0 0x0 0x0 0x0
0xc00078f0: 0x0 0x0 0x0 0x0
0xc0007900: 0x0 0x0 0x0 0x0
0xc0007910: 0x0 0x0 0x0 0x0
0xc0007920: 0x0 0x0 0x0 0x0
0xc0007930: 0x0 0x0 0x0 0x0
0xc0007940: 0x0 0x0 0x0 0x0
0xc0007950: 0x0 0x0 0x0 0x0
0xc0007960: 0x0 0x0 0x0 0x0
0xc0007970: 0x0 0x0 0x0 0x0
0xc0007980: 0x0 0x0 0x0 0x0
0xc0007990: 0x0 0x0 0x0 0x0
0xc00079a0: 0x0 0x0 0x0 0x0
0xc00079b0: 0x0 0x0 0x0 0x0
0xc00079c0: 0x0 0x0 0x0 0x0
0xc00079d0: 0x0 0x0 0x0 0x0
0xc00079e0: 0x0 0x0 0x0 0x0
0xc00079f0: 0x0 0x0 0x0 0x0
0xc0007a00: 0x0 0x0 0x0 0x0
0xc0007a10: 0x0 0x0 0x0 0x0
0xc0007a20: 0x0 0x0 0x0 0x0
0xc0007a30: 0x0 0x0 0x0 0x0
0xc0007a40: 0x0 0x0 0x0 0x0
0xc0007a50: 0x0 0x0 0x0 0x0
0xc0007a60: 0x0 0x0 0x0 0x0
0xc0007a70: 0x0 0x0 0x0 0x0
0xc0007a80: 0x0 0x0 0x0 0x0
0xc0007a90: 0x0 0x0 0x0 0x0
0xc0007aa0: 0x0 0x0 0x0 0x0
0xc0007ab0: 0x0 0x0 0x0 0x0
0xc0007ac0: 0x0 0x0 0x0 0x0
0xc0007ad0: 0x0 0x0 0x0 0x0
0xc0007ae0: 0x0 0x0 0x0 0x0
0xc0007af0: 0x0 0x0 0x0 0x0
0xc0007b00: 0x0 0x0 0x0 0x0
0xc0007b10: 0x0 0x0 0x0 0x0
0xc0007b20: 0x0 0x0 0x0 0x0
0xc0007b30: 0x0 0x0 0x0 0x0
0xc0007b40: 0x0 0x0 0x0 0x0
0xc0007b50: 0x0 0x0 0x0 0x0
0xc0007b60: 0x0 0x0 0x0 0x0
0xc0007b70: 0x0 0x0 0x0 0x0
0xc0007b80: 0x0 0x0 0x0 0x0
0xc0007b90: 0x0 0x0 0x0 0x0
0xc0007ba0: 0x0 0x0 0x0 0x0
0xc0007bb0: 0x0 0x0 0x0 0x0
0xc0007bc0: 0x0 0x0 0x0 0x0
0xc0007bd0: 0x0 0x0 0x0 0x0
0xc0007be0: 0x0 0x0 0x0 0x0
0xc0007bf0: 0x0 0x0 0x0 0x0
0xc0007c00: 0xbda051 0xbda451 0xbdb051 0xbdb451
0xc0007c10: 0xbdc051 0xbdc451 0xbdd051 0xbdd451
0xc0007c20: 0xbde051 0xbde451 0xbdf051 0xbdf451
0xc0007c30: 0xbe0051 0xbe0451 0xbe1051 0xbe1451
0xc0007c40: 0xbe2051 0xbe2451 0x0 0x0
0xc0007c50: 0x0 0x0 0x0 0x0
0xc0007c60: 0x0 0x0 0x0 0x0
0xc0007c70: 0x0 0x0 0x0 0x0
0xc0007c80: 0x0 0x0 0x0 0x0
0xc0007c90: 0x0 0x0 0x0 0x0
0xc0007ca0: 0x0 0x0 0x0 0x0
0xc0007cb0: 0x0 0x0 0x0 0x0
0xc0007cc0: 0x0 0x0 0x0 0x0
0xc0007cd0: 0x0 0x0 0x0 0x0
0xc0007ce0: 0x0 0x0 0x0 0x0
0xc0007cf0: 0x0 0x0 0x0 0x0
0xc0007d00: 0x0 0x0 0x0 0x0
0xc0007d10: 0x0 0x0 0x0 0x0
0xc0007d20: 0x0 0x0 0x0 0x0
0xc0007d30: 0x0 0x0 0x0 0x0
0xc0007d40: 0x0 0x0 0x0 0x0
0xc0007d50: 0x0 0x0 0x0 0x0
0xc0007d60: 0x0 0x0 0x0 0x0
0xc0007d70: 0x0 0x0 0x0 0x0
0xc0007d80: 0x0 0x0 0x0 0x0
0xc0007d90: 0x0 0x0 0x0 0x0
0xc0007da0: 0x0 0x0 0x0 0x0
0xc0007db0: 0x0 0x0 0x0 0x0
0xc0007dc0: 0x0 0x0 0x0 0x0
0xc0007dd0: 0x0 0x0 0x0 0x0
0xc0007de0: 0x0 0x0 0x0 0x0
0xc0007df0: 0x0 0x0 0x0 0x0
0xc0007e00: 0xbe3051 0xbe3451 0xbe4051 0xbe4451
0xc0007e10: 0xbe5051 0xbe5451 0xbe6051 0xbe6451
0xc0007e20: 0xbe7051 0xbe7451 0xbe8051 0xbe8451
0xc0007e30: 0xbe9051 0xbe9451 0x0 0x0
0xc0007e40: 0x0 0x0 0x0 0x0
0xc0007e50: 0x0 0x0 0x0 0x0
0xc0007e60: 0x0 0x0 0x0 0x0
0xc0007e70: 0x0 0x0 0x0 0x0
0xc0007e80: 0x0 0x0 0x0 0x0
0xc0007e90: 0x0 0x0 0x0 0x0
0xc0007ea0: 0x0 0x0 0x0 0x0
0xc0007eb0: 0x0 0x0 0x0 0x0
0xc0007ec0: 0x0 0x0 0x0 0x0
0xc0007ed0: 0x0 0x0 0x0 0x0
0xc0007ee0: 0x0 0x0 0x0 0x0
0xc0007ef0: 0x0 0x0 0x0 0x0
0xc0007f00: 0x0 0x0 0x0 0x0
0xc0007f10: 0x0 0x0 0x0 0x0
0xc0007f20: 0x0 0x0 0x0 0x0
0xc0007f30: 0x0 0x0 0x0 0x0
0xc0007f40: 0x0 0x0 0x0 0x0
0xc0007f50: 0x0 0x0 0x0 0x0
0xc0007f60: 0x0 0x0 0x0 0x0
0xc0007f70: 0x0 0x0 0x0 0x0
0xc0007f80: 0x0 0x0 0x0 0x0
0xc0007f90: 0x0 0x0 0x0 0x0
0xc0007fa0: 0x0 0x0 0x0 0x0
0xc0007fb0: 0x0 0x0 0x0 0x0
0xc0007fc0: 0x3c32011 0x3c32411 0x3c33011 0x3c33411
0xc0007fd0: 0x3c34011 0x3c34411 0x3c35011 0x3c35411
0xc0007fe0: 0x3c36011 0x3c36411 0x3c37011 0x3c37411
0xc0007ff0: 0x3c38011 0x3c38411 0xbd9031 0xbd9431
First level descriptor:
[1:0]
00: Fault
01: Coarse page table
[4]: 1
[8:5]: Domain
[31:10]: Coarse page table base address
10: Section
[2]: Bufferable
[3]: Cacheable
[4]: 1
[8:5]: Domain
[11:10]: AP
[31:20]: Section base address
11: Fine page table
[4]: 1
[8:5]: Domain
[31:12]: Fine page table base address
2nd level descriptor:
[1:0]
00: Fault
01: Large page
[2]: Bufferable
[3]: Cacheable
[5:4]: AP0
[7:6]: AP1
[9:8]: AP2
[11:10]: AP3
[31:16]: Large page base address
10: Small page
[2]: Bufferable
[3]: Cacheable
[5:4]: AP0
[7:6]: AP1
[9:8]: AP2
[11:10]: AP3
[31:12]: Small page base address
11: Tiny page
[2]: Bufferable
[3]: Cacheable
[5:4]: AP0
[31:10]: Tiny page base address
print the 2nd level descriptor address's value
... 0xc2588000: 0x2aff55e 0x0 0x0 0x258955e
... 0xc2588010: 0x0 0x0 0x0 0x0
... 0xc2588020: 0x0 0x0 0x0 0x0
... 0xc2588030: 0x0 0x0 0x0 0x0
... 0xc2588040: 0x0 0x0 0x0 0x0
... 0xc2588050: 0x0 0x0 0x0 0x0
... 0xc2588060: 0x0 0x0 0x0 0x0
... 0xc2588070: 0x0 0x0 0x0 0x0
... 0xc2588080: 0x0 0x0 0x0 0x0
... 0xc2588090: 0x0 0x0 0x0 0x0
... 0xc25880a0: 0x0 0x0 0x0 0x0
... 0xc25880b0: 0x0 0x0 0x0 0x0
... 0xc25880c0: 0x0 0x0 0x0 0x0
... 0xc25880d0: 0x0 0x0 0x0 0x0
... 0xc25880e0: 0x0 0x0 0x0 0x0
... 0xc25880f0: 0x0 0x0 0x0 0x0
... 0xc2588100: 0x0 0x0 0x0 0x0
... 0xc2588110: 0x0 0x0 0x0 0x0
... 0xc2588120: 0x0 0x0 0x0 0x0
... 0xc2588130: 0x0 0x0 0x0 0x0
... 0xc2588140: 0x0 0x0 0x0 0x0
... 0xc2588150: 0x0 0x0 0x0 0x0
... 0xc2588160: 0x0 0x0 0x0 0x0
... 0xc2588170: 0x0 0x0 0x0 0x0
... 0xc2588180: 0x0 0x0 0x0 0x0
... 0xc2588190: 0x0 0x0 0x0 0x0
... 0xc25881a0: 0x0 0x0 0x0 0x0
... 0xc25881b0: 0x0 0x0 0x0 0x0
... 0xc25881c0: 0x0 0x0 0x0 0x0
... 0xc25881d0: 0x0 0x0 0x0 0x0
... 0xc25881e0: 0x0 0x0 0x0 0x0
... 0xc25881f0: 0x0 0x0 0x0 0x0
... 0xc2588200: 0x0 0x0 0x0 0x0
... 0xc2588210: 0x0 0x0 0x0 0x0
... 0xc2588220: 0x0 0x0 0x0 0x0
... 0xc2588230: 0x0 0x0 0x0 0x0
... 0xc2588240: 0x0 0x0 0x0 0x0
... 0xc2588250: 0x0 0x0 0x0 0x0
... 0xc2588260: 0x0 0x0 0x0 0x0
... 0xc2588270: 0x0 0x0 0x0 0x0
... 0xc2588280: 0x0 0x0 0x0 0x0
... 0xc2588290: 0x0 0x0 0x0 0x0
... 0xc25882a0: 0x0 0x0 0x0 0x0
... 0xc25882b0: 0x0 0x0 0x0 0x0
... 0xc25882c0: 0x0 0x0 0x0 0x0
... 0xc25882d0: 0x0 0x0 0x0 0x0
... 0xc25882e0: 0x0 0x0 0x0 0x0
... 0xc25882f0: 0x0 0x0 0x0 0x0
... 0xc2588300: 0x0 0x0 0x0 0x0
... 0xc2588310: 0x0 0x0 0x0 0x0
... 0xc2588320: 0x0 0x0 0x0 0x0
... 0xc2588330: 0x0 0x0 0x0 0x0
... 0xc2588340: 0x0 0x0 0x0 0x0
... 0xc2588350: 0x0 0x0 0x0 0x0
... 0xc2588360: 0x0 0x0 0x0 0x0
... 0xc2588370: 0x0 0x0 0x0 0x0
... 0xc2588380: 0x0 0x0 0x0 0x0
... 0xc2588390: 0x0 0x0 0x0 0x0
... 0xc25883a0: 0x0 0x0 0x0 0x0
... 0xc25883b0: 0x0 0x0 0x0 0x0
... 0xc25883c0: 0x0 0x0 0x0 0x0
... 0xc25883d0: 0x0 0x0 0x0 0x0
... 0xc25883e0: 0x0 0x0 0x0 0x0
... 0xc25883f0: 0x0 0x0 0x0 0x0
... 0xc3c16000: 0x3c15556 0x0 0x0 0x0
... 0xc3c16010: 0x3c15556 0x0 0x0 0x2a8d55e
... 0xc3c16020: 0x2a8a55e 0x2a8b55e 0x2a9655e 0x2a9755e
... 0xc3c16030: 0x2a9855e 0x2a9955e 0x2a9a55e 0x2a9b55e
... 0xc3c16040: 0x2a9c55e 0x2a9d55e 0x0 0x0
... 0xc3c16050: 0x90400552 0x0 0x0 0x251e55e
... 0xc3c16060: 0x251d55e 0x250855e 0x24d555e 0x252155e
... 0xc3c16070: 0x250455e 0x252b55e 0x250755e 0x250055e
... 0xc3c16080: 0x250155e 0x252455e 0x252755e 0x251855e
... 0xc3c16090: 0x250555e 0x24da55e 0x251a55e 0x252e55e
... 0xc3c160a0: 0x245f55e 0x24cc55e 0x346b55e 0x244555e
... 0xc3c160b0: 0x250e55e 0x251655e 0x251755e 0x258255e
... 0xc3c160c0: 0x258355e 0x2afc55e 0x2afd55e 0x2afe55e
... 0xc3c160d0: 0x0 0x0 0x0 0x0
... 0xc3c160e0: 0x0 0x0 0x0 0x0
... 0xc3c160f0: 0x0 0x0 0x0 0x0
... 0xc3c16100: 0x0 0x0 0x0 0x0
... 0xc3c16110: 0x0 0x0 0x0 0x0
... 0xc3c16120: 0x0 0x0 0x0 0x0
... 0xc3c16130: 0x0 0x0 0x0 0x0
... 0xc3c16140: 0x0 0x0 0x0 0x0
... 0xc3c16150: 0x0 0x0 0x0 0x0
... 0xc3c16160: 0x0 0x0 0x0 0x0
... 0xc3c16170: 0x0 0x0 0x0 0x0
... 0xc3c16180: 0x0 0x0 0x0 0x0
... 0xc3c16190: 0x0 0x0 0x0 0x0
... 0xc3c161a0: 0x0 0x0 0x0 0x0
... 0xc3c161b0: 0x0 0x0 0x0 0x0
... 0xc3c161c0: 0x0 0x0 0x0 0x0
... 0xc3c161d0: 0x0 0x0 0x0 0x0
... 0xc3c161e0: 0x0 0x0 0x0 0x0
... 0xc3c161f0: 0x0 0x0 0x0 0x0
... 0xc3c16200: 0x0 0x0 0x0 0x0
... 0xc3c16210: 0x0 0x0 0x0 0x0
... 0xc3c16220: 0x0 0x0 0x0 0x0
... 0xc3c16230: 0x0 0x0 0x0 0x0
... 0xc3c16240: 0x0 0x0 0x0 0x0
... 0xc3c16250: 0x0 0x0 0x0 0x0
... 0xc3c16260: 0x0 0x0 0x0 0x0
... 0xc3c16270: 0x0 0x0 0x0 0x0
... 0xc3c16280: 0x0 0x0 0x0 0x0
... 0xc3c16290: 0x0 0x0 0x0 0x0
... 0xc3c162a0: 0x0 0x0 0x0 0x0
... 0xc3c162b0: 0x0 0x0 0x0 0x0
... 0xc3c162c0: 0x0 0x0 0x0 0x0
... 0xc3c162d0: 0x0 0x0 0x0 0x0
... 0xc3c162e0: 0x0 0x0 0x0 0x0
... 0xc3c162f0: 0x0 0x0 0x0 0x0
... 0xc3c16300: 0x0 0x0 0x0 0x0
... 0xc3c16310: 0x0 0x0 0x0 0x0
... 0xc3c16320: 0x0 0x0 0x0 0x0
... 0xc3c16330: 0x0 0x0 0x0 0x0
... 0xc3c16340: 0x0 0x0 0x0 0x0
... 0xc3c16350: 0x0 0x0 0x0 0x0
... 0xc3c16360: 0x0 0x0 0x0 0x0
... 0xc3c16370: 0x0 0x0 0x0 0x0
... 0xc3c16380: 0x0 0x0 0x0 0x0
... 0xc3c16390: 0x0 0x0 0x0 0x0
... 0xc3c163a0: 0x0 0x0 0x0 0x0
... 0xc3c163b0: 0x0 0x0 0x0 0x0
... 0xc3c163c0: 0x0 0x0 0x0 0x0
... 0xc3c163d0: 0x0 0x0 0x0 0x0
... 0xc3c163e0: 0x0 0x0 0x0 0x0
... 0xc3c163f0: 0x0 0x0 0x0 0x0
0xc0007e00: 0x98000552 0x0 0x0 0x0
0xc0007e10: 0x98400552 0x0 0x0 0x0
0xc0007e20: 0x98800552 0x0 0x0 0x0
0xc0007e30: 0x98c00552 0x0 0x0 0x0
0xc0007c00: 0x90000552 0x0 0x0 0x0
0xc0007c10: 0x90400552 0x0 0x0 0x0
0xc0007c20: 0x90800552 0x0 0x0 0x0
0xc0007c30: 0x90c00552 0x0 0x0 0x0
0xc0007c40: 0x91000552 0x0 0x0 0x0
... 0xc3c32000: 0x2ac1552 0x2ac4552 0x2ac5552 0x2ac8552
... 0xc3c32010: 0x2ac9552 0x2aca552 0x3c80552 0x3ca1552
... 0xc3c32020: 0x24fe552 0x2519552 0x2afc552 0x2afd552
... 0xc3c32030: 0x0 0x0 0x0 0x0
... 0xc3c32040: 0x0 0x0 0x0 0x0
... 0xc3c32050: 0x0 0x0 0x0 0x0
... 0xc3c32060: 0x0 0x0 0x0 0x0
... 0xc3c32070: 0x0 0x0 0x0 0x0
... 0xc3c32080: 0x0 0x0 0x0 0x0
... 0xc3c32090: 0x0 0x0 0x0 0x0
... 0xc3c320a0: 0x0 0x0 0x0 0x0
... 0xc3c320b0: 0x0 0x0 0x0 0x0
... 0xc3c320c0: 0x0 0x0 0x0 0x0
... 0xc3c320d0: 0x0 0x0 0x0 0x0
... 0xc3c320e0: 0x0 0x0 0x0 0x0
... 0xc3c320f0: 0x0 0x0 0x0 0x0
... 0xc3c32100: 0x0 0x0 0x0 0x0
... 0xc3c32110: 0x0 0x0 0x0 0x0
... 0xc3c32120: 0x0 0x0 0x0 0x0
... 0xc3c32130: 0x0 0x0 0x0 0x0
... 0xc3c32140: 0x0 0x0 0x0 0x0
... 0xc3c32150: 0x0 0x0 0x0 0x0
... 0xc3c32160: 0x0 0x0 0x0 0x0
... 0xc3c32170: 0x0 0x0 0x0 0x0
... 0xc3c32180: 0x0 0x0 0x0 0x0
... 0xc3c32190: 0x0 0x0 0x0 0x0
... 0xc3c321a0: 0x0 0x0 0x0 0x0
... 0xc3c321b0: 0x0 0x0 0x0 0x0
... 0xc3c321c0: 0x0 0x0 0x0 0x0
... 0xc3c321d0: 0x0 0x0 0x0 0x0
... 0xc3c321e0: 0x0 0x0 0x0 0x0
... 0xc3c321f0: 0x0 0x0 0x0 0x0
... 0xc3c32200: 0x0 0x0 0x0 0x0
... 0xc3c32210: 0x0 0x0 0x0 0x0
... 0xc3c32220: 0x0 0x0 0x0 0x0
... 0xc3c32230: 0x0 0x0 0x0 0x0
... 0xc3c32240: 0x0 0x0 0x0 0x0
... 0xc3c32250: 0x0 0x0 0x0 0x0
... 0xc3c32260: 0x0 0x0 0x0 0x0
... 0xc3c32270: 0x0 0x0 0x0 0x0
... 0xc3c32280: 0x0 0x0 0x0 0x0
... 0xc3c32290: 0x0 0x0 0x0 0x0
... 0xc3c322a0: 0x0 0x0 0x0 0x0
... 0xc3c322b0: 0x0 0x0 0x0 0x0
... 0xc3c322c0: 0x0 0x0 0x0 0x0
... 0xc3c322d0: 0x0 0x0 0x0 0x0
... 0xc3c322e0: 0x0 0x0 0x0 0x0
... 0xc3c322f0: 0x0 0x0 0x0 0x0
... 0xc3c32300: 0x0 0x0 0x0 0x0
... 0xc3c32310: 0x0 0x0 0x0 0x0
... 0xc3c32320: 0x0 0x0 0x0 0x0
... 0xc3c32330: 0x0 0x0 0x0 0x0
... 0xc3c32340: 0x0 0x0 0x0 0x0
... 0xc3c32350: 0x0 0x0 0x0 0x0
... 0xc3c32360: 0x0 0x0 0x0 0x0
... 0xc3c32370: 0x0 0x0 0x0 0x0
... 0xc3c32380: 0x0 0x0 0x0 0x0
... 0xc3c32390: 0x0 0x0 0x0 0x0
... 0xc3c323a0: 0x0 0x0 0x0 0x0
... 0xc3c323b0: 0x0 0x0 0x0 0x0
... 0xc3c323c0: 0x0 0x0 0x0 0x0
... 0xc3c323d0: 0x0 0x0 0x0 0x0
... 0xc3c323e0: 0x0 0x0 0x0 0x0
... 0xc3c323f0: 0x0 0x0 0x0 0x0
... 0xc3c34000: 0x0 0x0 0x0 0x0
... 0xc3c34010: 0x0 0x0 0x0 0x0
... 0xc3c34020: 0x0 0x0 0x0 0x0
... 0xc3c34030: 0x0 0x0 0x0 0x0
... 0xc3c34040: 0x0 0x0 0x0 0x0
... 0xc3c34050: 0x0 0x0 0x0 0x0
... 0xc3c34060: 0x0 0x0 0x0 0x0
... 0xc3c34070: 0x0 0x0 0x0 0x0
... 0xc3c34080: 0x0 0x0 0x0 0x0
... 0xc3c34090: 0x0 0x0 0x0 0x0
... 0xc3c340a0: 0x0 0x0 0x0 0x0
... 0xc3c340b0: 0x0 0x0 0x0 0x0
... 0xc3c340c0: 0x0 0x0 0x0 0x0
... 0xc3c340d0: 0x0 0x0 0x0 0x0
... 0xc3c340e0: 0x0 0x0 0x0 0x0
... 0xc3c340f0: 0x0 0x0 0x0 0x0
... 0xc3c34100: 0x0 0x0 0x0 0x0
... 0xc3c34110: 0x0 0x0 0x0 0x0
... 0xc3c34120: 0x0 0x0 0x0 0x0
... 0xc3c34130: 0x0 0x0 0x0 0x0
... 0xc3c34140: 0x0 0x0 0x0 0x0
... 0xc3c34150: 0x0 0x0 0x0 0x0
... 0xc3c34160: 0x0 0x0 0x0 0x0
... 0xc3c34170: 0x0 0x0 0x0 0x0
... 0xc3c34180: 0x0 0x0 0x0 0x0
... 0xc3c34190: 0x0 0x0 0x0 0x0
... 0xc3c341a0: 0x0 0x0 0x0 0x0
... 0xc3c341b0: 0x0 0x0 0x0 0x0
... 0xc3c341c0: 0x0 0x0 0x0 0x0
... 0xc3c341d0: 0x0 0x0 0x0 0x0
... 0xc3c341e0: 0x0 0x0 0x0 0x0
... 0xc3c341f0: 0x0 0x0 0x0 0x0
... 0xc3c34200: 0x0 0x0 0x0 0x0
... 0xc3c34210: 0x0 0x0 0x0 0x0
... 0xc3c34220: 0x0 0x0 0x0 0x0
... 0xc3c34230: 0x0 0x0 0x0 0x0
... 0xc3c34240: 0x0 0x0 0x0 0x0
... 0xc3c34250: 0x0 0x0 0x0 0x0
... 0xc3c34260: 0x0 0x0 0x0 0x0
... 0xc3c34270: 0x0 0x0 0x0 0x0
... 0xc3c34280: 0x0 0x0 0x0 0x0
... 0xc3c34290: 0x0 0x0 0x0 0x0
... 0xc3c342a0: 0x0 0x0 0x0 0x0
... 0xc3c342b0: 0x0 0x0 0x0 0x0
... 0xc3c342c0: 0x0 0x0 0x0 0x0
... 0xc3c342d0: 0x0 0x0 0x0 0x0
... 0xc3c342e0: 0x0 0x0 0x0 0x0
... 0xc3c342f0: 0x0 0x0 0x0 0x0
... 0xc3c34300: 0x0 0x0 0x0 0x0
... 0xc3c34310: 0x0 0x0 0x0 0x0
... 0xc3c34320: 0x0 0x0 0x0 0x0
... 0xc3c34330: 0x0 0x0 0x0 0x0
... 0xc3c34340: 0x0 0x0 0x0 0x0
... 0xc3c34350: 0x0 0x0 0x0 0x0
... 0xc3c34360: 0x0 0x0 0x0 0x0
... 0xc3c34370: 0x0 0x0 0x0 0x0
... 0xc3c34380: 0x0 0x0 0x0 0x0
... 0xc3c34390: 0x0 0x0 0x0 0x0
... 0xc3c343a0: 0x0 0x0 0x0 0x0
... 0xc3c343b0: 0x0 0x0 0x0 0x0
... 0xc3c343c0: 0x0 0x0 0x0 0x0
... 0xc3c343d0: 0x0 0x0 0x0 0x0
... 0xc3c343e0: 0x0 0x0 0x0 0x0
... 0xc3c343f0: 0x0 0x0 0x0 0x0
... 0xc3c36000: 0x0 0x0 0x0 0x0
... 0xc3c36010: 0x0 0x0 0x0 0x0
... 0xc3c36020: 0x0 0x0 0x0 0x0
... 0xc3c36030: 0x0 0x0 0x0 0x0
... 0xc3c36040: 0x0 0x0 0x0 0x0
... 0xc3c36050: 0x0 0x0 0x0 0x0
... 0xc3c36060: 0x0 0x0 0x0 0x0
... 0xc3c36070: 0x0 0x0 0x0 0x0
... 0xc3c36080: 0x0 0x0 0x0 0x0
... 0xc3c36090: 0x0 0x0 0x0 0x0
... 0xc3c360a0: 0x0 0x0 0x0 0x0
... 0xc3c360b0: 0x0 0x0 0x0 0x0
... 0xc3c360c0: 0x0 0x0 0x0 0x0
... 0xc3c360d0: 0x0 0x0 0x0 0x0
... 0xc3c360e0: 0x0 0x0 0x0 0x0
... 0xc3c360f0: 0x0 0x0 0x0 0x0
... 0xc3c36100: 0x0 0x0 0x0 0x0
... 0xc3c36110: 0x0 0x0 0x0 0x0
... 0xc3c36120: 0x0 0x0 0x0 0x0
... 0xc3c36130: 0x0 0x0 0x0 0x0
... 0xc3c36140: 0x0 0x0 0x0 0x0
... 0xc3c36150: 0x0 0x0 0x0 0x0
... 0xc3c36160: 0x0 0x0 0x0 0x0
... 0xc3c36170: 0x0 0x0 0x0 0x0
... 0xc3c36180: 0x0 0x0 0x0 0x0
... 0xc3c36190: 0x0 0x0 0x0 0x0
... 0xc3c361a0: 0x0 0x0 0x0 0x0
... 0xc3c361b0: 0x0 0x0 0x0 0x0
... 0xc3c361c0: 0x0 0x0 0x0 0x0
... 0xc3c361d0: 0x0 0x0 0x0 0x0
... 0xc3c361e0: 0x0 0x0 0x0 0x0
... 0xc3c361f0: 0x0 0x0 0x0 0x0
... 0xc3c36200: 0x0 0x0 0x0 0x0
... 0xc3c36210: 0x0 0x0 0x0 0x0
... 0xc3c36220: 0x0 0x0 0x0 0x0
... 0xc3c36230: 0x0 0x0 0x0 0x0
... 0xc3c36240: 0x0 0x0 0x0 0x0
... 0xc3c36250: 0x0 0x0 0x0 0x0
... 0xc3c36260: 0x0 0x0 0x0 0x0
... 0xc3c36270: 0x0 0x0 0x0 0x0
... 0xc3c36280: 0x0 0x0 0x0 0x0
... 0xc3c36290: 0x0 0x0 0x0 0x0
... 0xc3c362a0: 0x0 0x0 0x0 0x0
... 0xc3c362b0: 0x0 0x0 0x0 0x0
... 0xc3c362c0: 0x0 0x0 0x0 0x0
... 0xc3c362d0: 0x0 0x0 0x0 0x0
... 0xc3c362e0: 0x0 0x0 0x0 0x0
... 0xc3c362f0: 0x0 0x0 0x0 0x0
... 0xc3c36300: 0x0 0x0 0x0 0x0
... 0xc3c36310: 0x0 0x0 0x0 0x0
... 0xc3c36320: 0x0 0x0 0x0 0x0
... 0xc3c36330: 0x0 0x0 0x0 0x0
... 0xc3c36340: 0x0 0x0 0x0 0x0
... 0xc3c36350: 0x0 0x0 0x0 0x0
... 0xc3c36360: 0x0 0x0 0x0 0x0
... 0xc3c36370: 0x0 0x0 0x0 0x0
... 0xc3c36380: 0x0 0x0 0x0 0x0
... 0xc3c36390: 0x0 0x0 0x0 0x0
... 0xc3c363a0: 0x0 0x0 0x0 0x0
... 0xc3c363b0: 0x0 0x0 0x0 0x0
... 0xc3c363c0: 0x0 0x0 0x0 0x0
... 0xc3c363d0: 0x0 0x0 0x0 0x0
... 0xc3c363e0: 0x0 0x0 0x0 0x0
... 0xc3c363f0: 0x0 0x0 0x0 0x0
... 0xc3c38000: 0x0 0x0 0x0 0x0
... 0xc3c38010: 0x0 0x0 0x0 0x0
... 0xc3c38020: 0x0 0x0 0x0 0x0
... 0xc3c38030: 0x0 0x0 0x0 0x0
... 0xc3c38040: 0x0 0x0 0x0 0x0
... 0xc3c38050: 0x0 0x0 0x0 0x0
... 0xc3c38060: 0x0 0x0 0x0 0x0
... 0xc3c38070: 0x0 0x0 0x0 0x0
... 0xc3c38080: 0x0 0x0 0x0 0x0
... 0xc3c38090: 0x0 0x0 0x0 0x0
... 0xc3c380a0: 0x0 0x0 0x0 0x0
... 0xc3c380b0: 0x0 0x0 0x0 0x0
... 0xc3c380c0: 0x0 0x0 0x0 0x0
... 0xc3c380d0: 0x0 0x0 0x0 0x0
... 0xc3c380e0: 0x0 0x0 0x0 0x0
... 0xc3c380f0: 0x0 0x0 0x0 0x0
... 0xc3c38100: 0x0 0x0 0x0 0x0
... 0xc3c38110: 0x0 0x0 0x0 0x0
... 0xc3c38120: 0x0 0x0 0x0 0x0
... 0xc3c38130: 0x0 0x0 0x0 0x0
... 0xc3c38140: 0x0 0x0 0x0 0x0
... 0xc3c38150: 0x0 0x0 0x0 0x0
... 0xc3c38160: 0x0 0x0 0x0 0x0
... 0xc3c38170: 0x0 0x0 0x0 0x0
... 0xc3c38180: 0x0 0x0 0x0 0x0
... 0xc3c38190: 0x0 0x0 0x0 0x0
... 0xc3c381a0: 0x0 0x0 0x0 0x0
... 0xc3c381b0: 0x0 0x0 0x0 0x0
... 0xc3c381c0: 0x0 0x0 0x0 0x0
... 0xc3c381d0: 0x0 0x0 0x0 0x0
... 0xc3c381e0: 0x0 0x0 0x0 0x0
... 0xc3c381f0: 0x0 0x0 0x0 0x0
... 0xc3c38200: 0x0 0x0 0x0 0x0
... 0xc3c38210: 0x0 0x0 0x0 0x0
... 0xc3c38220: 0x0 0x0 0x0 0x0
... 0xc3c38230: 0x0 0x0 0x0 0x0
... 0xc3c38240: 0x0 0x0 0x0 0x0
... 0xc3c38250: 0x0 0x0 0x0 0x0
... 0xc3c38260: 0x0 0x0 0x0 0x0
... 0xc3c38270: 0x0 0x0 0x0 0x0
... 0xc3c38280: 0x0 0x0 0x0 0x0
... 0xc3c38290: 0x0 0x0 0x0 0x0
... 0xc3c382a0: 0x0 0x0 0x0 0x0
... 0xc3c382b0: 0x0 0x0 0x0 0x0
... 0xc3c382c0: 0x0 0x0 0x0 0x0
... 0xc3c382d0: 0x0 0x0 0x0 0x0
... 0xc3c382e0: 0x0 0x0 0x0 0x0
... 0xc3c382f0: 0x0 0x0 0x0 0x0
... 0xc3c38300: 0x0 0x0 0x0 0x0
... 0xc3c38310: 0x0 0x0 0x0 0x0
... 0xc3c38320: 0x0 0x0 0x0 0x0
... 0xc3c38330: 0x0 0x0 0x0 0x0
... 0xc3c38340: 0x0 0x0 0x0 0x0
... 0xc3c38350: 0x0 0x0 0x0 0x0
... 0xc3c38360: 0x0 0x0 0x0 0x0
... 0xc3c38370: 0x0 0x0 0x0 0x0
... 0xc3c38380: 0x0 0x0 0x0 0x0
... 0xc3c38390: 0x0 0x0 0x0 0x0
... 0xc3c383a0: 0x0 0x0 0x0 0x0
... 0xc3c383b0: 0x0 0x0 0x0 0x0
... 0xc3c383c0: 0x0 0x0 0x0 0x0
... 0xc3c383d0: 0x0 0x0 0x0 0x0
... 0xc3c383e0: 0x0 0x0 0x0 0x0
... 0xc3c383f0: 0x0 0x0 0x0 0x0
op = 1, request.len = 0x00010000, request.flag = 0, request.val = A
/ahbdma #
2012年5月23日 星期三
2012年5月18日 星期五
Debug/Run Linux with ICE
1) Open AXD
2) Select "File" -> "Load Memory From File"
--> Select "arch/arm/boot/Image" and load to address 0x8000 (This is kernel image without zlib header and the original Linux image with debug info is "vmlinux")
[mingfeng_wu@vl-sa3sw1 linux-2.6.35.12]$ arm-unknown-linux-uclibcgnueabi-objdump -d vmlinux | less
vmlinux: file format elf32-littlearm
Disassembly of section .init:
c0008000 <stext>:
c0008000: e321f0d3 msr CPSR_c, #211 ; 0xd3
c0008004: ee109f10 mrc 15, 0, r9, cr0, cr0, {0}
c0008008: eb0000ba bl c00082f8 <__lookup_processor_type>
c000800c: e1b0a005 movs sl, r5
c0008010: 0a00005e beq c0008190 <__error_p>
c0008014: eb0000d0 bl c000835c <__lookup_machine_type>
c0008018: e1b08005 movs r8, r5
c000801c: 0a000071 beq c00081e8 <__error_a>
c0008020: eb0000df bl c00083a4 <__vet_atags>
c0008024: eb000013 bl c0008078 <__create_page_tables>
c0008028: e59fd0f0 ldr sp, [pc, #240] ; c0008120 <__switch_data>
c000802c: e28fe000 add lr, pc, #0
c0008030: e28af010 add pc, sl, #16
c0008034 <__enable_mmu>:
c0008034: e3800002 orr r0, r0, #2
c0008038: e3a0501f mov r5, #31
c000803c: ee035f10 mcr 15, 0, r5, cr3, cr0, {0}
c0008040: ee024f10 mcr 15, 0, r4, cr2, cr0, {0}
c0008044: ea000005 b c0008060 <__turn_mmu_on>
c0008048: e1a00000 nop ; (mov r0, r0)
c000804c: e1a00000 nop ; (mov r0, r0)
c0008050: e1a00000 nop ; (mov r0, r0)
c0008054: e1a00000 nop ; (mov r0, r0)
c0008058: e1a00000 nop ; (mov r0, r0)
c000805c: e1a00000 nop ; (mov r0, r0)
.............
You can see that we have to load the "arch/arm/boot/Image" and load to address 0x8000.
3) After successfully loading the image to ICE, set the PC to 0x8000
4) Modify register r1 to "xxx" <-- MACH_TYPE_XXX
4) You can set breakpoint or watchpoint or just press run
2) Select "File" -> "Load Memory From File"
--> Select "arch/arm/boot/Image" and load to address 0x8000 (This is kernel image without zlib header and the original Linux image with debug info is "vmlinux")
[mingfeng_wu@vl-sa3sw1 linux-2.6.35.12]$ arm-unknown-linux-uclibcgnueabi-objdump -d vmlinux | less
vmlinux: file format elf32-littlearm
Disassembly of section .init:
c0008000 <stext>:
c0008000: e321f0d3 msr CPSR_c, #211 ; 0xd3
c0008004: ee109f10 mrc 15, 0, r9, cr0, cr0, {0}
c0008008: eb0000ba bl c00082f8 <__lookup_processor_type>
c000800c: e1b0a005 movs sl, r5
c0008010: 0a00005e beq c0008190 <__error_p>
c0008014: eb0000d0 bl c000835c <__lookup_machine_type>
c0008018: e1b08005 movs r8, r5
c000801c: 0a000071 beq c00081e8 <__error_a>
c0008020: eb0000df bl c00083a4 <__vet_atags>
c0008024: eb000013 bl c0008078 <__create_page_tables>
c0008028: e59fd0f0 ldr sp, [pc, #240] ; c0008120 <__switch_data>
c000802c: e28fe000 add lr, pc, #0
c0008030: e28af010 add pc, sl, #16
c0008034 <__enable_mmu>:
c0008034: e3800002 orr r0, r0, #2
c0008038: e3a0501f mov r5, #31
c000803c: ee035f10 mcr 15, 0, r5, cr3, cr0, {0}
c0008040: ee024f10 mcr 15, 0, r4, cr2, cr0, {0}
c0008044: ea000005 b c0008060 <__turn_mmu_on>
c0008048: e1a00000 nop ; (mov r0, r0)
c000804c: e1a00000 nop ; (mov r0, r0)
c0008050: e1a00000 nop ; (mov r0, r0)
c0008054: e1a00000 nop ; (mov r0, r0)
c0008058: e1a00000 nop ; (mov r0, r0)
c000805c: e1a00000 nop ; (mov r0, r0)
.............
You can see that we have to load the "arch/arm/boot/Image" and load to address 0x8000.
3) After successfully loading the image to ICE, set the PC to 0x8000
4) Modify register r1 to "xxx" <-- MACH_TYPE_XXX
4) You can set breakpoint or watchpoint or just press run
2012年4月22日 星期日
Reference from http://huenlil.pixnet.net/blog/post/23271426-printk%28%29-%E4%BD%BF%E7%94%A8%E8%AA%AA%E6%98%8E
核心通過 printk() 輸出的訊息具有日誌級別,日誌級別是通過在 printk() 輸出的字符串前加一個帶尖括號的整數來控制的,如 printk("<6>Hello, world!\n");。內核中共提供了八種不同的日誌級別,在 linux/kernel.h 中有相應的宏對應。
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
所以 printk() 可以這樣用:printk(KERN_INFO "Hello, world!\n");。
未指定日誌級別的 printk() 採用的默認級別是 DEFAULT_MESSAGE_LOGLEVEL,這個宏在 kernel/printk.c 中被定義為整數 4,即對應KERN_WARNING。
在 /proc/sys/kernel/printk 會顯示4個數值(可由 echo 修改),分別表示當前控制台日誌級別、未明確指定日誌級別的默認消息日誌級別、最小(最高)允許設置的控制台日誌級別、引導時默認的日誌級別。當 printk() 中的消息日誌級別小於當前控制台日誌級別時,printk 的信息(要有\n符)就會在控制台上顯示。但無論當前控制台日誌級別是何值,通過 /proc/kmsg (或使用dmesg)總能查看。另外如果配置好並運行了 syslogd 或 klogd,沒有在控制台上顯示的 printk 的信息也會追加到 /var/log/messages.log 中。
另外為了防止 printk() 瞬時被呼叫次數過多,可以通過 printk_ratelimit() 來控制速度。printk_ratelimit() 通過跟蹤發送到控制台的消息數量工作,當輸出速度超過一個臨界值,就返回零。可通過修改 /proc/sys/kernel/{printk_ratelimit, printk_ratelimit_burst} 來調節 printk_ratelimit() 的計算。
printk_ratelimit() 的典型用法如下:
if (printk_ratelimit())
printk(KERN_INFO "Hello, world!\n");
核心通過 printk() 輸出的訊息具有日誌級別,日誌級別是通過在 printk() 輸出的字符串前加一個帶尖括號的整數來控制的,如 printk("<6>Hello, world!\n");。內核中共提供了八種不同的日誌級別,在 linux/kernel.h 中有相應的宏對應。
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
所以 printk() 可以這樣用:printk(KERN_INFO "Hello, world!\n");。
未指定日誌級別的 printk() 採用的默認級別是 DEFAULT_MESSAGE_LOGLEVEL,這個宏在 kernel/printk.c 中被定義為整數 4,即對應KERN_WARNING。
在 /proc/sys/kernel/printk 會顯示4個數值(可由 echo 修改),分別表示當前控制台日誌級別、未明確指定日誌級別的默認消息日誌級別、最小(最高)允許設置的控制台日誌級別、引導時默認的日誌級別。當 printk() 中的消息日誌級別小於當前控制台日誌級別時,printk 的信息(要有\n符)就會在控制台上顯示。但無論當前控制台日誌級別是何值,通過 /proc/kmsg (或使用dmesg)總能查看。另外如果配置好並運行了 syslogd 或 klogd,沒有在控制台上顯示的 printk 的信息也會追加到 /var/log/messages.log 中。
另外為了防止 printk() 瞬時被呼叫次數過多,可以通過 printk_ratelimit() 來控制速度。printk_ratelimit() 通過跟蹤發送到控制台的消息數量工作,當輸出速度超過一個臨界值,就返回零。可通過修改 /proc/sys/kernel/{printk_ratelimit, printk_ratelimit_burst} 來調節 printk_ratelimit() 的計算。
printk_ratelimit() 的典型用法如下:
if (printk_ratelimit())
printk(KERN_INFO "Hello, world!\n");
2012年3月1日 星期四
Use VIM
1) 先將游標移到程式的某個文字串,再按以下按鍵:
- '*' 往前找出此文字串 (按 n、N 繼續找)
- '#' 往後找出此文字串 (按 n、N 繼續找)
- 'gd' 將此文字串視為 local 變數,找到定義此 local 變數的地方 (如果有的話)
- '%' 找到被配的括號
- '[[' 找到函數的開頭
- ']]' 找到下一個函數的開頭
Use cscope
1) Install cscope:
sudo apt-get install cscope
mkdir -p ~/.vim/plugin
cd ~/.vim/plugin
wget http://cscope.sourceforge.net/cscope_maps.vim
2) Create cscope database for PROJECT:
cd PROJECT
cscope -bR
3) Using cscope in VIM:
當你安裝好 cscope,而且建立好專案的 cscope 資料庫之後,將游標移到程式當中某個文字串,按 Ctrl+\ 再按以下按鍵:
sudo apt-get install cscope
mkdir -p ~/.vim/plugin
cd ~/.vim/plugin
wget http://cscope.sourceforge.net/cscope_maps.vim
2) Create cscope database for PROJECT:
cd PROJECT
cscope -bR
3) Using cscope in VIM:
當你安裝好 cscope,而且建立好專案的 cscope 資料庫之後,將游標移到程式當中某個文字串,按 Ctrl+\ 再按以下按鍵:
- 's': 即 Symbol,以此文字串當識別字,列出專案當中所有參考到此識別字的地方,包含定義和引用
- 'g': 即 Global,以此文字串當作 global 變數或函數的名稱,跳到專案中定義此 global 變數或函數的地方 (這個功能有另一個與 ctags 相同的快速鍵 Ctrl-])
- 'c': 即 Calls,以此文字串當函數名稱,找出所有呼叫到的此函數的函數
- 't': 即 Text,列出專案中所有出現此文字串的地方 (包含註解)
- 'e': 即 Egrep,以此文字串當 regular expression,用 egrep 方式來搜尋
- 'f': 即 File,以此文字串當檔案名稱,開啟此檔案
- 'i': 即 Includes,以此文字串當 header 檔名稱,列出所有 include 此檔案的檔案
- 'd': 即 calleD,以此文字串當函數名稱,列出此函數所呼叫到的函數
2011年12月21日 星期三
gcc-4.5.2 regression test
1) Compile zlib-1.2.3
(x86)
./configure --prefix=/home/user/mingfeng_wu/installed/zlib
make clean
make
make install
(ARM)
./configure --prefix=/home/user/mingfeng_wu/installed/arm-uc-zlib
# !!!Modify Makefile manually
# -CC=gcc
# +CROSS=/home/user/mingfeng_wu/installed/crosstool-4.5.2/bin/arm-unknown-linux-uclibcgnueabi-
# +CC=$(CROSS)gcc
# -LDSHARED=gcc
# -CPP=gcc -E
# +LDSHARED=$(CROSS)gcc
# +CPP=$(CROSS)gcc -E
# -AR=ar rc
# +AR=$(CROSS)ar rc
# -RANLIB=ranlib
# +RANLIB=$(CROSS)ranlib
make clean
make
make install
2) Compile openssl-1.0.0d
(x86)
./Configure --prefix=/home/user/mingfeng_wu/installed/openssl os/compiler:gcc
make clean
make
make install
(ARM)
./Configure --prefix=/home/user/mingfeng_wu/installed/arm-uc-openssl os/compiler:arm-unknown-linux-uclibcgnueabi-gcc
make clean
make
make install
3) Compile openssh-5.9p1
Modify sshd_config with "Subsystem sftp /usr/local/libexec/sftp-server"
(x86)
./configure --prefix=/home/user/mingfeng_wu/installed/openssh \
--with-libs \
--with-zlib=/home/user/mingfeng_wu/installed/zlib \
--with-ssl-dir=/home/user/mingfeng_wu/installed/openssl \
--disable-etc-default-login \
CC=gcc \
AR=ar \
RANLIB=ranlib
make clean
make
make install
(ARM)
./configure --host=arm-unknown-linux-uclibcgnueabi \
--with-libs \
--with-zlib=/home/user/mingfeng_wu/installed/arm-uc-zlib \
--with-ssl-dir=/home/user/mingfeng_wu/installed/arm-uc-openssl \
--disable-etc-default-login \
CC=arm-unknown-linux-uclibcgnueabi-gcc \
AR=arm-unknown-linux-uclibcgnueabi-ar \
RANLIB=arm-unknown-linux-uclibcgnueabi-ranlib
make clean
make
/home/user/mingfeng/installed/crosstool-4.5.2/bin/arm-linux-strip scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan sftp-server ssh-key
sign sshd
4) readme.ssh-transparent-login
1. Generate on your LOCAL machine a keypair with:
# ssh-keygen -t rsa (dont type in any password, just keep hitting enter) .
This will generate public/private rsa key pair in the directory of /root/.ssh:
/root/.ssh/id_rsa (private key)
/root/.ssh/id_rsa.pub (public key)
2. Make sure your private key resides under /root/.ssh on your LOCAL machine.
3. Also transfer the PRIVATE key to the machine which you want to automatically
login to. Put it under the directory /usr/local/etc.
4. Transfer the PUBLIC key to the machine which you want to automatically login to.
Under the directory /root/.ssh (create it if necessary) concatenate your public key
with the file authorized_keys (create file if needed) .
5. Make sure the authorized_keys on the REMOTE machine is not read or modifiable by
group or others by doing chmod 700 /root/.ssh/authorized_keys.
6. Make sure the /root/.ssh directory on the REMOTE machine is not read or modifiable
by group or others by doing chmod 700 /root/.ssh
7. You may need to enable empty password authentication (need root access) on the
REMOTE machine in the config file sshd_config. Make "Permitemptypasswords yes".
You also need to modify "Protocol 2,1" to "Protocol 2" and modify "HostKey
/etc/ssh/ssh_host_rsa_key" to "/usr/local/etc/id_rsa". Please refer to the attached.
8. Restart /usr/local/sbin/sshd daemon on REMOTE, and you can automatically login with
ssh/sftp without password on LOCAL.
5) gcc-4.5.2-no-mtune-sshscp.exp
# Board definition file for board "myboard_sshscp"
# How to compile C programs for this board
set_board_info compiler /home/user/mingfeng_wu/installed/crosstool-4.5.2/bin/arm-unknown-linux-uclibcgnueabi-gcc
set_board_info cflags ""
# Network address of board
set_board_info hostname 172.18.116.241
# How to log into this board via ssh and copy files via scp.
# Ideally, you'll set it up to not need a password to log in via ssh
# (see e.g. http://www-csli.stanford.edu/semlab/muri/system/howto/ssh.html).
set_board_info username root
#set_board_info shell_prompt "[root@platform]#"
# For DejaGnu 1.4.3 and above; DejaGnu 1.4.2.x (Debian 3.0) ignores these settings!
set_board_info rsh_prog /usr/bin/ssh
set_board_info rcp_prog /usr/bin/scp
6) test_installed.remote
#! /bin/sh
# (C) 1998, 2000, 2002, 2003, 2007 Free Software Foundation
# Originally by Alexandre Oliva <oliva@dcc.unicamp.br>
# This script is Free Software, and it can be copied, distributed and
# modified as defined in the GNU General Public License. A copy of
# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
# This scripts assumes it lives in the contrib directory of the GCC
# source tree, so it will find the testsuite tree from its location.
# If you move it elsewhere, or want to use another testsuite tree, you
# can override the defaults with --srcdir=/some/dir/GCC or
# --testsuite=/some/dir/GCC/gcc/testsuite. If you specify
# --testsuite, --srcdir will be ignored; otherwise, `/gcc/testsuite'
# will be appended to the srcdir.
# You may specify where the binaries to be tested should be picked up
# from. If you specify --prefix=/some/dir, gcc, g++ and gfortran will be
# looked for at /some/dir/bin. Each one may be overridden by
# specifying --with-gcc=/pathname/to/gcc, --with-g++=/pathname/to/g++
# and --with-gfortran=/pathname/to/gfortran. If you specify --without-gcc,
# --without-g++ or --without-gfortran, the test for the specified program
# will be skipped. By default, gcc, g++ and gfortran will be searched in
# the PATH.
# An additional argument may specify --tmpdir=/some/dir; by default,
# temporaries will be stored in the current directory, where the log
# files will be stored.
# The script will interpret arguments until it finds one it does not
# understand. The remaining ones will be passed to `runtest'. A
# double-dash can be used to explicitly separate the arguments to
# `test_installed' from the ones to `runtest'.
# This script should be run in an empty directory; it will refuse to
# run if it finds a file named site.exp in the current directory.
if test -f site.exp; then
echo site.exp already exists >&2
exit 1
fi
while true; do
case "$1" in
--with-testsuite=*) testsuite=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--srcdir=*) srcdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--prefix=*) prefix=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--with-gcc=*) GCC_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--with-g++=*) GXX_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--with-gfortran=*) GFORTRAN_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--without-gcc) GCC_UNDER_TEST=no; shift;;
--without-g++) GXX_UNDER_TEST=no; shift;;
--without-gfortran) GFORTRAN_UNDER_TEST=no; shift;;
--without-objc) OBJC_UNDER_TEST=no; shift;;
--tmpdir=*) tmpdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--help) cat <<\EOF
Runs the testsuite for an installed version of gcc/g++/gfortran/objc
Copyright (C) 1998 Free Software Foundation
by Alexandre Oliva <oliva@dcc.unicamp.br>
Supported arguments:
--help prints this page
--with-testsuite=/some/dir/gcc/testsuite specify the testsuite directory
--srcdir=/some/dir same as --with-testsuite=/some/dir/gcc/testsuite
[deduced from shell-script pathname]
--prefix=/some/dir use gcc, g++ and gfortran from /some/dir/bin [PATH]
--with-gcc=/some/dir/bin/gcc use specified gcc program [gcc]
--with-g++=/some/dir/bin/g++ use specified g++ program [g++]
--with-gfortran=/some/dir/bin/gfortran use specified gfortran program [gfortran]
--without-gcc do not run gcc testsuite
--without-g++ do not run g++ testsuite
--without-gfortran do not run gfortran testsuite
--without-objc do not run objc testsuite
--tmpdir=/some/dir create temporaries and leave failed programs
at specified directory [.]
-- end of argument list; following arguments are passed to runtest
EOF
exit
;;
--) shift; break;;
*) break;;
esac
done
if test x"${testsuite+set}" != x"set" && test x"${srcdir+set}" != x"set"; then
file=$0
while [ -h $file ]; do
file=`ls -l $file | sed s/'.* -> '//`
done
srcdir=`CDPATH=. && cd \`echo "$file" | sed 's,/*[^/]*$,,;s,^$,.,'\`/.. >/dev/null && ${PWDCMD-pwd}`
fi
CROSS_COMPILE=arm-unknown-linux-uclibcgnueabi-
cat >site.exp <<EOF
lappend boards_dir "/root/toolchain/gcc-test"
lappend boards_dir "/usr/share/dejagnu"
set rootme "."
set tmpdir "${tmpdir-`${PWDCMD-pwd}`}"
set srcdir "${testsuite-${srcdir}/gcc/testsuite}"
set CFLAGS ""
set CXXFLAGS ""
set HOSTCC "cc"
set HOSTCFLAGS ""
set GCC_UNDER_TEST "${GCC_UNDER_TEST-${prefix}${prefix+/bin/}${CROSS_COMPILE}gcc}"
set GXX_UNDER_TEST "${GXX_UNDER_TEST-${prefix}${prefix+/bin/}${CROSS_COMPILE}g++}"
set GFORTRAN_UNDER_TEST "${GFORTRAN_UNDER_TEST-${prefix}${prefix+/bin/}${CROSS_COMPILE}gfortran}"
set OBJC_UNDER_TEST "${OBJC_UNDER_TEST-${prefix}${prefix+/bin/}${CROSS_COMPILE}gcc}"
set target_triplet arm-unknown-linux-uclibcgnueabi
set target_alias arm-none-linux-uclibcgnueabi
EOF
test x"${GCC_UNDER_TEST}" = x"no" || runtest --tool gcc ${1+"$@"}
test x"${GXX_UNDER_TEST}" = x"no" || runtest --tool g++ ${1+"$@"}
test x"${GFORTRAN_UNDER_TEST}" = x"no" || runtest --tool gfortran ${1+"$@"}
test x"${OBJC_UNDER_TEST}" = x"no" || runtest --tool objc ${1+"$@"}
exit 0
7) run-gcc-4.5.2-sshscp.sh
#!/bin/bash
# increase stack size to 64MB to prevent limits-exprparen.c from segmentation fault
ulimit -s 65536
DATE=`date +%Y%m%d`
GCC=/home/user/mingfeng_wu/installed/crosstool-4.5.2
REGRESSION=/home/user/mingfeng_wu/work/GCC
rm -rf $REGRESSION/gcc-regression-test-${DATE}
mkdir -p $REGRESSION/gcc-regression-test-${DATE}
cd $REGRESSION/gcc-regression-test-${DATE}
DEJAGNULIBS="/usr/share/dejagnu" sh $REGRESSION/gcc-4.5.2/contrib/test_installed.remote --srcdir=$REGRESSION/gcc-4.5.2 --without-gfortran --without-objc --wi
th-gcc=${GCC}/bin/arm-unknown-linux-uclibcgnueabi-gcc --with-g++=${GCC}/bin/arm-unknown-linux-uclibcgnueabi-g++ --target_board=gcc-4.5.2-no-mtune-sshscp
8) For arm-unknown-linux-uclibcgnueabi-* toolchain to run gcc regression test
[mingfeng, 2011-11-07]
In host-Linux (not embedded Linux):
1. Do ssh/sftp transparent login. Please see "readme.ssh-transparent-login".
2. Copy "gcc-4.5.2-sshscp.exp" to /usr/share/dejagnu.
3. Copy "test_installed.remote" to gcc-4.5.2/contrib/.
4. Run script file "run-gcc-4.5.2-sshscp.sh"
5. Generate log
$ cd gcc-regression-test-20111107
$ ../gcc-4.5.2/contrib/test_summary > gcc-4.5.2-test_summary.log
(x86)
./configure --prefix=/home/user/mingfeng_wu/installed/zlib
make clean
make
make install
(ARM)
./configure --prefix=/home/user/mingfeng_wu/installed/arm-uc-zlib
# !!!Modify Makefile manually
# -CC=gcc
# +CROSS=/home/user/mingfeng_wu/installed/crosstool-4.5.2/bin/arm-unknown-linux-uclibcgnueabi-
# +CC=$(CROSS)gcc
# -LDSHARED=gcc
# -CPP=gcc -E
# +LDSHARED=$(CROSS)gcc
# +CPP=$(CROSS)gcc -E
# -AR=ar rc
# +AR=$(CROSS)ar rc
# -RANLIB=ranlib
# +RANLIB=$(CROSS)ranlib
make clean
make
make install
2) Compile openssl-1.0.0d
(x86)
./Configure --prefix=/home/user/mingfeng_wu/installed/openssl os/compiler:gcc
make clean
make
make install
(ARM)
./Configure --prefix=/home/user/mingfeng_wu/installed/arm-uc-openssl os/compiler:arm-unknown-linux-uclibcgnueabi-gcc
make clean
make
make install
3) Compile openssh-5.9p1
Modify sshd_config with "Subsystem sftp /usr/local/libexec/sftp-server"
(x86)
./configure --prefix=/home/user/mingfeng_wu/installed/openssh \
--with-libs \
--with-zlib=/home/user/mingfeng_wu/installed/zlib \
--with-ssl-dir=/home/user/mingfeng_wu/installed/openssl \
--disable-etc-default-login \
CC=gcc \
AR=ar \
RANLIB=ranlib
make clean
make
make install
(ARM)
./configure --host=arm-unknown-linux-uclibcgnueabi \
--with-libs \
--with-zlib=/home/user/mingfeng_wu/installed/arm-uc-zlib \
--with-ssl-dir=/home/user/mingfeng_wu/installed/arm-uc-openssl \
--disable-etc-default-login \
CC=arm-unknown-linux-uclibcgnueabi-gcc \
AR=arm-unknown-linux-uclibcgnueabi-ar \
RANLIB=arm-unknown-linux-uclibcgnueabi-ranlib
make clean
make
/home/user/mingfeng/installed/crosstool-4.5.2/bin/arm-linux-strip scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan sftp-server ssh-key
sign sshd
4) readme.ssh-transparent-login
1. Generate on your LOCAL machine a keypair with:
# ssh-keygen -t rsa (dont type in any password, just keep hitting enter) .
This will generate public/private rsa key pair in the directory of /root/.ssh:
/root/.ssh/id_rsa (private key)
/root/.ssh/id_rsa.pub (public key)
2. Make sure your private key resides under /root/.ssh on your LOCAL machine.
3. Also transfer the PRIVATE key to the machine which you want to automatically
login to. Put it under the directory /usr/local/etc.
4. Transfer the PUBLIC key to the machine which you want to automatically login to.
Under the directory /root/.ssh (create it if necessary) concatenate your public key
with the file authorized_keys (create file if needed) .
5. Make sure the authorized_keys on the REMOTE machine is not read or modifiable by
group or others by doing chmod 700 /root/.ssh/authorized_keys.
6. Make sure the /root/.ssh directory on the REMOTE machine is not read or modifiable
by group or others by doing chmod 700 /root/.ssh
7. You may need to enable empty password authentication (need root access) on the
REMOTE machine in the config file sshd_config. Make "Permitemptypasswords yes".
You also need to modify "Protocol 2,1" to "Protocol 2" and modify "HostKey
/etc/ssh/ssh_host_rsa_key" to "/usr/local/etc/id_rsa". Please refer to the attached.
8. Restart /usr/local/sbin/sshd daemon on REMOTE, and you can automatically login with
ssh/sftp without password on LOCAL.
5) gcc-4.5.2-no-mtune-sshscp.exp
# Board definition file for board "myboard_sshscp"
# How to compile C programs for this board
set_board_info compiler /home/user/mingfeng_wu/installed/crosstool-4.5.2/bin/arm-unknown-linux-uclibcgnueabi-gcc
set_board_info cflags ""
# Network address of board
set_board_info hostname 172.18.116.241
# How to log into this board via ssh and copy files via scp.
# Ideally, you'll set it up to not need a password to log in via ssh
# (see e.g. http://www-csli.stanford.edu/semlab/muri/system/howto/ssh.html).
set_board_info username root
#set_board_info shell_prompt "[root@platform]#"
# For DejaGnu 1.4.3 and above; DejaGnu 1.4.2.x (Debian 3.0) ignores these settings!
set_board_info rsh_prog /usr/bin/ssh
set_board_info rcp_prog /usr/bin/scp
6) test_installed.remote
#! /bin/sh
# (C) 1998, 2000, 2002, 2003, 2007 Free Software Foundation
# Originally by Alexandre Oliva <oliva@dcc.unicamp.br>
# This script is Free Software, and it can be copied, distributed and
# modified as defined in the GNU General Public License. A copy of
# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
# This scripts assumes it lives in the contrib directory of the GCC
# source tree, so it will find the testsuite tree from its location.
# If you move it elsewhere, or want to use another testsuite tree, you
# can override the defaults with --srcdir=/some/dir/GCC or
# --testsuite=/some/dir/GCC/gcc/testsuite. If you specify
# --testsuite, --srcdir will be ignored; otherwise, `/gcc/testsuite'
# will be appended to the srcdir.
# You may specify where the binaries to be tested should be picked up
# from. If you specify --prefix=/some/dir, gcc, g++ and gfortran will be
# looked for at /some/dir/bin. Each one may be overridden by
# specifying --with-gcc=/pathname/to/gcc, --with-g++=/pathname/to/g++
# and --with-gfortran=/pathname/to/gfortran. If you specify --without-gcc,
# --without-g++ or --without-gfortran, the test for the specified program
# will be skipped. By default, gcc, g++ and gfortran will be searched in
# the PATH.
# An additional argument may specify --tmpdir=/some/dir; by default,
# temporaries will be stored in the current directory, where the log
# files will be stored.
# The script will interpret arguments until it finds one it does not
# understand. The remaining ones will be passed to `runtest'. A
# double-dash can be used to explicitly separate the arguments to
# `test_installed' from the ones to `runtest'.
# This script should be run in an empty directory; it will refuse to
# run if it finds a file named site.exp in the current directory.
if test -f site.exp; then
echo site.exp already exists >&2
exit 1
fi
while true; do
case "$1" in
--with-testsuite=*) testsuite=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--srcdir=*) srcdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--prefix=*) prefix=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--with-gcc=*) GCC_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--with-g++=*) GXX_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--with-gfortran=*) GFORTRAN_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--without-gcc) GCC_UNDER_TEST=no; shift;;
--without-g++) GXX_UNDER_TEST=no; shift;;
--without-gfortran) GFORTRAN_UNDER_TEST=no; shift;;
--without-objc) OBJC_UNDER_TEST=no; shift;;
--tmpdir=*) tmpdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--help) cat <<\EOF
Runs the testsuite for an installed version of gcc/g++/gfortran/objc
Copyright (C) 1998 Free Software Foundation
by Alexandre Oliva <oliva@dcc.unicamp.br>
Supported arguments:
--help prints this page
--with-testsuite=/some/dir/gcc/testsuite specify the testsuite directory
--srcdir=/some/dir same as --with-testsuite=/some/dir/gcc/testsuite
[deduced from shell-script pathname]
--prefix=/some/dir use gcc, g++ and gfortran from /some/dir/bin [PATH]
--with-gcc=/some/dir/bin/gcc use specified gcc program [gcc]
--with-g++=/some/dir/bin/g++ use specified g++ program [g++]
--with-gfortran=/some/dir/bin/gfortran use specified gfortran program [gfortran]
--without-gcc do not run gcc testsuite
--without-g++ do not run g++ testsuite
--without-gfortran do not run gfortran testsuite
--without-objc do not run objc testsuite
--tmpdir=/some/dir create temporaries and leave failed programs
at specified directory [.]
-- end of argument list; following arguments are passed to runtest
EOF
exit
;;
--) shift; break;;
*) break;;
esac
done
if test x"${testsuite+set}" != x"set" && test x"${srcdir+set}" != x"set"; then
file=$0
while [ -h $file ]; do
file=`ls -l $file | sed s/'.* -> '//`
done
srcdir=`CDPATH=. && cd \`echo "$file" | sed 's,/*[^/]*$,,;s,^$,.,'\`/.. >/dev/null && ${PWDCMD-pwd}`
fi
CROSS_COMPILE=arm-unknown-linux-uclibcgnueabi-
cat >site.exp <<EOF
lappend boards_dir "/root/toolchain/gcc-test"
lappend boards_dir "/usr/share/dejagnu"
set rootme "."
set tmpdir "${tmpdir-`${PWDCMD-pwd}`}"
set srcdir "${testsuite-${srcdir}/gcc/testsuite}"
set CFLAGS ""
set CXXFLAGS ""
set HOSTCC "cc"
set HOSTCFLAGS ""
set GCC_UNDER_TEST "${GCC_UNDER_TEST-${prefix}${prefix+/bin/}${CROSS_COMPILE}gcc}"
set GXX_UNDER_TEST "${GXX_UNDER_TEST-${prefix}${prefix+/bin/}${CROSS_COMPILE}g++}"
set GFORTRAN_UNDER_TEST "${GFORTRAN_UNDER_TEST-${prefix}${prefix+/bin/}${CROSS_COMPILE}gfortran}"
set OBJC_UNDER_TEST "${OBJC_UNDER_TEST-${prefix}${prefix+/bin/}${CROSS_COMPILE}gcc}"
set target_triplet arm-unknown-linux-uclibcgnueabi
set target_alias arm-none-linux-uclibcgnueabi
EOF
test x"${GCC_UNDER_TEST}" = x"no" || runtest --tool gcc ${1+"$@"}
test x"${GXX_UNDER_TEST}" = x"no" || runtest --tool g++ ${1+"$@"}
test x"${GFORTRAN_UNDER_TEST}" = x"no" || runtest --tool gfortran ${1+"$@"}
test x"${OBJC_UNDER_TEST}" = x"no" || runtest --tool objc ${1+"$@"}
exit 0
7) run-gcc-4.5.2-sshscp.sh
#!/bin/bash
# increase stack size to 64MB to prevent limits-exprparen.c from segmentation fault
ulimit -s 65536
DATE=`date +%Y%m%d`
GCC=/home/user/mingfeng_wu/installed/crosstool-4.5.2
REGRESSION=/home/user/mingfeng_wu/work/GCC
rm -rf $REGRESSION/gcc-regression-test-${DATE}
mkdir -p $REGRESSION/gcc-regression-test-${DATE}
cd $REGRESSION/gcc-regression-test-${DATE}
DEJAGNULIBS="/usr/share/dejagnu" sh $REGRESSION/gcc-4.5.2/contrib/test_installed.remote --srcdir=$REGRESSION/gcc-4.5.2 --without-gfortran --without-objc --wi
th-gcc=${GCC}/bin/arm-unknown-linux-uclibcgnueabi-gcc --with-g++=${GCC}/bin/arm-unknown-linux-uclibcgnueabi-g++ --target_board=gcc-4.5.2-no-mtune-sshscp
8) For arm-unknown-linux-uclibcgnueabi-* toolchain to run gcc regression test
[mingfeng, 2011-11-07]
In host-Linux (not embedded Linux):
1. Do ssh/sftp transparent login. Please see "readme.ssh-transparent-login".
2. Copy "gcc-4.5.2-sshscp.exp" to /usr/share/dejagnu.
3. Copy "test_installed.remote" to gcc-4.5.2/contrib/.
4. Run script file "run-gcc-4.5.2-sshscp.sh"
5. Generate log
$ cd gcc-regression-test-20111107
$ ../gcc-4.5.2/contrib/test_summary > gcc-4.5.2-test_summary.log
訂閱:
文章 (Atom)