#
1.24 |
|
07-Feb-2024 |
msaitoh |
Remove ryo@'s mail addresses.
|
Revision tags: netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
|
#
1.23 |
|
22-Sep-2022 |
ryo |
oops, my previous commit is bad. revert previous. <frame-address> is a frame pointer, not a trapframe, and it worked correctly. (e.g., trace $x29)
|
#
1.22 |
|
22-Sep-2022 |
ryo |
Specifying the frame address "trace <frame-address>" was not working.
|
#
1.21 |
|
22-Sep-2022 |
ryo |
If there was a "bl <func>" instruction at the end of a function block, the stack analysis backtrace (bt/s) would fail because $lr would point to the beginning of the next function.
|
#
1.20 |
|
19-Sep-2022 |
ryo |
Fixed stack analyzing backtrace (bt/s) correctly for nested trapframes.
|
#
1.19 |
|
07-Jun-2022 |
ryo |
Functionalize frame pointer backtrace.
|
#
1.18 |
|
07-Jun-2022 |
ryo |
On aarch64, ddb backtrace can be performed without framepointer by specifying the /s modifier to the ddb trace command (trace/s, bt/s). The default is trace with framepointer (same as before).
This allows backtracing even on kernels compiled with -fomit-frame-pointer.
|
#
1.17 |
|
02-Jun-2022 |
ryo |
tidy up backtrace from crash(9) on aarch64
- fix to dump trapframe when backtracing from crash(8). - use db_read_bytes() when reading kernel memory.
|
#
1.16 |
|
29-May-2022 |
ryo |
Display the trap type of trapframe when backtracing.
|
#
1.15 |
|
29-May-2022 |
ryo |
Simplified termination conditions for ddb backtrace.
Exit backtrace when the user trapframe is invalid. (Mainly in kernel threads).
|
#
1.14 |
|
27-Nov-2021 |
riastradh |
aarch64: Fix stack traces from jump-to-null.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.13 |
|
11-Dec-2020 |
skrll |
s:aarch64/cpufunc.h:arm/cpufunc.h:
a baby step in the grand arm header unification challenge
|
#
1.12 |
|
27-Jun-2020 |
rin |
branches: 1.12.2; Fix build failure due to -Werror=stack-usage.
Use db_read_bytes() against particular member of structure in use, by which we can avoid to have whole structure in the stack.
Now, stack usage shrinks: 4240 --> 1296
|
#
1.11 |
|
22-May-2020 |
ryo |
fix to do backtrace properly for running LWPs and cpu_lwp_fork(). when dump of pcb_tf, only the switchframe part is now displayed instead of the whole trapframe.
|
#
1.10 |
|
13-May-2020 |
ryo |
- move aarch64 addressspace macros from pmap.h to cpufunc.h - rename ptr_strip_pac() to aarch64_strip_pac()
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
branches: 1.8.10; Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
#
1.23 |
|
22-Sep-2022 |
ryo |
oops, my previous commit is bad. revert previous. <frame-address> is a frame pointer, not a trapframe, and it worked correctly. (e.g., trace $x29)
|
#
1.22 |
|
22-Sep-2022 |
ryo |
Specifying the frame address "trace <frame-address>" was not working.
|
#
1.21 |
|
22-Sep-2022 |
ryo |
If there was a "bl <func>" instruction at the end of a function block, the stack analysis backtrace (bt/s) would fail because $lr would point to the beginning of the next function.
|
#
1.20 |
|
19-Sep-2022 |
ryo |
Fixed stack analyzing backtrace (bt/s) correctly for nested trapframes.
|
#
1.19 |
|
07-Jun-2022 |
ryo |
Functionalize frame pointer backtrace.
|
#
1.18 |
|
07-Jun-2022 |
ryo |
On aarch64, ddb backtrace can be performed without framepointer by specifying the /s modifier to the ddb trace command (trace/s, bt/s). The default is trace with framepointer (same as before).
This allows backtracing even on kernels compiled with -fomit-frame-pointer.
|
#
1.17 |
|
02-Jun-2022 |
ryo |
tidy up backtrace from crash(9) on aarch64
- fix to dump trapframe when backtracing from crash(8). - use db_read_bytes() when reading kernel memory.
|
#
1.16 |
|
29-May-2022 |
ryo |
Display the trap type of trapframe when backtracing.
|
#
1.15 |
|
29-May-2022 |
ryo |
Simplified termination conditions for ddb backtrace.
Exit backtrace when the user trapframe is invalid. (Mainly in kernel threads).
|
#
1.14 |
|
27-Nov-2021 |
riastradh |
aarch64: Fix stack traces from jump-to-null.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.13 |
|
11-Dec-2020 |
skrll |
s:aarch64/cpufunc.h:arm/cpufunc.h:
a baby step in the grand arm header unification challenge
|
#
1.12 |
|
27-Jun-2020 |
rin |
branches: 1.12.2; Fix build failure due to -Werror=stack-usage.
Use db_read_bytes() against particular member of structure in use, by which we can avoid to have whole structure in the stack.
Now, stack usage shrinks: 4240 --> 1296
|
#
1.11 |
|
22-May-2020 |
ryo |
fix to do backtrace properly for running LWPs and cpu_lwp_fork(). when dump of pcb_tf, only the switchframe part is now displayed instead of the whole trapframe.
|
#
1.10 |
|
13-May-2020 |
ryo |
- move aarch64 addressspace macros from pmap.h to cpufunc.h - rename ptr_strip_pac() to aarch64_strip_pac()
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
branches: 1.8.10; Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
#
1.20 |
|
19-Sep-2022 |
ryo |
Fixed stack analyzing backtrace (bt/s) correctly for nested trapframes.
|
#
1.19 |
|
07-Jun-2022 |
ryo |
Functionalize frame pointer backtrace.
|
#
1.18 |
|
07-Jun-2022 |
ryo |
On aarch64, ddb backtrace can be performed without framepointer by specifying the /s modifier to the ddb trace command (trace/s, bt/s). The default is trace with framepointer (same as before).
This allows backtracing even on kernels compiled with -fomit-frame-pointer.
|
#
1.17 |
|
02-Jun-2022 |
ryo |
tidy up backtrace from crash(9) on aarch64
- fix to dump trapframe when backtracing from crash(8). - use db_read_bytes() when reading kernel memory.
|
#
1.16 |
|
29-May-2022 |
ryo |
Display the trap type of trapframe when backtracing.
|
#
1.15 |
|
29-May-2022 |
ryo |
Simplified termination conditions for ddb backtrace.
Exit backtrace when the user trapframe is invalid. (Mainly in kernel threads).
|
#
1.14 |
|
27-Nov-2021 |
riastradh |
aarch64: Fix stack traces from jump-to-null.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.13 |
|
11-Dec-2020 |
skrll |
s:aarch64/cpufunc.h:arm/cpufunc.h:
a baby step in the grand arm header unification challenge
|
#
1.12 |
|
27-Jun-2020 |
rin |
branches: 1.12.2; Fix build failure due to -Werror=stack-usage.
Use db_read_bytes() against particular member of structure in use, by which we can avoid to have whole structure in the stack.
Now, stack usage shrinks: 4240 --> 1296
|
#
1.11 |
|
22-May-2020 |
ryo |
fix to do backtrace properly for running LWPs and cpu_lwp_fork(). when dump of pcb_tf, only the switchframe part is now displayed instead of the whole trapframe.
|
#
1.10 |
|
13-May-2020 |
ryo |
- move aarch64 addressspace macros from pmap.h to cpufunc.h - rename ptr_strip_pac() to aarch64_strip_pac()
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
branches: 1.8.10; Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
#
1.19 |
|
07-Jun-2022 |
ryo |
Functionalize frame pointer backtrace.
|
#
1.18 |
|
07-Jun-2022 |
ryo |
On aarch64, ddb backtrace can be performed without framepointer by specifying the /s modifier to the ddb trace command (trace/s, bt/s). The default is trace with framepointer (same as before).
This allows backtracing even on kernels compiled with -fomit-frame-pointer.
|
#
1.17 |
|
02-Jun-2022 |
ryo |
tidy up backtrace from crash(9) on aarch64
- fix to dump trapframe when backtracing from crash(8). - use db_read_bytes() when reading kernel memory.
|
#
1.16 |
|
29-May-2022 |
ryo |
Display the trap type of trapframe when backtracing.
|
#
1.15 |
|
29-May-2022 |
ryo |
Simplified termination conditions for ddb backtrace.
Exit backtrace when the user trapframe is invalid. (Mainly in kernel threads).
|
#
1.14 |
|
27-Nov-2021 |
riastradh |
aarch64: Fix stack traces from jump-to-null.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.13 |
|
11-Dec-2020 |
skrll |
s:aarch64/cpufunc.h:arm/cpufunc.h:
a baby step in the grand arm header unification challenge
|
#
1.12 |
|
27-Jun-2020 |
rin |
branches: 1.12.2; Fix build failure due to -Werror=stack-usage.
Use db_read_bytes() against particular member of structure in use, by which we can avoid to have whole structure in the stack.
Now, stack usage shrinks: 4240 --> 1296
|
#
1.11 |
|
22-May-2020 |
ryo |
fix to do backtrace properly for running LWPs and cpu_lwp_fork(). when dump of pcb_tf, only the switchframe part is now displayed instead of the whole trapframe.
|
#
1.10 |
|
13-May-2020 |
ryo |
- move aarch64 addressspace macros from pmap.h to cpufunc.h - rename ptr_strip_pac() to aarch64_strip_pac()
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
branches: 1.8.10; Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
#
1.18 |
|
07-Jun-2022 |
ryo |
On aarch64, ddb backtrace can be performed without framepointer by specifying the /s modifier to the ddb trace command (trace/s, bt/s). The default is trace with framepointer (same as before).
This allows backtracing even on kernels compiled with -fomit-frame-pointer.
|
#
1.17 |
|
02-Jun-2022 |
ryo |
tidy up backtrace from crash(9) on aarch64
- fix to dump trapframe when backtracing from crash(8). - use db_read_bytes() when reading kernel memory.
|
#
1.16 |
|
29-May-2022 |
ryo |
Display the trap type of trapframe when backtracing.
|
#
1.15 |
|
29-May-2022 |
ryo |
Simplified termination conditions for ddb backtrace.
Exit backtrace when the user trapframe is invalid. (Mainly in kernel threads).
|
#
1.14 |
|
27-Nov-2021 |
riastradh |
aarch64: Fix stack traces from jump-to-null.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.13 |
|
11-Dec-2020 |
skrll |
s:aarch64/cpufunc.h:arm/cpufunc.h:
a baby step in the grand arm header unification challenge
|
#
1.12 |
|
27-Jun-2020 |
rin |
branches: 1.12.2; Fix build failure due to -Werror=stack-usage.
Use db_read_bytes() against particular member of structure in use, by which we can avoid to have whole structure in the stack.
Now, stack usage shrinks: 4240 --> 1296
|
#
1.11 |
|
22-May-2020 |
ryo |
fix to do backtrace properly for running LWPs and cpu_lwp_fork(). when dump of pcb_tf, only the switchframe part is now displayed instead of the whole trapframe.
|
#
1.10 |
|
13-May-2020 |
ryo |
- move aarch64 addressspace macros from pmap.h to cpufunc.h - rename ptr_strip_pac() to aarch64_strip_pac()
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
branches: 1.8.10; Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
#
1.17 |
|
02-Jun-2022 |
ryo |
tidy up backtrace from crash(9) on aarch64
- fix to dump trapframe when backtracing from crash(8). - use db_read_bytes() when reading kernel memory.
|
#
1.16 |
|
29-May-2022 |
ryo |
Display the trap type of trapframe when backtracing.
|
#
1.15 |
|
29-May-2022 |
ryo |
Simplified termination conditions for ddb backtrace.
Exit backtrace when the user trapframe is invalid. (Mainly in kernel threads).
|
#
1.14 |
|
27-Nov-2021 |
riastradh |
aarch64: Fix stack traces from jump-to-null.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.13 |
|
11-Dec-2020 |
skrll |
s:aarch64/cpufunc.h:arm/cpufunc.h:
a baby step in the grand arm header unification challenge
|
#
1.12 |
|
27-Jun-2020 |
rin |
branches: 1.12.2; Fix build failure due to -Werror=stack-usage.
Use db_read_bytes() against particular member of structure in use, by which we can avoid to have whole structure in the stack.
Now, stack usage shrinks: 4240 --> 1296
|
#
1.11 |
|
22-May-2020 |
ryo |
fix to do backtrace properly for running LWPs and cpu_lwp_fork(). when dump of pcb_tf, only the switchframe part is now displayed instead of the whole trapframe.
|
#
1.10 |
|
13-May-2020 |
ryo |
- move aarch64 addressspace macros from pmap.h to cpufunc.h - rename ptr_strip_pac() to aarch64_strip_pac()
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
branches: 1.8.10; Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
#
1.16 |
|
29-May-2022 |
ryo |
Display the trap type of trapframe when backtracing.
|
#
1.15 |
|
29-May-2022 |
ryo |
Simplified termination conditions for ddb backtrace.
Exit backtrace when the user trapframe is invalid. (Mainly in kernel threads).
|
#
1.14 |
|
27-Nov-2021 |
riastradh |
aarch64: Fix stack traces from jump-to-null.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.13 |
|
11-Dec-2020 |
skrll |
s:aarch64/cpufunc.h:arm/cpufunc.h:
a baby step in the grand arm header unification challenge
|
#
1.12 |
|
27-Jun-2020 |
rin |
branches: 1.12.2; Fix build failure due to -Werror=stack-usage.
Use db_read_bytes() against particular member of structure in use, by which we can avoid to have whole structure in the stack.
Now, stack usage shrinks: 4240 --> 1296
|
#
1.11 |
|
22-May-2020 |
ryo |
fix to do backtrace properly for running LWPs and cpu_lwp_fork(). when dump of pcb_tf, only the switchframe part is now displayed instead of the whole trapframe.
|
#
1.10 |
|
13-May-2020 |
ryo |
- move aarch64 addressspace macros from pmap.h to cpufunc.h - rename ptr_strip_pac() to aarch64_strip_pac()
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
branches: 1.8.10; Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
#
1.14 |
|
27-Nov-2021 |
riastradh |
aarch64: Fix stack traces from jump-to-null.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.13 |
|
11-Dec-2020 |
skrll |
s:aarch64/cpufunc.h:arm/cpufunc.h:
a baby step in the grand arm header unification challenge
|
#
1.12 |
|
27-Jun-2020 |
rin |
branches: 1.12.2; Fix build failure due to -Werror=stack-usage.
Use db_read_bytes() against particular member of structure in use, by which we can avoid to have whole structure in the stack.
Now, stack usage shrinks: 4240 --> 1296
|
#
1.11 |
|
22-May-2020 |
ryo |
fix to do backtrace properly for running LWPs and cpu_lwp_fork(). when dump of pcb_tf, only the switchframe part is now displayed instead of the whole trapframe.
|
#
1.10 |
|
13-May-2020 |
ryo |
- move aarch64 addressspace macros from pmap.h to cpufunc.h - rename ptr_strip_pac() to aarch64_strip_pac()
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
branches: 1.8.10; Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
#
1.13 |
|
11-Dec-2020 |
skrll |
s:aarch64/cpufunc.h:arm/cpufunc.h:
a baby step in the grand arm header unification challenge
|
Revision tags: thorpej-futex-base
|
#
1.12 |
|
27-Jun-2020 |
rin |
Fix build failure due to -Werror=stack-usage.
Use db_read_bytes() against particular member of structure in use, by which we can avoid to have whole structure in the stack.
Now, stack usage shrinks: 4240 --> 1296
|
#
1.11 |
|
22-May-2020 |
ryo |
fix to do backtrace properly for running LWPs and cpu_lwp_fork(). when dump of pcb_tf, only the switchframe part is now displayed instead of the whole trapframe.
|
#
1.10 |
|
13-May-2020 |
ryo |
- move aarch64 addressspace macros from pmap.h to cpufunc.h - rename ptr_strip_pac() to aarch64_strip_pac()
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
branches: 1.8.10; Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
#
1.12 |
|
27-Jun-2020 |
rin |
Fix build failure due to -Werror=stack-usage.
Use db_read_bytes() against particular member of structure in use, by which we can avoid to have whole structure in the stack.
Now, stack usage shrinks: 4240 --> 1296
|
#
1.11 |
|
22-May-2020 |
ryo |
fix to do backtrace properly for running LWPs and cpu_lwp_fork(). when dump of pcb_tf, only the switchframe part is now displayed instead of the whole trapframe.
|
#
1.10 |
|
13-May-2020 |
ryo |
- move aarch64 addressspace macros from pmap.h to cpufunc.h - rename ptr_strip_pac() to aarch64_strip_pac()
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
branches: 1.8.10; Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
#
1.11 |
|
22-May-2020 |
ryo |
fix to do backtrace properly for running LWPs and cpu_lwp_fork(). when dump of pcb_tf, only the switchframe part is now displayed instead of the whole trapframe.
|
#
1.10 |
|
13-May-2020 |
ryo |
- move aarch64 addressspace macros from pmap.h to cpufunc.h - rename ptr_strip_pac() to aarch64_strip_pac()
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
branches: 1.8.10; Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
#
1.10 |
|
13-May-2020 |
ryo |
- move aarch64 addressspace macros from pmap.h to cpufunc.h - rename ptr_strip_pac() to aarch64_strip_pac()
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
branches: 1.8.10; Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
#
1.9 |
|
12-Apr-2020 |
maxv |
Add support for Pointer Authentication (PAC).
We use the "pac-ret" option, to sign the return instruction pointer on function entry, and authenticate it on function exit. This acts as a mitigation against ROP.
The authentication uses a per-lwp (secret) I-A key stored in the 128bit APIAKey register and part of the lwp context. During lwp creation, the kernel generates a random key, and during context switches, it installs the key of the target lwp on the CPU.
Userland cannot read the APIAKey register directly. However, it can sign its pointers with it, because the register is architecturally shared between userland and the kernel. Although part of the CPU design, it is a bit of an undesired behavior, because it allows to forge valid kernel pointers from userland. To avoid that, we don't share the key with userland, and rather switch it in EL0<->EL1 transitions. This means that when userland executes, a different key is loaded in APIAKey than the one the kernel uses. For now the userland key is a fixed 128bit zero value.
The DDB stack unwinder is changed to strip the authentication code from the pointers in lr.
Two problems are known:
* Currently the idlelwps' keys are not really secret. This is because the RNG is not yet available when we spawn these lwps. Not overly important, but would be nice to fix with UEFI RNG. * The key switching in EL0<->EL1 transitions is not the most optimized code on the planet. Instead of checking aarch64_pac_enabled, it would be better to hot-patch the code at boot time, but there currently is no hot-patch support on aarch64.
Tested on Qemu.
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
branches: 1.2.2; Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|
Revision tags: isaki-audio2-base
|
#
1.8 |
|
27-Jan-2019 |
pgoyette |
Merge the [pgoyette-compat] branch
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.7 |
|
27-Dec-2018 |
mrg |
make savecore for arm64 basically work.
- move MD lwp "md_ktf" member into struct pcb. the pcb is used by the gdb "bsd-kvm" target code to find the stack of each thread and needs to be available in a well known location. - implement aarch64_nbsd_supply_pcb() in GDB. makes basic gdb work on a crash dump. - remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there is no more L_MD_KTF.
with this gdb has minimal working functionality with "target kvm", and crash can at least "ps" on a crash dump.
ok skrll.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.6 |
|
15-Sep-2018 |
jakllsch |
make kernel-groveling crash(8) work on aarch64
|
#
1.5 |
|
15-Sep-2018 |
jakllsch |
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems
|
Revision tags: pgoyette-compat-0906
|
#
1.4 |
|
30-Jul-2018 |
ryo |
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.
|
Revision tags: pgoyette-compat-0728
|
#
1.3 |
|
17-Jul-2018 |
christos |
add missing casts
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.2 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: netbsd-8-1-RC1 netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base
|
#
1.1 |
|
10-Aug-2014 |
matt |
branches: 1.1.4; 1.1.28; Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.
|