openwrt/target/linux/microchipsw/image/lan969x.mk
Robert Marko 29b3d929a6
microchipsw: lan969x: add Novarq Tactical 1000
Novarq Tactical 1000 is a LAN9696 based switch.

Specifications:
* CPU: Microchip LAN9696 switch SoC
* DRAM: 2GB DDR4
* Storage:
	* 32MB QSPI NOR
	* 16GB eMMC
* Networking:
	* 24 x 10/100/1000 RJ45 via LAN8804 Quad PHY-s over QSGMII
	* 4 x 100/1000/2500/5000/10000 SFP+ ports
	* 1 x 10/100/1000 management RJ45 via LAN8840 PHY over RGMII (U-Boot too)
* USB: 1 x USB2.0 Type-A
* Management via USB-C (MCP2200):
	* UART @ 115200 baud (Default), 921600 possible
	* GPIO-s for bootstrap and reset
* LED-s:
	* 2 per networking port (Green and Yellow)
	* Green status LED
* Soft reset GPIO
* Power: 12V DC barrel jack
* External PoE:
	* Option for PoE add-on
* Temperature Sensors:
	* TMP1075 onboard
	* CPU temperature
* Microchip MCP79402 RTC with battery back-up
* Microchip ATECC608C secure peripheral
* CPU heatsink with PWM fan
* Onboard header for case fan

Installation instructions:

1. Connect to UART via the USB-C port
2. Connect the management port
3. Boot and interrupt U-Boot
4. TFTP the OpenWrt initramfs image and boot it
5. SCP the OpenWrt eMMC GPT image to a running OpenWrt initramfs to /tmp
openwrt-microchipsw-lan969x-novarq_tactical-1000-squashfs-emmc-gpt.img.gz

And decompress it via:
gzip -d /tmp/openwrt-microchipsw-lan969x-novarq_tactical-1000-squashfs-emmc-gpt.img.gz

6. Wipe eMMC with:
dd if=/dev/zero of=/dev/mmcblk0 bs=1M

7. Flash OpenWrt eMMC image with:
dd if=/tmp/openwrt-microchipsw-lan969x-novarq_tactical-1000-squashfs-emmc-gpt.img
of=/dev/mmcblk0

After a restart OpenWrt will boot, and then regular sysupgrade can be used
for upgrades.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-09 18:50:23 +01:00

64 lines
1.9 KiB
Makefile

define Build/lan969x-fip
cat $(STAGING_DIR_IMAGE)/$1-fip.bin >> $@
endef
define Build/lan969x-gpt-emmc
cp $@ $@.tmp 2>/dev/null || true
ptgen -g -o $@.tmp -a 1 -l 1024 \
-t 0x83 -N fip -r -p 8M@1M \
-t 0x83 -N fip.bak -r -p 8M@9M \
-t 0x83 -N Env -r -p 2M@17M \
$(if $(findstring flash,$1), \
-t 0x2e -N kernel -p $(CONFIG_TARGET_KERNEL_PARTSIZE)M@19M \
-t 0x2e -N rootfs -p $(CONFIG_TARGET_ROOTFS_PARTSIZE)M
)
cat $@.tmp >> $@
rm $@.tmp
endef
define Build/append-kernel-part
dd if=$(IMAGE_KERNEL) bs=$(CONFIG_TARGET_KERNEL_PARTSIZE)M conv=sync >> $@
endef
define Device/microchip_ev23x71a
$(call Device/FitImage)
DEVICE_VENDOR := Microchip
DEVICE_MODEL := EV23X71A
SOC := lan9696
DEVICE_PACKAGES := kmod-i2c-mux-gpio
IMAGES += emmc-atf-gpt.gz emmc-gpt.img.gz
IMAGE/emmc-atf-gpt.gz := lan969x-gpt-emmc |\
pad-to 1M | lan969x-fip ev23x71a |\
pad-to 9M | lan969x-fip ev23x71a |\
gzip
IMAGE/emmc-gpt.img.gz := lan969x-gpt-emmc flash |\
pad-to 1M | lan969x-fip ev23x71a |\
pad-to 9M | lan969x-fip ev23x71a |\
pad-to 19M | append-kernel-part |\
append-rootfs |\
gzip
endef
TARGET_DEVICES += microchip_ev23x71a
define Device/novarq_tactical-1000
$(call Device/FitImage)
DEVICE_VENDOR := Novarq
DEVICE_MODEL := Tactical 1000
SOC := lan9696
DEVICE_PACKAGES := kmod-i2c-mux-gpio \
kmod-gpio-pwm kmod-hwmon-pwmfan kmod-hwmon-gpiofan \
kmod-rtc-ds1307 kmod-hwmon-lm75
IMAGES += emmc-atf-gpt.gz emmc-gpt.img.gz
IMAGE/emmc-atf-gpt.gz := lan969x-gpt-emmc |\
pad-to 1M | lan969x-fip tactical-1000 |\
pad-to 9M | lan969x-fip tactical-1000 |\
gzip
IMAGE/emmc-gpt.img.gz := lan969x-gpt-emmc flash |\
pad-to 1M | lan969x-fip tactical-1000 |\
pad-to 9M | lan969x-fip tactical-1000 |\
pad-to 19M | append-kernel-part |\
append-rootfs |\
gzip
SUPPORTED_DEVICES += novarq,tactical-1000-v3
endef
TARGET_DEVICES += novarq_tactical-1000