As can be seen in the image, the memory dump is represented wrong.
but when i check the differentation of the virtual and physical memory addresses:
uint32_t kernel_size_phy =
kmlimits->kernel_physical_end - kmlimits->kernel_physical_start;
uint32_t kernel_size_virt =
kmlimits->kernel_virtual_end - kmlimits->kernel_virtual_start;
qemu_write_string("%s Cheking kernel size...\n", INFORMATION_OUTPUT);
if (kernel_size_phy != kernel_size_virt) {
panic("Kernel Memmory Error", "paging.c");
} else {
qemu_write_string("%s Kernel Size -> HEX: 0x%x DEC: %d\n",
INFORMATION_OUTPUT, kernel_size_phy,
kernel_size_phy);
}
There is no problem at all. The virtual and phycial memory differentation is equal. So the representation of unsigned values especially the valus is grows is problematic. Needed to fixed and printf/qemu_write_string code refactored.