Skip to content

Add Avnet MaaXBoard 8ULP (i.MX8ULP) support#9991

Open
govindsi wants to merge 13 commits into
armbian:mainfrom
govindsi:feat_maaxboard-8ulp
Open

Add Avnet MaaXBoard 8ULP (i.MX8ULP) support#9991
govindsi wants to merge 13 commits into
armbian:mainfrom
govindsi:feat_maaxboard-8ulp

Conversation

@govindsi

@govindsi govindsi commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Description

Adds support for the Avnet MaaXBoard 8ULP (i.MX8ULP, A2 silicon).

BSP packages

Aligned with Avnet maaxboard-build-tools branch maaxboard_lf-6.1.22-2.0.0:

  • Linux (linux-imx), U-Boot (uboot-imx), ATF, Cortex-M33 firmware, and imx-mkimage flash.bin
  • A2-specific firmware: AHAB container, upower, M33 image, REV=A2 flash_singleboot_m33

What's included:

  • Board config (maaxboard-8ulp.csc) and family config (imx8ulp.conf)
  • Avnet BSP stack pinned to lf-6.1.22-2.0.0:
    • U-Boot from Avnet/uboot-imx
    • ATF from Avnet/imx-atf (with ATF_LOG_LEVEL=20 to silence BL31 SCMI/upower INFO spam)
    • Kernel 6.1.22 from Avnet/linux-imx
    • imx-mkimage for flash.bin assembly (REV=A2, M33 single-boot)
  • Custom U-Boot build that bundles SPL, ATF BL31, Cortex-M33 firmware, and NXP Sentinel/uPower blobs into flash.bin
  • Boot script (boot-maaxboard-8ulp.cmduEnv.txt) for VFAT /boot with booti + gzip initrd
  • Kernel defconfig (linux-maaxboard-8ulp-current.config) from Avnet linux-imx 6.1.22
  • eMMC image layout: flash.bin @ sector 66, 10 MiB gap, 128 MiB VFAT /boot, ext4 root on partition 2
  • Image hooks that prune VFAT /boot to Image, initrd, maaxboard-8ulp.dtb, and uEnv.txt
  • Post-build export of .flash.bin / .boot.img for UUU eMMC flashing
  • Build deps pin (gitdb / smmap) for GitPython U-Boot tooling
  • Framework tweaks: compile_atf honors ATF_LOG_LEVEL; uboot artifact hash includes ATF vars

Technical notes:

  • MaaXBoard 8ULP boots from on-board eMMC only (no SD slot)
  • i.MX8ULP does not use U-Boot binman — boot firmware is assembled via imx-mkimage (flash_singleboot_m33)
  • U-Boot is built with ARCH=arm (32-bit SPL); Linux is arm64
  • Cortex-M33 firmware is built from Avnet/mcore_sdk_8ulp using the ARM GNU embedded toolchain
  • NXP AHAB Sentinel and uPower firmware are downloaded at build time from NXP Yocto packages
  • Vendor kernel: Armbian kernel patches and EXTRAWIFI are disabled (DISABLE_KERNEL_PATCHES=yes, EXTRAWIFI=no)
  • Serial console: ttyLP1 @ 115200 on J4 (USB debug port)
  • Video: i.MX8ULP display outputs per device tree (HDMI/MIPI depending on carrier config)

Build:

example:
./compile.sh build BOARD=maaxboard-8ulp BRANCH=current BUILD_MINIMAL=yes RELEASE=bookworm

Artifacts in output/images/:

  • Armbian-*-Maaxboard-8ulp_*.img — full disk image
  • Armbian-*-Maaxboard-8ulp_*.flash.bin — bootloader image for UUU

Install UUU (host PC)

From release (recommended):

https://github.com/nxp-imx/mfgtools/releases/tag/uuu_1.5.243
uuu -v

From source:

git clone https://github.com/nxp-imx/mfgtools.git
cd mfgtools
cmake -S . -B build && cmake --build build -j"$(nproc)"
sudo install -m 0755 build/uuu /usr/local/bin/uuu
uuu -v

