Jump to content

grn

Members
  • Posts

    13
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Following this guide: https://docs.armbian.com/Developer-Guide_Build-Preparation/ The guide has a good video. Just keep in mind that the video is 3 years old and uses an older linux distro. so stick to the software recommendations of the guide and not the video. since the patch is in the master branch it will be applied to your orangepioneplus build. Kind regards
  2. Good work. I compiled Armbian 22.08 Jammy, kernel 5.15.53 and it works like a charm. I know it has nothing to do with the patch but there is some odd behaviour when I set console=serial in /boot/armbianEnv.txt boot progress hangs at Starting kernel ... Setting it back to console=both the boot progress works fine. I just want to point it out in case someone runs into this when they set their armbianEnv.txt for debugging output the way it is advised. verbosity=7 and console=both works just fine. can somebody confirm that behaviour with newer Armbian release? Kind regards
  3. Booting an older Armbian Focal image that works on my opi1+ apt update apt remove linux-dtb-current-sunxi64 ( removes folder /boot/dtb-5.8.16-sunxi64 ) ( with a freezed up to date Armbian it would remove dtb-5.10.4-sunxi64 ) apt install linux-dtb-legacy-sunxi64 ( creates folder /boot/dtb-5.4.88-sunxi64 and links dtb to it ) apt upgrade reboot It boots kernel 5.15.43 but freezes a few seconds after it reaches the login credentials screen. (Typing fast I can login and run a command unitl it freezes) This is the only time a kernel newer than 5.10.4 is booting up on my opi1+. Boot does not work when I copy the files from dtb-5.8.16 to dtb-5.4.88 nor linking dtb to dtb-5.8.16 instead of dtb-5.4.88. In both cases it always hangs at Starting kernel ... I quite don't understand the dynamics for dtb "replacement" etc..
  4. I tried about 30 times to boot kernel 5.17.x with micro-USB-cable and USB-DC-cable. Boot always fails. [ 1.501549] sunxi-rsb 7083000.rsb: RSB running at 3000000 Hz [ 1.501922] axp20x-rsb sunxi-rsb-745: AXP20x variant AXP806 found [ 1.502439] axp20x-rsb sunxi-rsb-745: Failed to set masks in 0x41: -5 [ 1.502455] axp20x-rsb sunxi-rsb-745: failed to add irq chip: -5 [ 1.502465] axp20x-rsb: probe of sunxi-rsb-745 failed with error -5 [ 1.507487] sun50i-h6-pinctrl 300b000.pinctrl: initialized sunXi PIO driver [ 1.507899] sun50i-h6-pinctrl 300b000.pinctrl: supply vcc-ph not found, using dummy regulator So either somebody with enough knowledge finds out what exactly is causing this and how to mitigate it or somebody is able to make a working rsb to i2c rollback patch. Kind regards
  5. My Opi1+ sticker states: 2019042800100097 It doesn't boot any kernel which use RSB instead of I2C for AXP805. Kind regards
  6. Thanks alot @nnb1972. This is at least good news to keep my sanity. So my supposition that the Opi1+-PCB design or hardware may vary was not that wrong. But it is odd that this happens within the same revision (v2.1) of the PCB. My Opi1+ sticker states: 2019042800100097 I will retry kernel 5.17 and test if it may boot sometimes as well. Kind regards
  7. I tried the brand new automated builds. The error persists. I also tried to apply the rsb rollback patch from the orange pi 3 lts thread via ./compile.sh CREATE_PATCHES=yes and then altering sun50i-h6-orangepi.dtsi. But it won't work. Boot is stuck forever at "Starting kernel ..." with verbosity=7 and console=serial diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi index ee1919b80..15f4d7de9 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi @@ -129,12 +129,12 @@ &r_pio { vcc-pm-supply = <&reg_bldo3>; }; -&r_rsb { +&r_i2c { status = "okay"; - axp805: pmic@745 { + axp805: pmic@36 { compatible = "x-powers,axp805", "x-powers,axp806"; - reg = <0x745>; + reg = <0x36>; interrupt-parent = <&r_intc>; interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; Considering my last post. I set the build environment for the orange pi lite 2 wich has an Allwinner H6 and an AXP805 just like the orange pi one plus. Build settings: Full OS image for flashing > Do not change the kernel configuration > orangepilite2 > current > Debian 11 Bullseye > Image with console interface (server) > Minimal image with console interface (Same settings for the orange pi one plus build) ~/build/cache/sources/arm-trusted-firmware-sunxi-mainline/v2.2/ is the folder that is created/downloaded for the orange pi one plus build ~/build/cache/sources/arm-trusted-firmware-sunxi-mainline/af220ebbe467aa580e6b9ba554676f78ffec930f/ is the folder that is created/downloaded for the orange pi lite 2 Edit: the v2.2 folder is also created/downloaded for the orange pi 3 and the orange pi 3 lts. (Both H6 and AXP805) Wich may explain why there are the same issues for (at least) the orange pi 3 lts in this thread where the OPs solution was the rollback from rsb to i2c. It makes sense that a user there has the exact same rsb related errors like TMA and me. Comparing the folders and files for that two boards there seem to be missing files for the orange pi one plus build. The sunxi_power.c and platform.mk files are also different. Where the orange pi one plus files seem to be configured for i2c while the orange pi lite 2 files are configured for rsb. tree is only for 3 specific folders that seem important to me considering rsb and axp805 orange pi one plus ~/build/cache/sources/arm-trusted-firmware-sunxi-mainline/v2.2/ drivers/allwinner └── drivers/allwinner/sunxi_rsb.c 0 directories, 1 file include/drivers/allwinner └── include/drivers/allwinner/sunxi_rsb.h 0 directories, 1 file plat/allwinner/sun50i_h6 ├── plat/allwinner/sun50i_h6/include │ ├── plat/allwinner/sun50i_h6/include/core_off_arisc.h │ ├── plat/allwinner/sun50i_h6/include/sunxi_cpucfg.h │ └── plat/allwinner/sun50i_h6/include/sunxi_mmap.h ├── plat/allwinner/sun50i_h6/platform.mk └── plat/allwinner/sun50i_h6/sunxi_power.c 1 directory, 5 files ------------------------------------------------------------------- orange pi lite 2 ~/build/cache/sources/arm-trusted-firmware-sunxi-mainline/af220ebbe467aa580e6b9ba554676f78ffec930f drivers/allwinner ├── drivers/allwinner/axp │ ├── drivers/allwinner/axp/axp803.c │ ├── drivers/allwinner/axp/axp805.c │ └── drivers/allwinner/axp/common.c ├── drivers/allwinner/sunxi_msgbox.c └── drivers/allwinner/sunxi_rsb.c 1 directory, 5 files include/drivers/allwinner ├── include/drivers/allwinner/axp.h └── include/drivers/allwinner/sunxi_rsb.h 0 directories, 2 files plat/allwinner/sun50i_h6 ├── plat/allwinner/sun50i_h6/include │ ├── plat/allwinner/sun50i_h6/include/sunxi_ccu.h │ ├── plat/allwinner/sun50i_h6/include/sunxi_cpucfg.h │ ├── plat/allwinner/sun50i_h6/include/sunxi_mmap.h │ ├── plat/allwinner/sun50i_h6/include/sunxi_mmap.h.orig │ └── plat/allwinner/sun50i_h6/include/sunxi_spc.h ├── plat/allwinner/sun50i_h6/platform.mk ├── plat/allwinner/sun50i_h6/sunxi_idle_states.c └── plat/allwinner/sun50i_h6/sunxi_power.c 1 directory, 8 files As you can see orange pi one plus is missing the folder drivers/allwinner/axp wich is present in the orange pi lite 2 folder structure with files axp803.c axp805.c common.c that seem important. It is also missing the file include/drivers/allwinner/axp.h For better overview here are the diffs Tree diff: https://editor.mergely.com/gidNXnIs/ sunxi_power.c diff: https://editor.mergely.com/zZr8SxMc/ platform.mk diff: https://editor.mergely.com/3RSP9HmS/ Before that comparison I tried a bit to edit platform.mk and sunxi_power.c and build but got errors thrown. I may try it again with putting the missing axp folder and files. I doubt it will be successful. This still won't explain why Werner's opi1+ can boot. But to me it still seems that the opi1+ build is misconfigured with a mixture of i2c config plus missing rsb/axp related files. I'am waiting for my USB-Voltmeter to arrive and may buy a sdxc card next month. Kind regards
  8. No problem. I'am also not that deep into that stuff. Trial and erroring my way through. Just trying to get an understanding of what exactly is causing this. (Das) U-Boot is an open-source, primary boot loader used in embedded devices to package the instructions to boot the device's operating system kernel. It is available for a number of computer architectures, including 68k, ARM, Blackfin, MicroBlaze, MIPS, Nios, SuperH, PPC, RISC-V and x86. Some compare it loose to the BIOS. https://en.wikipedia.org/wiki/Das_U-Boot I struggle a bit to interpret your question the right way. I guess, because orangepi has no built in Bootloader/BIOS u-boot is mandatory and the first thing to happen when powering an orangepi sbc. U-boot is part of the armbian-image (that is downloaded from the armbian website). We just have an older version of u-boot because we use an older armbian-image to be able to boot armbian. Which makes sense. I don't think it is the u-boot-version that causes trouble. The most obvious change (I can see) is the switch from i2c bus to rsb bus in newer armbian versions. (linux-dtb-current-sunxi64, maybe armbian-firmware too) Freezing the Armbian kernel via armbian-config 4 packages get set on hold for apt xxx@orangepioneplus:~$ apt-mark showhold armbian-firmware linux-dtb-current-sunxi64 linux-image-current-sunxi64 linux-u-boot-orangepioneplus-current These 4 packages seem interdependent. so just holding back u-boot for updates won't work. Set linux-u-boot-orangepioneplus-current on hold; apt upgrade > no boot Set linux-u-boot-orangepioneplus-current AND linux-dtb-current-sunxi64 on hold; apt upgrade > no boot Set linux-u-boot-orangepioneplus-current AND linux-dtb-current-sunxi64 AND armbian-firmware on hold; apt upgrade > no boot ------------- old (i2c) sunxi_power.c probe for axp805 snippet from random git (lost link) ... static int axp805_probe(void) { int ret; uint8_t val; ret = axp_i2c_write(AXP805_ADDR, 0xff, 0x0); if (ret) { ERROR("PMIC: Cannot put AXP805 to master mode.\n"); return -EPERM; } ret = axp_i2c_read(AXP805_ADDR, AXP805_ID, &val); if (!ret && ((val & 0xcf) == 0x40)) NOTICE("PMIC: AXP805 detected\n"); else if (ret) { ERROR("PMIC: Cannot communicate with AXP805.\n"); return -EPERM; } else { ERROR("PMIC: Non-AXP805 chip attached at AXP805's address.\n"); return -EINVAL; } return 0; } ... I can't read C code that well. I assume it checks for AXP805 at 0x40 or does a test write in 0x40. Question stays, why AXP805 is detected fine via i2c but fails for TMA-1 and me via rsb but succeeds for Werner via i2c & rsb? If the board, psu, cable or sd-card is faulty why does it work flawlessly with i2c? Why would i2c have so much more tolerance? Compiling: searching the build folder you only find 2 files named sunxi_power.c one in folder sun50i_h6 one in folder sun50i_a64 both folders also contain a file named platform.mk cat build/cache/sources/arm-trusted-firmware-sunxi-mainline/v2.2/plat/allwinner/sun50i_a64/platform.mk # # Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # # The differences between the platform are covered by the include files. include plat/allwinner/common/allwinner-common.mk PLAT_BL_COMMON_SOURCES += drivers/allwinner/sunxi_rsb.c cat build/cache/sources/arm-trusted-firmware-sunxi-mainline/v2.2/plat/allwinner/sun50i_h6/platform.mk # # Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # # The differences between the platform are covered by the include files. include plat/allwinner/common/allwinner-common.mk PLAT_BL_COMMON_SOURCES += drivers/mentor/i2c/mi2cv.c sun50i_a64 points to the driver sunxi_rsb.c but sun50i_h6 points to the driver mi2cv.c Examining the sunxi_power.c files you can see the one in the sun50i_h6 folder has no entries and no includes to rsb or the sunxi_rsb.h driver. Only i2c related entries.. In contrast examining the sunxi_power.c in the sun50i_a64 folder it includes the sunxi_rsb.h driver, has rsb entries and two i2c related entries. cat build/cache/sources/arm-trusted-firmware-sunxi-mainline/v2.2/plat/allwinner/sun50i_h6/sunxi_power.c /* * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2018, Icenowy Zheng <icenowy@aosc.io> * * SPDX-License-Identifier: BSD-3-Clause */ #include <errno.h> #include <string.h> #include <arch_helpers.h> #include <common/debug.h> #include <drivers/delay_timer.h> #include <drivers/mentor/mi2cv.h> #include <lib/mmio.h> #include <sunxi_def.h> #include <sunxi_mmap.h> #include <sunxi_private.h> #define AXP805_ADDR 0x36 #define AXP805_ID 0x03 enum pmic_type { NO_PMIC, AXP805, }; enum pmic_type pmic; int axp_i2c_read(uint8_t chip, uint8_t reg, uint8_t *val) { int ret; ret = i2c_write(chip, 0, 0, &reg, 1); if (ret) return ret; return i2c_read(chip, 0, 0, val, 1); } int axp_i2c_write(uint8_t chip, uint8_t reg, uint8_t val) { return i2c_write(chip, reg, 1, &val, 1); } static int axp805_probe(void) { int ret; uint8_t val; ret = axp_i2c_write(AXP805_ADDR, 0xff, 0x0); if (ret) { ERROR("PMIC: Cannot put AXP805 to master mode.\n"); return -EPERM; } ret = axp_i2c_read(AXP805_ADDR, AXP805_ID, &val); if (!ret && ((val & 0xcf) == 0x40)) NOTICE("PMIC: AXP805 detected\n"); else if (ret) { ERROR("PMIC: Cannot communicate with AXP805.\n"); return -EPERM; } else { ERROR("PMIC: Non-AXP805 chip attached at AXP805's address.\n"); return -EINVAL; } return 0; } int sunxi_pmic_setup(uint16_t socid, const void *fdt) { int ret; sunxi_init_platform_r_twi(SUNXI_SOC_H6, false); /* initialise mi2cv driver */ i2c_init((void *)SUNXI_R_I2C_BASE); NOTICE("PMIC: Probing AXP805\n"); pmic = AXP805; ret = axp805_probe(); if (ret) pmic = NO_PMIC; else pmic = AXP805; return 0; } void __dead2 sunxi_power_down(void) { uint8_t val; switch (pmic) { case AXP805: /* Re-initialise after rich OS might have used it. */ sunxi_init_platform_r_twi(SUNXI_SOC_H6, false); /* initialise mi2cv driver */ i2c_init((void *)SUNXI_R_I2C_BASE); axp_i2c_read(AXP805_ADDR, 0x32, &val); axp_i2c_write(AXP805_ADDR, 0x32, val | 0x80); break; default: break; } udelay(1000); ERROR("PSCI: Cannot communicate with PMIC, halting\n"); wfi(); panic(); } cat build/cache/sources/arm-trusted-firmware-sunxi-mainline/v2.2/plat/allwinner/sun50i_a64/sunxi_power.c /* * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2018, Icenowy Zheng <icenowy@aosc.io> * * SPDX-License-Identifier: BSD-3-Clause */ #include <errno.h> #include <libfdt.h> #include <platform_def.h> #include <arch_helpers.h> #include <common/debug.h> #include <drivers/allwinner/sunxi_rsb.h> #include <drivers/delay_timer.h> #include <lib/mmio.h> #include <sunxi_def.h> #include <sunxi_mmap.h> #include <sunxi_private.h> static enum pmic_type { GENERIC_H5, GENERIC_A64, REF_DESIGN_H5, /* regulators controlled by GPIO pins on port L */ AXP803_RSB, /* PMIC connected via RSB on most A64 boards */ } pmic; #define AXP803_HW_ADDR 0x3a3 #define AXP803_RT_ADDR 0x2d /* * On boards without a proper PMIC we struggle to turn off the system properly. * Try to turn off as much off the system as we can, to reduce power * consumption. This should be entered with only one core running and SMP * disabled. * This function only cares about peripherals. */ void sunxi_turn_off_soc(uint16_t socid) { int i; /** Turn off most peripherals, most importantly DRAM users. **/ /* Keep DRAM controller running for now. */ mmio_clrbits_32(SUNXI_CCU_BASE + 0x2c0, ~BIT_32(14)); mmio_clrbits_32(SUNXI_CCU_BASE + 0x60, ~BIT_32(14)); /* Contains msgbox (bit 21) and spinlock (bit 22) */ mmio_write_32(SUNXI_CCU_BASE + 0x2c4, 0); mmio_write_32(SUNXI_CCU_BASE + 0x64, 0); mmio_write_32(SUNXI_CCU_BASE + 0x2c8, 0); /* Keep PIO controller running for now. */ mmio_clrbits_32(SUNXI_CCU_BASE + 0x68, ~(BIT_32(5))); mmio_write_32(SUNXI_CCU_BASE + 0x2d0, 0); /* Contains UART0 (bit 16) */ mmio_write_32(SUNXI_CCU_BASE + 0x2d8, 0); mmio_write_32(SUNXI_CCU_BASE + 0x6c, 0); mmio_write_32(SUNXI_CCU_BASE + 0x70, 0); /** Turn off DRAM controller. **/ mmio_clrbits_32(SUNXI_CCU_BASE + 0x2c0, BIT_32(14)); mmio_clrbits_32(SUNXI_CCU_BASE + 0x60, BIT_32(14)); /** Migrate CPU and bus clocks away from the PLLs. **/ /* AHB1: use OSC24M/1, APB1 = AHB1 / 2 */ mmio_write_32(SUNXI_CCU_BASE + 0x54, 0x1000); /* APB2: use OSC24M */ mmio_write_32(SUNXI_CCU_BASE + 0x58, 0x1000000); /* AHB2: use AHB1 clock */ mmio_write_32(SUNXI_CCU_BASE + 0x5c, 0); /* CPU: use OSC24M */ mmio_write_32(SUNXI_CCU_BASE + 0x50, 0x10000);#include <drivers/allwinner/sunxi_rsb.h> /** Turn off PLLs. **/ for (i = 0; i < 6; i++) mmio_clrbits_32(SUNXI_CCU_BASE + i * 8, BIT(31)); switch (socid) { case SUNXI_SOC_H5: mmio_clrbits_32(SUNXI_CCU_BASE + 0x44, BIT(31)); break; case SUNXI_SOC_A64: mmio_clrbits_32(SUNXI_CCU_BASE + 0x2c, BIT(31)); mmio_clrbits_32(SUNXI_CCU_BASE + 0x4c, BIT(31)); break; } } static int rsb_init(void) { int ret; ret = rsb_init_controller(); if (ret) return ret; /* Start with 400 KHz to issue the I2C->RSB switch command. */ ret = rsb_set_bus_speed(SUNXI_OSC24M_CLK_IN_HZ, 400000); if (ret) return ret; /* * Initiate an I2C transaction to write 0x7c into register 0x3e, * switching the PMIC to RSB mode. */ ret = rsb_set_device_mode(0x7c3e00); if (ret) return ret; /* Now in RSB mode, switch to the recommended 3 MHz. */ ret = rsb_set_bus_speed(SUNXI_OSC24M_CLK_IN_HZ, 3000000); if (ret) return ret; /* Associate the 8-bit runtime address with the 12-bit bus address. */ return rsb_assign_runtime_address(AXP803_HW_ADDR, AXP803_RT_ADDR); } static int axp_write(uint8_t reg, uint8_t val) { return rsb_write(AXP803_RT_ADDR, reg, val); } static int axp_clrsetbits(uint8_t reg, uint8_t clr_mask, uint8_t set_mask) { uint8_t regval; int ret; ret = rsb_read(AXP803_RT_ADDR, reg); if (ret < 0) return ret; regval = (ret & ~clr_mask) | set_mask; return rsb_write(AXP803_RT_ADDR, reg, regval); } #define axp_clrbits(reg, clr_mask) axp_clrsetbits(reg, clr_mask, 0) #define axp_setbits(reg, set_mask) axp_clrsetbits(reg, 0, set_mask) static bool should_enable_regulator(const void *fdt, int node) { if (fdt_getprop(fdt, node, "phandle", NULL) != NULL) return true; if (fdt_getprop(fdt, node, "regulator-always-on", NULL) != NULL) return true; return false; } /* * Retrieve the voltage from a given regulator DTB node. * Both the regulator-{min,max}-microvolt properties must be present and * have the same value. Return that value in millivolts. */ static int fdt_get_regulator_millivolt(const void *fdt, int node) { const fdt32_t *prop; uint32_t min_volt; prop = fdt_getprop(fdt, node, "regulator-min-microvolt", NULL); if (prop == NULL) return -EINVAL; min_volt = fdt32_to_cpu(*prop); prop = fdt_getprop(fdt, node, "regulator-max-microvolt", NULL); if (prop == NULL) return -EINVAL; if (fdt32_to_cpu(*prop) != min_volt) return -EINVAL; return min_volt / 1000; } #define NO_SPLIT 0xff static const struct axp_regulator { char *dt_name; uint16_t min_volt; uint16_t max_volt; uint16_t step; unsigned char split; unsigned char volt_reg; unsigned char switch_reg; unsigned char switch_bit; } regulators[] = { {"dcdc1", 1600, 3400, 100, NO_SPLIT, 0x20, 0x10, 0}, {"dcdc5", 800, 1840, 10, 32, 0x24, 0x10, 4}, {"dcdc6", 600, 1520, 10, 50, 0x25, 0x10, 5}, {"dldo1", 700, 3300, 100, NO_SPLIT, 0x15, 0x12, 3}, {"dldo2", 700, 4200, 100, 27, 0x16, 0x12, 4}, {"dldo3", 700, 3300, 100, NO_SPLIT, 0x17, 0x12, 5}, {"fldo1", 700, 1450, 50, NO_SPLIT, 0x1c, 0x13, 2}, {} }; static int setup_regulator(const void *fdt, int node, const struct axp_regulator *reg) { int mvolt; uint8_t regval; if (!should_enable_regulator(fdt, node)) return -ENOENT; mvolt = fdt_get_regulator_millivolt(fdt, node); if (mvolt < reg->min_volt || mvolt > reg->max_volt) return -EINVAL; regval = (mvolt / reg->step) - (reg->min_volt / reg->step); if (regval > reg->split) regval = ((regval - reg->split) / 2) + reg->split; axp_write(reg->volt_reg, regval); if (reg->switch_reg < 0xff) axp_setbits(reg->switch_reg, BIT(reg->switch_bit)); INFO("PMIC: AXP803: %s voltage: %d.%03dV\n", reg->dt_name, mvolt / 1000, mvolt % 1000); return 0; } static void setup_axp803_rails(const void *fdt) { int node; bool dc1sw = false; /* locate the PMIC DT node, bail out if not found */ node = fdt_node_offset_by_compatible(fdt, -1, "x-powers,axp803"); if (node < 0) { WARN("BL31: PMIC: Cannot find AXP803 DT node, skipping initial setup.\n"); return; } if (fdt_getprop(fdt, node, "x-powers,drive-vbus-en", NULL)) { axp_clrbits(0x8f, BIT(4)); axp_setbits(0x30, BIT(2)); INFO("PMIC: AXP803: Enabling DRIVEVBUS\n"); } /* descend into the "regulators" subnode */ node = fdt_subnode_offset(fdt, node, "regulators"); if (node < 0) { WARN("BL31: PMIC: Cannot find regulators subnode, skipping initial setup.\n"); return; } /* iterate over all regulators to find used ones */ for (node = fdt_first_subnode(fdt, node); node >= 0; node = fdt_next_subnode(fdt, node)) { const struct axp_regulator *reg; const char *name; int length; /* We only care if it's always on or referenced. */ if (!should_enable_regulator(fdt, node)) continue; name = fdt_get_name(fdt, node, &length); for (reg = regulators; reg->dt_name; reg++) { if (!strncmp(name, reg->dt_name, length)) { setup_regulator(fdt, node, reg); break; } } if (!strncmp(name, "dc1sw", length)) { /* Delay DC1SW enablement to avoid overheating. */ dc1sw = true; continue; } } /* * If DLDO2 is enabled after DC1SW, the PMIC overheats and shuts * down. So always enable DC1SW as the very last regulator. */ if (dc1sw) { INFO("PMIC: AXP803: Enabling DC1SW\n"); axp_setbits(0x12, BIT(7)); } } int sunxi_pmic_setup(uint16_t socid, const void *fdt) { int ret; switch (socid) { case SUNXI_SOC_H5: pmic = REF_DESIGN_H5; NOTICE("BL31: PMIC: Defaulting to PortL GPIO according to H5 reference design.\n"); break; case SUNXI_SOC_A64: pmic = GENERIC_A64; ret = sunxi_init_platform_r_twi(socid, true); if (ret) return ret; ret = rsb_init(); if (ret) return ret; pmic = AXP803_RSB; NOTICE("BL31: PMIC: Detected AXP803 on RSB.\n"); if (fdt) setup_axp803_rails(fdt); break; default: NOTICE("BL31: PMIC: No support for Allwinner %x SoC.\n", socid); return -ENODEV; } return 0; } void __dead2 sunxi_power_down(void) { switch (pmic) { case GENERIC_H5: /* Turn off as many peripherals and clocks as we can. */ sunxi_turn_off_soc(SUNXI_SOC_H5); /* Turn off the pin controller now. */ mmio_write_32(SUNXI_CCU_BASE + 0x68, 0); break; case GENERIC_A64: /* Turn off as many peripherals and clocks as we can. */ sunxi_turn_off_soc(SUNXI_SOC_A64); /* Turn off the pin controller now. */ mmio_write_32(SUNXI_CCU_BASE + 0x68, 0); break; case REF_DESIGN_H5: sunxi_turn_off_soc(SUNXI_SOC_H5); /* * Switch PL pins to power off the board: * - PL5 (VCC_IO) -> high * - PL8 (PWR-STB = CPU power supply) -> low * - PL9 (PWR-DRAM) ->low * - PL10 (power LED) -> low * Note: Clearing PL8 will reset the board, so keep it up. */ sunxi_set_gpio_out('L', 5, 1); sunxi_set_gpio_out('L', 9, 0); sunxi_set_gpio_out('L', 10, 0); /* Turn off pin controller now. */ mmio_write_32(SUNXI_CCU_BASE + 0x68, 0); break; case AXP803_RSB: /* (Re-)init RSB in case the rich OS has disabled it. */ sunxi_init_platform_r_twi(SUNXI_SOC_A64, true); rsb_init(); /* Set "power disable control" bit */ axp_setbits(0x32, BIT(7)); break; default: break; } udelay(1000); ERROR("PSCI: Cannot turn off system, halting.\n"); wfi(); panic(); } Of course the a64 sunxi_power.c would not work because of different hardware adresses, etc.. I thought i might replace the i2c driver line in the platform.mk with the rsb driver line and replace the sunxi_power.c in the sun50i_h6 folder with this one: https://github.com/ARM-software/arm-trusted-firmware/blob/master/plat/allwinner/sun50i_h6/sunxi_power.c But using the armbian compile tool it overwrites those files in the process with the default i2c files. How could i modify those files so that they dont get overwritten in the process? https://github.com/ARM-software/arm-trusted-firmware/blob/master/plat/allwinner/sun50i_h6/sunxi_power.c /* * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2018, Icenowy Zheng <icenowy@aosc.io> * * SPDX-License-Identifier: BSD-3-Clause */ #include <errno.h> #include <common/debug.h> #include <drivers/allwinner/axp.h> #include <drivers/allwinner/sunxi_rsb.h> #include <lib/mmio.h> #include <sunxi_cpucfg.h> #include <sunxi_def.h> #include <sunxi_mmap.h> #include <sunxi_private.h> #define AXP805_HW_ADDR 0x745 #define AXP805_RT_ADDR 0x3a static enum pmic_type { UNKNOWN, AXP805, } pmic; int axp_read(uint8_t reg) { return rsb_read(AXP805_RT_ADDR, reg); } int axp_write(uint8_t reg, uint8_t val) { return rsb_write(AXP805_RT_ADDR, reg, val); } static int rsb_init(void) { int ret; ret = rsb_init_controller(); if (ret) return ret; /* Switch to the recommended 3 MHz bus clock. */ ret = rsb_set_bus_speed(SUNXI_OSC24M_CLK_IN_HZ, 3000000); if (ret) return ret; /* Initiate an I2C transaction to switch the PMIC to RSB mode. */ ret = rsb_set_device_mode(AXP20X_MODE_RSB << 16 | AXP20X_MODE_REG << 8); if (ret) return ret; /* Associate the 8-bit runtime address with the 12-bit bus address. */ ret = rsb_assign_runtime_address(AXP805_HW_ADDR, AXP805_RT_ADDR); if (ret) return ret; return axp_check_id(); } int sunxi_pmic_setup(uint16_t socid, const void *fdt) { int ret; INFO("PMIC: Probing AXP805 on RSB\n"); ret = sunxi_init_platform_r_twi(socid, true); if (ret) return ret; ret = rsb_init(); if (ret) return ret; /* Switch the AXP805 to master/single-PMIC mode. */ ret = axp_write(0xff, 0x0); if (ret) return ret; pmic = AXP805; axp_setup_regulators(fdt); /* Switch the PMIC back to I2C mode. */ ret = axp_write(AXP20X_MODE_REG, AXP20X_MODE_I2C); if (ret) return ret; return 0; } void sunxi_power_down(void) { switch (pmic) { case AXP805: /* (Re-)init RSB in case the rich OS has disabled it. */ sunxi_init_platform_r_twi(SUNXI_SOC_H6, true); rsb_init(); axp_power_off(); break; default: break; } } void sunxi_cpu_power_off_self(void) { u_register_t mpidr = read_mpidr(); unsigned int core = MPIDR_AFFLVL0_VAL(mpidr); /* Enable the CPUIDLE hardware (only really needs to be done once). */ mmio_write_32(SUNXI_CPUIDLE_EN_REG, 0x16aa0000); mmio_write_32(SUNXI_CPUIDLE_EN_REG, 0xaa160001); /* Trigger power off for this core. */ mmio_write_32(SUNXI_CORE_CLOSE_REG, BIT_32(core)); } Iam still pretty sure that the sunxi_power.c for h6 is configured for i2c while the dtb is configured for rsb and thus you get the "axp20x-rsb sunxi-rsb-745: Failed to set masks in 0x40: -5" error. So or so this goes way over my head too. For now I have ordered a 5V/3A PSU. Just in case. If that does not solve the error I will get a Sandisk Extreme U3 A2 SD card. If the error persists I guess then I have a faulty board that works flawless with i2c. Kind regards
  9. Werner's u-boot is 2021.10 877 ii linux-u-boot-orangepioneplus-current 22.02.1 arm64 Uboot loader 2021.10 U-Boot 2021.04 boot ok with i2c - vcc-5v are set in boot process U-Boot 2021.10 boot ok with rsb for werner vcc-5v are set in boot process / no boot with rsb for TMA-1 & grn - vcc-5v are not set in boot process u-boot 2021.10 TMA-1 & grn same errors ... [ 2.082594] axp20x-rsb sunxi-rsb-745: AXP20x variant AXP806 found [ 2.083042] axp20x-rsb sunxi-rsb-745: Failed to set masks in 0x40: -5 [ 2.083067] axp20x-rsb sunxi-rsb-745: failed to add irq chip: -5 [ 2.083084] axp20x-rsb: probe of sunxi-rsb-745 failed with error -5 ... u-boot 2021.10 Werner 243 [ 1.898304] axp20x-rsb sunxi-rsb-745: AXP20x variant AXP806 found 244 [ 1.899335] input: axp20x-pek as /devices/platform/soc/7083000.rsb/sunxi-rsb-745/axp221-pek/input/input0 245 [ 1.900104] vdd-cpu: supplied by vcc-5v 246 [ 1.900510] vdd-gpu: supplied by vcc-5v 247 [ 1.900626] vdd-sys: Bringing 900000uV into 960000-960000uV 248 [ 1.900680] vdd-sys: supplied by vcc-5v in this case no voltages get set like in Werner's fine boot. In old u-boot with i2c voltages get set fine for TMA-1 and me though. (search for vcc-5v in u-boot 2021.04 pastebins voltages get set for cpu, gpu, etc..) In u-boot 2021.10 voltages don't get set in TMA-1's and my case. Searching for vcc gives 0 results. u-boot 2021.04 axp found, voltages get set ... [ 4.672875] input: axp20x-pek as /devices/platform/soc/7081400.i2c/i2c-1/1-0036/axp221-pek/input/input0 ... [ 4.888408] vdd-cpu: supplied by vcc-5v ... [ 4.937073] vdd-gpu: supplied by vcc-5v ... [ 4.999341] vdd-sys: supplied by vcc-5v [ 5.093139] vcc-dram: supplied by vcc-5v [ 5.103622] vcc-pl: supplied by vcc-5v [ 5.113706] vcc-ac200: Bringing 700000uV into 3300000-3300000uV ... If the boot would fail after voltages get set successfuly then I would suspect the psu. My OrangePiOne+ has an AXP805 chip. As far as I can read here the AXP805 gets handled as AXP806. At least for OpenBSD. https://www.mail-archive.com/arm@openbsd.org/msg02346.html > { "x-powers,axp221", "AXP221", axp221_regdata, axp221_sensdata }, > { "x-powers,axp223", "AXP223", axp221_regdata, axp221_sensdata }, > { "x-powers,axp803", "AXP803", axp803_regdata, axp803_sensdata }, > + { "x-powers,axp805", "AXP805", axp806_regdata }, > { "x-powers,axp806", "AXP806", axp806_regdata }, > { "x-powers,axp809", "AXP809", axp809_regdata, axp221_sensdata } All OpiOne+ pictures I could find had an AXP805. searching for "Failed to set masks in 0x40: -5" does not bring that many results but one with at least the exact matching error. In that case it is an AXP808 "talked to" at the right register but with the wrong value. https://lkml.iu.edu/hypermail/linux/kernel/1702.2/00795.html This brings me further away from a bad psu/sdcard causing this. Kind regards
  10. Alright. That makes no sense. As I tested all current Images several times. SHA256 sums got checked. At this point I will compile some images and look how that goes. I guess this will also fail. So my last resort is the Version/Revision of the OpiOne+ you use. I can imagine that TMA-1 has the same revision 2.1 as my board and you may have another revision. I know different revision should not be the problem in most cases/boards. However at this point I give up for now. Thanks for the help. Kind regards
  11. My Orange Pi One Plus is version 2.1 Comparing dtb files of older Armbian versions that boot fine to dtb files of newer armbian versions that won't boot. The most obvious difference is that the working ones seem to use i2c for regulators and the not working ones use rsb for regulators. After the "Killer Upgrade" the corresponding dtb file has changed from i2c to rsb. Reading this thread https://forum.armbian.com/topic/19846-orange-pi3-lts/page/4/ where the OP could boot the image but others could not boot that same image on the same versioned SBC. In that thread jernej wrote: "Reason why OrangePi image has I2C and Armbian RSB is that switch from I2C to RSB happened with kernel 5.13 and OrangePi uses kernel 5.10, which predates this. If OrangePi releases image with newer kernel, it will most likely use RSB too. The only important differences could be in regulator settings (subnodes to axp), those are important settings to copy." But later (end page 7, page8) they fix it with a patch "r_i2c" when building the image. https://github.com/afaulkner420/build-opi3-lts/blob/master/patch/kernel/archive/sunxi-5.15/999-rollback-rsb.patch In the process they suspected it to be that the OP (who could boot) had a PSU that was rated 5.25 V and all others had 5.0 V PSUs. But in the end they all could boot with their PSUs after the r_i2c patch was applied. I tried to apply that patch to the sunxi-50i-h6-orangepi-one-plus.dtb (search and replace) but it did not work. I am quite not sure how to apply it the right way. At this point I think it would be good if @Werner could upload his sunxi-50i-h6-orangepi-one-plus.dtb for comparison and testing. If boot fails too with this one I will buy a new supa fast SD-Card. If this won't help i will buy a new PSU. I am doubtful about the PSU because CPU stress tests run fine without any errors. I tested 4 or 5 different PSUs with 2 USB-DC cables from orangepi shop and 1 USB OTG Cable. USB OTG had a bit less power draw than with USB-DC-cables but stress tests where running fine in all variations. A paste of armbianmonitor -U on Armbian_21.05.1_Orangepioneplus_buster_current_5.10.34 https://pastebin.com/Y7PtWE9r In Werner's paste you have a lot rsb related entries. At the end, section Interrupts, Werner's paste has 1283 49: 215 0 0 0 GICv2 140 Level sunxi-rsb which is not present in the older version. Where it is 1474 46: 918 0 0 0 GICv2 139 Level mv64xxx_i2c instead. Kind regards
  12. 8 GB SanDisk SDHC Card is the card i ran Armbian the last years without problems until the upgrade some days ago. I also cross checked with a 64 GB SanDisk SDXC I Card with the same result(s). The serial log in my previous post is from the 8 GB SanDisk SDHC Card. I just flashed Armbian 22.02 Focal on the 64 GB SanDisk SDXC I Card. Same error. UUID is correct. Pastebin 22.02 Focal 64 GB SanDisk SDXC I Both SD cards boot Armbian 20.11.10 focal 5.8.16 just fine. Except of course you do an apt upgrade without freezing the kernel. Then both cards won't boot anymore. This behaviour directs me to the conclusion that both sd-cards are not faulty or "wrong". Of course it could be the case that both sd-cards are the culprit. It bugs me that TMA-1 has the same error with a working Armbian installation after an apt upgrade in the same timeframe as I did. I will now try the same image that TMA-1 uses as a base "Armbian_21.05.1_Orangepioneplus_buster_current_5.10.34.img.xz" and see if it boots and how it behaves on both cards.
  13. Hello, first i want to say thanks to the Armbian team for all the hard work you put into it. I have the same problem. Armbian (ubuntu) was running fine on my Orange Pi One Plus for 1 or 2 years. Doing apt update && apt upgrade from time to time without any problems. Some days ago after performing apt upgrade as usual after reboot it refused to boot. First I flashed Armbian 22.02 Bullseye - no boot Then I flashed Armbian 22.02 Focal and Jammy - no boot Then I tried several version 21.*.* images from the archive 21.02.1 focal 5.10.12 - no boot 21.02.3 focal 5.10.21 - no boot 21.05.1 focal 5.10.34 - no boot 21.08.1 focal 5.10.60 - no boot HDMI was connected. The Monitor had a signal but black screen and had several short flashes. After waiting long enough you could see the boot process stuck with the "ALERT! UUID=[valid UUID] does not exist. Dropping to a shell!". Everytime I checked the UUID of SD-Card Partition and it was always the correct UUID. Then i jumped to an older version. 20.11.10 focal 5.8.16 - boot OK apt update && apt upgrade, reboot - no boot flashed again. apt update && apt upgrade, armbian-config > install/update bootloader, reboot - no boot flashed again. armbian-config > Freeze Kernel | apt update && apt upgrade, reboot - boot OK So finding a version that boots up and freezing the kernel is the only thing that works for me right now. I got USB to TTL working now. Verbosity=7 and console=serial. Here is the output for version 22.02 Focal U-Boot SPL 2021.10-armbian (Feb 27 2022 - 08:51:38 +0000) DRAM: 1024 MiB Trying to boot from MMC1 NOTICE: BL31: v2.2(debug):a04808c1-dirty NOTICE: BL31: Built : 08:51:29, Feb 27 2022 NOTICE: BL31: Detected Allwinner H6 SoC (1728) NOTICE: BL31: Found U-Boot DTB at 0xc086c68, model: OrangePi One Plus INFO: ARM GICv2 driver initialized NOTICE: PMIC: Probing AXP805 NOTICE: PMIC: AXP805 detected INFO: BL31: Platform setup done INFO: BL31: Initializing runtime services INFO: BL31: cortex_a53: CPU workaround for 855873 was applied INFO: BL31: Preparing for EL3 exit to normal world INFO: Entry point address = 0x4a000000 INFO: SPSR = 0x3c9 U-Boot 2021.10-armbian (Feb 27 2022 - 08:51:38 +0000) Allwinner Technology CPU: Allwinner H6 (SUN50I) Model: OrangePi One Plus DRAM: 1 GiB MMC: mmc@4020000: 0 Loading Environment from FAT... Unable to use mmc 0:1... In: serial@5000000 Out: serial@5000000 Err: serial@5000000 Net: No ethernet found. starting USB... Bus usb@5101000: USB EHCI 1.00 Bus usb@5101400: USB OHCI 1.0 Bus usb@5311000: USB EHCI 1.00 Bus usb@5311400: USB OHCI 1.0 scanning bus usb@5101000 for devices... 1 USB Device(s) found scanning bus usb@5101400 for devices... 1 USB Device(s) found scanning bus usb@5311000 for devices... 1 USB Device(s) found scanning bus usb@5311400 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Autoboot in 1 seconds, press <Space> to stop switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr 3202 bytes read in 6 ms (520.5 KiB/s) ## Executing script at 4fc00000 U-boot loaded from SD Boot script loaded from mmc 154 bytes read in 5 ms (29.3 KiB/s) 35349 bytes read in 12 ms (2.8 MiB/s) 4191 bytes read in 10 ms (409.2 KiB/s) Applying kernel provided DT fixup script (sun50i-h6-fixup.scr) ## Executing script at 45000000 12462399 bytes read in 620 ms (19.2 MiB/s) 21735432 bytes read in 1078 ms (19.2 MiB/s) Moving Image from 0x40080000 to 0x40200000, end=41710000 ## Loading init Ramdisk from Legacy Image at 4ff00000 ... Image Name: uInitrd Image Type: AArch64 Linux RAMDisk Image (gzip compressed) Data Size: 12462335 Bytes = 11.9 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 4fa00000 Booting using the fdt blob at 0x4fa00000 Loading Ramdisk to 4941d000, end 49fff8ff ... OK Loading Device Tree to 00000000493ac000, end 000000004941cfff ... OK Starting kernel ... U-Boot SPL 2021.10-armbian (Feb 27 2022 - 08:51:38 +0000) DRAM: 1024 MiB Trying to boot from MMC1 NOTICE: BL31: v2.2(debug):a04808c1-dirty NOTICE: BL31: Built : 08:51:29, Feb 27 2022 NOTICE: BL31: Detected Allwinner H6 SoC (1728) NOTICE: BL31: Found U-Boot DTB at 0xc086c68, model: OrangePi One Plus INFO: ARM GICv2 driver initialized NOTICE: PMIC: Probing AXP805 NOTICE: PMIC: AXP805 detected INFO: BL31: Platform setup done INFO: BL31: Initializing runtime services INFO: BL31: cortex_a53: CPU workaround for 855873 was applied INFO: BL31: Preparing for EL3 exit to normal world INFO: Entry point address = 0x4a000000 INFO: SPSR = 0x3c9 U-Boot 2021.10-armbian (Feb 27 2022 - 08:51:38 +0000) Allwinner Technology CPU: Allwinner H6 (SUN50I) Model: OrangePi One Plus DRAM: 1 GiB MMC: mmc@4020000: 0 Loading Environment from FAT... Unable to use mmc 0:1... In: serial@5000000 Out: serial@5000000 Err: serial@5000000 Net: No ethernet found. starting USB... Bus usb@5101000: USB EHCI 1.00 Bus usb@5101400: USB OHCI 1.0 Bus usb@5311000: USB EHCI 1.00 Bus usb@5311400: USB OHCI 1.0 scanning bus usb@5101000 for devices... 1 USB Device(s) found scanning bus usb@5101400 for devices... 1 USB Device(s) found scanning bus usb@5311000 for devices... 1 USB Device(s) found scanning bus usb@5311400 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Autoboot in 1 seconds, press <Space> to stop switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr 3202 bytes read in 4 ms (781.3 KiB/s) ## Executing script at 4fc00000 U-boot loaded from SD Boot script loaded from mmc 156 bytes read in 3 ms (50.8 KiB/s) 35349 bytes read in 16 ms (2.1 MiB/s) 4191 bytes read in 8 ms (510.7 KiB/s) Applying kernel provided DT fixup script (sun50i-h6-fixup.scr) ## Executing script at 45000000 12462399 bytes read in 628 ms (18.9 MiB/s) 21735432 bytes read in 1078 ms (19.2 MiB/s) Moving Image from 0x40080000 to 0x40200000, end=41710000 ## Loading init Ramdisk from Legacy Image at 4ff00000 ... Image Name: uInitrd Image Type: AArch64 Linux RAMDisk Image (gzip compressed) Data Size: 12462335 Bytes = 11.9 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 4fa00000 Booting using the fdt blob at 0x4fa00000 Loading Ramdisk to 4941d000, end 49fff8ff ... OK Loading Device Tree to 00000000493ac000, end 000000004941cfff ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 5.15.25-sunxi64 (root@be0d054872f0) (aarch64-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 8.3.0, GNU ld (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 2.32.0.20190321) #22.02.1 SMP Sun Feb 27 09:24:04 UTC 2022 [ 0.000000] Machine model: OrangePi One Plus [ 0.000000] NUMA: No NUMA configuration found [ 0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000007fffffff] [ 0.000000] NUMA: NODE_DATA [mem 0x7fdce100-0x7fdcffff] [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000040000000-0x000000007fffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000040000000-0x000000007fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000007fffffff] [ 0.000000] cma: Reserved 128 MiB at 0x0000000076c00000 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.1 [ 0.000000] percpu: Embedded 19 pages/cpu s36952 r8192 d32680 u77824 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: detected: ARM erratum 845719 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 258048 [ 0.000000] Policy zone: DMA [ 0.000000] Kernel command line: root=UUID=a1483a27-5c10-4a32-b574-6102d8be806c rootwait rootfstype=ext4 console=ttyS0,115200 consoleblank=0 loglevel=7 ubootpart=3e3a004b-01 usb-storage.quirks= cgroup_enable=memory swapaccount=1 [ 0.000000] Unknown kernel command line parameters "ubootpart=3e3a004b-01 cgroup_enable=memory", will be passed to user space. [ 0.000000] printk: log_buf_len individual max cpu contribution: 4096 bytes [ 0.000000] printk: log_buf_len total cpu_extra contributions: 12288 bytes [ 0.000000] printk: log_buf_len min size: 16384 bytes [ 0.000000] printk: log_buf_len: 32768 bytes [ 0.000000] printk: early log buf free: 14208(86%) [ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) [ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] Memory: 863104K/1048576K available (13440K kernel code, 1066K rwdata, 4128K rodata, 2496K init, 316K bss, 54400K reserved, 131072K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] Root IRQ handler: gic_handle_irq [ 0.000000] GIC: Using split EOI/Deactivate mode [ 0.000000] random: get_random_bytes called from start_kernel+0x4cc/0x6ac with crng_init=0 [ 0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns [ 0.000000] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns [ 0.000125] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns [ 0.000596] Console: colour dummy device 80x25 [ 0.000686] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000) [ 0.000704] pid_max: default: 32768 minimum: 301 [ 0.000786] LSM: Security Framework initializing [ 0.000820] Yama: becoming mindful. [ 0.000906] AppArmor: AppArmor initialized [ 0.000958] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.000975] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.002610] rcu: Hierarchical SRCU implementation. [ 0.003582] smp: Bringing up secondary CPUs ... [ 0.004371] Detected VIPT I-cache on CPU1 [ 0.004441] CPU1: Booted secondary processor 0x0000000001 [0x410fd034] [ 0.005071] Detected VIPT I-cache on CPU2 [ 0.005112] CPU2: Booted secondary processor 0x0000000002 [0x410fd034] [ 0.005674] Detected VIPT I-cache on CPU3 [ 0.005711] CPU3: Booted secondary processor 0x0000000003 [0x410fd034] [ 0.005779] smp: Brought up 1 node, 4 CPUs [ 0.005806] SMP: Total of 4 processors activated. [ 0.005814] CPU features: detected: 32-bit EL0 Support [ 0.005820] CPU features: detected: CRC32 instructions [ 0.018571] CPU: All CPU(s) started at EL2 [ 0.018604] alternatives: patching kernel code [ 0.020006] devtmpfs: initialized [ 0.026504] Registered cp15_barrier emulation handler [ 0.026534] Registered setend emulation handler [ 0.026712] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 0.026735] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) [ 0.032733] pinctrl core: initialized pinctrl subsystem [ 0.033918] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.035501] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations [ 0.035630] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations [ 0.035762] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations [ 0.035821] audit: initializing netlink subsys (disabled) [ 0.035965] audit: type=2000 audit(0.032:1): state=initialized audit_enabled=0 res=1 [ 0.036520] thermal_sys: Registered thermal governor 'fair_share' [ 0.036526] thermal_sys: Registered thermal governor 'bang_bang' [ 0.036534] thermal_sys: Registered thermal governor 'step_wise' [ 0.036542] thermal_sys: Registered thermal governor 'user_space' [ 0.036974] cpuidle: using governor menu [ 0.037190] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.037289] ASID allocator initialised with 65536 entries [ 0.037454] Serial: AMBA PL011 UART driver [ 0.048048] platform 6510000.tcon-top: Fixing up cyclic dependency with 6000000.hdmi [ 0.048414] platform 6515000.lcd-controller: Fixing up cyclic dependency with 6510000.tcon-top [ 0.049490] platform 7022000.pinctrl: Fixing up cyclic dependency with pmic@745 (7083000.rsb) [ 0.050315] platform connector: Fixing up cyclic dependency with 6000000.hdmi [ 0.057877] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages [ 0.057901] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages [ 0.057910] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages [ 0.057919] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages [ 0.059688] cryptd: max_cpu_qlen set to 1000 [ 0.128274] raid6: neonx8 gen() 1586 MB/s [ 0.196344] raid6: neonx8 xor() 1186 MB/s [ 0.264439] raid6: neonx4 gen() 1624 MB/s [ 0.332510] raid6: neonx4 xor() 1175 MB/s [ 0.400603] raid6: neonx2 gen() 1535 MB/s [ 0.468670] raid6: neonx2 xor() 1078 MB/s [ 0.536767] raid6: neonx1 gen() 1338 MB/s [ 0.604840] raid6: neonx1 xor() 923 MB/s [ 0.672931] raid6: int64x8 gen() 1104 MB/s [ 0.740997] raid6: int64x8 xor() 580 MB/s [ 0.809078] raid6: int64x4 gen() 1226 MB/s [ 0.877157] raid6: int64x4 xor() 628 MB/s [ 0.945268] raid6: int64x2 gen() 1048 MB/s [ 1.013330] raid6: int64x2 xor() 555 MB/s [ 1.081431] raid6: int64x1 gen() 778 MB/s [ 1.149512] raid6: int64x1 xor() 405 MB/s [ 1.149521] raid6: using algorithm neonx4 gen() 1624 MB/s [ 1.149528] raid6: .... xor() 1175 MB/s, rmw enabled [ 1.149536] raid6: using neon recovery algorithm [ 1.150428] iommu: Default domain type: Translated [ 1.150442] iommu: DMA domain TLB invalidation policy: strict mode [ 1.150731] SCSI subsystem initialized [ 1.150943] usbcore: registered new interface driver usbfs [ 1.150987] usbcore: registered new interface driver hub [ 1.151023] usbcore: registered new device driver usb [ 1.151314] pps_core: LinuxPPS API ver. 1 registered [ 1.151324] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 1.151347] PTP clock support registered [ 1.151955] Advanced Linux Sound Architecture Driver Initialized. [ 1.152620] NetLabel: Initializing [ 1.152628] NetLabel: domain hash size = 128 [ 1.152635] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO [ 1.152708] NetLabel: unlabeled traffic allowed by default [ 1.153116] clocksource: Switched to clocksource arch_sys_counter [ 1.153306] VFS: Disk quotas dquot_6.6.0 [ 1.153362] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 1.153968] AppArmor: AppArmor Filesystem Enabled [ 1.160675] NET: Registered PF_INET protocol family [ 1.160822] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear) [ 1.161656] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear) [ 1.161689] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 1.161771] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear) [ 1.161922] TCP: Hash tables configured (established 8192 bind 8192) [ 1.162040] UDP hash table entries: 512 (order: 2, 16384 bytes, linear) [ 1.162085] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear) [ 1.162243] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 1.162758] Trying to unpack rootfs image as initramfs... [ 1.170259] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available [ 1.176112] Initialise system trusted keyrings [ 1.176178] Key type blacklist registered [ 1.176349] workingset: timestamp_bits=44 max_order=18 bucket_order=0 [ 1.182178] zbud: loaded [ 1.183747] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 1.185999] integrity: Platform Keyring initialized [ 1.235129] xor: automatically using best checksumming function 32regs [ 1.235171] async_tx: api initialized (async) [ 1.235184] Key type asymmetric registered [ 1.235194] Asymmetric key parser 'x509' registered [ 1.235314] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247) [ 1.235462] io scheduler mq-deadline registered [ 1.235472] io scheduler kyber registered [ 1.235671] io scheduler bfq registered [ 1.240114] sun50i-h6-r-pinctrl 7022000.pinctrl: initialized sunXi PIO driver [ 1.250738] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled [ 1.256402] cacheinfo: Unable to detect cache hierarchy for CPU 0 [ 1.260479] loop: module loaded [ 1.262675] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 1.262710] ehci-platform: EHCI generic platform driver [ 1.262853] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 1.262868] ohci-platform: OHCI generic platform driver [ 1.263284] usbcore: registered new interface driver usb-storage [ 1.263774] mousedev: PS/2 mouse device common for all mice [ 1.264673] sun6i-rtc 7000000.rtc: registered as rtc0 [ 1.264694] sun6i-rtc 7000000.rtc: hctosys: unable to read the hardware clock [ 1.264810] sun6i-rtc 7000000.rtc: RTC enabled [ 1.264923] i2c_dev: i2c /dev entries driver [ 1.265651] sunxi-wdt 7020400.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0) [ 1.267059] sdhci: Secure Digital Host Controller Interface driver [ 1.267079] sdhci: Copyright(c) Pierre Ossman [ 1.267106] Synopsys Designware Multimedia Card Interface Driver [ 1.267717] sdhci-pltfm: SDHCI platform and OF driver helper [ 1.267871] sun50i-h6-r-pinctrl 7022000.pinctrl: supply vcc-pl not found, using dummy regulator [ 1.268934] ledtrig-cpu: registered to indicate activity on CPUs [ 1.269466] sun8i-ce 1904000.crypto: Set mod clock to 300000000 (300 Mhz) from 24000000 (24 Mhz) [ 1.269737] sun8i-ce 1904000.crypto: will run requests pump with realtime priority [ 1.269871] sun8i-ce 1904000.crypto: will run requests pump with realtime priority [ 1.269967] sun8i-ce 1904000.crypto: will run requests pump with realtime priority [ 1.270060] sun8i-ce 1904000.crypto: will run requests pump with realtime priority [ 1.270149] sun8i-ce 1904000.crypto: Register cbc(aes) [ 1.270302] sun8i-ce 1904000.crypto: Register ecb(aes) [ 1.270414] sun8i-ce 1904000.crypto: Register cbc(des3_ede) [ 1.270530] sun8i-ce 1904000.crypto: Register ecb(des3_ede) [ 1.270637] sun8i-ce 1904000.crypto: Register md5 [ 1.270746] sun8i-ce 1904000.crypto: Register sha1 [ 1.270852] sun8i-ce 1904000.crypto: Register sha224 [ 1.270979] sun8i-ce 1904000.crypto: Register sha256 [ 1.271086] sun8i-ce 1904000.crypto: Register sha384 [ 1.271195] sun8i-ce 1904000.crypto: Register sha512 [ 1.271302] sun8i-ce 1904000.crypto: Register stdrng [ 1.272009] sun8i-ce 1904000.crypto: CryptoEngine Die ID 0 [ 1.272503] hid: raw HID events driver (C) Jiri Kosina [ 1.272638] usbcore: registered new interface driver usbhid [ 1.272647] usbhid: USB HID core driver [ 1.273408] random: fast init done [ 1.274877] random: crng init done [ 1.275424] NET: Registered PF_INET6 protocol family [ 1.834931] Freeing initrd memory: 12168K [ 1.862467] Segment Routing with IPv6 [ 1.862570] In-situ OAM (IOAM) with IPv6 [ 1.862665] NET: Registered PF_PACKET protocol family [ 1.862776] 8021q: 802.1Q VLAN Support v1.8 [ 1.862936] 9pnet: Installing 9P2000 support [ 1.863012] Key type dns_resolver registered [ 1.863422] registered taskstats version 1 [ 1.863440] Loading compiled-in X.509 certificates [ 1.867300] Loaded X.509 cert 'Build time autogenerated kernel key: bcc3e2753dc7b0d253b541b07c1f0e6f1eedd00a' [ 1.870161] zswap: loaded using pool zstd/z3fold [ 1.870779] Key type ._fscrypt registered [ 1.870790] Key type .fscrypt registered [ 1.870798] Key type fscrypt-provisioning registered [ 1.871834] Btrfs loaded, crc32c=crc32c-generic, zoned=yes, fsverity=no [ 1.885011] Key type encrypted registered [ 1.885049] AppArmor: AppArmor sha1 policy hashing enabled [ 1.885185] ima: No TPM chip found, activating TPM-bypass! [ 1.885221] ima: Allocated hash algorithm: sha1 [ 1.885256] ima: No architecture policies found [ 1.885307] evm: Initialising EVM extended attributes: [ 1.885314] evm: security.selinux [ 1.885321] evm: security.SMACK64 [ 1.885328] evm: security.SMACK64EXEC [ 1.885334] evm: security.SMACK64TRANSMUTE [ 1.885340] evm: security.SMACK64MMAP [ 1.885347] evm: security.apparmor [ 1.885353] evm: security.ima [ 1.885359] evm: security.capability [ 1.885365] evm: HMAC attrs: 0x1 [ 1.896905] platform 1100000.mixer: Fixing up cyclic dependency with 6510000.tcon-top [ 1.897347] sun8i-mixer 1100000.mixer: Adding to iommu group 0 [ 1.897942] sunxi-rsb 7083000.rsb: RSB running at 3000000 Hz [ 1.898314] axp20x-rsb sunxi-rsb-745: AXP20x variant AXP806 found [ 1.898766] axp20x-rsb sunxi-rsb-745: Failed to set masks in 0x40: -5 [ 1.898781] axp20x-rsb sunxi-rsb-745: failed to add irq chip: -5 [ 1.898792] axp20x-rsb: probe of sunxi-rsb-745 failed with error -5 [ 1.903591] sun50i-h6-pinctrl 300b000.pinctrl: initialized sunXi PIO driver [ 1.903970] sun50i-h6-pinctrl 300b000.pinctrl: supply vcc-ph not found, using dummy regulator [ 1.904539] printk: console [ttyS0] disabled [ 1.904632] 5000000.serial: ttyS0 at MMIO 0x5000000 (irq = 33, base_baud = 1500000) is a 16550A [ 3.312839] printk: console [ttyS0] enabled [ 3.318431] sun4i-drm display-engine: Adding to iommu group 0 [ 3.343602] sun4i-drm display-engine: bound 1100000.mixer (ops 0xffff800008e05cf8) [ 3.351352] sun4i-drm display-engine: bound 6510000.tcon-top (ops 0xffff800008e09f20) [ 3.359462] sun4i-drm display-engine: bound 6515000.lcd-controller (ops 0xffff800008e00f08) [ 3.367876] sun8i-dw-hdmi 6000000.hdmi: supply hvcc not found, using dummy regulator [ 3.375980] sun8i-dw-hdmi 6000000.hdmi: Detected HDMI TX controller v2.12a with HDCP (DWC HDMI 2.0 TX PHY) [ 3.386178] sun8i-dw-hdmi 6000000.hdmi: registered DesignWare HDMI I2C bus driver [ 3.394008] sun4i-drm display-engine: bound 6000000.hdmi (ops 0xffff800008e05030) [ 3.401985] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0 [ 3.409789] sun4i-drm display-engine: [drm] Cannot find any crtc or sizes [ 3.418720] sun4i-drm display-engine: [drm] Cannot find any crtc or sizes [ 3.419016] sun50i_cpufreq_nvmem: Using CPU speed bin speed0 [ 3.432236] scpi_protocol scpi: SCP Protocol 0.0 Firmware 0.0.0 version [ 3.432347] sun50i-h6-pinctrl 300b000.pinctrl: supply vcc-pf not found, using dummy regulator [ 3.439052] sun50i-h6-pinctrl 300b000.pinctrl: Couldn't get bank PD regulator [ 3.454533] sun50i-h6-pinctrl 300b000.pinctrl: request() failed for pin 102 [ 3.461499] sun50i-h6-pinctrl 300b000.pinctrl: pin-102 (300b000.pinctrl:102) status -517 [ 3.469968] sun50i-h6-pinctrl 300b000.pinctrl: Couldn't get bank PC regulator [ 3.477117] sun50i-h6-pinctrl 300b000.pinctrl: request() failed for pin 70 [ 3.483993] sun50i-h6-pinctrl 300b000.pinctrl: pin-70 (300b000.pinctrl:70) status -517 [ 3.493630] sun50i-h6-pinctrl 300b000.pinctrl: Couldn't get bank PD regulator [ 3.493847] sun50i-h6-pinctrl 300b000.pinctrl: supply vcc-pf not found, using dummy regulator [ 3.500771] sun50i-h6-pinctrl 300b000.pinctrl: request() failed for pin 102 [ 3.516247] sun50i-h6-pinctrl 300b000.pinctrl: pin-102 (300b000.pinctrl:102) status -517 [ 3.524705] sun50i-h6-pinctrl 300b000.pinctrl: Couldn't get bank PC regulator [ 3.531860] sun50i-h6-pinctrl 300b000.pinctrl: request() failed for pin 70 [ 3.538740] sun50i-h6-pinctrl 300b000.pinctrl: pin-70 (300b000.pinctrl:70) status -517 [ 3.548350] sun50i-h6-pinctrl 300b000.pinctrl: Couldn't get bank PD regulator [ 3.548569] sun50i-h6-pinctrl 300b000.pinctrl: supply vcc-pf not found, using dummy regulator [ 3.555492] sun50i-h6-pinctrl 300b000.pinctrl: request() failed for pin 102 [ 3.570967] sun50i-h6-pinctrl 300b000.pinctrl: pin-102 (300b000.pinctrl:102) status -517 [ 3.579622] of_cfs_init [ 3.582197] of_cfs_init: OK [ 3.585193] ALSA device list: [ 3.588160] No soundcards found. [ 3.592796] Freeing unused kernel memory: 2496K [ 3.617191] Run /init as init process Loading, please wait... Starting version 245.4-4ubuntu3.15 Begin: Loading essential drivers ... done. Begin: Running /scripts/init-premount ... done. Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done. Begin: Running /scripts/local-premount ... Scanning for Btrfs filesystems done. Begin: Waiting for root file system ... Begin: Running /scripts/local-block ... done. done. Gave up waiting for root file system device. Common problems: - Boot args (cat /proc/cmdline) - Check rootdelay= (did the system wait long enough?) - Missing modules (cat /proc/modules; ls /dev) ALERT! UUID=a1483a27-5c10-4a32-b574-6102d8be806c does not exist. Dropping to a shell! BusyBox v1.30.1 (Ubuntu 1:1.30.1-4ubuntu6.4) built-in shell (ash) Enter 'help' for a list of built-in commands. (initramfs) lsblk I checked the UUID and it is correct. The only error I can find is 1.898792] axp20x-rsb: probe of sunxi-rsb-745 failed with error -5 But that same error is displayed also with the working 20.11.10 focal 5.8.16 (kernel upgrades freezed) which is booting fine. So this should not be the problem. Hope that helps. Kind regards grn
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines