Add a DMA constraint for the x13s. Some brilliant person at Qualcomm
authorkettenis <kettenis@openbsd.org>
Sun, 4 Feb 2024 18:44:23 +0000 (18:44 +0000)
committerkettenis <kettenis@openbsd.org>
Sun, 4 Feb 2024 18:44:23 +0000 (18:44 +0000)
decided that tying a wifi interface that can only do 32-bit DMA to their
compute platform that typically comes with at least 8G of memory was a
sensible thing to do.

Maybe we should be able to use an IOMMU to work around that.  But they
fucked that up as well.

ok patrick@, phessler@

sys/arch/arm64/stand/efiboot/efiboot.c

index 2754f19..ca2cd23 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: efiboot.c,v 1.48 2023/05/12 16:43:00 kettenis Exp $   */
+/*     $OpenBSD: efiboot.c,v 1.49 2024/02/04 18:44:23 kettenis Exp $   */
 
 /*
  * Copyright (c) 2015 YASUOKA Masahiko <yasuoka@yasuoka.net>
@@ -587,6 +587,8 @@ efi_dma_constraint(void)
            fdt_node_is_compatible(node, "rockchip,rk3588") ||
            fdt_node_is_compatible(node, "rockchip,rk3588s"))
                dma_constraint[1] = htobe64(0xffffffff);
+       if (fdt_node_is_compatible(node, "lenovo,thinkpad-x13s"))
+               dma_constraint[1] = htobe64(0xffffffff);
 
        /* Pass DMA constraint. */
        node = fdt_find_node("/chosen");