BTRFS Support btrload, btrls

Hi Everybody,
I am currently evaluating filesystems that can be used reliable on eMMC storage, which support transparent compression.
I see that U-Boot supports btrfs. But I don't understand how to load for example a kernel image from the fs, I was expecting 'btrload' as an analog to 'ext4load' or 'fatload'.
Is there a reason why this commands are not implemented?
When I do patch the file cmd/btfs.c to add 'btrload' I do get a working U-Boot capable of loading DT and kernal image from btrfs.
''' char subvolname[1];
int do_btr_fsload(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) {
subvolname[0] = '\0';
return do_load(cmdtp, flag, argc, argv, FS_TYPE_BTRFS); }
U_BOOT_CMD( btrload, 7, 0, do_btr_fsload, "load binary file from a btr filesystem", "<interface> [<dev[:part]>] <addr> <filename>\n" " - Load binary file 'filename' from 'dev' on 'interface'\n" " to address 'addr' from better filesystem.\n" " the load stops on end of file.\n" " All numeric parameters are assumed to be hex." ); '''
Are there any known stability issues, why 'btrload' and 'btrfs' are not included in the current U-Boot? Or is there an alternative to 'btrload' to load a kernelimage from fs to ram?
thanks, Georg
Georg Ottinger
Software Engineer
RESEARCH & DEVELOPMENT
ABATEC GmbH
[https://abatec.at/email/phone.jpg]
+43767227720532tel:+43767227720532
[https://abatec.at/email/email.jpg]
g.ottinger@abatec.atmailto:c.gebetsroither@abatec.at
[https://abatec.at/email/site.jpg]
www.abatec.athttps://www.abatec.at/
[https://abatec.at/email/location.jpg]
Oberregauer Straße 48, 4844 Regau
[cid:1d2b374d-7ca8-4b52-8b3c-319d1b53c9aa]
UID-Nr.: ATU67696059 Firmenbuchnummer: FN 390305d Firmenbuchgericht: Wels

Hi Ottinger,
Perhaps you can enable CONFIG_CMD_FS_GENERIC=y in your config and try to use the generic commands - size, load, save, ls, ln, fstype, fstypes?
Regards, Jonathan
On Tue, 30 May 2023 at 22:07, Ottinger Georg g.ottinger@abatec.at wrote:
Hi Everybody,
I am currently evaluating filesystems that can be used reliable on eMMC storage, which support transparent compression.
I see that U-Boot supports btrfs. But I don't understand how to load for example a kernel image from the fs, I was expecting 'btrload' as an analog to 'ext4load' or 'fatload'.
Is there a reason why this commands are not implemented?
When I do patch the file cmd/btfs.c to add 'btrload' I do get a working U-Boot capable of loading DT and kernal image from btrfs.
''' char subvolname[1];
int do_btr_fsload(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) {
subvolname[0] = '\0';
return do_load(cmdtp, flag, argc, argv, FS_TYPE_BTRFS); }
U_BOOT_CMD( btrload, 7, 0, do_btr_fsload, "load binary file from a btr filesystem", "<interface> [<dev[:part]>] <addr> <filename>\n" " - Load binary file 'filename' from 'dev' on 'interface'\n" " to address 'addr' from better filesystem.\n" " the load stops on end of file.\n" " All numeric parameters are assumed to be hex." ); '''
Are there any known stability issues, why 'btrload' and 'btrfs' are not included in the current U-Boot? Or is there an alternative to 'btrload' to load a kernelimage from fs to ram?
thanks, Georg
Georg Ottinger
Software Engineer
RESEARCH & DEVELOPMENT
ABATEC GmbH
[https://abatec.at/email/phone.jpg]
+43767227720532tel:+43767227720532
[https://abatec.at/email/email.jpg]
g.ottinger@abatec.atmailto:c.gebetsroither@abatec.at
[https://abatec.at/email/site.jpg]
www.abatec.athttps://www.abatec.at/
[https://abatec.at/email/location.jpg]
Oberregauer Straße 48, 4844 Regau
[cid:1d2b374d-7ca8-4b52-8b3c-319d1b53c9aa]
UID-Nr.: ATU67696059 Firmenbuchnummer: FN 390305d Firmenbuchgericht: Wels
participants (2)
-
Jonathan Liu
-
Ottinger Georg