created | 2021-06-27T04:12:42Z |
---|---|
begin | 2021-06-25T00:00:00Z |
end | 2021-06-26T00:00:00Z |
path | src/sys |
commits | 12 |
date | 2021-06-25T12:40:29Z | |||
---|---|---|---|---|
author | patrick | |||
files | src/sys/arch/arm64/dev/smmu.c | log | diff | annotate |
src/sys/arch/arm64/dev/smmuvar.h | log | diff | annotate | |
message |
Save quite a bit of space by removing the existence of PTEDs. The dynamics of SMMU are a bit different to regular MMU usage, as we do not need P->V lists or ref/mod emulation (with page access upgrade). While in the future we might want to save cacheability modes, it is not necessary right now. Our PTED construct, which holds that kind of information, is not needed. With these gone, we save around 93% of smmu(4)'s previous memory overhead. Discussed with drahn@ kettenis@ |
date | 2021-06-25T13:25:53Z | |||
---|---|---|---|---|
author | jsg | |||
files | src/sys/arch/riscv64/include/atomic.h | log | diff | annotate |
message |
use weaker fences for riscv64 membar Fences are described in 'RISC-V Unprivileged ISA' syntax is 'fence predecessor,successor'. "Any combination of device input (I), device output (O), memory reads (R), and memory writes (W) may be ordered with respect to any combination of the same." Previously "fence" was used for membar_* which is short for "fence iorw,iorw". Change this to more specific fences based on the text in membar_sync(9) with store -> w, load -> r. build test by and ok kettenis@ |
date | 2021-06-25T13:29:40Z | |||
---|---|---|---|---|
author | visa | |||
files | src/sys/dev/fdt/if_cad.c | log | diff | annotate |
message | Remove an unused struct. |
date | 2021-06-25T13:41:09Z | |||
---|---|---|---|---|
author | jsg | |||
files | src/sys/dev/pci/drm/include/linux/atomic.h | log | diff | annotate |
message |
add linux style memory barriers for risc-v to drm based on linux operation to rvwmo mapping table in the rvwmo appendix of the risc-v unprivileged isa spec ok kettenis@ |
date | 2021-06-25T17:41:22Z | |||
---|---|---|---|---|
author | patrick | |||
files | src/sys/arch/arm64/dev/acpiiort.c | log | diff | annotate |
src/sys/arch/arm64/dev/acpiiort.h | log | diff | annotate | |
src/sys/arch/arm64/dev/acpipci.c | log | diff | annotate | |
src/sys/arch/arm64/dev/apldart.c | log | diff | annotate | |
src/sys/arch/arm64/dev/smmu.c | log | diff | annotate | |
src/sys/arch/arm64/dev/smmu_acpi.c | log | diff | annotate | |
src/sys/arch/arm64/dev/smmu_fdt.c | log | diff | annotate | |
src/sys/arch/arm64/dev/smmuvar.h | log | diff | annotate | |
src/sys/dev/fdt/dwpcie.c | log | diff | annotate | |
src/sys/dev/fdt/pciecam.c | log | diff | annotate | |
src/sys/dev/ofw/ofw_misc.c | log | diff | annotate | |
src/sys/dev/ofw/ofw_misc.h | log | diff | annotate | |
message |
While it seems like we can choose any I/O virtual address for peripheral devices, this isn't really the case. It depends on the bus topology of how devices are connected. In the case of PCIe, devices are assigned addresses (in PCI BARs) from the PCI address spaces. Now if we take an address from one of these address spaces for our IOVA, transfers from from a PCI device to that address will terminate inside of the PCI bus. This is because from the PCI buses' point-of-view, the address we chose is part of its address space. To make sure we don't allocate addresses from there, reserve the PCI addresses in the IOVA. Note that smmu(4) currently gives each device its own IOVA. So the PCI addresses will be reserved only in IOVA from PCI devices, and only the addresses concerning the PCI bus it is connected to will be reserved. All other devices behind an smmu(4) will not have any changes to their IOVA. ok kettenis@ |
date | 2021-06-25T17:49:49Z | |||
---|---|---|---|---|
author | krw | |||
files | src/sys/arch/riscv64/stand/efiboot/efiboot.c | log | diff | annotate |
src/sys/arch/riscv64/stand/efiboot/efidev.c | log | diff | annotate | |
src/sys/arch/riscv64/stand/efiboot/efipxe.c | log | diff | annotate | |
src/sys/arch/riscv64/stand/efiboot/efirng.c | log | diff | annotate | |
message |
1) Finish eliminating all uses of EFI_CALL() used in the tree, allowing for the removal of eficall.h files. 2) Allow booting from 4k-byte sector devices. 3) Don't leak memory after successfull i/o. The end result is that riscv64 efidev.c and efipxe.c are identical to the arm64/armv7 versions, efirng.c is identical to the amd64/arm64 versions and efiboot.c has only the arm64 -> riscv64 changes. ok kettenis@ |
date | 2021-06-25T18:55:26Z | |||
---|---|---|---|---|
author | kettenis | |||
files | src/sys/dev/fdt/dwpcie.c | log | diff | annotate |
message |
Make sure we translate prefetchable mmio space as well. From Mickael Torres. |
date | 2021-06-25T19:22:51Z | |||
---|---|---|---|---|
author | matthieu | |||
files | src/sys/arch/riscv64/include/limits.h | log | diff | annotate |
message | add SIZE_MAX. ok kettenis@ |
date | 2021-06-25T19:27:40Z | |||
---|---|---|---|---|
author | matthieu | |||
files | src/sys/arch/riscv64/conf/GENERIC | log | diff | annotate |
src/sys/arch/riscv64/conf/Makefile.riscv64 | log | diff | annotate | |
src/sys/arch/riscv64/conf/files.riscv64 | log | diff | annotate | |
src/sys/arch/riscv64/riscv64/conf.c | log | diff | annotate | |
src/sys/dev/pci/drm/ttm/ttm_bo_util.c | log | diff | annotate | |
src/sys/uvm/uvm_device.c | log | diff | annotate | |
src/sys/uvm/uvm_pdaemon.c | log | diff | annotate | |
message |
basic radeondrm / X support for riscv64. Ok kettenis@ - add wscons devices - build radeondrm and add MD uvm bits to support it. |
date | 2021-06-25T19:55:22Z | |||
---|---|---|---|---|
author | patrick | |||
files | src/sys/arch/arm64/dev/smmu.c | log | diff | annotate |
message |
Clean up and remove debug prints, and add a few more relevant prints for when things go wrong. |
date | 2021-06-25T20:40:23Z | |||
---|---|---|---|---|
author | krw | |||
files | src/sys/arch/amd64/stand/efiboot/Attic/eficall.h | log | diff | annotate |
src/sys/arch/arm64/stand/efiboot/Attic/eficall.h | log | diff | annotate | |
src/sys/arch/armv7/stand/efiboot/Attic/eficall.h | log | diff | annotate | |
src/sys/arch/riscv64/stand/efiboot/Attic/eficall.h | log | diff | annotate | |
message | Move unused eficall.h files to the Attic. |
date | 2021-06-25T23:48:30Z | |||
---|---|---|---|---|
author | dlg | |||
files | src/sys/net/if_pfsync.c | log | diff | annotate |
message |
let pfsync_request_update actually retry when it overfills a packet. a continue in the middle of a do { } while (0) loop is effectively a break, it doesnt restart the loop. without the retry, the code leaked update messages which in turn made pool_destroy in pfsync destroy trip over a kassert cos items were still out. found by and fix tested by hrvoje popovski ok sashan@ |