forked from Openwrt-EcoNet/openwrt
The SmartFiber XP8421-B is a fiber modem which is available for $20 online and has 512MB of memory, 256MB of SPI NAND flash and 2 USB 2.0 ports in addition to ethernet, wifi and XPON. Because EcoNet is not currently producing evaluation boards, the XP8421-B stands in as a convenient, low cost, off-the-shelf, representitive example of the capabilities of the EN751221 econet processor. This is also the example board that is included in the upstream Linux patchset. The XP8421-B, and apparently many other devices of this platform, use a dual-image layout. I have chosen to reuse this to support dual-boot between OpenWRT and the factory firmware. Certain design decisions were made with the goal of not overwriting data that is used by the factory OS. This commit also introduces a utility for switching between OS_A and OS_B which are used for OpenWRT and Factory OS respectively. Flashing instructions (from bootloader): Build and then locate the squashfs-tclinux.trx image file Get the length of that file in hex: printf '%X\n' "$(stat -c%s the-file-squashfs-tclinux.trx)" Connect to device with xmodem capability, e.g. picocom --send-cmd lsx -vv -b 115200 /dev/ttyUSB0 Switch device on and press a key within 3 seconds Enter bootloader username and password: telecomadmin nE7jA%5m Type: xmdm 80020000 <file length hex> Quickly start xmodem and send the file, in picocom that is ctrl+a ctrl+s <paste-the-file-name> enter If the transfer fails to start, wait 30 seconds to a minute for the bootloader prompt to return and then try the command again. Once the transfer has completed successfully, type the following flash 80000 80020000 <file length hex> Type go or simply restart the device to boot into OpenWRT Signed-off-by: Caleb James DeLisle <cjd@cjdns.fr>
83 lines
1.3 KiB
Plaintext
83 lines
1.3 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
/dts-v1/;
|
|
|
|
#include "en751221.dtsi"
|
|
|
|
/ {
|
|
model = "SmartFiber XP8421-B";
|
|
compatible = "smartfiber,xp8421-b", "econet,en751221";
|
|
|
|
memory@0 {
|
|
device_type = "memory";
|
|
reg = <0x00000000 0x1c000000>;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "/serial@1fbf0000:115200";
|
|
linux,usable-memory-range = <0x00020000 0x1bfe0000>;
|
|
};
|
|
};
|
|
|
|
&nand {
|
|
status = "okay";
|
|
econet,bmt;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
label = "bootloader";
|
|
reg = <0x0 0x40000>;
|
|
read-only;
|
|
};
|
|
|
|
partition@40000 {
|
|
label = "romfile";
|
|
reg = <0x40000 0x40000>;
|
|
read-only;
|
|
};
|
|
|
|
partition@80000 {
|
|
label = "tclinux";
|
|
reg = <0x80000 0x1400000>;
|
|
read-only;
|
|
econet,enable-remap;
|
|
};
|
|
|
|
/* Nested inside of tclinux */
|
|
partition@480000 {
|
|
label = "rootfs";
|
|
reg = <0x480000 0xf80000>;
|
|
linux,rootfs;
|
|
read-only;
|
|
};
|
|
|
|
partition@1480000 {
|
|
label = "tclinux_alt";
|
|
reg = <0x1480000 0x1400000>;
|
|
};
|
|
|
|
partition@2880000 {
|
|
label = "openjdk";
|
|
reg = <0x2880000 0x2000000>;
|
|
};
|
|
|
|
partition@4880000 {
|
|
label = "ubifs";
|
|
reg = <0x4880000 0x9100000>;
|
|
};
|
|
|
|
partition@d980000 {
|
|
label = "unknown";
|
|
reg = <0xd980000 0x4c0000>;
|
|
};
|
|
|
|
partition@de40000 {
|
|
label = "reservearea";
|
|
reg = <0xde40000 0x1c0000>;
|
|
};
|
|
};
|
|
};
|