Boot switch (SW1) for eMMC flashing

Per Avnet MaaXBoard 8ULP Yocto User Manual:

SW1 1 (CFG0) 2 (CFG1) 3 (CFG4) 4 (MOD0) 5 (MOD1) 6 (SEL)
Serial Download Mode (UUU flashing) OFF OFF OFF ON OFF OFF
Internal Boot Mode (normal eMMC boot) OFF OFF OFF OFF ON OFF

Hardware connections

  1. Set SW1 to Serial Download Mode
  2. Connect J7 (USB-C power) and J4 (USB debug / download) to the host PC
  3. Power the board
  4. Confirm the board is visible: lsusb (NXP USB device in download mode)

Flash to eMMC (UUU)

Bootloader only:

sudo uuu -v -b emmc Armbian-*-Maaxboard-8ulp_*.flash.bin

Full system (bootloader + image; Avnet requires both together):

sudo uuu -v -b emmc_all Armbian-*-Maaxboard-8ulp_*.flash.bin Armbian-*-Maaxboard-8ulp_*.img

After flashing:

  1. Set SW1 back to Internal Boot Mode
  2. Power-cycle the board
  3. Open serial console on J4 (ttyLP1, 115200) and verify boot

Note: flash.bin is the imx-mkimage output (equivalent to Avnet u-boot-maaxboard-8ulp.imx). Updating rootfs on a running system does not refresh the bootloader — re-flash via UUU when U-Boot/ATF changes.


Test plan

  • Build completes: uboot deb, kernel debs, BSP, .img, and .flash.bin produced
  • Board in Serial Download Mode is detected by uuu / lsusb
  • uuu -v -b emmc_all *.flash.bin *.img flashes eMMC successfully
  • Board boots from eMMC with SW1 in Internal Boot Mode
  • Login on serial (ttyLP1)
  • VFAT /boot contains only Image, initrd, maaxboard-8ulp.dtb, uEnv.txt
  • successful boot up and peripheral testing
image(1)

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

Summary by CodeRabbit

  • New Features
    • Added end-to-end support for the Avnet MaaXBoard 8ULP (i.MX8ULP A2), including board definition, U-Boot boot script, and generation of bootable flash.bin images with correct FAT/DTB contents.
    • Introduced a new Linux 6.1 “current” kernel configuration for the i.MX8ULP platform.
  • Chores
    • Pinned GitPython/gitdb-related Python packages for more consistent builds.
    • Improved firmware/U-Boot artifact versioning to reflect ATF logging settings.

govindsi added 4 commits June 15, 2026 20:56
Some pip environments omit GitPython transitive deps; explicit pins avoid
U-Boot source-prep failures during maaxboard-8ulp builds.
Vendor 6.1.22 BSP defconfig for i.MX8ULP A2, aligned with Avnet
maaxboard-build-tools lf-6.1.22-2.0.0.
Avnet linux-imx, uboot-imx, imx-atf, M33 firmware, sentinel/upower blobs,
and imx-mkimage REV=A2 flash.bin. SD image uses VFAT /boot, flash.bin at
sector 66, and hooks to prune FAT boot and export flash.bin for UUU.
Avnet MaaXBoard 8ULP on imx8ulp family with serial console ttyLP1 and
uEnv.txt boot flow matching Avnet/Nix layout (Image, initrd, DTB on FAT).
@govindsi govindsi requested review from a team, hzyitc, igorpecovnik and rpardini as code owners June 17, 2026 07:25
@github-actions github-actions Bot added 08 Milestone: Third quarter release size/large PR with 250 lines or more Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... Framework Framework components GitHub GitHub-related changes like labels, templates, ... labels Jun 17, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🚫 Missing required board assets

This PR adds new board configuration(s). Required assets must already exist in github/armbian/armbian.github.io.
They are required by Armbian Imager to ensure all boards are displayed with proper images.

  • Board images: board-images/<board>.png (1920x1080 px transparent)
  • Vendor logos: board-vendor-logos/<vendor>-logo.png (512x512 px transparent)

