core/driver: Switch hypervisor to fixed virtual address layout

Now that the driver always puts us at the same virtual address, we can
compile this into the hypervisor as well. On x86, we switch to the code
model "kernel", i.e. all virtual addresses have the higher 32 bits set.
This allows to drop -fpic and -fpie, the global offset table. And the
entry field in the header is now absolute.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
TODO: Update

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
driver: Rename source file

It's a single module, and it will likely stay such, so give it a more
specific name.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
core: Add functions to read/write field values of 32/64-bit registers

The following aims are obtained using these functions: making a register
description to be uniform, easy reading/writing field values without using bit
operations, making the code more readable, preventing casual changes of
register content.

Signed-off-by: Ivan Kolchin <ivan.kolchin@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
x86: Fix a bug with writing zeros to register IOTLB_REG containing RsvdP field

Register IOTLB_REG contains RsvdP fields. Their values must be preserved on writing
in accordance with the specification. Operations having accessed to this kind of
registers in unsafe way were replaced by means of new helpers.

Signed-off-by: Ivan Kolchin <ivan.kolchin@siemens.com>
[Jan: style fix of VTD_IOTLB_R_MASK]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
x86: Drop no longer used includes

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>