Make physmap gobal so pmap_bootstrap can use it.
While here make unsigned values unsigned.
Export physmap and physmap_idx
Replace panic with printf in spinlock_{enter,exit} as panic makes use of
spinlocks.
Add the initialisation for the pcpu data.
Flesh out the early pmap code more, start to allocate early address space.
Check if the end address is within the new range before using it.
 * Switch to a fixed value for VM_MAX_KERNEL_ADDRESS.
 * Add a dmap range to be used by pmap_map
 * Add PHYS_AVAIL_SIZE to size the phys_avail array
 * Set thread0 ad the current thread on boot
Update pmap_bootstrap:
 * Stop passing empty ranges to phys_avail
 * When splitting phys_avail use the correct end address
 * Add the memory after the kernel and early allocations to phys_avail
 * Use the correct address in pmap_early_page_idx
 * Add the offset within the l2 map to pmap_early_vtophys
 * Add a direct mapped range and use it with pmap_map
Add / to the search path as semihosting only works from the root directory
Implement spinlocks
Add the missing md_saved_daif from the mdthread structure
Pass a stack of KSTACK_PAGES pages into initarm
More early initialisation.
Define INLINE_LIMIT and disable -fstack-protector for arm64.
Use objcopy and objdump, instead of my copies of them
Branch to mi_startup after initial setup
Stop using memset in bzero, memset calls bzero
Update pmap implementing more functions as they have been found
Add more of pmap. pmap_enter is only partially implemented however it is
enough to get further through the boot process.