Это не обязательно 0, потому что в некоторых архитектурах ЦП физический адрес используется для доступа к вещам, которые не являются памятью. Процессор может узнать, какой интерфейс или шину использовать, разделив карту памяти.
Я не знаю архитектуру x86, но на ARM, например, у вас могут быть такие вещи:
- от 0x00000000 до 0x0fffffff, внешняя вспышка доступна.
- от 0x10000000 до 0x1000ffff, доступ к регистру отображения внутренней памяти
- от 0x80000000 до 0x9fffffff, sdram или ddr.
В этом случае phys_base будет 0x80000000.
Так что это определяется процессором или чипсетом на x86. См. this для примера.
карта памяти.