Missing items

  • Board image missing for maaxboard-8ulp

    • Expected: board-images/maaxboard-8ulp.png
    • Fix: add the file to armbian/armbian.github.io (folder board-images/)
  • Vendor logo missing for vendor avnet (used by board maaxboard-8ulp)

    • Expected: board-vendor-logos/avnet-logo.png
    • Fix: add the file to armbian/armbian.github.io (folder board-vendor-logos/)
    • Naming rules: lowercase, dashes (e.g. kobol-logo.png, not Kobol_logo.png)

Once the missing files are added (or a PR is opened in armbian/armbian.github.io), re-run this check.

@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds Armbian build support for the Avnet MaaXBoard 8ULP (i.MX8ULP A2): a new board .csc definition, a U-Boot FAT boot script, a complete 1280-line Linux 6.1 kernel configuration, and a 367-line imx8ulp family configuration implementing ARM GCC toolchain provisioning, custom U-Boot/M33/AHAB firmware builds, imx-mkimage flash assembly, and FAT boot image layout hooks. Also parameterizes ATF log level and pins Python transitive dependencies.

Changes

MaaXBoard 8ULP Board Support

Layer / File(s) Summary
Board metadata and U-Boot boot script
config/boards/maaxboard-8ulp.csc, config/bootscripts/boot-maaxboard-8ulp.cmd
Adds board identification, kernel/ATF target selectors, and serial console variables in the .csc file. Adds the U-Boot boot command script that loads kernel, DTB, and initrd from a FAT partition, derives root via PARTUUID, and boots with booti.
Linux 6.1 kernel configuration for imx8ulp
config/kernel/linux-imx8ulp-current.config
Introduces a complete Armbian-generated kernel configuration enabling core subsystems (SysVIPC, BPF, networking, storage, multimedia, audio, display, security, crypto, filesystems) and broad hardware support (PCIe, NVMe, USB, I2C/SPI, GPIO, regulators, thermal, RTC, DMA) for the iMX8ULP platform.
imx8ulp family config: global variables and BSP source pinning
config/sources/families/imx8ulp.conf
Declares family-wide global variables (architecture, FAT layout, ATF/U-Boot target maps, flash sector offset) and pins Avnet BSP component repository URLs and commit SHAs for ATF, U-Boot, and the Linux kernel with LINUXCONFIG branch mapping.
ARM GCC toolchain provisioning
config/sources/families/imx8ulp.conf
Wires BSP host package dependencies and resolves the ARM GCC toolchain: downloads a pinned arm-none-eabi tarball on x86_64 or constructs the toolchain directory layout from Debian cross-tools/newlib paths on other architectures, then exports IMX8ULP_ARMGCC_DIR.
U-Boot build environment and ARM U-Boot build
config/sources/families/imx8ulp.conf
Adds kernel CFLAGS to suppress enum/int mismatch -Werror failures, defines _imx8ulp_uboot_make_env to assemble a sanitized env -i build environment with optional ccache, implements U-Boot source checkout/clean, and runs BOOTCONFIG + olddefconfig + all build.
M33 firmware, boot firmware blobs, and flash.bin orchestration
config/sources/families/imx8ulp.conf
Implements Cortex-M33 firmware build via CMake/ARM GCC with ELF-to-binary conversion. Adds SHA-256-verified download of NXP AHAB sentinel and upower blobs with upower_a* variant selection. Orchestrates imx-mkimage staging, flash.bin generation and validation, artifact copy, and sets EXTENSION_BUILT_UBOOT=yes.
FAT boot image layout, initramfs hooks, and export helpers
config/sources/families/imx8ulp.conf
Adds DTB staging paths, removes BSP 99-uboot post-update hooks, prunes VFAT /boot/dtb during initramfs updates, repopulates VFAT /boot at final unmount with only Image/initrd/DTB/uEnv.txt, exports flash.bin and .boot.img with UUU/dd command output, and adds write_uboot_platform plus a no-op family_tweaks_bsp.
ATF log-level parameterization
lib/functions/compilation/atf.sh, lib/functions/artifacts/artifact-uboot.sh
Replaces the hardcoded LOG_LEVEL="40" in the TF-A make invocation with ${ATF_LOG_LEVEL:-40}, and adds ATF_TARGET_MAP and ATF_LOG_LEVEL (defaulting to 40) to the vars_to_hash inputs in artifact_uboot_prepare_version.

