[U-Boot] UBI and UBIFS on ARM64

Dear U-Boot community, I'm developing software for Xilinx ZynqMP platform, which is made in 64-bit architecture. I would like to store every artifact needed to boot up on the UBIFS partition. I faced problem, that u-boot does not want to compile with enabled UBI/UBIFS support, due to lack of some atomic operations on longs. So, I've written them (see http://pastebin.com/ibp0Zt99). Please note, that I've written only that functions, which are needed by UBI/UBIFS. Then UBIFS started work on the target. Almost... because I've found that large files (~20MiB) can't be read. I've enabled debug messages, but I don't know how to interpret them (please see http://pastebin.com/gByDcdvw). Maybe you are able to help me? I've also checked how the UBIFS behaves in the Linux, and the result is that everything works as expected. It means that I can write large files to UBIFS, and read them back successfully. Should you need any further information, please do not hesitate to contact me.
..................... Best Regards, Adam Oleksy

Hello Adam,
Am 06.09.2016 um 16:44 schrieb Adam Oleksy:
Dear U-Boot community, I'm developing software for Xilinx ZynqMP platform, which is made in 64-bit architecture. I would like to store every artifact needed to boot up on the UBIFS partition. I faced problem, that u-boot does not want to compile with enabled UBI/UBIFS support, due to lack of some atomic operations on longs. So, I've written them (see http://pastebin.com/ibp0Zt99). Please note, that I've written only that functions, which are needed by UBI/UBIFS. Then UBIFS started work on the target. Almost... because I've found that large files (~20MiB) can't be read. I've enabled debug messages, but I don't know how to interpret them (please see http://pastebin.com/gByDcdvw). Maybe you are able to help me? I've also checked how the UBIFS behaves in the Linux, and the result is that everything works as expected. It means that I can write large files to UBIFS, and read them back successfully. Should you need any further information, please do not hesitate to contact me.
Hard to say ... here an extract of your debug log:
UBI DBG io (pid 1): read 509 bytes from PEB 1059:10040 UBIFS error (ubi0:0 pid 0): ubifs_check_node: bad magic 0x61018ce, expected 0x6101831
Here begin your problem ... for some reasons you do not read the correct magic number ... I tend to say some problem with your nand driver and/or io functions, maybe cache setup? Sorry, more I cannot say ...
UBIFS error (ubi0:0 pid 0): ubifs_check_node: bad node at LEB 417:9912 Not a node, first 24 bytes:UBIFS error (ubi0:0 pid 0): ubifs_read_node: expected node type 1 UBIFS DBG tnc: key (67, data, 4679) UBIFS error (ubi0:0 pid 0): do_readpage: cannot read page 4679 of inode 67, error -117 Error reading file 'rfsw-image_ramdisk.itb' UBI DBG gen (pid 1): close device 0, volume 0, mode 1
bye, Heiko

Hello Adam,
Am 07.09.2016 um 06:39 schrieb Heiko Schocher:
Hello Adam,
Am 06.09.2016 um 16:44 schrieb Adam Oleksy:
Dear U-Boot community, I'm developing software for Xilinx ZynqMP platform, which is made in 64-bit architecture. I would like to store every artifact needed to boot up on the UBIFS partition. I faced problem, that u-boot does not want to compile with enabled UBI/UBIFS support, due to lack of some atomic operations on longs. So, I've written them (see http://pastebin.com/ibp0Zt99). Please note, that I've written only that functions, which are needed by UBI/UBIFS. Then UBIFS started work on the target. Almost... because I've found that large files (~20MiB) can't be read. I've enabled debug messages, but I don't know how to interpret them (please see http://pastebin.com/gByDcdvw). Maybe you are able to help me? I've also checked how the UBIFS behaves in the Linux, and the result is that everything works as expected. It means that I can write large files to UBIFS, and read them back successfully. Should you need any further information, please do not hesitate to contact me.
Hard to say ... here an extract of your debug log:
UBI DBG io (pid 1): read 509 bytes from PEB 1059:10040 UBIFS error (ubi0:0 pid 0): ubifs_check_node: bad magic 0x61018ce, expected 0x6101831
Here begin your problem ... for some reasons you do not read the correct magic number ... I tend to say some problem with your nand driver and/or io functions, maybe cache setup? Sorry, more I cannot say ...
I am quite sure now: bad magic 0x61018ce, expected 0x6101831 ^^ ^^
0xce = !0x31
You have read problems ...
bye, Heiko
UBIFS error (ubi0:0 pid 0): ubifs_check_node: bad node at LEB 417:9912 Not a node, first 24 bytes:UBIFS error (ubi0:0 pid 0): ubifs_read_node: expected node type 1 UBIFS DBG tnc: key (67, data, 4679) UBIFS error (ubi0:0 pid 0): do_readpage: cannot read page 4679 of inode 67, error -117 Error reading file 'rfsw-image_ramdisk.itb' UBI DBG gen (pid 1): close device 0, volume 0, mode 1
bye, Heiko

Hi Heiko, Thank you, and I understand that you can't say nothing more about this. Anyway, I've found workaround... I've just disabled compression for ubifs, and problem disappeared. I believe I can live with it:).
2016-09-07 6:49 GMT+02:00 Heiko Schocher hs@denx.de:
Hello Adam,
Am 07.09.2016 um 06:39 schrieb Heiko Schocher:
Hello Adam,
Am 06.09.2016 um 16:44 schrieb Adam Oleksy:
Dear U-Boot community, I'm developing software for Xilinx ZynqMP platform, which is made in 64-bit architecture. I would like to store every artifact needed to boot up on the UBIFS partition. I faced problem, that u-boot does not want to compile with enabled UBI/UBIFS support, due to lack of some atomic operations on longs. So, I've written them (see http://pastebin.com/ibp0Zt99). Please note, that I've written only that functions, which are needed by UBI/UBIFS. Then UBIFS started work on the target. Almost... because I've found that large files (~20MiB) can't be read. I've enabled debug messages, but I don't know how to interpret them (please see http://pastebin.com/gByDcdvw). Maybe you are able to help me? I've also checked how the UBIFS behaves in the Linux, and the result is that everything works as expected. It means that I can write large files to UBIFS, and read them back successfully. Should you need any further information, please do not hesitate to contact me.
Hard to say ... here an extract of your debug log:
UBI DBG io (pid 1): read 509 bytes from PEB 1059:10040 UBIFS error (ubi0:0 pid 0): ubifs_check_node: bad magic 0x61018ce, expected 0x6101831
Here begin your problem ... for some reasons you do not read the correct magic number ... I tend to say some problem with your nand driver and/or io functions, maybe cache setup? Sorry, more I cannot say ...
I am quite sure now: bad magic 0x61018ce, expected 0x6101831 ^^ ^^
0xce = !0x31
You have read problems ...
bye, Heiko
UBIFS error (ubi0:0 pid 0): ubifs_check_node: bad node at LEB 417:9912 Not a node, first 24 bytes:UBIFS error (ubi0:0 pid 0): ubifs_read_node: expected node type 1 UBIFS DBG tnc: key (67, data, 4679) UBIFS error (ubi0:0 pid 0): do_readpage: cannot read page 4679 of inode 67, error -117 Error reading file 'rfsw-image_ramdisk.itb' UBI DBG gen (pid 1): close device 0, volume 0, mode 1
bye, Heiko
-- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

Hello Adam,
Am 07.09.2016 um 11:26 schrieb Adam Oleksy:
Hi Heiko, Thank you, and I understand that you can't say nothing more about this. Anyway, I've found workaround... I've just disabled compression for ubifs, and problem disappeared. I believe I can live with it:).
Sounds risky to me, as I think you have some problem with your nand driver or io functions ...
bye, Heiko
2016-09-07 6:49 GMT+02:00 Heiko Schocher hs@denx.de:
Hello Adam,
Am 07.09.2016 um 06:39 schrieb Heiko Schocher:
Hello Adam,
Am 06.09.2016 um 16:44 schrieb Adam Oleksy:
Dear U-Boot community, I'm developing software for Xilinx ZynqMP platform, which is made in 64-bit architecture. I would like to store every artifact needed to boot up on the UBIFS partition. I faced problem, that u-boot does not want to compile with enabled UBI/UBIFS support, due to lack of some atomic operations on longs. So, I've written them (see http://pastebin.com/ibp0Zt99). Please note, that I've written only that functions, which are needed by UBI/UBIFS. Then UBIFS started work on the target. Almost... because I've found that large files (~20MiB) can't be read. I've enabled debug messages, but I don't know how to interpret them (please see http://pastebin.com/gByDcdvw). Maybe you are able to help me? I've also checked how the UBIFS behaves in the Linux, and the result is that everything works as expected. It means that I can write large files to UBIFS, and read them back successfully. Should you need any further information, please do not hesitate to contact me.
Hard to say ... here an extract of your debug log:
UBI DBG io (pid 1): read 509 bytes from PEB 1059:10040 UBIFS error (ubi0:0 pid 0): ubifs_check_node: bad magic 0x61018ce, expected 0x6101831
Here begin your problem ... for some reasons you do not read the correct magic number ... I tend to say some problem with your nand driver and/or io functions, maybe cache setup? Sorry, more I cannot say ...
I am quite sure now: bad magic 0x61018ce, expected 0x6101831 ^^ ^^
0xce = !0x31
You have read problems ...
bye, Heiko
UBIFS error (ubi0:0 pid 0): ubifs_check_node: bad node at LEB 417:9912 Not a node, first 24 bytes:UBIFS error (ubi0:0 pid 0): ubifs_read_node: expected node type 1 UBIFS DBG tnc: key (67, data, 4679) UBIFS error (ubi0:0 pid 0): do_readpage: cannot read page 4679 of inode 67, error -117 Error reading file 'rfsw-image_ramdisk.itb' UBI DBG gen (pid 1): close device 0, volume 0, mode 1
bye, Heiko
-- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

Hello Heiko,
2016-09-07 12:26 GMT+02:00 Heiko Schocher hs@denx.de:
Sounds risky to me, as I think you have some problem with your nand driver or io functions ...
It sounds risky to me also. I'm going to resolve this problem by myself. I'll let you know about results.
participants (2)
-
Adam Oleksy
-
Heiko Schocher