aboutsummaryrefslogtreecommitdiffstats
path: root/target
Commit message (Collapse)AuthorAgeFilesLines
* generic: disable SGMII in-band AN for RealTek 2.5G PHYsDaniel Golle2023-04-031-0/+43
| | | | | | | | | | | | | MAC drivers don't use SGMII in-band autonegotiation unless told to do so in device tree using 'managed = "in-band-status"'. When using MDIO to access a PHY, in-band-status is unneeded as we have link-status via MDIO. Switch off SGMII in-band autonegotiation using magic values. Reported-by: Chen Minqiang <ptpt52@gmail.com> Reported-by: Chukun Pan <amadeus@jmu.edu.cn> Reported-by: Yevhen Kolomeiko <jarvis2709@gmail.com> Tested-by: Yevhen Kolomeiko <jarvis2709@gmail.com> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* generic: use genphy_soft_reset for RealTek 2.5G PHYsDaniel Golle2023-04-031-0/+65
| | | | | | | | | Some vendor bootloaders do weird things with those PHYs which result in link modes being reported wrongly. Start from a clean sheet by resetting the PHY. Reported-by: Yevhen Kolomeiko <jarvis2709@gmail.com> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* generic: interface mode switch for RTL8221B PHYChukun Pan2023-04-031-0/+61
| | | | | | | | Add dynamic interface mode update for the rtl8221 phy to match various wire speeds. 10M/100M/1000M use SGMII, 2500M uses 2500Base-X. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* realtek: refresh patchesDaniel Golle2023-04-032-2/+2
| | | | | | | | Refresh patches which were no longer applying cleanly after a recently added SFP quirk. Fixes: 658b45ce48 ("generic: add quirk for HG MXPD-483II 2500M fiber SFP") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* Revert "mpc85xx: remove Watchguard T10 MAC override"David Bauer2023-04-031-0/+5
| | | | | | | | | | This reverts commit aa4a9058fbf4d2ca7ef3af9ebb5bbec896625e93. The assumption the bootloader fills out the MAC-address is not correct. The MAC-address has to be set from userspace based on information found in the device_id partition. Signed-off-by: David Bauer <mail@david-bauer.net>
* generic: add quirk for HG MXPD-483II 2500M fiber SFPDaniel Golle2023-04-032-3/+16
| | | | | | | | | | | | | | | | | | | The HG MXPD-483II 1310nm SFP module is meant to operate with 2500Base-X, however, in their EEPROM they incorrectly specify: Transceiver type : Ethernet: 1000BASE-LX ... BR, Nominal : 2600MBd Use sfp_quirk_2500basex for this module to allow 2500Base-X mode anyway. https://forum.banana-pi.org/t/bpi-r3-sfp-module-compatibility/14573/60 X-Patchwork-Id: 13197378 X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org Reported-by: chowtom <chowtom@gmail.com> Tested-by: chowtom <chowtom@gmail.com> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* lantiq: fix lzma-loader for Netgear DGN 3500(B)Maik Goette2023-04-022-5/+18
| | | | | | | Fixes Uncompressing Kernel Image ... ERROR: LzmaDecode.c, 561 Fixes: #11701 for both 3500(B) Signed-off-by: Maik Goette <github@beeit.de>
* ramips: add support for OrayBox X1Bin We2023-04-024-0/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for OrayBox X1. It is a 802.11n router, based on MediaTek MT7628N. Specifications: SoC: MediaTek MT7628N (580MHz) RAM: 64 MiB Flash: 16 MiB NOR (Winbond W25Q128JVSIQ) Wireless: 802.11b/g/n 2x2 2.4GHz (Built In) Ethernet: 1x 100Mbps only USB: 1x USB Type-A 2.0 Host Port Button: 1x "Reset" button LED: 1x Blue LED + 1x Red LED + 1x White LED Power: 5V Micro-USB input Manufacturer Page: https://pgy.oray.com/router/x1.html/parameter Flash Layout: 0x000000000000-0x000000030000 : "u-boot" 0x000000030000-0x000000040000 : "kpanic" 0x000000040000-0x000000050000 : "factory" 0x000000050000-0x000000fe0000 : "firmware" 0x000000fe0000-0x000000ff0000 : "bdinfo" 0x000000ff0000-0x000001000000 : "reserve" Install via SSH: Original firmware is based on OpenWRT, but SSH is not start by default, You should enable it first 1. Login into web admin (10.168.1.1), default password is 'admin' 2. Open the following link, and the result should be {"code":0}; SSH is now started, username is root, password is same as web admin password http://10.168.1.1/cgi-bin/oraybox?_api=ssh_set&enabled=1 4. You can flash firmware via mtd: mtd write /tmp/firmware_image.bin firmware Signed-off-by: Bin We <me@udp.pw>
* lantiq: nand: don't yield while holding spinlockThomas Nixon2023-04-022-0/+76
| | | | | | | | | | | | | | | | | | | The nand driver normally while waiting for the device to become ready; this is normally fine, but xway_nand holds the ebu_lock spinlock, and this can cause lockups if other threads which use ebu_lock are interleaved. Fix this by waiting instead of polling. This mainly showed up as crashes in ath9k_pci_owl_loader (see https://github.com/openwrt/openwrt/issues/9829 ), but turning on spinlock debugging shows this happening in other places too. This doesn't seem to measurably impact boot time. Tested on bt_homehub-v5a with 5.10 and 5.15. Signed-off-by: Thomas Nixon <tom@tomn.co.uk> [Add commit description into patch] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ipq806x: Fix Linksys upgrade, restore config stepJacob Aharon2023-04-021-1/+6
| | | | | | | | | | | | | | | | | | It appears that the refactor of the upgrade process for NAND devices resulted in the nand_do_upgrade_success step not being called for devices using the linksys.sh script. As a result, configuration was not preserved over sysupgrade steps. This restores the preservation of configs for ipq806x devices using the linksys.sh script. Other devices and targets have not been examined. This commit uses the same functionality and terminology used in commit 8634c10 ("ipq40xx: Fix Linksys upgrade, restore config step") Fixes: e25e6d8 ("base-files: fix and clean up nand sysupgrade code") Tested-on: EA8500 Signed-off-by: Jacob Aharon <ah.jacob@gmail.com>
* kernel: backport upstreamed DSA B53 MMAP patchÁlvaro Fernández Rojas2023-04-014-121/+52
| | | | | | | Move the patch from pending to backport, since it has been accepted upstream: https://github.com/torvalds/linux/commit/45977e58ce65ed0459edc9a0466d9dfea09463f5 Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* ramips: mt7621: add migration script for WLAN PCI pathsFelix Baumann2023-04-011-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PCI paths of the WLAN devices have changed between kernel 5.10 and 5.15; migrate config so existing wifi-iface definitions don't break. This is implemented as a hotplug handler rather than a uci-defaults script as the migration script must run before the 10-wifi-detect hotplug handler. based on b452af23a8602ebf7bfb0eb084383ecd595face5 migration was forgotten when device trees were adjusted in 688697889c9ceb9d2d8d413d1abcc5fa7edb402b c77913be5be5f11a0f20dba1b45b96470099e8a8 fixes #9374 affected devices: Netgear R6220 Netgear WAC104 Netgear WNDR3700 v5 Zbtlink ZBT-WE1326 Wiflyer WF3526-P Arcadyan WE420223-99 Beeline Smartbox Flash (Arcadyan WG443223) MTS WG430223 (Arcadyan WG430223) Tested-by: Maximilian Baumgartner <aufhaxer@googlemail.com> Tested-by: Mikhail Zhilkin <csharper2005@gmail.com> Signed-off-by: Felix Baumann <felix.bau@gmx.de>
* ramips: Add support for CJ-Hello HYC-G920Muhammad AL-Qadhy2023-04-012-0/+206
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hanyang Digitech Co., Ltd. MSIP-CMM-HYD-HYC-G920 CJ-Hello HYC-G920 SoC : MediaTek MT7621AT RAM : 256M (SK hynix H5TQ2G63FFR) FLASH : 16MB (Winbond W25Q128BV) WiFi : MediaTek MT7602EN bgn 2SS WiFi : MediaTek MT7612EN nac 2SS BTN : Reset LED : - Power RED - WAN Green - LAN {1-4} - WiFi 2.4 GHz Blue - WiFi 5 GHz Blue - USB Green **For MT7621 stage1 DDR Test** UART : J4 GND - 3V3 - TX - RX - GND / 57600-8N1 ``` MT7621 stage1 code 10:33:55 (ASIC) CPU=500000000 HZ BUS=166666666 HZ ``` **For u boot environment** UART : J4 GND - 3V3 - TX - RX - GND / 115200-8N1 **UART Menu** ``` Please choose the operation: 1: Load system code to SDRAM via TFTP. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash (default). 4: Entr boot command line interface. 7: Load Boot Loader code then write to Flash via Serial. 9: Load Boot Loader code then write to Flash via TFTP. ``` **Steps** Press 4: Entr boot command line interface. On the pormpt enter. `setenv firmware_size 0xf60000` Then enter. `saveenv` Then enter. `reset` **Device will reboot** Set your IP 192.168.100.100/24 Connect your lan cable to wan port. **On the UART Menu** Press 2: Load system code then write to Flash via TFTP. Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N) **enter** `Y` Please Input new ones /or Ctrl-C to discard Input device IP (192.168.100.55) ==:`192.168.100.55` Input server IP (192.168.100.100) ==:`192.168.100.100` Input Linux Kernel filename () ==:`openwrt-22.03.0-ramips-mt7621-hanyang_hyc-g920-squashfs-sysupgrade.bin` After uploading firmware image, device will boot Openwrt. Signed-off-by: Muhammad AL-Qadhy <m.ismael@gmail.com>
* ramips: mt7621: remove set-affinity scriptRosen Penev2023-04-011-19/+0
| | | | | | | | | | | | From https://github.com/openwrt/openwrt/pull/12280#issuecomment-1489279860 On Ethernet and WLAN, NAPI is threaded for all queues. This means that the processing work is not stuck on the CPU that fired the IRQ. Under heavy load, IRQs get disabled anyway, so it should not matter at all which CPUs the IRQs fire on. Basic testing indicates this to be true. There's no speedup or slowdown. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* ramips: mt7621: ASUS RT-AX53U add NMBM, nest firmwareFelix Baumann2023-04-011-7/+26
| | | | | | | | | | | | Nests kernel and ubi into firmware partition in-order to be compatible with OEM firmware. This allows restoring oem firmware from a backup of firmware2. Add jffs2 partition which is present in the oem firmware. Add support for mediatek NMBM (wear leveling on newer mediatek devices). Exclude UBI partition from NMBM management. Continues PR #10685. Tested-by: Felix Baumann <felix.bau@gmx.de> Signed-off-by: Felix Baumann <felix.bau@gmx.de>
* kernel: bump 5.15 to 5.15.105John Audia2023-04-0125-189/+94
| | | | | | | | | | | | | | | | | | | Manually rebased: Removed upstreamed: backport-5.15/743-v6.3-0005-net-dsa-b53-mmap-fix-device-tree-support.patch[1] backport-5.15/743-v6.3-0006-net-dsa-tag_brcm-legacy-fix-daisy-chained-switches.patch[2] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.105&id=9bbb3d3f218f1cf51f57a43cf8fd63b05be1b821 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.105&id=48f52431af9980582b6faa32ff8b581edb10486c Build system: x86_64 Build-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod Run-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod Signed-off-by: John Audia <therealgraysky@proton.me>
* kernel: add support for XMC XM25QH64CJoe Mullally2023-04-012-0/+44
| | | | | | | The XMC XM25QH64C is a 8MB SPI NOR chip. The patch is verified on TL-WPA8631P v3. Datasheet available at https://www.xmcwh.com/uploads/442/XM25QH64C.pdf Signed-off-by: Joe Mullally <jwmullally@gmail.com>
* kernel: fix mtk_eth_soc flow accounting for MT7986Felix Fietkau2023-04-011-0/+8
| | | | | | This was accidentally dropped when MT7981 support was added Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ipq40xx: add LED functions for Google WiFiJan-Niklas Burfeind2023-03-311-2/+9
| | | | | | | | | | | | | | | | | Add LED function properties for the LED controller to avoid failing driver probe with kernel 5.15. While at it, also define the OpenWrt LED indicator patterns for this device. Ref commit 583ac0e11df7 ("mpc85xx: update lp5521 led-controller node for 5.10") Google uses white for running and red for an issue Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me> Tested-by: Andrijan Möcker <amo@ct.de> Reviewed-by: Brian Norris <computersforpeace@gmail.com> Signed-off-by: David Bauer <mail@david-bauer.net>
* ipq40xx: add reset button for Google WiFi (Gale)Jan-Niklas Burfeind2023-03-311-1/+14
| | | | | | | | | | Add the external reset button for use with OpenWrt. Co-authored-by: Brian Norris <computersforpeace@gmail.com> Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me> Reviewed-by: Brian Norris <computersforpeace@gmail.com> Tested-by: Brian Norris <computersforpeace@gmail.com> Signed-off-by: David Bauer <mail@david-bauer.net>
* bmips: bcm6362/bcm63268: enable HW RNGÁlvaro Fernández Rojas2023-03-312-0/+24
| | | | | | | This enables the HW Random Number Generator on the BCM6362 and BCM63268 SoCs, which is the same one used on BCM6368 SoC. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* kernel: remove obsolete netfilter tcp window size check bypass patchFelix Fietkau2023-03-302-156/+0
| | | | | | | On any currently supported hardware, the performance impact should not matter anymore. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ramips: Refresh patchesHauke Mehrtens2023-03-291-2/+2
| | | | | | | Refresh the ramips kernel patches. Fixes: 7472476aef26 ("kernel: fix mtk_eth_soc throughput regressions on gigabit PHY ports") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* bmips: bcm6348-enet: register emac driver from iudmaÁlvaro Fernández Rojas2023-03-291-2/+15
| | | | | | | | Register the ethernet driver from iudma, which avoids the attempt to probe the emac driver before iudma and its consequent deferral. The ethernet driver can't work without iudma anyway. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* kernel: filter out pahole versionRobert Marko2023-03-291-0/+1
| | | | | | | | Pahole version is being autodetected during runtime since kernel 5.15.96 via in-kernel scripts/pahole-version.sh so add CONFIG_PAHOLE_VERSION to kernel filter in order to prevent it from being added to target configs. Signed-off-by: Robert Marko <robimarko@gmail.com>
* mediatek: re-add wireless driver for TUF-AX4200Andrew Sim2023-03-291-1/+1
| | | | | | | | | | | The wireless driver package was incorrectly removed from the TUF-AX4200 device-packages, resulting in images without wireless functionality. Fixes: d98c4fb8bfab ("mediatek: broaden filogic target description") Signed-off-by: Andrew Sim <andrewsimz@gmail.com> [rework commit description] Signed-off-by: David Bauer <mail@david-bauer.net>
* bmips: bcm6348-enet: add PHY supportÁlvaro Fernández Rojas2023-03-292-0/+119
| | | | | | | We should ensure that the PHY is properly configured. This is specially needed in devices using the internal PHY for ethernet0. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* kernel: fix mtk_eth_soc throughput regressions on gigabit PHY portsFelix Fietkau2023-03-2910-27/+100
| | | | | | Fixes issues on MT7621 and MT7623 switch ports, and PHY ports on all SoC Signed-off-by: Felix Fietkau <nbd@nbd.name>
* bmips: add basic BCM6358 ethernet supportÁlvaro Fernández Rojas2023-03-286-0/+1732
| | | | | | | | The MDIO bus is supported but there are errors when trying to probe and configure the external BCM5325E switch through B53 DSA. Therefore, let's add basic ethernet (but working) support for now. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* bmips: bcm6368-enetsw: refactor probeÁlvaro Fernández Rojas2023-03-281-23/+29
| | | | | | | | | - Switch to devm functions where possible. - Fix probing when no resets provided. - Properly check pointers (IS_ERR_OR_NULL/PTR_ERR). - Add probe info. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* bmips: bcm6368-enetsw: remove unneeded variablesÁlvaro Fernández Rojas2023-03-281-35/+16
| | | | | | Change the code to use defines instead of variables. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* bmips: bcm6368-enetsw: harmonize dev variablesÁlvaro Fernández Rojas2023-03-281-76/+83
| | | | | | | | The current implementation of bcm6368-enetsw is a mess of dev, ndev and kdev variables, which have refer to different things depending on the function. This commit harmonizes it and resolves the issue. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* bmips: sercomm,h500-s: add Quantenna gpio switchÁlvaro Fernández Rojas2023-03-281-0/+16
| | | | | | | Sercomm H500-s has a Quantenna SoC for external wifi which can be activated or deactivated through GPIO #20. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* kernel: remove unnecessary change from backlog threading fixFelix Fietkau2023-03-281-19/+9
| | | | | Fixes: f1c9bd6f6f41 ("kernel: fix kernel warning and network issue in the backlog threading patch") Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: fix kernel warning and network issue in the backlog threading patchFelix Fietkau2023-03-281-8/+26
| | | | | | Fixes enabling it early during the boot Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mediatek: broaden filogic target descriptionDaniel Golle2023-03-272-5/+7
| | | | | | | The filogic subtarget now also supports MT7981 and will in future also support MT7988. Reflect that in the target description. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: add device tree include for the MT7981 SoCDaniel Golle2023-03-271-0/+766
| | | | | | Add mt7981.dtsi so we can start adding MT7981 devices. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* generic: fix Macronix SPI-NAND driverDaniel Golle2023-03-271-0/+35
| | | | | | | | | Use scratch buffer for DMA operetations. Passing a pointer to a stack variable won't work and results in bogus bit flips being reported. Patch was submitted upstream and is part of Linux 6.3. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: add support for SPI calibrationDaniel Golle2023-03-277-2/+590
| | | | | | | Newer MediaTek's SoCs need SPI calibration routines for SPI to work reliably. Import patches for that from MediaTek's SDK. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: add PWM support for MT7981 SoCDaniel Golle2023-03-271-0/+212
| | | | | | | Add patch to support PWM on the MT7981 SoC. This patch will also be submitted to upstream Linux soon. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: add I2C for MT7981 SoCDaniel Golle2023-03-271-0/+74
| | | | | | | Add patch to support I2C on the MT7981 SoC. This change will also be submitted to upstream Linux soon. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: simplify MaxLinear GPY PHY driverDaniel Golle2023-03-271-0/+166
| | | | | | | | | | | | | | | The mxl-gpy driver apparently was built in the assumption that SGMII auto-negotiation is always switched on at the MAC. This may be true for few rather recent drivers (why?), but certainly isn't for most drivers unless 'managed = "in-band-status"' is set in device tree. Add patch to the mediatek target which reduces mxl-gpy to behave more like an ordinary PHY driver using out-of-band status. This allows to use these PHYs without rate-adaptation which seems to be at least partially broken/racy in some revisions of the PHY and/or internal PHY firmware. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* generic: dsa: make use of pcs-mtk-lynxi also for mt7530Daniel Golle2023-03-271-0/+514
| | | | | | | | The MT7531 switch IC comes with SerDes ports with PCS identical to what is also used in MediaTek's SoCs. Make use of the shared driver to ease maintainance and reduce code duplication. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* generic: backport regmap reg_base and downshift featuresDaniel Golle2023-03-274-1/+243
| | | | | | | Backport new regmap features from Linux 5.18 which are needed to let mt7530 use pcs-mtk-lynxi. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* generic: mtk_eth_soc: switch to external PCS driverDaniel Golle2023-03-278-25/+537
| | | | | | Backport patch to make use of the new PCS driver in mtk_eth_soc. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* generic: pcs-mtk-lynxi: add hack to use 2500Base-X without ANDaniel Golle2023-03-271-0/+40
| | | | | | | | | | Using 2500Base-T SFP modules e.g. on the BananaPi R3 requires manually disabling auto-negotiation, e.g. using ethtool. While a proper fix using SFP quirks is being discussed upstream, bring a work-around to restore user experience to what it was before the switch to the dedicated SGMII PCS driver. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* generic: net: pcs: add driver for MediaTek SGMII PCSDaniel Golle2023-03-2710-13/+407
| | | | | | Backport dedicated PCS driver for MediaTek LynxI SGMII/SerDes unit. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* generic: mtk_eth_soc: allow setting MDIO clock frequencyDaniel Golle2023-03-278-23/+99
| | | | | | | | Backport patch allowing to set the MDIO bus clock frequency. By default the MDIO bus clock runs on 2.5 MHz, allow increasing it up to 25 MHz. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: add support for built-in GE PHYs of newer SoCsDaniel Golle2023-03-274-0/+1446
| | | | | | | | | | | MT7981 and the upcoming MT7988 have built-in Gigabit Ethernet PHYs. While they share some design properties with the PHYs present in MT753x, they do need calibration data from the SoC's efuse. Add driver to support them. Upstreaming it is planned, but there are still some ongoing discussions with MediaTek. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* generic: backport support for MT7981 EthernetDaniel Golle2023-03-272-1/+184
| | | | | | Backport support for the MT7981 SoC to mtk_eth_soc. Signed-off-by: Daniel Golle <daniel@makrotopia.org>