从boot/mmu.c看到页表的映射是按
ttbr0: 0-0x20000000(memory) 0x20000000-0x40000000(device)
ttbr1: 0-0x10000000(memory) 0x20000000-0x40000000(device)
然后根据运行系统可以看到物理内存data的范围是在
0xffffff00000a0000-0xffffff0020c00000
第一个疑问:按照我的理解,ttbr1应该是内核页表,内核的虚拟位置和物理位置是一个固定的偏移0xffffff,那么0xffffff0020c00000的物理位置是0x20c00000,同理0xffffff00000a0000为0x000a0000,这个范围在ttbr1中被映射为normal memory和device memory让我非常疑惑?这里是不是我的理解有问题?
第二个疑问是ttbr0和ttbr1的关系是什么呀 或者说ttbr0是有什么作用呢 我只在注释上看到了Raspi3b的字眼