1
1
openwrt/target/linux/kirkwood/base-files/etc/board.d/02_network
Konstantin Meshkov 7e829b8209
kirkwood: add support for D-Link DNS-325 A1
The D-Link DNS-325 A1 is NAS with 2x HDD (3.5 inch) bays, 1x 10/100/1000Base-T port and 1x USB 2.0 port

Device specification:

    SoC: Marvell 88F6281-A1 1.2 GHz
    RAM: 256 MB (2xSEC K4T1G084QF-HCF7:128Mx8 @400 CL6)
    Flash: 128 MB (SAMSUNG 946 K9F1G08U0B PCB0)
    SATA: 2x internal SATA II drives
    Ethernet: 1x Gigabit (Marvell 88E1116R-NNC1)
    LED: 7x (white: Power, white/red: Right SATA Activity, USB Activity, Left SATA Activity)
    Key: 3x (Power, Reset, USB Copy/Unmount)
    Serial: 5 pin header (RXD,GAP,3.3V,GND,TXD), (115200,8,N,1), 3.3V TTL
    USB ports: 1x USB 2.0

Flash instruction:

NOTE: this process uses a serial connection. It will upgrade the bootloader and reset the bootloader environment variables

USB flash stick setup

    Format to FAT32 without mbr
    Copy these files to USB flash stick: dlink_dns-325-a1-initramfs-uImage dlink_dns-325-a1-squashfs-factory.bin dlink_dns-325-a1-squashfs-sysupgrade.bin u-boot.kwb (from u-boot-dns325 directory)

NAS setup

    Connect LAN cable between router and NAS device
    Connetc USB flash stick to NAS device
    Connect serial to NAS device

Boot from new u-boot and install it

    $ kwboot -p -b u-boot.kwb -B115200 -t /dev/ttyUSB0
    Power on NAS
    After download copleted and booted NAS device with new u-boot stop in bootloader by pressing any key
    => usb start
    => fatload usb 0 0x1000000 /u-boot.kwb
    => nand erase.part u-boot
    => nand write 0x1000000 u-boot ${filesize}
    => reset

Update MAC address in u-boot env

    Stop in bootloader by pressing any key
    Get your MAC address from label on chassis
    => setenv ethaddr XX:XX:XX:XX:XX:XX
    => saveenv

Install OpenWrt by flashing factory image from u-boot

    => usb start
    => fatload usb 0 0x1000000 /dlink_dns-325-a1-squashfs-factory.bin
    => nand erase.part ubi
    => nand write 0x1000000 ubi ${filesize}
    => reset

Based-on: #9296
Signed-off-by: Konstantin Meshkov <skyline@mail.ru>
[ refresh uboot patches ]
Link: https://github.com/openwrt/openwrt/pull/17924
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-25 15:41:38 +01:00

95 lines
1.9 KiB
Plaintext

#
# Copyright (C) 2012-2015 OpenWrt.org
#
. /lib/functions/uci-defaults.sh
. /lib/functions/system.sh
kirkwood_setup_interfaces()
{
local board="$1"
case "$board" in
checkpoint,l-50)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 lan5 lan6 lan7 lan8 dmz" "eth0"
;;
cisco,on100)
ucidef_set_interface_lan "eth0 eth1"
;;
cloudengines,pogoe02|\
cloudengines,pogoplugv4|\
ctera,c200-v1|\
dlink,dns320l|\
dlink,dns-325-a1|\
globalscale,sheevaplug|\
iom,iconnect-1.1|\
iom,ix2-200|\
iptime,nas1|\
netgear,readynas-duo-v2|\
netgear,stora|\
raidsonic,ib-nas62x0|\
seagate,blackarmor-nas220|\
seagate,dockstar|\
seagate,goflexhome|\
seagate,goflexnet|\
zyxel,nsa310b|\
zyxel,nsa310s|\
zyxel,nsa325)
ucidef_set_interface_lan "eth0" "dhcp"
;;
endian,4i-edge-200)
ucidef_set_interface_lan "port1 port2 port3 port4 eth1"
;;
iom,ix4-200d)
ucidef_set_interface_lan "eth0 eth1" "dhcp"
;;
linksys,e4200-v2|\
linksys,ea3500|\
linksys,ea4500)
ucidef_set_interfaces_lan_wan "ethernet1 ethernet2 ethernet3 ethernet4" "internet"
;;
*)
ucidef_set_interface_lan "eth0"
;;
esac
}
kirkwood_setup_macs()
{
local board="$1"
local lan_mac=""
local wan_mac=""
local label_mac=""
case "$board" in
dlink,dns320l)
lan_mac=$(mtd_get_mac_text "mini firmware")
;;
iptime,nas1)
lan_mac=$(mtd_get_mac_binary u-boot 0x3ffa8)
label_mac=$lan_mac
;;
linksys,e4200-v2|\
linksys,ea3500|\
linksys,ea4500)
wan_mac=$(mtd_get_mac_ascii u_env eth1addr)
;;
zyxel,nsa310b|\
zyxel,nsa325)
lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
;;
esac
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
[ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
}
board_config_update
board=$(board_name)
kirkwood_setup_interfaces $board
kirkwood_setup_macs $board
board_config_flush
exit 0