Buffalo LS421DE

hello, I have a Linkstation LS420D. As I know, It dosen't has 512MB NAND compared with LS421DE.
So that, I can't install openwrt firmware for LS421DE to LS420D.
As for TS1200D, it has the same hardware with LS420D.
So, I am wondering that whether can I boot the firmware from HDD? (the only way to boot os)

Hi danitool,
I have an LS420D, they have the same hardware, except the NAND... I can even use intiramfs_kernel.bin for LS421DE to boot LS420D.
However, I can't sysupgrade successfully, because it was unable to do_nand_upgrade...
to sum up, can I install squashfs-sysupgrade.bin into HDD to boot my LS420D?
sincerely hope for your reply.

Hi @dingnan. Not sure if you can use the NAND image in an HDD. Probably we need to build an HDD image readable by the bootloader, with code similar to this:

In this case the filesystem should be ext3 or the bootloader won't be able to find the initrfamfs file. I never installed OpenWrt into an HDD, but I guess it should be very similar to the x86 target.

Hi @danitool ,thx for your reply.
I am trying to add LS420D into this file. But I'm still a novice,could your please help me to review this part? In addition, whether it is necessary to +ubifs in FILESYSTEMS?
As I know, ubifs only useful in NAND?

define Device/buffalo_ls420d
  DEVICE_VENDOR := Buffalo
  DEVICE_MODEL := LinkStation LS420D
  SUBPAGESIZE :=
  KERNEL_SIZE := 33554432
  FILESYSTEMS := squashfs 
  KERNEL := kernel-bin | append-dtb | uImage none | buffalo-kernel-jffs2
  KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none
  DEVICE_DTS := armada-370-buffalo-ls420d
  DEVICE_PACKAGES :=  \
    kmod-rtc-rs5c372a kmod-hwmon-gpiofan kmod-hwmon-drivetemp kmod-usb3 \
    kmod-linkstation-poweroff kmod-md-raid0 kmod-md-raid1 kmod-md-mod \
    kmod-fs-xfs mkf2fs e2fsprogs partx-utils
  IMAGES := sdcard.img.gz
  IMAGE/sdcard.img.gz := boot-scr | boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata
endef
TARGET_DEVICES += buffalo_ls420d

Hi @danitool, I add the below part into cortexa9.mk. It can be compiled successfully.
But when I dd the sdcard.img (after gunzip) into the HDD. The following files are written into the first ext3 filesystem.

root@debian:/tmp# ls /mnt/sdb1
armada-370-buffalo-ls420d.dtb  boot.scr  lost+found  zImage

You know that only files named initrd.Buffalo and uImage.Buffalo can be booted in this box.
So, how can I modify below define ?

define Device/buffalo_ls420d
  DEVICE_VENDOR := Buffalo
  DEVICE_MODEL := LinkStation LS420D
  FILESYSTEMS := squashfs
  KERNEL := kernel-bin | append-dtb | uImage none | buffalo-kernel-jffs2
  KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none
  DEVICE_DTS := armada-370-buffalo-ls420d
  DEVICE_PACKAGES :=  \
    kmod-rtc-rs5c372a kmod-hwmon-gpiofan kmod-hwmon-drivetemp \
    kmod-linkstation-poweroff kmod-md-raid0 kmod-md-raid1 kmod-md-mod \
    kmod-fs-xfs mkf2fs e2fsprogs partx-utils
  IMAGES := sdcard.img.gz
  IMAGE/sdcard.img.gz := boot-img-ext4 | sdcard-img-ext4 |gzip | append-metadata
endef
TARGET_DEVICES += buffalo_ls420d

@dingnan for now forget the sdcard image. You may be able to flash the jffs2 image (kernel) inside the sysupgrade image directly to the first HDD partition (using dd utility), hopefully it could be recognized by the bootloader. If not, you can extract the buffalo initramfs files from this image (using binwalk) and copy them into the first partition (formated in ext3 filesystem).

The rootfs can be generated by enabling the ext4 rootfs in menuconfig

this image should be flashed into the second partition at the HDD.