Python Dependency Pins

Layer / File(s) Summary
Pin gitdb and smmap in requirements.txt
requirements.txt
Adds gitdb==4.0.12 and smmap==5.0.2 with inline comments noting their dependency relationships to GitPython and gitdb respectively.

Sequence Diagram(s)

sequenceDiagram
  rect rgba(135, 206, 235, 0.5)
    Note over build_custom_uboot: U-Boot + Flash Assembly
    build_custom_uboot->>_imx8ulp_build_uboot_arm: checkout SHA, clean, defconfig, make all
    _imx8ulp_build_uboot_arm-->>build_custom_uboot: U-Boot ARM artifacts
  end

  rect rgba(144, 238, 144, 0.5)
    Note over build_custom_uboot: Firmware Acquisition
    build_custom_uboot->>_imx8ulp_build_m33_fw: CMake build via ARM GCC, ELF→m33_image.bin
    _imx8ulp_build_m33_fw-->>build_custom_uboot: m33_image.bin
    build_custom_uboot->>_imx8ulp_fetch_boot_firmware: download + SHA-256 verify sentinel/upower blobs
    _imx8ulp_fetch_boot_firmware-->>build_custom_uboot: sentinel.bin, upower.bin
  end

  rect rgba(255, 179, 71, 0.5)
    Note over build_custom_uboot: Image Assembly
    build_custom_uboot->>imx_mkimage: stage ATF/U-Boot/M33/AHAB into iMX8ULP/, make flash.bin
    imx_mkimage-->>build_custom_uboot: flash.bin
    build_custom_uboot->>build_custom_uboot: validate flash.bin size, copy to output dir
  end

  rect rgba(216, 191, 216, 0.5)
    Note over post_build_image: Export
    post_build_image->>uboot_deb: unpack, extract flash.bin
    uboot_deb-->>post_build_image: flash.bin
    post_build_image->>output: write .flash.bin, .boot.img, emit UUU/dd commands
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~70 minutes

Suggested labels

BSP, Patches

Suggested reviewers

  • igorpecovnik
  • lanefu
  • EvilOlaf
  • mhoffrog

Poem

🐇 A new board hops onto the scene,
MaaXBoard 8ULP, shiny and keen!
M33 firmware and flash bins aligned,
FAT boots and AHAB blobs intertwined.
Kernel configs set, toolchains in place —
This bunny's build runs at lightning pace! 🚀

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add Avnet MaaXBoard 8ULP (i.MX8ULP) support' clearly and concisely summarizes the main objective of the pull request, which is to introduce support for a new board platform.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/CODEOWNERS:
- Line 368: In the CODEOWNERS file, locate the entry for imx8ulp.conf on line
368 which currently shows the path as sources/families/imx8ulp.conf. Update this
path to config/sources/families/imx8ulp.conf to match the actual file location,
keeping the maintainer assignment `@govindsi` unchanged. This corrected path will
ensure proper maintainer auto-assignment for changes to that configuration file.

