Hi Konrad, > Hi, > to clear up some confusion: > On Qualcomm boards GPIOs that are used for "secure" (duh) peripherals, > like a fingerprint scanner, are not allowed to be controlled from Linux (the "non-secure world"). > Trying to do so causes an immediate reboot due to "attempting to violate the security". Thanks for an explanation. > The GPIOs seem to all be iterated over on boot, except for the ones specified in "gpio-reserved-ranges". > As a result, if such "secure" GPIOs are not declared in the DT, the board essentially dies on TLMM (pinctrl) probe > (which happens veeeery early - so that all other peripherals can set the pins as they see fit) > and that's very unpleasant to debug. Without this patch, Petr's device will simply not boot. Exactly. > So, why did it work before!? > Well, either the GPIOs weren't iterated over, or the TLMM (pinctrl) driver wasn't in place back then. I suppose GPIOs not being iterated over is the case for first fix (i.e. fixing 3edfb7bd76bd "gpiolib: Show correct direction from the beginning"). > As for the initrd crash.. perhaps you have an Android initrd which dies as soon as it doesn't detect SELINUX and a couple of other options.. You might want to try postmarketOS's one, or any other Linux distro's armv7/aarch64 initrd. To replace it, simply use abootimg like so: No, that's postmarketOS initrd which dies before a99163e9e708d5d773b7de6da952fcddc341f977: [ 17.421112] ALSA device list: [ 17.426233] No soundcard?[ 17.436163] Freeing unused kernel memory: 5760K [ 17.436462] Run /init as init process [ 17.439499] with arguments: [ 17.443330] /init [ 17.446277] PMOS_NO_OUTPUT_REDIRECT [ 17.448535] with environment: [ 17.452172] HOME=/ [ 17.455303] TERM=linux ### postmarketOS initramfs ### Configuring kernel firmware image search path /init: line 56: can't create /proc/sys/kernel/hotplug: nonexistent directory Trying to mount subpartitions for 10 seconds... after a99163e9e708d5d773b7de6da952fcddc341f977: [ 17.383267] calling regulator_init_complete+0x0/0x4c @ 1 [ 17.390129] initcall regulator_init_complete+0x0/0x4c returned 0 after 6 usecs [ 17.395682] calling of_platform_sync_state_init+0x0/0x18 @ 1 [ 17.402800] initcall of_platform_sync_state_init+0x0/0x18 returned 0 after 3 usecs [ 17.408616] calling alsa_sound_last_init+0x0/0x88 @ 1 [ 17.416077] ALSA device list: [ 17.421198] No soundcardű[ 17.431360] Freeing unused kernel memory: 5824K [ 17.431633] Run /init as init process [ 17.434700] with arguments: [ 17.438535] /init [ 17.441477] PMOS_NO_OUTPUT_REDIRECT [ 17.443737] with environment: [ 17.447381] HOME=/ [ 17.450496] TERM=linux D - 15494 - pm_driver_init, Delta > abootimg -u boot.img -r ramdisk.img > If it says something something "too small", add > -c "bootsize=30000000" > to make the boot.img exactly 30 million bytes (or change it as you see fit). abootimg is really ok, this is not the issue. > Konrad Kind regards, Petr