Finally to let the kernel go to the 2nd partiton for loading the rootfs you should also delete the append-rootblock line at the dts file:

You may also need to delete the NAND flash node

Hi @danitool, thx for your detailed description.
I followed your steps, modified the dts file delete the append-rootblock line and NAND part. Then compile out the sysupgrade image, extracting it using binwalk. Three files are stored in this bin.

CONTROL  kernel  root

I guess that kernel should be the first partition, root is the second partition.

$ file kernel
$ kernel: Linux jffs2 filesystem data little endian
$ file root
root: Squashfs filesystem, little endian, version 1024.0, compressed, -2705073482235904000 bytes, -184025088 inodes, blocksize: 4096 bytes, created: Thu Apr 29 23:16:51 2021

I tried to dd the above two files into HDD, but the bootloader can not boot jffs2 filesystem directly from the first partition.
So I modified cortexa9.mk below:

before:
KERNEL := kernel-bin | append-dtb | uImage none | buffalo-kernel-jffs2
after:
KERNEL := kernel-bin | append-dtb | uImage none 

It can compile uImage directly into the sysupgrade image.

$file kernel 
kernel: u-boot legacy uImage, ARM OpenWrt Linux-5.10.147, Linux/ARM, OS Kernel Image (Not compressed), 3413296 bytes, Thu Oct  6 08:01:36 2022, Load Address: 0x00008000, Entry Point: 0x00008000, Header CRC: 0x65E1D689, Data CRC: 0x0E84CD88

Looks like success is in sight :)
I formatted the first partition as ext3 and copied the kernel file into it. It is necessary to rename the filename from kernel to uImage.buffalo. I also add a fake initrd named initrd.buffalo.

root@debian:/mnt/sdb1/boot# ls -lsh
total 3.4M
129K -rw-r--r-- 1 dingnan dingnan 128K Oct 15 00:39 initrd.buffalo
3.3M -rw-r--r-- 1 dingnan dingnan 3.3M Oct 15 00:39 uImage.buffalo

Then dd the file named root to the second partition directly.
I hope something miraculous happens.
LS420D can recognize the first partition( I guess it boots successfully) . After 10s~15s LED white light flashing, it shut down and reboot in cycles.
I doubt that kernel can't load Squashfs filesystem and followed your step to generate the ext4 rootfs.
mkfs.ext3 the second partition and coped all rootfs into the ext3 filesystem.
But still failed.
I'm also confused about what the problem is....I'm blocked

