[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