In `@config/sources/families/imx8ulp.conf`:
- Around line 186-193: The self-extracting binaries for sentinel and upower
firmware (referenced as ${sentinel_pkg}.bin and ${upower_pkg}.bin) are being
executed immediately after download without verifying their integrity. Before
executing each binary, retrieve the corresponding checksums from NXP, verify the
downloaded binary against the expected checksum using a tool like sha256sum or
similar, and only proceed with execution if the checksums match. If verification
fails, exit with an appropriate error message. This applies to both the sentinel
firmware binary download/execution block and the upower firmware binary
download/execution block.
- Around line 291-293: The kernel_img and initrd_img variables are selected
independently using separate find commands, which can result in pairing kernel
and initrd from different versions. Refactor the selection logic to extract the
version from the kernel file first (by parsing the vmlinuz-* or Image filename),
then use that version to deterministically select the matching initrd.img-*
file. This ensures kernel_img and initrd_img are always version-paired and the
selection is reproducible, avoiding non-bootable image configurations.

In `@lib/functions/artifacts/artifact-uboot.sh`:
- Line 108: The ATF log level default is inconsistent between the artifact hash
calculation and the compile execution. Line 108 uses an empty default for
ATF_LOG_LEVEL while the compile function uses a default of 40, causing identical
binaries to produce different artifact versions when ATF_LOG_LEVEL is unset.
Change the parameter expansion on line 108 from using an empty default to using
40 as the default, matching what the compile function uses, so the artifact hash
reflects the actual effective log level value that will be used during
compilation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: da2fca4c-e727-4f45-8ccc-cff39cc1c59f

📥 Commits

Reviewing files that changed from the base of the PR and between 76902b5 and d4bcaef.

📒 Files selected for processing (8)
  • .github/CODEOWNERS
  • config/boards/maaxboard-8ulp.csc
  • config/bootscripts/boot-maaxboard-8ulp.cmd
  • config/kernel/linux-maaxboard-8ulp-current.config
  • config/sources/families/imx8ulp.conf
  • lib/functions/artifacts/artifact-uboot.sh
  • lib/functions/compilation/atf.sh
  • requirements.txt

Comment thread .github/CODEOWNERS Outdated
Comment thread config/sources/families/imx8ulp.conf
Comment thread config/sources/families/imx8ulp.conf Outdated
Comment thread lib/functions/artifacts/artifact-uboot.sh Outdated
Comment thread config/boards/maaxboard-8ulp.csc Outdated
Comment thread config/boards/maaxboard-8ulp.csc Outdated
@govindsi

Copy link
Copy Markdown
Contributor Author

🚫 Missing required board assets

This PR adds new board configuration(s). Required assets must already exist in github/armbian/armbian.github.io. They are required by Armbian Imager to ensure all boards are displayed with proper images.

* Board images: `board-images/<board>.png` (1920x1080 px transparent)

* Vendor logos: `board-vendor-logos/<vendor>-logo.png` (512x512 px transparent)

Once the missing files are added (or a PR is opened in armbian/armbian.github.io), re-run this check.

armbian/armbian.github.io#340

@igorpecovnik

Copy link
Copy Markdown
Member

remove CODEOWNERS commits. That part is auto-maintained.

govindsi added 5 commits June 20, 2026 10:27
Set ATF_LOG_LEVEL=20 to silence BL31 SCMI/upower INFO spam, honor it in
compile_atf, and hash ATF vars in uboot artifacts. Use quiet loglevel=4
in uEnv and lower the kernel default console loglevel to 4.
Use a hardware summary comment line and move ATF_PLAT to the imx8ulp
family config where it belongs for all boards on this SoC.
Set ATF_PLAT in the family config, verify sentinel/upower installer
SHA-256 before execution, and select kernel/initrd deterministically
when pruning the VFAT /boot partition.
Hash ATF_LOG_LEVEL with the same default (40) used at compile time so
unset and explicit values produce matching artifact versions.
@govindsi govindsi force-pushed the feat_maaxboard-8ulp branch from 5a1f2c9 to 59655ec Compare June 20, 2026 06:35
@govindsi

Copy link
Copy Markdown
Contributor Author

remove CODEOWNERS commits. That part is auto-maintained.

Done

Comment thread config/kernel/linux-maaxboard-8ulp-current.config
declare -g ATF_LOG_LEVEL=20
ATF_TARGET_MAP="PLAT=${ATF_PLAT} LDFLAGS=-no-warn-rwx-segments bl31;;build/${ATF_PLAT}/release/bl31.bin"

