| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
board: Anbernic RG Vita Pro bsp helpers and audio state Board bsp package and default ALSA state: - vita-jack-switch: mute internal speakers while headphones are plugged - vita-pad2key + toggle: gamepad-to-keyboard remap for desktop navigation - vita-screen: X11-only rotation + touch mapping (Wayland uses the DRM panel-orientation property natively) - vita-offcharge: Android-style off-charge screen (the RK806 powers on when a charger is plugged, a hardware behavior; a plug-in boot shows a battery screen that powers off on unplug and continues to boot on power press) - SDDM configured for its Wayland greeter; udev rule reclassifying the ABS-only stick device from accelerometer to joystick - default asound.state with speakers and headphone jack enabled Signed-off-by: crackerjacques <jack@supremeoverlordjabs.co> | 1 个月前 | |
Add NEW hciattach_opi blob Signed-off-by: Patrick Yavitz <pyavitz@gmail.com> | 7 个月前 | |
add community support for MediaTek Filogic device (BananaPi R4 Router) | 1 年前 | |
extensions: `grub-with-dtb`: add UMS menu entry to GRUB if initramfs ums hook is detected - this allows user to enter UMS mode from GRUB - for usage with the `initramfs-usb-gadget-ums` extension - has no effect unless `initramfs-usb-gadget-ums` extension is enabled together with `grub-with-dtb` | 2 年前 | |
khadas-vim1/vim2: bump prebuilt u-boot to khadas-uboot 0.17.3 Update the prebuilt u-boot blobs for khadas-vim1 and khadas-vim2 to khadas-uboot 0.17.3 (https://github.com/khadas/khadas-uboot/releases/tag/0.17.3) and bump UBOOT_HASH_EXTRA to "khadas-uboot-0.17.3" so the u-boot artifact cache key changes and the .deb repackages instead of serving the stale 0.11 build. Signed-off-by: Igor Pecovnik <igor@armbian.com> | 2 个月前 | |
mt7623: Bump `legacy` 4.19 to `current` 6.6 kernel NB: This family only has one board (BananaPi R2) and has not been properly maintained in many years, so 'current' LTS kernel is enough. No need for 'edge' kernel unless someone plans to step in as maintainer who bumps and tests it on every new kernel release. - Adjust BananaPi R2 board config (board is mainlined) - Remove legacy kernel patch folder and kernel config - Remove unstable WiFi stuff | 2 年前 | |
S5P6818 (NanoPC-T3+ / NanoPi M3 / Fire3): mainline 7.2 bring-up (#10674) * s5p6818: resurrect NanoPC-T3+ (nanopct3plus.eos) and its family Restore the Nexell S5P6818 support that was dropped after v24.05, so the NanoPC-T3+ builds on the current framework again. Brought back verbatim from origin/v24.05: - config/boards/nanopct3plus.eos - config/sources/families/s5p6818.conf (u-boot rafaello7/u-boot-nanopi-m3, kernel armbian/linux branch s5p6818 @ 4.14, custom NSIH boot.img build + 1G/2G BL1 blob selection) - config/kernel/linux-s5p6818-legacy.config - config/bootenv/s5p6818.txt, config/bootscripts/boot-s5p6818.cmd - patch/kernel/archive/s5p6818-4.14/* (+ the s5p6818-legacy compat symlink) - patch/u-boot/legacy/u-boot-s5p6818/* - packages/blobs/nanopi/{1g,2g}-bl1-nanopi.bin (required by the u-boot postprocess) Verified against current main: the family hooks (write_uboot_platform, uboot_custom_postprocess, family_tweaks) and the legacy/ u-boot patch-dir convention are still honoured; both upstream sources (the armbian/linux s5p6818 branch and the rafaello7 u-boot master) still exist and are fetchable; board + family confs pass bash -n. Kept as .eos (end-of-support), as it was. A full 4.14 kernel + legacy u-boot build with the current toolchain is the remaining validation. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: add EDGE (mainline 7.2) kernel target for NanoPC-T3+ Bring the Nexell S5P6818 up on a mainline 7.2 kernel (legacy 4.14 kept untouched). Verified on a NanoPC-T3+: boots to an interactive ttySAC0 login under the existing 2016 fork u-boot - clean console, EXT4 rootfs mounts, systemd runs. Kernel (patch/kernel/archive/s5p6818-7.2, on top of mainline v7.2.4): - 0001: minimal nexell platform (Kconfig, DT, console + SD). - 0002: boot enablement - * finalise_el2: return early - the fork u-boot's EL2 handoff leaves the hvc trap broken and A53 nVHE needs no EL2 finalise (KVM, the other hvc user, is disabled in the config). * The ARM generic-timer PPIs are not delivered and the system counter (CNTVCT) is frozen by design on this SoC, so drive the kernel clockevent/clocksource from the Nexell PWM timer (samsung,s5p6440-pwm; ARCH_NEXELL selects CLKSRC_SAMSUNG_PWM), keep arm,armv8-timer counter-only so time_init() does not panic, and redirect arm64 get_cycles()/__delay() to the PWM so udelay() does not spin forever. * nexell,s5p6818-uart drvdata + uart fixed-clock at the real 50.688 MHz (u-boot UBRDIV=26/UDIVSLOT=8) so the console baud is correct. config/kernel/linux-s5p6818-edge.config: CONFIG_VIRTUALIZATION/KVM off. config/bootscripts/boot-s5p6818.cmd: kernel_addr_r 2 MiB aligned. config/sources/families/s5p6818.conf: edge branch = 7.2; NSIH postprocess no longer relies on xxd. board: KERNEL_TARGET="legacy,edge". u-boot v2026.07 port is included but still cold-boot unstable; the fork u-boot remains the working base for now. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: add EDGE 7.2 peripheral support (GbE, SMP, USB, I2C, RTC, PWM, thermal) Consolidated, hardware-validated peripheral bring-up for the NanoPC-T3+ (Nexell S5P6818) on the mainline 7.2 kernel, as a clean per-subsystem patch series (0003-0012) on top of the boot bring-up (0001-0002): 0003 pinctrl/gpio 0008 i2c (s3c2410) 0004 clk (PLL+clkgen) 0009 rtc (rtc-nx) 0005 reset-simple 0010 pwm (samsung) 0006 smp tick bcast 0011 thermal (exynos_tmu) 0007 usb2 phy 0012 arm64 dts (all peripherals) Verified on hardware: 1GbE (DHCP+SSH), 8 cores stable, USB EHCI/OHCI/dwc2 + hub, I2C x3, RTC, PWM output, cpu-thermal ~51C. Kernel config enables the above; the mainline v2026.07 u-boot port stays marked incomplete (fork 2016.01 u-boot is the working bootloader). Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: complete peripheral series, switch to CURRENT kernel, add M3/Fire3 - Add the pwm (0010), thermal (0011) and DT (0012) patches that a bad glob dropped from the previous consolidation commit - without 0012 the branch had no peripheral DT at all. - Retire the 4.14 legacy kernel: the mainline 7.2 revival becomes the CURRENT (default) branch. Rename linux-s5p6818-edge.config -> -current.config, drop linux-s5p6818-legacy.config, simplify the family case to 'current' only. - One shared device tree boots the whole FriendlyARM S5P6818 family (NanoPi M3, Fire3, NanoPC-T3/T3+): identical peripherals, per-board RAM filled in by u-boot (ft_board_setup). Add nanopi-m3 and nanopi-fire3 board configs. - Add on-board green status LED (gpio_b-12, active low) with the heartbeat trigger by default. Signed-off-by: Igor Pecovnik <igor@armbian.com> * board: s5p6818: promote NanoPC-T3+/M3/Fire3 to supported (.conf), set maintainer Rename the three FriendlyARM S5P6818 boards from .eos/.csc to .conf (supported tier) now that the mainline 7.2 CURRENT kernel brings up all their peripherals, and set BOARD_MAINTAINER=igorpecovnik. Signed-off-by: Igor Pecovnik <igor@armbian.com> * board: s5p6818: single family target on the NanoPC-T3+ Keep one build target - the NanoPC-T3+ (the board on the bench) - as the reference for the whole FriendlyARM S5P6818 family. The same kernel + shared device tree also boot NanoPi M3 and Fire3 (u-boot supplies the per-board RAM size), so drop the separate nanopi-m3/nanopi-fire3 board configs and make the board name say it covers all three. Signed-off-by: Igor Pecovnik <igor@armbian.com> * board: s5p6818: fix nanopct3plus menu description (first comment line) The first comment line is what the board-selection menu shows; make it a concise one-liner naming the SoC and the covered boards instead of a wrapping sentence. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: rewrite kernel config to Armbian defconfig, drop 4.14 patches - rewrite-kernel-config: normalize linux-s5p6818-current.config to a minimal Armbian defconfig against the patched 7.2 tree. Verified nothing important to this SoC is lost - all driver symbols (pinctrl/clk/phy/gbe/usb/i2c/rtc/pwm/ thermal, LEDs) survive expansion, VIRTUALIZATION stays off (KVM broken on this SoC's EL2), console/SMP-broadcast/MMC/fs intact. The only dropped symbols were KVM deps (correct with virt off) and stale MDIO_BUS/MDIO_DEVICE symbols that no longer exist in 7.2 (MDIO now via PHYLIB+FWNODE_MDIO+OF_MDIO). - drop the retired 4.14 legacy kernel patches (archive/s5p6818-4.14 and the s5p6818-legacy link) now that the mainline 7.2 CURRENT kernel replaces them. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: add software-reset restart handler (patch 0013 + config) Export the nexell-restart driver as kernel patch 0013 and enable CONFIG_POWER_RESET_NEXELL. Provides a CLKPWR software-reset restart handler that outranks the firmware PSCI reset, which returns less reliably on this SoC. Warm reboot remains best-effort on the fork boot chain (boot ROM self-refresh-exit is marginal); the reset button always recovers. Documented in the driver. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: add audio (I2S + ES8316) and fix I2C/I2S reset + PLL clock Analog audio on the NanoPC-T3+/M3/Fire3 3.5mm jack: SoC I2S0 (master) -> ES8316 codec over the ARM PL080 DMA, via a ported Nexell I2S ASoC driver + generic dmaengine PCM + simple-audio-card. HW-verified: card registers, codec responds on I2C, mixer works, a 48kHz stream runs clean (DMA/I2S/ MCLK all good); only audibility needs a physical plug. Two prerequisite fixes uncovered during bring-up: - reset-simple had reset_us=0 for the Nexell controller, so reset_control_reset() was a no-op and the I2C (and I2S) blocks stayed held in reset from u-boot - every I2C transaction timed out. This is why I2C never actually transacted despite the bus registering. - the nexell clk driver looked up PLLs by the wrong clkdev name, so any clock deriving its rate from a PLL (the I2S MCLK) came out 0. Patches 0014-0017 + CONFIG_AMBA_PL08X / CONFIG_SND_SOC_NEXELL[_I2S]. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: add eMMC + SDIO WiFi, stabilise mmc numbering Wire up the two remaining SD/MMC channels on the NanoPC-T3+/M3/Fire3: - eMMC on SDMMC2 (patch 0018): HW-verified, 14.6 GiB at 52 MHz (4-bit). - SDIO WiFi on SDMMC1 (patch 0019): Broadcom BCM43430 (brcmfmac). u-boot never powers SDMMC1, so this needed its pins muxed, its clk-gen gate enabled (new sdhc1 clk-critical clock) and its reset released. The chip enumerates as an SDIO card and brcmfmac binds + loads firmware (brcmfmac43430-sdio.*, from the rootfs, as with any brcmfmac board). Patch 0019 also pins the mmc host numbering via aliases so mmcblkN is stable now that a non-removable eMMC is present (it raced the polled SD for mmcblk0, breaking root=/dev/mmcblk0p1). Config: +BRCMFMAC_SDIO=y (BRCMFMAC/CFG80211/RFKILL already =m). Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: add on-board Bluetooth (AP6212 / BCM43430 on UART1) Patch 0020 makes samsung_tty release an optional reset in probe; patch 0021 adds UART1 (@0xc00a0000) + the bluetooth serdev node. Like the WiFi side, u-boot never touches UART1, so it needs its clk-gen gate kept on (clk-critical) and its reset released. The BT chip is powered via BT_REG_ON (gpiob-8, moved off the WiFi pwrseq) and hci_uart/hci_bcm loads brcm/BCM43430A1.hcd (already in armbian/firmware). HW-verified on a NanoPC-T3+: hci0 comes up (BCM43430A1, BT4.0), firmware patchram loads, and an LE scan discovers nearby devices. No config change needed - BT=m selects CRYPTO_ECDH and the serdev/bcm bits are default/ selected; a full modules build ships them. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: build the working rafaello7 2016.01 u-boot (not mainline v2026.07) The mainline v2026.07 port reset-loops on a COLD boot (unresolved 2026-u-boot /GCC-15 early-env issue), so a framework image built with it does not boot the board reliably. Point BOOTSOURCE at the rafaello7 nanopi3 fork (tag v1.2, nanopim3_defconfig) - the known-good bootloader that boots this SoC cold+warm at EL2, and what actually runs on the hardware today. TEXT_BASE 0x43c00000 already matches the NSIH launch address, so the boot.img assembly hook is unchanged. The v2026.07 patch set stays in-tree for future work. Signed-off-by: Igor Pecovnik <igor@armbian.com> * nanopct3plus: add BOARD_VENDOR, fix BOOTCONFIG for the rafaello7 u-boot - BOARD_VENDOR="friendlyelec" (required board asset check; matches the other FriendlyELEC boards). - BOOTCONFIG "s5p6818_nanopim3_defconfig" -> "nanopim3_defconfig": the rafaello7 fork's actual defconfig name (the old name existed only in the v2026.07 port and would have failed the fork build). Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: ship prebuilt rafaello7 u-boot.bin (2016.01 won't build on modern host) The rafaello7 2016.01 fork is the known-good bootloader, but its host tools (fdtgrep/mkimage/... via lib/libfdt) fail to compile against a modern host libfdt-dev in Armbian's build container (redefinition of fdt64_t etc.), so a from-source build is not currently possible. Ship the upstream-released prebuilt binary instead (packages/blobs/nanopi/ uboot-nanopi3.bin = rafaello7 release v1.2, U-Boot 2016.01-gb915959), alongside the existing BL1 blobs. The u-boot source is still fetched+configured for versioning, but UBOOT_TARGET_MAP's make target is the no-op 'ubootversion' so nothing is compiled, and uboot_custom_postprocess assembles boot.img from NSIH + BL1 + the prebuilt u-boot.bin. TEXT_BASE 0x43c00000 matches the NSIH. Revisit a from-source build if the 2016.01 host-tools/libfdt issue is patched or the mainline v2026.07 cold-boot crash is fixed. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: ship the proven boot region blob (fixes non-booting framework image) A full framework image did not boot: both the BL1 blob and the u-boot we shipped (hand-assembled NSIH + rafaello7 v1.2 prebuilt) differed from the binaries that actually boot this board, so the ROM/2ndboot never came up. Replace the hand-assembly with the proven boot region captured verbatim from a known-good on-board install: BL1 + NSIH + "U-Boot 2016.01-armbian" (packages/blobs/nanopi/boot-nanopi3-2g.img, 2 GiB / NanoPC-T3+). The postprocess now just stamps the offset-0x50 boot-device selector (0=SD for boot.img, 2=eMMC for bootemmc.img); write_uboot_platform dd's it at sector 1. HW-verified: a framework Trixie image now boots to userspace + gigabit eth0. Also enable a visible console for this SoC: earlycon=s5pv210,mmio32,0xc00a1000 in the boot script (without it the board looks dead at "Starting kernel"), and bump default verbosity to 7 while the platform is in bring-up. The rafaello7 v1.2 prebuilt u-boot.bin is dropped (it differed and did not boot). TODO: capture a 1 GiB boot region for the M3/Fire3; build u-boot from source once the 2016.01 host-tools/libfdt or the v2026.07 cold-boot issue is fixed. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: split into 2 GiB (T3+) and 1 GiB (Fire3/M3/T3) images The only per-board difference is DRAM init, which lives in the BL1 inside the boot blob, so ship two proven boot regions and two board targets: - nanopct3plus: NanoPC-T3+ (2 GiB), boot-nanopi3-2g.img (from a T3+ eMMC). - nanopifire3: NanoPi Fire3 / M3 / NanoPC-T3 (1 GiB), boot-nanopi3-1g.img, captured from the last known good Armbian Fire3 image (21.02.1). The 1 GiB BL1 is byte-identical to the packaged 1g-bl1-nanopi.bin; the blob pairs it with the working "2016.01-armbian" u-boot. The family postprocess picks the blob by BOARD. Kernel + device tree are shared (u-boot writes the real RAM size into the DT). HW-verified: the 2 GiB image boots the T3+; the 1 GiB image is for the Fire3, which does not boot the 2 GiB BL1 (DRAM init mismatch), as expected. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: split board DT into common dtsi + per-board M3/Fire3 trees Add kernel patch 0022: the single s5p6818-nanopi-m3.dts described the whole FriendlyElec S5P6818 family, but the NanoPi Fire3 has no on-board eMMC, no SDIO WiFi/Bluetooth and no audio codec, so on it the ES8316 / simple-audio- card / SDIO host / BT serdev all fail to probe and spam the log. Split the tree: s5p6818-nanopi3-common.dtsi - peripherals every board has (UART, micro-SD, GbE PHY, I2C, PWM, status LED); board-specific blocks stay disabled. s5p6818-nanopi-m3.dts - full boards (M3, NanoPC-T3/T3+): + eMMC, SDIO WiFi, Bluetooth, ES8316 audio. s5p6818-nanopi-fire3.dts - Fire3: common only -> clean boot, no phantom peripheral nodes. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: select per-board DT via BOOT_FDT_FILE; add NanoPi M3 board Wire the DT split (patch 0022) through to the images. Each board .conf now sets BOOT_FDT_FILE, which the build writes as fdtfile= into armbianEnv.txt and the single boot-s5p6818.cmd imports: nanopct3plus (2 GiB) -> nexell/s5p6818-nanopi-m3.dtb (full) nanopim3 (1 GiB) -> nexell/s5p6818-nanopi-m3.dtb (full) [new board] nanopifire3 (1 GiB) -> nexell/s5p6818-nanopi-fire3.dtb (minimal) boot-s5p6818.cmd: load ${prefix}dtb/${fdtfile} (standard vendor/board scheme, fallback to the full m3 dtb) instead of the hard-coded nexell/ path and the bogus rev07 fallback. nanopifire3.conf narrowed to the Fire3 alone (was "Fire3/M3/T3"); NanoPi M3 / NanoPC-T3 split out into nanopim3.conf. Board image assets (nanopct3plus/nanopifire3/nanopim3.png) already in armbian.github.io. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: add HDMI/display bring-up driver (phase 1) + enable it Kernel patch 0023 adds a minimal drivers/gpu/drm/nexell platform driver that ungates the two DISPLAYTOP clkgen modules feeding HDMI and reports hotplug (HPD). HW-verified on a NanoPi Fire3 with a monitor attached: the HDMI block goes from clock-gated (all-zero) to live and HPD reads "monitor CONNECTED". DT: 'nexell,s5p6818-display' node in s5p6818.dtsi, enabled in the shared s5p6818-nanopi3-common.dtsi (every board in the family has HDMI). Config: CONFIG_DRM_NEXELL=y in linux-s5p6818-current.config. This is the foundation for the display pipeline; the DPC video timing, HDMI PHY preset + Link/Core, MLC plane and the atomic-KMS glue come next. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: HDMI output - test pattern via MLC (phase 2) Kernel patch 0024: the display driver now puts a stable picture on the HDMI monitor. It piggy-backs on the 1280x720 pipeline the FriendlyARM u-boot already runs for its boot logo - allocating a CMA framebuffer, painting colour bars, and pointing MLC.0 RGB layer 0 at it (disabling the u-boot layer that was scanning out reused kernel RAM as noise). Adds the DRM-free vendor MLC register layer (soc/s5pxx18_soc_mlc.c). HW-verified on a NanoPi Fire3: eight stable colour bars over HDMI - the first HDMI output from the S5P6818 on a mainline kernel. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: framebuffer console on HDMI (phase 3) Kernel patch 0025: register the MLC framebuffer as /dev/fb0 so the framebuffer console binds - the kernel log and a getty login now appear on the HDMI monitor (1280x720). Adds the required FB_CFB_*/FRAMEBUFFER_CONSOLE/FONT_8x16/VT symbols to linux-s5p6818-current.config. HW-verified on a NanoPi Fire3: fbcon at 160x45, /dev/fb0 present, login prompt on screen. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: atomic KMS display driver - /dev/dri/card0 on HDMI (phase 4) Kernel patch 0026: the display driver is now a real atomic-KMS driver (drm_simple_display_pipe + drm_gem_dma) exposing /dev/dri/card0 and a DRM fbdev console on HDMI - so the board can run Wayland/X/a desktop. It reuses the 1280x720 pipeline the bootloader sets up (the pipe drives MLC.0 from the DRM framebuffer). DRM_NEXELL becomes tristate; the DRM stack is built in (CONFIG_DRM=y + KMS/GEM-DMA/CLIENT helpers) so the console is available early. HW-verified on a NanoPi Fire3: /dev/dri/card0, [drm] Initialized nexell, framebuffer console on the monitor. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: read HDMI EDID over the DDC (i2c_1) Kernel patch 0027: the display driver now reads the monitor EDID over the HDMI DDC (i2c_1) and reports its real modes + physical size. A ddc-i2c-bus phandle is added to the display DT node. Usable mode stays 1280x720 (via mode_valid) until the DPC/PHY are self-programmed. HW-verified on a NanoPi Fire3 (monitor 600x340mm, EDID 720p timings). Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: self-program DPC timing + HDMI PHY (own modeset) Kernel patch 0028: the display driver now programmes the DPC video timing and HDMI PHY/Link preset itself for the requested mode, independent of the bootloader's boot-logo pipeline, and supports the preset-backed modes (480p/576p/720p/1080p ...) intersected with the monitor EDID. Integrates the vendor SoC layer (dp_dev/soc_dpc/dp_hdmi/hdmi_presets/soc_disptop/reg_hdmi), decoupled from the old KMS glue via a small SoC-only header. HW-verified on a NanoPi Fire3: HDMI PHY reprogrammed + locked, console renders from the self-programmed pipeline. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: Mali-400 GPU 3D acceleration via Lima Kernel patch 0029 adds the Mali-400 MP4 GPU DT node (gpu@c0070000) + the VR clock for the Lima driver; config enables CONFIG_DRM_LIMA=y (+ PM_DEVFREQ). HW-verified on a NanoPi Fire3: lima probes GP + 4 PPs, /dev/dri/renderD128 appears - GLES2 hardware acceleration on mainline, PRIME-shared to the nexell KMS display. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: HDMI audio (S/PDIF transmitter -> HDMI) Kernel patch 0030 adds the Nexell S/PDIF-TX ASoC CPU DAI + a sound-hdmi simple-audio-card (spdiftx -> spdif-dit) so audio plays over HDMI (the SPDIF-TX is internally wired to the HDMI controller). Config enables SND_SOC_NEXELL_SPDIF + SND_SOC_SPDIF. HW-verified on a NanoPi Fire3: 'S5P6818-HDMI' ALSA card, 440 Hz tone audible on the monitor speakers. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: address code review (CodeRabbit) - real bugs in the patch series Fix the legitimate issues flagged on PR #10674, verified by a from-framework build (all 30 patches apply + compile, image builds): - clk (0004): clk_dev_set_rate() now returns 0 on success (clk core treats a non-zero return as failure), and avoids truncating the rate to int. - rtc (0009): validate the 2nd MEM resource (NULL -> -ENODEV) and check ioremap() for NULL (it returns NULL, not ERR_PTR); drop the bogus free_irq() in remove (the IRQ is devm-managed). - thermal (0011): report a TIEOFF ioremap failure and fail probe instead of silently leaving the sensor unstarted (which would report bogus temps). - i2s (0016): move sleeping clk_prepare_enable()/disable_unprepare() out of the spinlock (start/stop/remove) to avoid "sleeping in atomic"; use on-stack IRQ flags instead of a shared struct field (SMP race); cast to long in the 256/384fs distance compare; make of_property_read_u32() targets u32. - edid (0027): always offer the fixed 720p mode and fini the KMS poll on teardown. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: address second CodeRabbit review round - rtc (0009): RTC_TIME_MAX was 2025.12.31, so any date past it (now!) treated a good clock as corrupt and reset to 2009 - use the full hardware counter range instead. IRQ handler now reads RTC_INT_PND (pending) not the enable register. - i2s (0016): cutoff_master_clock() must run before status is cleared, otherwise it bails on the cleared POWER bit and leaks the MCLK enable on unbind (regression from the first-round fix). - drm nexell (0027): drm_kms_helper_poll_fini() before drm_atomic_helper_shutdown() so the poll worker can't run mid-teardown. - spdif-tx (0030): add hw_free to balance the clk_prepare_enable done in hw_params. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: set KERNEL_TEST_TARGET and INTRODUCED on the three boards Declare KERNEL_TEST_TARGET="current" (the only kernel target these boards have) so autotests pick them up, and set INTRODUCED to each board's hardware release year: NanoPi M3 / NanoPC-T3 in 2016, NanoPC-T3+ and NanoPi Fire3 in 2017. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: limit to one A53 cluster (nr_cpus=4) for stability The octa-core S5P6818 is two Cortex-A53 quad-clusters behind a CCI-400. The prebuilt 2016 fork u-boot brings cluster1 online via PSCI CPU_ON but never enables the interconnect snoop/DVM for it, so cluster1 runs non-coherent with cluster0. Under multi-core load this silently corrupts memory - segfaults, malloc/tcache aborts, stack-smashing, SIGILL - which made the GNOME desktop image unusable (aborts at first-login / session start). Bisected on a NanoPi M3: the corruption is load-dependent but frequency-independent (fails identically at 800 and 400 MHz), not thermal (crashes at 42C with a heatsink), not power (two supplies, same rate) and not DRAM (0 errors, sequential and random). CPUECTLR.SMPEN is set on all cores. The discriminator: 8 cores (both clusters) = ~10% failures under stress; 4 cores (cluster0 only) = 0 failures. So it is cross-cluster cache coherency. Restrict Linux to cluster0 until the boot blob's PSCI is fixed to enable CCI coherency for cluster1 (which will recover all 8 cores). Applies to all three S5P6818 boards (nanopct3plus, nanopim3, nanopifire3) via the shared boot script. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: move from current to edge kernel branch Per review (EvilOlaf): 7.2 is a non-LTS kernel ahead of the latest LTS, so the S5P6818 revival belongs on the edge branch, not current. There is no LTS/current target for this SoC yet. Rename KERNEL_TARGET/KERNEL_TEST_TARGET to edge on all three boards (nanopct3plus, nanopim3, nanopifire3), rename the kernel config (linux-s5p6818-current.config -> linux-s5p6818-edge.config) and switch the family branch case to edge. The KERNELPATCHDIR (archive/s5p6818-7.2) is version-based and unchanged. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: address third CodeRabbit review round (minor/major fixes) - i2c (0008): return probe failure if reset_control_reset() fails, before enabling the controller. - thermal (0011): drop the unused S5P6818_TMU_REG_EMUL_CON define and the "emulation" claim from the commit message (emulation stays on the exynos4412 callback; the 0x100 define was dead). - dts pinctrl (0012): rename pinctrl@c0010000 -> pinctrl@c001a000 to match the first reg entry (dtc unit_address_vs_reg). - power-reset (0013): add a .remove that unregisters the restart handler and iounmaps the window, so unbind can't leave a dangling notifier/mapping. - i2s (0016): constrain the advertised DAI rate to the DT sample-rate (the master clock is programmed once and hw_params does not reprogram it), so an open at another rate can't play at the wrong pitch. - dts eMMC (0018): comment said 8-bit; the node is bus-width = <4>. Fix to 4-bit. - kernel config: SND_SOC_NEXELL_SPDIF / SND_SOC_SPDIF were =y under =m parents (SND_SOC=m); set them =m to match, consistent with SND_SOC_NEXELL_I2S. - boot script: honour console= from armbianEnv.txt (serial/display/both, default both) instead of hardcoding both consoles and ignoring ${console}. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: drop FULL_DESKTOP from the three boards The desktop is not usable yet: GNOME (and any Wayland compositor) hard-hangs the board in the nexell DRM atomic-commit/page-flip path, independent of the GL backend (reproduces with software rendering too). Until that driver hang is fixed the S5P6818 boards are CLI/server-grade, so stop advertising a full desktop. Restore once the KMS driver is stable under a compositor. Signed-off-by: Igor Pecovnik <igor@armbian.com> * s5p6818: pin Lima runtime PM to fix GPU resume hard-wedge The Mali-400 works from the bootloader power-up, but the first runtime-PM suspend/resume cycle hard-wedges the whole SoC: the reset-deassert + GPU re-init on resume hangs the interconnect (LED heartbeat stops). Reproducible with `echo on > .../c0070000.gpu/power/control`, and the cause of every compositor hang (mutter idles->suspends->resumes the GPU each frame). The clock is not the cause (VR clock reads enabled across the wedge) - the boot blob's GPU clock/reset handoff is not re-entrant. Pin a runtime-PM reference in lima probe on this SoC (guarded by the nexell,s5p6818 machine compatible) so the GPU stays in its known-good boot state and never suspend/resume-cycles. Clock stays on, GLES2 keeps working; only GPU runtime power-gating is given up. Signed-off-by: Igor Pecovnik <igor@armbian.com> --------- Signed-off-by: Igor Pecovnik <igor@armbian.com> | 4 天前 | |
Nanopi M3 uboot now builds from sources, small bugfix at update-motd scripts | 8 年前 | |
Merge Odroid XU4 into stable | 8 年前 | |
phytiumpi: update fip-boot binary | 21 天前 | |
Move more files to the packages directory | 8 年前 | |
SpacemiT K3: Fixup SPI flash instructions Signed-off-by: Patrick Yavitz <pyavitz@gmail.com> | 2 个月前 | |
Add Rockchip u-boot "binman" BOOT_SCENARIO (#7505) * rockchip64: add `BOOT_SCENARIO=binman` for mainline u-boot - drop special handling for 3308's `legacy` branch - rpardini: note how SPI/mtd is not yet supported for this scenario Co-authored-by: Ricardo Pardini <ricardo@pardini.net> (squash/splits, shellfmt) * `rock-s0`/`rockpi-s`: use `BOOT_SCENARIO=binman`; move blobs to armbian/rkbin - Move rk3308 boot blobs to armbian/rkbin - delete obsolete ones - Alter rock-s0 and rockpi-s to use the new "binman" BOOT_SCENARIO Co-authored-by: Ricardo Pardini <ricardo@pardini.net> (shellfmt; small fixes; squashes) | 1 年前 | |
fix BT for Station P1 (#3821) | 4 年前 | |
reduced PNG file size with optipng | 3 年前 | |
orangepizero3w: Add community support for Orange Pi Zero 3W (Allwinner A733) (#10103) * orangepizero3w: Add community support for Orange Pi Zero 3W (A733) sun60iw2: factor shared A733 board config into a common include The 4 Pro and Zero 3W are the same SoC and share most of their board config. Move the common vars, a single fetch_custom_uboot__orangepi hook, and the SD-card boot writer into config/sources/vendors/xunlong/sun60iw2-a733-common.inc. Each board file sets XUNLONG_A733_DRAM_BLOB (its boot0_sdcard training blob), BOOT_FDT_FILE, and any board-specific writer (the 4 Pro's SPI-NOR). The blob name feeds UBOOT_HASH_EXTRA so the u-boot artifact repackages when it changes. Checkin boot blobs * Cleanup kernel patch header and filename * Remove shared opi a733 include, there wasn't enough truly shared content to justify it * Coderabbit feedback (comment + write_uboot error handling. Avoid constants in write_uboot_platform because it has to be runnable on device not only at build time | 2 个月前 | |
USB redirector moved to armbian-config | 8 年前 |