Hi @danitool , I have successfully installed openwrt firmware into HDD :laughing: :laughing: :laughing:
Just need to modify the dts file in bootargs to below, the kernel will send the boot parameters to system and ignore u-boot default parameters.

	aliases {
		led-boot = &led_boot;
		led-failsafe = &led_failsafe;
		led-running = &led_power;
		led-upgrade = &led_upgrade;
	};

          
	chosen {
		bootargs = "earlycon root=/dev/sda2 rootfstype=squashfs";
		stdout-path = "serial0:115200n8";
		append-rootblock = "nullparameter="; /* override the bootloader args */
	};

          
	memory {
		device_type = "memory";
		reg = <0x00000000 0x20000000>; /* 512 MB */
	};

          
	soc {
		ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
			  MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000

Good job @dingnan. However shouldn't rootfstype be ext4 instead?

Can you post the boot log?

squashfs can be extracted from sysupgrade image directly. so I use dd command to write it into HDD. Maybe ext4 should work after writing rootfs.gz into the second partition.
Sure,

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.10.147 (dingnan@openwrtlab) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 11.3.0 r5215-46121523c) 11.3.0, GNU ld (GNU Binutils) 2.37) #0 SMP Thu Oct 6 08:01:36 2022
[    0.000000] CPU: ARMv7 Processor [561f5811] revision 1 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] OF: fdt: Machine model: Buffalo Linkstation LS420D
[    0.000000] earlycon: uart0 at MMIO 0xd0012000 (options '115200n8')
[    0.000000] printk: bootconsole [uart0] enabled
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000001fffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000001fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000001fffffff]
[    0.000000] On node 0 totalpages: 131072
[    0.000000]   Normal zone: 1152 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 131072 pages, LIFO batch:31
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] percpu: Embedded 11 pages/cpu s16268 r8192 d20596 u45056
[    0.000000] pcpu-alloc: s16268 r8192 d20596 u45056 alloc=11*4096
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129920
[    0.000000] Kernel command line: earlycon root=/dev/sda2 rootfstype=squashfs nullparameter=
[    0.000000] Bootloader command line (ignored): console=ttyS0,115200 root=/dev/nfs rw BOOTVER=0.68 UBOOT_DATE=2017/08/01 mtdparts=armada-nand:4m(boot),-(rootfs)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 507024K/524288K available (8192K kernel code, 623K rwdata, 1788K rodata, 1024K init, 228K bss, 17264K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[    0.000000] 	Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] L2C: DT/platform modifies aux control register: 0x12086302 -> 0x1a086302
[    0.000000] Aurora cache controller enabled, 4 ways, 256 kB
[    0.000000] Aurora: CACHE_ID 0x00000100, AUX_CTRL 0x1a086302
[    0.000000] Switching to timer-based delay loop, resolution 53ns
[    0.000007] sched_clock: 32 bits at 18MHz, resolution 53ns, wraps every 114532461029ns
[    0.007894] clocksource: armada_370_xp_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 101933890472 ns
[    0.019045] Calibrating delay loop (skipped), value calculated using timer frequency.. 37.50 BogoMIPS (lpj=187500)
[    0.029385] pid_max: default: 32768 minimum: 301
[    0.034114] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.041406] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.049819] CPU: Testing write buffer coherency: ok
[    0.054946] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[    0.060788] Setting up static identity map for 0x100000 - 0x100060
[    0.067229] mvebu-soc-id: MVEBU SoC ID=0x6710, Rev=0x1
[    0.072482] mvebu-pmsu: Initializing Power Management Service Unit
[    0.078773] rcu: Hierarchical SRCU implementation.
[    0.083763] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[    0.091545] smp: Bringing up secondary CPUs ...
[    0.096059] smp: Brought up 1 node, 1 CPU
[    0.100073] SMP: Total of 1 processors activated (37.50 BogoMIPS).
[    0.106224] CPU: All CPU(s) started in SVC mode.
[    0.114133] VFP support v0.3: implementor 56 architecture 2 part 20 variant 9 rev 6
[    0.121909] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.131715] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.138560] pinctrl core: initialized pinctrl subsystem
[    0.144795] NET: Registered protocol family 16
[    0.151564] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.159269] thermal_sys: Registered thermal governor 'step_wise'
[    0.159357] cpuidle: using governor ladder
[    0.169613] mvebu-pmsu: CPU idle is currently broken: disabling
[    0.231920] cryptd: max_cpu_qlen set to 1000
[    0.239407] SCSI subsystem initialized
[    0.245492] libata version 3.00 loaded.
[    0.245721] usbcore: registered new interface driver usbfs
[    0.251320] usbcore: registered new interface driver hub
[    0.256652] usbcore: registered new device driver usb
[    0.267313] clocksource: Switched to clocksource armada_370_xp_clocksource
[    0.275016] NET: Registered protocol family 2
[    0.279616] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.287428] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.295779] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.303536] TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.310693] TCP: Hash tables configured (established 4096 bind 4096)
[    0.317118] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.323650] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.330751] NET: Registered protocol family 1
[    0.335112] PCI: CLS 0 bytes, default 64
[    0.343823] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    0.354063] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.359923] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.372446] armada-370-pinctrl d0018000.pin-ctrl: registered pinctrl driver
[    0.381476] mv_xor d0060800.xor: Marvell shared XOR driver
[    0.448157] mv_xor d0060800.xor: Marvell XOR (Registers Mode): ( xor cpy intr )
[    0.455686] mv_xor d0060900.xor: Marvell shared XOR driver
[    0.518168] mv_xor d0060900.xor: Marvell XOR (Registers Mode): ( xor cpy intr )
[    0.525797] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.532693] printk: console [ttyS0] disabled
[    0.537013] d0012000.serial: ttyS0 at MMIO 0xd0012000 (irq = 27, base_baud = 12500000) is a 16550A
[    0.546003] printk: console [ttyS0] enabled
[    0.554421] printk: bootconsole [uart0] disabled
[    0.572328] loop: module loaded
[    0.579876] sata_mv d00a0000.sata: version 1.28
[    0.580112] sata_mv d00a0000.sata: slots 32 ports 2
[    0.589164] scsi host0: sata_mv
[    0.593518] scsi host1: sata_mv
[    0.596857] ata1: SATA max UDMA/133 irq 35
[    0.601069] ata2: SATA max UDMA/133 irq 35
[    0.609607] spi-nor spi0.0: mx25l8005 (1024 Kbytes)
[    0.614989] 2 fixed-partitions partitions found on MTD device spi0.0
[    0.621456] Creating 2 MTD partitions on "spi0.0":
[    0.626277] 0x000000000000-0x0000000f0000 : "u-boot"
[    0.632448] 0x0000000f0000-0x000000100000 : "u-boot-env"
[    0.647741] hwmon hwmon0: temp1_input not attached to any thermal zone
[    0.655962] mvneta d0074000.ethernet eth0: Using random mac address d2:14:21:3a:9a:cd
[    0.664137] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.670722] ehci-platform: EHCI generic platform driver
[    0.676078] ehci-orion: EHCI orion driver
[    0.680248] orion-ehci d0050000.usb: EHCI Host Controller
[    0.685696] orion-ehci d0050000.usb: new USB bus registered, assigned bus number 1
[    0.693441] orion-ehci d0050000.usb: irq 33, io mem 0xd0050000
[    0.727356] orion-ehci d0050000.usb: USB 2.0 started, EHCI 1.00
[    0.733929] hub 1-0:1.0: USB hub found
[    0.738222] hub 1-0:1.0: 1 port detected
[    0.742877] usbcore: registered new interface driver usb-storage
[    0.749253] i2c /dev entries driver
[    0.777817] orion_wdt: Initial timeout 229 sec
[    0.782662] sdhci: Secure Digital Host Controller Interface driver
[    0.788921] sdhci: Copyright(c) Pierre Ossman
[    0.793442] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.800603] NET: Registered protocol family 10
[    0.811559] Segment Routing with IPv6
[    0.815315] NET: Registered protocol family 17
[    0.820095] 8021q: 802.1Q VLAN Support v1.8
[    0.824407] Registering SWP/SWPB emulation handler
[    0.834249] regulator@0 GPIO handle specifies active low - ignored
[    1.107206] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl F300)
[    1.118039] ata1.00: ATA-8: ST91000640NS,     AA09, max UDMA/133
[    1.124081] ata1.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[    1.137587] ata1.00: configured for UDMA/133
[    1.142291] scsi 0:0:0:0: Direct-Access     ATA      ST91000640NS     AA09 PQ: 0 ANSI: 5
[    1.151776] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[    1.160198] sd 0:0:0:0: [sda] Write Protect is off
[    1.165026] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.165147] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.191304]  sda: sda1 sda2
[    1.195248] sd 0:0:0:0: [sda] Attached SCSI disk
[    1.488460] ata2: SATA link down (SStatus 0 SControl F300)
[    1.525150] VFS: Mounted root (squashfs filesystem) readonly on device 8:2.
[    1.534263] Freeing unused kernel memory: 1024K
[    1.539773] Run /sbin/init as init process
[    1.543890]   with arguments:
[    1.543894]     /sbin/init
[    1.543898]   with environment:
[    1.543901]     HOME=/
[    1.543905]     TERM=linux
[    1.543908]     mangled_fs=squashfs
[    1.543912]     nullparameter=
[    1.978945] init: Console is alive
[    1.982585] init: - watchdog -
[    2.571830] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    2.755505] SGI XFS with security attributes, no debug enabled
[    2.764233] gpio-keys gpio-keys: does not support key code:148
[    2.770198] gpio-keys gpio-keys: does not support key code:149
[    2.776062] gpio-keys gpio-keys: does not support key code:1
[    2.781764] gpio-keys gpio-keys: does not support key code:357
[    2.845748] rtc-rs5c372 0-0032: rs5c372a found, 24hr
[    2.858091] rtc-rs5c372 0-0032: registered as rtc0
[    2.864766] rtc-rs5c372 0-0032: setting system clock to 2022-10-15T14:43:53 UTC (1665845033)
[    2.925606] kmodloader: 1 module could not be probed
[    2.930815] kmodloader: - linkstation-poweroff - 0
[    2.945994] init: - preinit -
[    3.600087] random: jshn: uninitialized urandom read (4 bytes read)
[    3.649003] random: jshn: uninitialized urandom read (4 bytes read)
[    3.814304] random: jshn: uninitialized urandom read (4 bytes read)
[    4.431695] mvneta d0074000.ethernet eth0: PHY [d0072004.mdio-mii:00] driver [Marvell 88E1510] (irq=POLL)
[    4.441738] mvneta d0074000.ethernet eth0: configuring for phy/rgmii-id link mode
[    7.548225] mvneta d0074000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[    7.556310] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    8.778275] mount_root: loading kmods from internal overlay
[    8.799700] kmodloader: loading kernel modules from //etc/modules-boot.d/*
[    8.863400] kmodloader: 1 module could not be probed
[    8.868591] kmodloader: - linkstation-poweroff - 0
[    9.671171] random: procd: uninitialized urandom read (4 bytes read)
[    9.784500] F2FS-fs (loop0): Mounted with checkpoint version = 6e2cc596
[    9.791508] block: attempting to load /tmp/f2fs_cfg/upper/etc/config/fstab
[    9.799988] block: extroot: not configured
[    9.993842] F2FS-fs (loop0): Mounted with checkpoint version = 6e2cc598
[   10.336851] block: attempting to load /tmp/f2fs_cfg/upper/etc/config/fstab
[   10.344861] block: extroot: not configured
[   10.350278] mount_root: switching to f2fs overlay
[   10.386475] EXT4-fs (sda1): mounting ext3 file system using the ext4 subsystem
[   10.460465] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[   10.468230] ext3 filesystem being mounted at /boot supports timestamps until 2038 (0x7fffffff)
[   10.533504] urandom-seed: Seeding with /etc/urandom.seed
[   10.677573] mvneta d0074000.ethernet eth0: Link is Down
[   10.702984] procd: - early -
[   10.706025] procd: - watchdog -
[   11.267763] procd: - watchdog -
[   11.272513] procd: - ubus -
[   11.516148] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.530526] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.544683] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.564428] procd: - init -
[   12.235461] kmodloader: loading kernel modules from /etc/modules.d/*
[   12.284611] NET: Registered protocol family 38
[   12.325698] tun: Universal TUN/TAP device driver, 1.6
[   12.559609] cryptodev: driver 1.12 loaded.
[   12.748911] gpio-fan gpio-fan: GPIO fan initialized
[   12.910765] xt_time: kernel timezone is -0000
[   13.040684] PPP generic driver version 2.4.2
[   13.053777] PPP MPPE Compression module registered
[   13.066274] NET: Registered protocol family 24
[   13.193322] kmodloader: 1 module could not be probed
[   13.215070] kmodloader: - linkstation-poweroff - 0
[   15.071209] random: jshn: uninitialized urandom read (4 bytes read)
[   15.093743] random: ubusd: uninitialized urandom read (4 bytes read)
[   15.104692] random: ubus: uninitialized urandom read (4 bytes read)
[   15.816478] EXT4-fs (sda1): mounting ext3 file system using the ext4 subsystem
[   15.924486] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: 
[   15.931894] ext3 filesystem being mounted at /mnt/sda1 supports timestamps until 2038 (0x7fffffff)
[   18.877256] random: crng init done
[   18.880696] random: 69 urandom warning(s) missed due to ratelimiting
[   22.095784] mvneta d0074000.ethernet eth0: PHY [d0072004.mdio-mii:00] driver [Marvell 88E1510] (irq=POLL)
[   22.129064] mvneta d0074000.ethernet eth0: configuring for phy/rgmii-id link mode
[   22.160975] br-lan: port 1(eth0) entered blocking state
[   22.166247] br-lan: port 1(eth0) entered disabled state
[   22.171838] device eth0 entered promiscuous mode
[   25.308226] mvneta d0074000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   25.316318] br-lan: port 1(eth0) entered blocking state
[   25.321614] br-lan: port 1(eth0) entered forwarding state
[   25.352976] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready

Hi @danitool , it looks LS421DE still working under software, no HW-accelerators.
all driver=aes-arm, no mv-cbc-aes and mv-sha256 instead.

root@OpenWrt:~# openssl engine -t -c -vv -pre DUMP_INFO devcrypto
(devcrypto) /dev/crypto engine
Information about ciphers supported by the /dev/crypto engine:
Cipher DES-CBC, NID=31, /dev/crypto info: id=1, driver=cbc(des-generic) (software)
Cipher DES-EDE3-CBC, NID=44, /dev/crypto info: id=2, driver=cbc(des3_ede-generic) (software)
Cipher BF-CBC, NID=91, /dev/crypto info: id=3, CIOCGSESSION (session open call) failed
Cipher CAST5-CBC, NID=108, /dev/crypto info: id=4, CIOCGSESSION (session open call) failed
Cipher AES-128-CBC, NID=419, /dev/crypto info: id=11, driver=cbc(aes-arm) (software)
Cipher AES-192-CBC, NID=423, /dev/crypto info: id=11, driver=cbc(aes-arm) (software)
Cipher AES-256-CBC, NID=427, /dev/crypto info: id=11, driver=cbc(aes-arm) (software)
Cipher RC4, NID=5, /dev/crypto info: id=12, CIOCGSESSION (session open call) failed
Cipher AES-128-CTR, NID=904, /dev/crypto info: id=21, driver=ctr(aes-arm) (software)
Cipher AES-192-CTR, NID=905, /dev/crypto info: id=21, driver=ctr(aes-arm) (software)
Cipher AES-256-CTR, NID=906, /dev/crypto info: id=21, driver=ctr(aes-arm) (software)
Cipher AES-128-ECB, NID=418, /dev/crypto info: id=23, driver=ecb(aes-arm) (software)
Cipher AES-192-ECB, NID=422, /dev/crypto info: id=23, driver=ecb(aes-arm) (software)
Cipher AES-256-ECB, NID=426, /dev/crypto info: id=23, driver=ecb(aes-arm) (software)

Information about digests supported by the /dev/crypto engine:
Digest MD5, NID=4, /dev/crypto info: id=13, driver=md5-generic (software), CIOCCPHASH capable
Digest SHA1, NID=64, /dev/crypto info: id=14, driver=sha1-asm (software), CIOCCPHASH capable
Digest RIPEMD160, NID=117, /dev/crypto info: id=102, driver=unknown. CIOCGSESSION (session open) failed
Digest SHA224, NID=675, /dev/crypto info: id=103, driver=sha224-asm (software), CIOCCPHASH capable
Digest SHA256, NID=672, /dev/crypto info: id=104, driver=sha256-asm (software), CIOCCPHASH capable
Digest SHA384, NID=673, /dev/crypto info: id=105, driver=sha384-arm (software), CIOCCPHASH capable
Digest SHA512, NID=674, /dev/crypto info: id=106, driver=sha512-arm (software), CIOCCPHASH capable

[Success]: DUMP_INFO
     [ available ]
     USE_SOFTDRIVERS: specifies whether to use software (not accelerated) drivers (0=use only accelerated drivers, 1=allow all drivers, 2=use if acceleration can't be determined) [default=2]
     CIPHERS: either ALL, NONE, or a comma-separated list of ciphers to enable [default=ALL]
     DIGESTS: either ALL, NONE, or a comma-separated list of digests to enable [default=NONE]
     DUMP_INFO: dump info about each algorithm to stderr; use 'openssl engine -pre DUMP_INFO devcrypto'