freebsd-dev/sys
Konstantin Belousov d6717f8778 amd64: rework AP startup
Stop using temporal page table with 1:1 mapping of low 1G populated over
the whole VA.  Use 1:1 mapping of low 4G temporarily installed in the
normal kernel page table.

The features are:
- now there is one less step for startup asm to perform
- the startup code still needs to be at lower 1G because CPU starts in
  real mode. But everything else can be located anywhere in low 4G
  because it is accessed by non-paged 32bit protected mode.  Note that
  kernel page table root page is at low 4G, as well as the kernel itself.
- the page table pages can be allocated by normal allocator, there is
  no need to carve them from the phys_avail segments at very early time.
  The allocation of the page for startup code still requires some magic.
  Pages are freed after APs are ignited.
- la57 startup for APs is less tricky, we directly load the final page
  table and do not need to tweak the paging mode.

Reviewed by:	markj
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D31121
2021-07-27 20:11:15 +03:00
..
amd64 amd64: rework AP startup 2021-07-27 20:11:15 +03:00
arm allwinner: rsb: Set the PMIC to RSB mode 2021-07-24 17:46:25 +02:00
arm64 linux: implement sigaltstack(2) on arm64 2021-07-27 13:34:49 +00:00
bsm
cam cam: clear stack-allocated CCB in the target layer 2021-07-21 10:18:28 +01:00
cddl
compat linuxkpi: remove global atomic counter of the task allocations 2021-07-27 20:01:19 +03:00
conf pf: fix LINT build 2021-07-20 18:08:30 +02:00
contrib ena: Remove redundant declaration of ena_log_level. 2021-07-23 16:07:35 -07:00
crypto crypto: Constify all transform descriptors 2021-07-26 16:41:05 -04:00
ddb
dev /dev/pci: clarify meaning of writeable file descriptor 2021-07-27 12:13:43 +03:00
dts arm64: allwinner: dtbo: Add dtb overlays to disable mmc node 2021-07-24 22:53:33 +02:00
fs nullfs: provide custom null_rename bypass 2021-07-27 19:58:48 +03:00
gdb
geom geom_disk: use a preallocated geom_event for disk destruction. 2021-07-23 18:08:52 -06:00
gnu
i386 linux: implement sigaltstack(2) on arm64 2021-07-27 13:34:49 +00:00
isa newbus: Move from bus_child_{pnpinfo,location}_src to bus_child_{pnpinfo,location} with sbuf 2021-06-22 20:52:06 -06:00
kern m_dup: Handle unmapped mbufs as an input mbuf. 2021-07-26 14:09:16 -07:00
kgssapi
libkern Switch to an ifunc in the kernel for crc32c 2021-07-22 20:54:21 +00:00
mips Pass the syscall number to capsicum permission-denied signals 2021-07-16 18:06:44 +01:00
modules linux(4): Fix amd64 gcc build. 2021-07-26 22:28:21 +03:00
net vlan: deduplicate bpf_setpcp() and pf_ieee8021q_setpcp() 2021-07-26 23:13:31 +02:00
net80211 net80211: ieee80211_probereq_ie fix length calculation for hw scans 2021-06-28 12:17:11 +00:00
netgraph Consistently use the SOLISTENING() macro 2021-06-14 17:32:27 -04:00
netinet netdump: Fix leaking debugnet state on errors. 2021-07-27 09:06:23 -07:00
netinet6 sctp: Fix errno in case of association setup failures 2021-07-09 23:19:25 +02:00
netipsec ipsec: globalize lft zone and zero out buffers at allocation time 2021-06-28 08:14:26 +00:00
netpfil vlan: deduplicate bpf_setpcp() and pf_ieee8021q_setpcp() 2021-07-26 23:13:31 +02:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed Fix LINT kernel build issues after c3987b8ea7 . 2021-07-12 18:00:30 +02:00
opencrypto crypto: Constify all transform descriptors 2021-07-26 16:41:05 -04:00
powerpc powerpc64: add Power8 and Power9 PMCs 2021-07-26 10:27:23 -03:00
riscv riscv: Fix pmap_kextract racing with concurrent superpage promotion/demotion 2021-07-22 20:02:14 +01:00
rpc Consistently use the SOLISTENING() macro 2021-06-14 17:32:27 -04:00
security mac: cheaper check for ifnet_create_mbuf and ifnet_check_transmit 2021-06-29 15:06:45 +02:00
sys VFS: remove MNTK_MARKER 2021-07-24 12:52:32 -07:00
teken
tests tests: Revise FIB lookups per second benchmarking routines 2021-06-17 08:49:09 +02:00
tools
ufs FFS: remove ffs_fsfail_task 2021-07-24 12:52:41 -07:00
vm redzone: Raise a compile error if KASAN is configured 2021-07-23 10:47:13 -04:00
x86 amd64: rework AP startup 2021-07-27 20:11:15 +03:00
xdr
xen
Makefile