case $BOARD in

@igorpecovnik igorpecovnik Jun 21, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kernel is never board specific. Kernel defs goes under BRANCH.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

Put KERNELSOURCE/KERNELBRANCH/KERNEL_MAJOR_MINOR under case $BRANCH,
drop board-specific LINUXCONFIG, rename defconfig to
linux-imx8ulp-current.config, and regenerate via rewrite-kernel-config.
@govindsi govindsi requested a review from igorpecovnik June 22, 2026 05:22

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
config/kernel/linux-imx8ulp-current.config (1)

352-353: 🧹 Nitpick | 🔵 Trivial

Disable firmware sysfs fallback to avoid boot delays.

CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y at line 353 forces the kobject-uevent fallback path for firmware requests. Most Linux distributions disable this option. Without a matching firmware user-helper service, missing firmware blobs can cause timeout-bound boot delays during device probe. Set to # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@config/kernel/linux-imx8ulp-current.config` around lines 352 - 353, In the
kernel configuration file, locate the CONFIG_FW_LOADER_USER_HELPER_FALLBACK
setting and change it from enabled (=y) to disabled by replacing the line with #
CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set. This disables the firmware
sysfs fallback mechanism to prevent timeout-related boot delays when firmware
blobs are missing or no matching user-helper service is available.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@config/kernel/linux-imx8ulp-current.config`:
- Around line 1156-1159: The kernel configuration file is missing the base
CONFIG_EXT4_FS=y option which is required to build ext4 filesystem support in
the kernel. Currently CONFIG_EXT4_FS_POSIX_ACL=y and CONFIG_EXT4_FS_SECURITY=y
are enabled but these are suboptions that depend on the main ext4 filesystem
driver being built. Add CONFIG_EXT4_FS=y to the configuration file near the
existing ext4 options to enable the core ext4 filesystem support, which is
necessary for the kernel to mount ext4 root partitions.
- Around line 7-10: The kernel configuration is missing the
`CONFIG_BPF_UNPRIV_DEFAULT_OFF=y` option which is needed to disable unprivileged
BPF by default for security purposes. Add `CONFIG_BPF_UNPRIV_DEFAULT_OFF=y` to
the configuration file near the other BPF-related options such as
`CONFIG_BPF_SYSCALL`, `CONFIG_BPF_JIT`, `CONFIG_BPF_JIT_ALWAYS_ON`, and
`CONFIG_BPF_LSM`. This ensures the kernel defaults to a more secure state where
unprivileged BPF access is disabled by default but can be administratively
adjusted if needed.

---

Nitpick comments:
In `@config/kernel/linux-imx8ulp-current.config`:
- Around line 352-353: In the kernel configuration file, locate the
CONFIG_FW_LOADER_USER_HELPER_FALLBACK setting and change it from enabled (=y) to
disabled by replacing the line with # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is
not set. This disables the firmware sysfs fallback mechanism to prevent
timeout-related boot delays when firmware blobs are missing or no matching
user-helper service is available.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8cd0b26a-8c52-4ef1-b5cf-61e5ce7c534d

📥 Commits

Reviewing files that changed from the base of the PR and between f019e43 and 42bceb3.

📒 Files selected for processing (2)
  • config/kernel/linux-imx8ulp-current.config
  • config/sources/families/imx8ulp.conf
🚧 Files skipped from review as they are similar to previous changes (1)
  • config/sources/families/imx8ulp.conf

Comment thread config/kernel/linux-imx8ulp-current.config
Comment thread config/kernel/linux-imx8ulp-current.config
@govindsi govindsi requested a review from EvilOlaf June 28, 2026 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

08 Milestone: Third quarter release Framework Framework components GitHub GitHub-related changes like labels, templates, ... Hardware Hardware related like kernel, U-Boot, ... Needs review Seeking for review size/large PR with 250 lines or more

Development

Successfully merging this pull request may close these issues.

3 participants