OpenWrt on Zyxel NSA325v2

Hello everyone,
I would like to give OpenWRT a try on my NAS from Zyxel (NSA325v2).
According to the instructions (, the u-boot.kwb from 19.x.x release is bugged and won't allow access to any mass storage, so it is recommended to use the latest 18.x.x version.

Now, I hope someone can help me with one or two questions I have:

  • Is this information still valid and do I only need to replace the u-boot.kbw or also other files?
  • Is it recommended to use the entire 18.x.x release with that u-boot.kwb or can the 18.x.x and 19.x.x be safely used together?
  • Are there any known issues with accessing external or internal drives? Given that it is a NAS, the worst that could happen would be losing access to my drives or being restricted in the kind of drives I can use.
  • What is the difference between the u-boot found in the instructions (so here) and the one from the doozan forum?

Any help would be greatly appreciated and if anybody has anything to add or correct as far as installation instructions go, please feel free to comment :slight_smile:

All the best

Unfortunately there's no reference link posted along with the statement.

I'd check/read at they're really good at providing support for uboot on the Marvell platform.

They might also have more recent uboots posted, along with instructions on how to upgrade.

1 Like

Thank you @frollic :slight_smile:

I have opened a thread on doozan forum. May I ask, does OpenWRT fit on NAND or does it also require a USB stick or internal HDD to function?

I'm not familiar with the 325 in itself, but if there's a flash storage > 4MB, you should be able to install it there, as stand alone.

with a properly configured u-boot, you will be able to set up a boot order, which will allow you to boot from USB flash drive/storage, HDD and flash. There are threads about it over at Doozan.

I've done it for my Dockstar and Pogoplug v4.

To answer one of your questions from doozans, their/his uboot has nc/netcat enabled, it probably isn't in the uboot provided by openwrt, but it's only a guess.
It's a nice to have feature, if you play with uboot a lot.

OpenWrt runs from nand. NSA325 has 128Mb of flash so lots of space to install additional packages.

1 Like

Thank you for your feedback. That is good news.

My new FTDI adapter arrived and I tested it on a smart socket and it works nicely.

So next I wanted to tackle my NSA325v2 and maybe I am thinking to complex but are not all steps performed via the usb to serial connection?
Because the OpenWRT instructions basically start by booting into u-boot, but there is no description on how to do that.
I tried simply using my serial connection (connected my FTDI adapter to the board and plugged it into my PC) and the blue LED lights up, but Putty cannot connect. On my smart socket I had to bridge IOO and GND to get access to the terminal. Is there something similar needed here?

Or do I need to twist TX and RX? So is the scheme on the way to plug in? So FTDI Adapter TX goes to the pin labelled TX, correct? It is not meant that that one is TX and so it needs to be plugged into RX on the adapter?

Per your recommendations I would like to start off with the OpenWRT u-boot and image and depending on how that goes and how much I like it, maybe move to Debian afterwards. But I am lacking the initial u-boot installation instructions it seems.

I am assuming that I do not need to plug in the power supply, correct? Or does the FTDI's 3.3V not suffice to boot and I need the power supply?

You connect RT, TX and GND, not the 3.3V+.

RX goes to TX, and vice versa.

Yes, the NSA have to be switched on.

Then let's hope I did not fry my serial port because I attached the 3.3 V as per the scheme on the OpenWRT Wiki. That is not a smart picture then.
Especially given that it states you need 3.3 V Adapter but then you don't use the actually 3.3 V.

I will try it this evening after work.
Most other devices (non NAS) need the 3.3 V as power supply because they are flashed without mains connection

It doesn't actually say you should connect the + voltage, just shows the pinout.
Theoretically, connecting GND to the +3.3V could be even worse :slight_smile:

You need a 3.3V adapter for the correct voltage level on the serial port, not for powering the PCB.

No matter what, you/it should be OK.

So far no luck getting the u-boot flashed. I have tried all my usb sticks and none seem to work. Not even the ones I used to use as swap on old Linux sat receivers.

TFTP servers also do not work. Just keeps trying but does not download anything.

Anybody have any ideas?

C&P the uboot output.

The last attempt I tried was

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2021.05.11 17:42:34 =~=~=~=~=~=~=~=~=~=~=~=
         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_ 
| | | |___|  _ \ / _ \ / _ \| __| 
| |_| |___| |_) | (_) | (_) | |_ 
 \___/    |____/ \___/ \___/ \__| 

U-Boot 1.1.4 (Jul 18 2013 - 10:47:29) Marvell version: 3.5.9

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 006CFB00

Soc: 88F6282 A1CPU running @ 1600Mhz L2 running @ 533Mhz
SysClock = 533Mhz , TClock = 200Mhz 

DRAM (DDR3) CAS Latency = 7 tRP = 8 tRAS = 24 tRCD=8
DRAM CS[0] base 0x00000000   size 512MB 
DRAM Total size 512MB  16bit width
Addresses 10M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (10M - 7M): Done
Flash:  0 kB

CPU : Marvell Feroceon (Rev 1)
Kernel address is 0x4640000.

Streaming disabled 
Write allocate disabled

USB 0: host mode
	[BlueDBG] reseting SoC Pex[0]  0 ...
