CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2024/04/01 05:16:11 Modified files: sys/dev/fdt: rkclock.c rkclock_clocks.h Log message: Add clocks for the RK3588 PWM controller. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2024/03/27 09:15:00 Modified files: sys/dev/fdt: bcm2711_pcie.c files.fdt Log message: Support having bcmpcie(4) as both PCIe bus and simplebus to enable use of the Raspberry Pi 5's RP1 I/O controller, which is connected over PCIe. With this, the peripherals on the RP1 are enumerated and attached as well. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2024/03/25 11:24:03 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK files.arm64 Added files: sys/arch/arm64/dev: rpigpio.c Log message: Add rpigpio(4), a driver for the RP1 GPIO controller on the Raspberry Pi 5. With this, GPIOs can be correctly configured and engaged. Complete pinctrl as well as IRQ functionality is yet to be implemented. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2024/03/24 16:34:48 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK Log message: Enable cad(4). ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2024/03/24 16:34:06 Modified files: sys/dev/fdt: if_cad.c Log message: Implement resetting the PHY via a GPIO pin, like in fec(4). This helps enable the PHY on the Raspberry Pi 5. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2024/03/21 17:12:33 Modified files: sys/dev/fdt: if_mvneta.c Log message: Never bindings use the phy-handle property instead of the phy property. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2024/03/18 15:37:44 Modified files: sys/dev/fdt: if_mvpp.c Log message: Pass PHY OF node to the MII layer for use by PHY drivers.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2024/03/16 18:06:43 Modified files: sys/dev/mii: eephy.c Log message: Some PHYs need board-specific initializations, e.g. to correctly configure LED settings, which might be stored in the marvell,reg-init property. With these applied, the LEDs on the SolidRun ClearFog CN9130 Base work correctly. ok kettenis@
CVS: cvs.openbsd.org: www
CVSROOT:/cvs Module name:www Changes by: patr...@cvs.openbsd.org 2024/01/05 12:54:05 Modified files: . : want.html Log message: Remove request for the Firefly ITX-3588J. Many thanks to Ibsen S Ripsbusker for arranging one!
CVS: cvs.openbsd.org: www
CVSROOT:/cvs Module name:www Changes by: patr...@cvs.openbsd.org 2023/12/29 11:40:43 Modified files: . : arm64.html Log message: Add a few supported NXP i.MX 8M boards
CVS: cvs.openbsd.org: www
CVSROOT:/cvs Module name:www Changes by: patr...@cvs.openbsd.org 2023/12/29 11:31:44 Modified files: . : want.html Log message: A Firefly ITX-3588J Mini-ITX Mainboard would be useful for RK3588 development.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/11/23 12:54:30 Modified files: sys/arch/arm64/arm64: cpu.c Log message: A mountroot hook unsets ci->ci_opp_table in case clocks or regulators aren't available, so we have to continue to check its existence on each kstat read. ok dlg@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/11/12 05:41:43 Modified files: sys/dev/fdt: fanpwr.c Log message: Add support for the Rockchip RK8602 and RK8603 voltage regulators. ok dlg@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/11/11 10:20:21 Modified files: sys/arch/arm64/conf: RAMDISK Log message: Enable CD9660 in RAMDISK so we can mount CD-ROMs. ok jsg@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/10/09 16:05:27 Modified files: sys/arch/arm64/stand/efiboot: efiacpi.c Log message: Recognize GICv4 in the MADT and configure it as arm,gic-v3. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/09/21 13:39:41 Modified files: sys/dev/fdt: dwpcie.c Log message: Encode the device tree node in the pci tag like we do in aplpcie(4) so that PCI device drivers can have access to device tree properties, e.g. to allow qwx(4) to retrieve the calibration variant. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/22 16:48:35 Modified files: sys/dev/fdt: qcrtc.c qcscm.c Log message: Use the PMIC SDAM scratch-register blocks to manage the RTC offset instead of accessing UEFI variables through the qcscm(4) TEE interface. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/22 16:43:53 Modified files: sys/dev/fdt: files.fdt sys/arch/arm64/conf: GENERIC RAMDISK Added files: sys/dev/fdt: qcsdam.c Log message: Add qcsdam(4), a driver for the PMIC Shared Direct Access Memory found on Qualcomm SoCs. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/10 07:48:02 Modified files: sys/dev/fdt: rkgpio.c Log message: The changes to the register layout affect the interrupt status/ack registers as well. Make use of these, otherwise it might lead to an interrupt flood. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/09 13:11:30 Modified files: sys/dev/fdt: rkpciephy.c Log message: It turns out that there are seperate pins for the PCIe Gen 2 and 3, which means that the x4 PCIe controller can get all PCIe Gen 3 lines, while the others then only get PCIe Gen 2 lines. Therefore the decision on how to configure the mux needs to be adjusted so that the PCIe Gen 3 lines are only routed to other PCIe controllers when they are explicitly configured for them. While there, fix an obvious typo. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/09 10:33:49 Modified files: sys/dev/fdt: rkclock.c rkclock_clocks.h Log message: Add some more RK3588 PCIe clocks and resets. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/08 03:12:28 Modified files: sys/dev/fdt: rkpciephy.c Log message: Add support for the RK3588 PCIe3 PHY to rkpciephy(4). The PHY controls 4 lanes that can be routed to 4 of the 5 PCIe controllers in the following configurations. Either all 4 lanes go to the x4 controller, then the other 3 controllers stay disabled. If those are split, lane 0 goes to the x4 controller and lane 2 goes to the x2 controller. Lane 1 now either goes to the x4 one to build a x2, or it gets routed to a x1 controller. Lane 3 also either goes to the x2 one to build a x2, or it gets routed to a x1 controller. If lanes 1 or lane 3 are configured, they are routed towards the PCIe3 PHY instead of the Combo PHY. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/08 02:37:39 Modified files: sys/dev/fdt: rkclock.c rkclock_clocks.h Log message: Add some resets for the PCIe controllers on the RK3588. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/07 10:53:39 Modified files: sys/dev/fdt: rkclock.c rkclock_clocks.h Log message: Add clocks for the RK3588 PWM controllers. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/07 10:52:57 Modified files: sys/dev/fdt: rkclock.c rkclock_clocks.h Log message: Add clocks for the RK3588 I2C controllers. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/07 10:52:09 Modified files: sys/dev/fdt: rkclock.c rkclock_clocks.h Log message: Add resets for the RK3588 USB 3.0 controllers. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/07 04:23:39 Modified files: sys/dev/pci: virtio_pci.c sys/dev/pv : virtio.c virtiovar.h Log message: The per-VQ MSI-X interrupt handler needs to sync DMA mappings in the same way that the shared interrupt handler does. This is one of the requirements of virtio_dequeue(), as specified in its comment above. Without the DMA sync, it will not see a new entry on the ring and return. Since the interrupt is edge-triggered there won't be another one and we'll get stuck. ok dv@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/07 04:11:40 Modified files: sys/arch/arm64/dev: agintc.c Log message: Keep more information about the established LPI around, so that we can use targeted invalidation through INV instead of flushing the whole cache through INVALL. Having this information enables us to send DISCARD, which clears the mapping from the ITT. This seems to be necessary to make the Hetzner VM's ITS happy when we try to disestablish and re-establish an LPI. This also moves the LPI table completely into agintc(4), as LPIs are global to an agintc(4) and especially with multiple agintcmsi(4) they should be unique. Tested by claudio@ ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/06 03:40:36 Modified files: sys/arch/arm64/dev: agintc.c Log message: Use correct variable to check for successful allocation. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/05 12:11:08 Modified files: sys/dev/pci: virtio_pci.c Log message: Fix off-by-one in the MSI-X interrupt establish loop that always tried to establish one more interrupt than would be needed for per-VQ IRQs. This meant even though there were enough MSI-X vectors available this path could fail, roll back previously established interrupts and switch to shared IRQs as a fallback. ok dv@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/07/04 08:32:21 Modified files: sys/dev/fdt: qcsmptp.c Log message: Instead of waiting for the inbound item to show up in the interrupt handler, allocate it ourselves. The firmware doesn't seem to mind that it's us doing the allocation. This fixes a splassert, because the code that retrieves the item reaches through the shared memory driver, which acquires the hardware mutex, which in turn mallocs. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/06/27 16:38:46 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK sys/dev/fdt: files.fdt Added files: sys/dev/fdt: qctsens.c Log message: Add qctsens(4), a driver for the Temperature Sensor found on Qualcomm SoCs. The driver not only provides the temperature readings for the cores, cluster and memory in hw.sensors, but also allows the thermal zone code to act on temperature changes. ok drahn@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/06/27 16:31:27 Modified files: usr.sbin/fw_update: patterns.c Log message: Inform fw_update(8) about qcpas(4) pattern. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/06/10 12:31:38 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK sys/dev/fdt: files.fdt Added files: sys/dev/fdt: qcpas.c Log message: Add qcpas(4), a driver for the Peripheral Authentication Service found on Qualcomm SoCs. The immediate task for this driver is to provide firmware to the auxiliary cores and to bring them up. This is accomplished by parsing the ELF files and providing the data in certain memory regions, and telling qcscm(4) to check and execute the firmware on the auxiliary cores. With the cores up we can now talk to the firmware. The glink-edge subnode indicates that we can talk to it using the GLINK protocol over shared memory provided by qcsmem(4). This interface is essentially a channel multiplexer, with each channel identified through an ASCII string. One of those channels connects to a PMIC router, which allows us to talk to the battery manager service that contains information about the charging and battery states. ok drahn@ kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/05/23 08:10:27 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK sys/dev/fdt: files.fdt Added files: sys/dev/fdt: qcaoss.c Log message: Add qcaoss(4), a driver for the Always On Subsystem found on Qualcomm SoCs. This subsystem typically provides an interface for clocks and regulators not controlled via RPMH. We will use it to switch the load state of the ADSP co-processor. Surprisingly, or maybe not, the interface uses ASCII text that kind of looks like JSON. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/05/19 15:26:10 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK sys/dev/fdt: files.fdt Added files: sys/dev/fdt: qcsmptp.c Log message: Add qcsmptp(4), a driver to share 32-bit values between (co-)processors. The inbound path is typically used as interrupt controller, e.g. to handle handover and ready interrupts when a remoteproc boots. The outbound path seems to be used to stop cores, but we don't do that yet. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/05/19 15:15:16 Modified files: sys/arch/arm64/dev: mainbus.c Log message: Have mainbus attach nodes under /reserved-memory, so that qcsmem(4) shows up. ok kettenis@ drahn@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/05/19 15:13:49 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK sys/dev/fdt: files.fdt Added files: sys/dev/fdt: qcsmem.c Log message: Add qcsmem(4), a driver for the shared memory table on Qualcomm SoCs used to establish data communication channels with co-processors. ok kettenis@ drahn@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/05/19 14:54:55 Modified files: sys/dev/fdt: qcipcc.c Log message: Clear interrupt before executing the interrupt handler as we otherwise risk losing an interrupt for the same pin. This can happen when a second interrupt occurs between the interrupt handler's execution and us clearing the interrupt. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/05/17 17:30:58 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK sys/dev/fdt: files.fdt Added files: sys/dev/fdt: qcmtx.c Log message: Add qcmtx(4), a driver for the hardware spinlock on Qualcomm SoCs that is used to synchronize access to the shared memory table between the application cores we run on and the co-processors next to us. ok kettenis@ drahn@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/05/17 17:25:45 Modified files: sys/dev/ofw: ofw_misc.c ofw_misc.h Log message: Add a framework for hardware locks. ok kettenis@ drahn@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/05/17 17:19:00 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK sys/dev/fdt: files.fdt Added files: sys/dev/fdt: qcipcc.c Log message: Add qcipcc(4), a driver for the inter-processor mailbox interface used to inform (and get informed) of changes to shared memory state. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/05/17 17:12:04 Modified files: sys/dev/fdt: qcscm.c Log message: Add support for the Peripheral Authentication Service SMC interface. These are used to authenticate and boot firmware images on the many coprocessors embedded in Qualcomm SoCs. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/05/17 14:23:14 Modified files: sys/sys: device.h Log message: Lenovo x13s requires a Qualcomm firmware file which is 13.7MB, so increase the limit from 5MB to 15MB. What does it contain? A full copy of Windows VM framework? For now, we need it to read the battery status... "go for it" deraadt@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/04/28 04:19:07 Modified files: sys/dev/fdt: qcscm.c Log message: Fix memory constraints in the inline-assembly stub that calls into secure mode. Without this change the compiler doesn't realize that the memory behind the array that contains the return values might have changed and optimizes the access away. With this change it properly access the array to retrieve the returned values. ok drahn@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/04/26 15:37:46 Modified files: sys/dev/ofw: ofw_misc.c Log message: Fix phy_enable_prop_idx() to retrieve the property length with the passed property name instead of "phys". ok dlg@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/04/25 05:36:55 Modified files: sys/dev/fdt: dwpcie.c Log message: Enable power management for PCI devices. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/04/25 05:21:01 Modified files: sys/dev/fdt: pwmbl.c Log message: Add suspend/resume support to pwmbl(4), so that when suspending the x13s the display turns off and it actually looks like it's properly suspended. ok kettenis@ tobhe@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/04/25 04:35:48 Modified files: sys/arch/arm64/dev: agintc.c Log message: Invalidate ITS caches during suspend/resume cycle to commit the changes to the LPIs. So far we have only flipped the enable bit in the shared memory, but it turns out that the state is actually cached in the ITS. We have to send an invalidation to flush it, both after disabling and enabling the LPI. We probably also should do it after establishing an interrupt, and especially when disestablishing, e.g. for PCIe hotplug. Since we do not currently store the device/event IDs we cannot do a targeted invalidation and have to fall back to sending one that clears the whole cache to each ITS. In the future we should keep some more state per established LPI. Furthermore we currently keep a list of LPIs in each ITS instance, which means in case we have multiple ITS we will re-use LPI numbers. But since there's no relevant HW so far that has those, there's no rish to fix that. This fixes suspend/resume on x13s with NVMe+MSI. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/04/24 09:15:00 Modified files: sys/dev/fdt: dwpcie.c Log message: Enable MSI if the node contains an msi-map, like we already do in pciecam(4). This will make MSIs work on the Lenovo x13s as soon as an updated device tree is installed. Discussed with kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/04/24 08:34:13 Modified files: sys/dev/fdt: qcpon.c Log message: Update qcpon(4) compatibles to match on qcom,pmk8350-pon, which is the updated binding in Linux 6.3 device trees. While there, remove retrieving the register address, as the new binding has an additional register with doesn't work with a single OF_getpropint(), and since we're not using it we don't need to keep it around.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/04/23 04:29:35 Modified files: sys/dev/pv : viogpu.c Log message: Stop setting ri->ri_bs to prevent a panic caused by rasops accessing its uninitialized content. When we rasops_init() with RI_VCONS, a new screen is allocated. If ri->ri_bs is set, this will be copied. Otherwise a new one will be allocated and filled with ASCII spaces. Copying the ri->ri_bs is useful in case we have an early console which contents we want to keep. As we do not have an early console here, there's no point in setting it at the moment. With this my Hetzner arm64 VM doesn't panic anymore. ok jcs@ kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/04/18 15:22:00 Modified files: sys/dev/pci: xhci_pci.c Log message: Map MSI-X in addition to MSI and INTx on xhci(4). On Qemu apparently the xHCI controller does not support MSIs, but does support MSI-X. With this diff running on Qemu/arm64 we switch over from shared INTx to device- specific MSI-X interrupts. Tested by and ok phessler@ ok dlg@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/04/18 02:35:02 Modified files: sys/dev/fdt: mvtemp.c Log message: Support upstreamed AP806/CP110 bindings in mvtemp(4). Apparently older EDK2 versions shipped bindings compatible with the Armada 380, but when the ARM64 SoCs were upstreamed from the vendor fork to Linux, those apparently were adjusted. With this diff mvtemp(4) now tries and use the parent as syscon regmap in case the legacy binding cannot be used. Furthermore this adds some initialization as apparently the new EDK2 does less of that work during bootup. Noticed by mbuhl@ who's running an updated EDK2 on the MACCHIATObin. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/03/21 16:31:18 Modified files: share/man/man4 : bwfm.4 Log message: Document support for the BCM4378 / BCM4387 chipsets. from Brad
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/03/05 07:45:07 Modified files: sys/arch/arm64/dev: apldc.c aplpinctrl.c sys/arch/armv7/omap: omgpio.c sys/dev/fdt: imxgpio.c rkgpio.c Log message: Mask off IPL flags before storing the IPL for an interrupt. ok kettenis@ jmatthew@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/02/19 17:01:16 Modified files: sys/arch/arm64/arm64: cpu.c Log message: Unbreak RAMDISK build by adding a check for MULTIPROCESSOR.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/02/13 12:18:54 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK sys/conf : files sys/dev/fdt: files.fdt Added files: sys/dev/fdt: if_dwqe_fdt.c sys/dev/ic : dwqe.c dwqereg.h dwqevar.h Log message: Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake. For now it is committed with FDT-attachment only and still in rough shape, but it's time for development to occur in-tree. Discussed with bluhm@ ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/01/16 13:12:39 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK sys/dev/fdt: files.fdt qcrtc.c Added files: sys/dev/fdt: qcscm.c Log message: Manage RTC offset through UEFI variables handled by a TEE application that can be interacted with using SMC calls. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2023/01/16 13:07:48 Modified files: sys/arch/arm64/dev: mainbus.c Log message: Attach drivers on nodes under /firmware. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/30 17:30:21 Modified files: sys/arch/arm64/include: cpu.h Log message: Add machdep.lidaction to machdep names list. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/27 13:13:04 Modified files: sys/crypto : sha2.c sys/dev/ic : ar5008.c ar9003.c rtwn.c sys/kern : sys_generic.c sys/net: pf.c toeplitz.h sys/net80211 : ieee80211_input.c sys/netinet: if_ether.h Log message: Fix array bounds mismatch with clang 15 New warning -Warray-parameter is a bit overzealous. ok millert@ tb@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/24 05:36:06 Modified files: sys/dev/fdt: xhci_fdt.c Log message: Hook up xhci(4)'s activate function to the FDT attachment driver. This makes the USB ports work after a suspend/resume cycle on the x13s. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/24 03:51:28 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK Log message: Enable pcagpio(4), and also consistently pcamux(4) while we're at it. With this the SFP port on the ClearFog Base (CN9130) starts to work, as the SFP slot has some GPIOs routed through a GPIO extender. ok dlg@ kettenis@
CVS: cvs.openbsd.org: www
CVSROOT:/cvs Module name:www Changes by: patr...@cvs.openbsd.org 2022/12/21 16:29:40 Modified files: . : arm64.html Log message: The Aspire series is from Acer, not Asus. Mentioned by someone on some chatroom.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/21 16:26:54 Modified files: sys/dev/fdt: qcpdc.c qcpon.c qcspmi.c Log message: Have the power button trigger a wakeup from suspend. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/21 16:18:09 Modified files: sys/arch/arm64/dev: agintc.c Log message: Implement wakeup interrupt handling. This makes sure that during suspend we only have wakeup interrupts enabled, all others are disabled. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/16 11:08:08 Modified files: sys/dev/fdt: qcpdc.c Log message: qcpdc(4)'s establish routine needs to return the wrapped cookie, not the cookie it received from establishing the interrupt.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/10 03:13:58 Modified files: sys/arch/arm64/arm64: cpu.c exception.S genassym.cf pmap.c trampoline.S sys/arch/arm64/include: cpu.h sys/dev/fdt: psci.c pscivar.h Log message: Mitigate Spectre-BHB by using core-specific trampoline vectors. On some cores Spectre-BHB can be mitigated by using a loop that branches a number of times. For cores where this does not suffice, or where Spectre-V2 needs to be handled as well, try and call into a new PSCI function that mitigates both Spectre-V2 and Spectre-BHB. Some newer machines, which might not be in anyone's hands yet, have an instruction (CLRBHB) that clears the BHB. If ECBHB is set, the BHB isn't vulnerable. If we have CSV2_3/HCXT, it's not vulnerable at all. No visible performance dropoff on a MacchiatoBin (4xA72) or Lenovo x13s (4xA78C+ 4xX1C), but around 2-3% on a LX2K (16xA72) and RK3399 (4xA53+2xA72). ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/09 14:23:24 Modified files: sys/arch/arm64/arm64: cpu.c sys/arch/arm64/include: armreg.h Log message: Add detection for Spectre-BHB related CLRBHB, ECBHB and CSV2_3/HCXT feature bits. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/09 13:37:40 Modified files: sys/arch/arm64/arm64: cpu.c Log message: Fix typo: SCTX -> SCXT ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/07 17:29:06 Modified files: sys/arch/arm64/stand/efiboot: conf.c efiboot.c Log message: Forcibly set console output to the framebuffer on the Lenovo x13s. We should actually do something like checking that both stdout-path and serial0 don't exist to realize we have to switch, but this hack gets us going for now. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/07 16:04:26 Modified files: sys/arch/arm64/stand/efiboot: Makefile conf.c efiboot.c sys/stand/efi/include: efiapi.h Added files: sys/arch/arm64/stand/efiboot: smbios.c Log message: The ACPI tables on the Lenovo x13s are incomplete and unusable. For that reason, identify that we're running on that machine by looking at the SMBIOS tables and load alternate device tree binaries from disk. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/12/06 10:33:27 Modified files: usr.sbin/fw_update: patterns.c Log message: Install arm64-qcom-dtb upon encountering a qcgpio(4) device. ok phessler@ sthen@ tobhe@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/30 02:52:13 Modified files: sys/dev/fdt: qcpwm.c Log message: Provide default address for qcpwm(4), as Linux upstream removed it from the device tree.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/10 09:20:54 Modified files: sys/dev/fdt: qcpon.c Log message: Apparently we receive interrupts for both powerkey press and release, which isn't quite helpful when it's used to come back from suspend and then the second interrupt initiates powerdown. Ignore press, but handle release. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/10 06:08:57 Modified files: share/man/man4 : Makefile qcpmic.4 Added files: share/man/man4 : qcpon.4 qcpwm.4 qcrtc.4 Log message: qcpon(4), qcpwm(4), qcrtc(4)
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/10 05:59:26 Modified files: share/man/man4 : qcdwusb.4 qcpdc.4 Log message: update for consistency
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/10 05:57:08 Modified files: share/man/man4 : Makefile Added files: share/man/man4 : qcspmi.4 qcpmic.4 qcpmicgpio.4 Log message: qcpmic(4), qcpmicgpio(4), qcspmi(4)
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/10 05:40:08 Modified files: share/man/man4 : Makefile Added files: share/man/man4 : qcpdc.4 Log message: qcpdc(4)
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/10 05:36:38 Modified files: share/man/man4 : Makefile share/man/man4/man4.arm64: Makefile Added files: share/man/man4 : qcdwusb.4 qcgpio.4 qciic.4 Removed files: share/man/man4/man4.arm64: qcdwusb.4 qcgpio.4 qciic.4 Log message: Move manpages for Qualcomm devices over to the MI directory. kettenis@ put them into the arm64-specific one mostly because they were for ACPI and that will definitely be arm64-specific. I have committed most of the FDT ones to the MI fdt directory. dlg@ would be happier with those manpages in the MI one. There are more manpages to come as well.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/10 05:16:06 Modified files: sys/dev/fdt: qcspmi.c Log message: Remove hack that uses a timeout to fake interrupts now that qcpdc(4) allows us to properly establish interrupts. The fixed IPL_BIO should probably be replaced by the highest IPL requested by our children. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/10 05:13:22 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK Log message: Enable qcpdc(4) ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/10 05:12:53 Modified files: sys/dev/fdt: files.fdt Added files: sys/dev/fdt: qcpdc.c Log message: Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on Qualcomm SoCs. This is mostly a shim torwards agintc(4). ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/09 13:00:05 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK Log message: Enable qcpwm(4) ok kettenis@ mlarkin@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/09 12:59:38 Modified files: sys/dev/fdt: files.fdt Added files: sys/dev/fdt: qcpwm.c Log message: Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used on the Lenovo x13s to control the display backlight brightness. ok kettenis@ mlarkin@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/09 12:25:50 Modified files: sys/dev/fdt: qcpmicgpio.c Log message: Move input/output configuration into the correct function.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/09 06:46:11 Modified files: sys/dev/fdt: qcpmicgpio.c Log message: Implement reading/writing pins on qcpmicgpio(4).
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/08 12:52:40 Modified files: sys/arch/arm64/conf: files.arm64 Log message: Tedu spmi bus definition that moved over to the fdt files.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/08 12:49:34 Modified files: sys/dev/fdt: files.fdt sys/arch/arm64/conf: GENERIC RAMDISK Log message: Hook up all those Qualcomm SoC SPMI devices.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/08 12:47:05 Added files: sys/dev/fdt: qcrtc.c Log message: Add qcrtc(4), a driver for the RTC found on Qualcomm PMICs. Unfortunately on the Lenovo x13s it does not seem to contain the offset from 1970. Also we are not allowed to write to the RTC. I was told that the offset I need to calculate the actual date is sorted in an UEFI variable, which can be accessed over a secure channel. So as long as we don't have that channel, this driver is useless. Good start though. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/08 12:44:28 Added files: sys/dev/fdt: qcpon.c Log message: Add qcpon(4), a driver for the Qualcomm PMIC block that hosts the powerkey and reset input. With this I can use the power button on my x13s to power off the machine. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/08 12:42:10 Added files: sys/dev/fdt: qcpmicgpio.c Log message: Add qcpmicgpio(4), a driver for the GPIO block inside the Qualcomm PMICs. This driver is not completed yet, but good enough to be worked on in-tree. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/08 12:40:09 Added files: sys/dev/fdt: qcpmic.c Log message: Add qcpmic(4), a driver for the SPMI-connected PMICs found on Qualcomm SoCs, which are used on the Lenovo x13s. This is mostly a shim. The work for the actual blocks inside the PMICs occurs in the children. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/08 12:34:54 Added files: sys/dev/fdt: qcspmi.c Log message: Add qcspmi(4), a driver for the SPMI PMIC Arbiter found on Qualcomm SoCs, which is used on the Lenovo x13s. As soon as we gain a driver for the Power Domain Controller (PDC) that acts as a shim towards the GIC, we can switch out the timeout for proper IRQs. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/08 04:51:35 Modified files: sys/dev/fdt: qcgpio_fdt.c Log message: Implement reading/writing/configuring pins in qcgpio(4). The code has mostly been there, it only needed to be hooked up to our infrastructure. With this I can e.g. correctly see the lid state on the x13s. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/07 13:28:23 Modified files: sys/dev/fdt: gpiokeys.c Log message: The gpiokeys(4) 'label' property seems to be optional. If we don't have any, don't try and print it, and especially don't error out. Tested on Lenovo x13s (myself) and Pinebook Poop (kn@) ok kn@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/07 13:15:44 Modified files: sys/dev/fdt: dwpcie.c Log message: Add support for the PCIe controller on the Qualcomm SC8280XP. Thankfully UEFI already initializes those, so we can simply just make use of that. That said, the ctrl/dbi region isn't the first in the register list, so instead try and look it up first and use it if available. Furthermore, the ATU region isn't part of the ctrl/dbi region, so if we are able to retrieve a separate reg for the ATU, use that instead. Some reshuffling is necessary to make that work. Tested on my Lenovo x13s and the MacchiatoBin ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/07 12:07:31 Modified files: sys/dev/ofw: ofw_misc.c Log message: The ARM SMMUv2 does actually support #iommu-cells = <2>, where the second cell is used as a mask for SMR to match a number of IDs. So far we have asserted that it's always 1, so loosen the restriction and pass both cells instead of only the sid. ok kettenis@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: patr...@cvs.openbsd.org 2022/11/06 08:36:14 Modified files: sys/arch/arm64/conf: GENERIC RAMDISK sys/conf : files sys/dev/acpi : files.acpi qciic.c sys/dev/fdt: files.fdt Added files: sys/dev/fdt: qciic_fdt.c Log message: Add FDT-based attachment for qciic(4). ok kettenis@