Skip to content

Add support for Novarq Tactical-1000 - #1648

Merged
troglobit merged 9 commits into
mainfrom
tactical
Sep 28, 2026
Merged

troglobit merged 9 commits into
mainfrom
tactical

Conversation

@troglobit

@troglobit troglobit commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

Description

  • Initial board support for Novarq Tactical-1000
  • New image-itb-boot image format, for bootloaders without SquashFS
  • Document microchip,ev23x71a in AT91 binding
  • Update microchip-ev23x71a board README and tidy up

Checklist

Tick relevant boxes, this PR is-a or has-a:

  • Bugfix
    • Regression tests
    • ChangeLog updates (for next release)
  • Feature
    • YANG model change => revision updated?
    • Regression tests added?
    • ChangeLog updates (for next release)
    • Documentation added?
  • Test changes
    • Checked in changed Readme.adoc (make test-spec)
    • Added new test to group Readme.adoc and yaml file
  • Code style update (formatting, renaming)
  • Refactoring (please detail in commit messages)
  • Build related changes
  • Documentation content changes
    • ChangeLog updated (for major changes)
  • Other (please describe):

Comment thread configs/aarch64_defconfig Outdated
@troglobit
troglobit force-pushed the tactical branch 2 times, most recently from b13980c to edff93e Compare September 23, 2026 04:26
First boot after a factory reset does not enter the regular code path
because factory-config essentially becomes the startup-config.  So it
left the status LED blinking.

Follow-up to a7c95cd.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
A cut down LAN969x reference design, same switch core as the EV23X71A
in a LAN9696TSN.  Novarq's device tree is cherry-picked as is into the
kkit kernel branch, with one commit on top that drops what 6.18 lacks
(QSPI, tmon fan PWM and its cooling maps); revert it at the next LTS
kernel.  The patches came in with the 6.18.53 bump.

The copper ports are wired backwards within each QSGMII quad, so the
rename rule follows the device tree labels rather than probe order.

No genimage.cfg.in yet, the OS netboots and provision-tactical lays out
the eMMC.  It grows Env to 4 MiB: the vendor U-Boot writes its redundant
environment copy at 0x10300000, the end of a 2 MiB Env, which is how aux
kept getting destroyed.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
The Tactical 1000's vendor U-Boot has neither BLKMAP, SquashFS nor
sysboot, so it cannot boot rootfs.itb.  Until the Infix bootloader is
installed, pack kernel, rootfs and every device tree in the build into
one FIT it can start with a single bootm, plus a boot script to hand out
over DHCP for the test system.  Off by default, IX_IMAGE_ITB_BOOT turns
it on.

One configuration per device tree, so one image serves every board in
the build.  The device trees go last: U-Boot grows the selected one in
place for bootargs and ramdisk bounds, and ahead of the ramdisk that
overrun kills the kernel before earlycon.  The kernel is a gzipped
kernel_noload so nothing in the image depends on a memory map, and the
rootfs copy of it in /boot is dropped, 13 MiB the FIT already carries.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
The part number decides whether the driver offers PTP and PSFP, and is
the only thing that tells the Laguna boards apart, so it is worth having
before Linux is up.  Trim some scene-setting prose while here.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Only Trusted Firmware differs between the LAN969x boards, for the DDR
parameters; U-Boot and its environment do not.  Move them out of the
EV23X71A directory and pick the device tree at boot from GCB_CHIP_ID,
since neither TF-A's board-number nor U-Boot's GPIO strap read tells
the boards apart.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
BL2 carries the DDR parameters, 2 GiB here against 896 MiB on the
EV23X71A, so the board needs a FIP of its own.  Novarq's platform is
carried as a patch on our Trusted Firmware pin rather than built from
their fork, which is 23 commits behind it and lacks the regenerated
lan969x DDR4 timings and the ECDSA fixes.

Boots from fip with the vendor FIP kept in fip.bak.  Recovery from a FIP
that hangs is the TF-A monitor, selected over the MCP2200 on the console
port.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
With the Infix bootloader booting from eMMC, the board can carry a full
image the same way the EV23X71A does, written from a netbooted system.
The layout is the EV23X71A's; the image holds the Infix FIP in both fip
and fip.bak, so nothing of the vendor boot chain remains on a unit
installed this way.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
The markers that stop the first-boot resize from running again live
in aux, and nothing checked that aux was mounted before rewriting the
partition table and rebooting.  A disk with a var partition but no
aux filesystem, a half provisioned eMMC say, looped forever on stage
1.  Bail out and boot without /var instead.

The progress messages said sdcard on every board, eMMC included, as
nothing tells the two apart.  Name neither.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
GitHub's image proxy gets a 503 when it fetches the badge from
bitsign.se, so the logo stopped showing in the README.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
@troglobit troglobit added the ci:skip Skip CI for this PR, started jobs are stopped. label Sep 28, 2026
@troglobit
troglobit merged commit a34a1e7 into main Sep 28, 2026
7 checks passed
@troglobit
troglobit deleted the tactical branch September 28, 2026 14:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:skip Skip CI for this PR, started jobs are stopped.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants