[LEDE-DEV] NAND JFFS2 question
Mathias Kresin
dev at kresin.me
Wed Mar 8 23:34:34 PST 2017
08.03.2017 23:01, hamsi2k at freenet.de:
> Hi!
>
> I currently work to assembly a fullimage.img for the Easybox 904xdsl.
> Actually there are some differences to upstream made by the vendor.
> I take over some code and now I'm able to update the firmware, or at
> least the kernel via the recovery method within the uboot.
>
> As I wrote, the kernel and also the rootfs is flashed without errors.
> When I try to boot the image, or mount the partition it is not possible
> due some strange ECC errors.
>
> So I did some investigations: When I boot into the target system
> via sdcard as rootfs and then I perform a
>
> ------------------------------------------------------------------------
> flash_eraseall /dev/mtd1
> nand_write /dev/mtd1 /root/image.jffs2
>
> mkdir /tmp/disk
> mount -t jffs2 /dev/mtdblock1 /tmp/disk
> ------------------------------------------------------------------------
Using jffs2 on NAND flash isn't the best idea. jffs2 doesn't work that
good with NAND flash. Use ubi instead!
I worked on the Easybox 904xdsl as well but stopped after realising that:
- Arcadian decided to use their own bad block table patterns instead of
the ones which are used by the kernel and an unmodified u-boots. Means a
kernel patch is required just for this board.
- to support the wireless a complete protocol needs to be reverse
engineered and a lot of missing code needs to be added to the rt2x00 driver
The rt3883 wireless chip of the Easybox 904xdsl is not a usual wireless
chip, it is a full SoC which is supported as own suptarget in LEDE
(ramips/rt3883). In case of the 904 a complete realtime operating system
is uploaded/runs on the rt3883 instead of a "normal" Operating System
like OpenWrt/LEDE. Since it is a full SoC it has subsystems like PCI and
so on. The rt5392 wireless is attached via PCI to the rt3883 SoC.
The internal ethernet of the rt3883 SoC is connected to the internal
lantiq switch via MDIO/RGMII. The whole communication and configuration
of the rt3883/rt5392 is done via a proprietary protocol, which is based
on ethernet frames. The way the protocol really works is unknown and
there is no support for that protocol in the rt2x00 wireless driver.
Vitaly Chekryzhev send patch to add MDIO support to the rtl8367b used by
the 904 [0]. This patch wasn't merged since it caused issues. My last
update about this was that he is going to fix the issues and will send a
new patch.
Long story short, I got the following working:
- LAN
- ethernet WAN (the DSL port is ethernet and dsl at the same time)
- LEDs
- Buttons
- Flash without bad block support
- usb port on the back
- ram boot u-boot for recovery
You can find my code at https://github.com/mkresin/lede/tree/904xdsl.
Feel free to use it or to rebase your work on it. Would be nice if you
publish what you have so far as well.
Supporting the build in display should be possible. The driver for the
display is in the staging section of the kernel for a while now [1].
Mathias
[0] https://github.com/lede-project/source/pull/537
[1]
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/drivers/staging/fbtft?h=linux-4.4.y
More information about the Lede-dev
mailing list