PEX 0: PCI Express Root Complex Interface
PEX interface detected Link X1
	[BlueDBG] reseting SoC Pex[1]  0 ...
	[BlueDBG] reseting SoC Pex[1]  1 ...
	[BlueDBG] reseting SoC Pex[1]  2 ...
	[BlueDBG] reseting SoC Pex[1]  3 ...
	[BlueDBG] reseting SoC Pex[1]  4 ...
	[BlueDBG] reseting SoC Pex[1]  5 ...
	[BlueDBG] reseting SoC Pex[1]  6 ...
	[BlueDBG] reseting SoC Pex[1]  7 ...
	[BlueDBG] reseting SoC Pex[1]  8 ...
	[BlueDBG] reseting SoC Pex[1]  9 ...
	[BlueDBG] reseting SoC Pex[1]  10 ...
PEX 1: interface detected no Link.
Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  2  0 
Marvell>> usb start

(Re)start USB...
USB:   scanning bus for devices... 2 USB Device(s) found
Waiting for storage device(s) to settle before scanning...
0 Storage Device(s) found
Marvell>> e[Ae[Busb start

Unknown command 'e[Ae[Busb' - try 'help'
Marvell>> usb

usb     - USB sub-system

Marvell>> usb start

(Re)start USB...
USB:   scanning bus for devices... 1 USB Device(s) found
Waiting for storage device(s) to settle before scanning...
0 Storage Device(s) found
Marvell>> usb start

(Re)start USB...
USB:   scanning bus for devices... 1 USB Device(s) found
Waiting for storage device(s) to settle before scanning...
0 Storage Device(s) found

Here I was trying if USB start would help. But the output is the same as with USB reset.

Only the first time I execute usb start/reset it detects two usb devices. Afterwards only ever one.
But both are weird given that I only have one device plugged in and there are three USB ports. So both numbers seem strange.

I don't have the log from my last TFTP test, but it was identical to this one (except for the prompt, obviously :wink:

NSA310>> setenv ipaddr
NSA310>> setenv serverip
NSA310>> tftp 0x1000000 u-boot.kwb
Using egiga0 device
TFTP from server; our IP address is
Filename 'u-boot.kwb'.
Load address: 0x1000000
Loading: T T T T T T T T T T
Retry count exceeded; starting again

Did you use the front port? Try one on the back. The front port is an externally connected USB3 port, while the 2 back ports are native USB2.

About the tftp problem, tftp is a tricky protocol. Some servers just don't work with some clients. A few days ago I installed Debian on a Netgear RN104 NAS. To do so I had to tftp the debian installer kernel+initramfs. The tftp server on my server just didn't work. Then I used the build-in tftp server in my (OpenWrt) router, which worked flawlessly. So try another binary/host/...

I tried all three ports, favoring the rear ports as I figured that if the USB stick is lreferrably ancient, the port should be a USB 2.0 rather than the 3.0.
I tried FAT32 and FAT16. Formatted with Win10 and tried HP formatter from back in the day :smiley: Is there another option?

Is it not possible to perform the flash after normal boot? I guess the NAND is then no longer writeable? Because the USB sticks all work on the NAS, just not in the u-boot.

I don't have any empty SATA drives lying around either.

The TFTP failure, it's not a FW issue, is it?
And I assume you have a file on it, with the name as in the TFTP request?

I cannot comment on whether it is a firmware issue. I am using the stock Zyxel firmware, which from memory was the 4.81.
I downloaded the files from OpenWRT servers, so I did not even have to change the filenames.

Just to make sure: the ethernet cable does not need to be a cross over cable, correct. Many many many years ago patch vs. cross over was an issue for certain devices.

Not actual firmware issue, but file name, FW in this case = firewall.

The version of what's installed shouldn't really matter, since you're working with uboot, which starts before the actual firmware.

You should be able to see the TFTP request coming in, in the TFTPd log.

I was looking for any incoming messages, but there were none on any of the servers. I also disabled the Win 10 firewall because I figured it might be blocking something. Also no luck.

I am now trying a few old usb sticks my wife still had lying in a draw. But what surprises me is that none of the USB sticks LEDs actually light up when only booting to uboot. They do when doing full boot. Is uboot not initializing the USB ports properly or not supplying the necessary current?

Probably not initializing the port.

But tftp should still work, it's pretty fool proof.

So, I tested the TFTP server and it is working perfectly. Used my Android mobile to connect to the wifi and there were no issues.
Switched the server to listen on the LAN port and nothing.

I then tried to ping the NAS and nothing.

Seems like the NAS egiga0 is not responding.

Marvell>> printenv
bootargs=console=ttyS0,115200 mtdparts=nand_mtd:0x100000(uboot),0x80000(uboot_env),0x80000(key_store),0x80000(info),0xA00000(etc),0xA00000(kernel_1),0x2FC0000(rootfs1),0xA00000(kernel_2),0x2FC0000(rootfs2) root=/dev/nfs rw init=/init
bootcmd=nand read.e 0x2000000 $(kernel_addr) 0xA00000; bootm 0x2000000
VENDOR_NAME=MitraStar Technology Corp.
ethaddr=REMOVED by AleXSR700
console=console=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root)
bootargs_root=root=/dev/nfs rw
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
mvNetConfig=mv_net_config=(REMOVED by AleXSR700,0:1:2:3),mtu=1500
yuk_ethaddr=REMOVED by AleXSR700

Any ideas?

I tried cross over cable and patch cable (direct connection). Windows 10 identifies the connection as only 10 MBps.