I got a bit further (on an old machine, with an old kernel and modules).
On succesful loading, the kernel module zwave300 should give the following line in the syslog (visible using dmesg):
The line
Code: Select all
DEV_FW="`sed /proc/mtd -r -n -e 's,^(mtd.): 00008000 00008000 "zwave300"$,/dev/\1,p'`"
in the postinstall script edits the file /proc/mtd:
Code: Select all
~# cat /proc/mtd
dev: size erasesize name
mtd0: 00080000 00020000 "u-boot-env"
mtd1: 00180000 00020000 "splash-image"
mtd2: 00300000 00020000 "kernel"
mtd3: 00300000 00020000 "kernel-backup"
mtd4: 07700000 00020000 "rootfs"
and adds a line for /dev/mtd5:
Code: Select all
~# cat /proc/mtd
dev: size erasesize name
mtd0: 00080000 00020000 "u-boot-env"
mtd1: 00180000 00020000 "splash-image"
mtd2: 00300000 00020000 "kernel"
mtd3: 00300000 00020000 "kernel-backup"
mtd4: 07700000 00020000 "rootfs"
mtd5: 00008000 00008000 "zwave300"
The kernel driver zwave300 takes care of the actual attachment of /dev/mtd5 to the writeable flash. It is only needed for firmware upgrading (I have a toon with the module zwave300 removed, and zwave functionality is just fine

).
/dev/mtd5 contains an image of the zwave firmware, its size is 0x8000 bytes, or 32kiB. It probably resides on the zwave controller inside toon.
After succesful completion of the command above (DEV_FW= ...), environment variable DEV_FW is:
You can then dump the data from this device using dd (spaces or lack thereof are significant):
Code: Select all
dd if=/dev/mtd5 of=zwave.img bs=32k count=1
which gives a binary file of 32kiB, stored in zwave.img
You can compare this image with the firmware image in /HCBv2/data//firmware_zwave_ctrlr/4.55-serialapi_controller_static_norep_noflirs_nomr_ZW030x_EU.bin.
I did that by converting them to ascii text and then use diff to spot the difference. In my case, there was no difference apart from a bunch of 0xff bytes extra at the far end of zwave.img. Typically, that's a non-written part of the flash (all ones).
It's a long story. To check where you go wrong, I would repeat the commands I have sketched in this post, and see where the difference occurs.