Hi,I had similar issues on the ZynqMP Ultra-Scale, probably DTS config issues(?)
try to write the bootloader using flashcp command to your mtd device to be sure there is no issue related to swupdate.
Hi Stefano,
You’re right, but I’ve also encountered similar issues in the past, not with QSPI flash, but with NAND flash (and I wasn’t the only one):
https://groups.google.com/g/swupdate/c/VGOQ1XaPJXE/m/budL2opjAAAJ
There definitely seems to be something buggy in swupdate. I spent some time investigating it back then but couldn’t really pin it down.
When the board becomes unbootable, the recovery process is unfortunately quite laborious. And as you can imagine, customers are not willing to pay more if a workaround is available :-(
Best
Hi Ayoub,
On 8/26/25 17:33, 'ayoub...@googlemail.com' via swupdate wrote:
> Hi Stefano,
>
> You’re right, but I’ve also encountered similar issues in the past, not
> with QSPI flash, but with NAND flash (and I wasn’t the only one):
>
> https://groups.google.com/g/swupdate/c/VGOQ1XaPJXE/m/
> budL2opjAAAJ<https://groups.google.com/g/swupdate/c/VGOQ1XaPJXE/m/
> budL2opjAAAJ>
>
> There definitely seems to be something buggy in swupdate. I spent some
> time investigating it back then but couldn’t really pin it down.
Well, SWUpdate is using the API provided by the kernel, or better what
is provided by mtd-utils and libmtd. There is not some specific in SWUpdate.
Well, SWUpdate is using the API provided by the kernel, or better what
is provided by mtd-utils and libmtd. There is not some specific in SWUpdate.I know, this is why I'm puzzled why it does work using mtd-utils commands i.e nandwrite and flashcp and not within swupdate?
&qspi {
u-boot,dm-pre-reloc;
status = "okay";
is-dual = <1>;
is-stacked = <1>;
num-cs = <2>;
has-io-mode = <1>;
qspi-mode = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0x0>;
spi-tx-bus-width = <1>;
spi-rx-bus-width = <4>;
parallel-memories = /bits/ 64 <0x4000000 0x4000000>; /* 128MB */
spi-max-frequency = <50000000>;
#address-cells = <1>;
#size-cells = <1>;
partition@0x00000000 {
label = "boot";
reg = <0x00000000 0x00A00000>;
};
partition@0x01000000 {
label = "boot-recovery";
reg = <0x00A00000 0x00A00000>;
};
};
};
Maybe you can give it a try if that solves your problem ?
--
You received this message because you are subscribed to the Google Groups "swupdate" group.
To unsubscribe from this group and stop receiving emails from it, send an email to swupdate+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/swupdate/59793de6-7f65-4930-a2fc-d3b7c33ff752%40swupdate.org.
this is my DTS QSPI Setting I successfully worked with for 6.1 xilinx Kernel:
&qspi { u-boot,dm-pre-reloc; status = "okay"; is-dual = <1>; is-stacked = <1>; num-cs = <2>; has-io-mode = <1>; qspi-mode = <1>; flash@0 { compatible = "jedec,spi-nor"; reg = <0x0>; spi-tx-bus-width = <1>; spi-rx-bus-width = <4>; parallel-memories = /bits/ 64 <0x4000000 0x4000000>; /* 128MB */ spi-max-frequency = <50000000>; #address-cells = <1>; #size-cells = <1>; partition@0x00000000 { label = "boot"; reg = <0x00000000 0x00A00000>; }; partition@0x01000000 { label = "boot-recovery"; reg = <0x00A00000 0x00A00000>; }; }; };
Maybe you can give it a try if that solves your problem ?