Auf die Idee mit echo "mtd5 erase all" > /proc/mtd bin ich gekommen, als ich das S15-filesys anschaute. Ich trage mal zusammen, was ich herausbekommen habe:
Insgesamt: 16 MB NOR Flash = 16.777.216
[email protected]:/var/mod/root# cat /proc/mtd
dev: size erasesize name
mtd0: 00e1d500 00020000 "rootfs" - size: 14.800.128
mtd1: 00142b00 00020000 "kernel" - size: 1.321.728
mtd2: 00020000 00020000 "urlader" - size: 131.072
mtd3: 00040000 00020000 "tffs (1)" - size: 262.144
mtd4: 00040000 00020000 "tffs (2)" - size: 262.144
mtd5: 00300000 00020000 "jffs2"
Ohne mtd5 sind das genau 16.777216 Byte in der Summe, selbst die Standardmässigen 1 MB (von der Original FW angelegt) hätten darin keinen freien Platz mehr. Ich stimme zu, mtd5 macht so keinen Sinn und kann nur durch überlappen entstehen.
Vom Freetz Build weiss ich, dass mein Image 11,9 MB gross ist. Also 16 MB - 11,9 MB = 4,1 MB, d.h. es müsste genügend Platz für Bootloader + 2xTFFS + 3 MB JFFS2 sein.
Freetz muss beim image bauen wissen, dass von den 16 MB bereits ein Teil für urloader und 2xTFFS belegt sind, also 16.777.216 - 2 * 262.144 - 131.072 = 16.121.856 ist die max Grösse des Images. So ist es denn auch im Image steht unter /var/install: kernel_size=16121856 (Beim Image Bauen weiss Freetz noch nichts davon, dass ich 3 MB jffs2 haben möchte.)
Beim Flashen des Freetz Images wird folgendes ausgegeben:
flash_startadress 268435456
kernel_update_start 268566528
bootloader_size 0x00020000
jffs2_size 0x00300000
Kernel_without_jffs2_size 12976128
kernel_image_size 11893512
kernel_mtd_size 16121856
Kernel_Start_Add = 268566528
Kernel_End_Addr = 268566528 + 11893512
Kernel_without_jffs2_End_Addr = 268566528 + 12976128
install: -----------------------------------------------------
install: kernel_size=16121856
install: kernel_update_start=268566528
install: kernel_update_len=16121856
install: 2.6.32 setting files to install...
install: /var/tmp/kernel.image to start(268566528) size(16121856)
install: check for old settings ...
Und da finden wir wieder: kernel.image to start(268566528) size(16121856).
kernel_image_size 11893512 entspricht der Info aus dem Freetz build (11,9 MB). Danach kommt etwas ungenutzter Speicher bis
Kernel_without_jffs2_size 12976128 und dann nehmen wir die 3 MB jffs hinzu und kommen auf
kernel_mtd_size 16121856 - Differenz: 16121856 - 12976128 = 3 MB jffs
So, ich würde sagen alles sieht gut bzw besser save aus. wie läuft aber nun der Freetz-Flash Vorgang ab? Geflasht wird wohl kernel.image aber wie teilt sich der Content dann auf mtd0 und mtd1 bzw mtd5 auf?