Hello,
I wish to change the boot order on my AGX Xavier with “net” being the first entry followed by “emmc”. I updated the cbo.dts file with the right entries with updated “tftp-server-ip” address. Created the cbo.dtb file using dtc(1) command and flashed it using the ./flash.sh script.
However, after the flash was complete, the new CPUBL-CFG partition didn’t take any effect falling back to the old boot order.
My cbo.dts is looking like this:
/dts-v1/;
/ {
compatible = "nvidia,cboot-options-v1";
boot-configuration {
boot-order = "net", "emmc", "sd", "usb";
tftp-server-ip = /bits/ 8 <10 134 30 24>;
dhcp-enabled;
/* remove dhcp-enabled if uncommenting static-ip configuration */
/* static-ip = /bits/ 8 <0 0 0 0>;
* ip-netmask = /bits/ 8 <255 255 255 0>;
* ip-gateway = /bits/ 8 <0 0 0 0>;
*/
};
[xavier-no-effect-of-cbo-flash.log|attachment](upload://ndydGWkoAdjYhAkXrt5cdKBlV1y.log) (67.9 KB) [xavier-flash-cbo.log|attachment](upload://5rSj7JvqHprBYjsO6TOfrBgHlWz.log) (42.6 KB) }
I have attached the “flash.sh” and the serial console output. I am not sure what I am missing here. Also, please let me know if more information is needed.
1 Like
Also, I don’t see cboot source in the R32.3.1 public_sources tarball. Where can I get the latest cboot source that will work on a system genned with JP4.3?
Hi,
I don’t see the link of log here. Could you paste again?
Also, I don’t see cboot source in the R32.3.1 public_sources tarball. Where can I get the latest cboot source that will work on a system genned with JP4.3?
Sorry, this will not be released.
Dunno what happened with the log files, attaching them again.xavier-no-effect-of-cbo-flash.log (67.9 KB) xavier-flash-cbo.log (42.6 KB)
BTW, the interesting part here is:
[0002.080] I> Load in CBoot Boot Options partition and parse it
[0002.081] E> Cannot read beyond partition boundary for CPUBL-CFG
[0002.087] E> tegrabl_read_cbo Failed to read CPUBL-CFG partition
[0002.093] W> platform_init: tegrabl_read_cbo failed with error 0xd0d0104
And the error code (as per cboot source provided with R32.2) is at line:
In bootloader/partner/common/lib/partition_manager/tegrabl_partition_manager.c line 410:
if (partition_info->total_size < (num_bytes + partition->offset)) {
error = TEGRABL_ERROR(TEGRABL_ERR_OVERFLOW, 1);
pr_error("Cannot read beyond partition boundary for %s\n",
partition_info->name);
goto fail;
}
Ohh!
What would be the best way to address any issue in cboot? How can we modify the cboot, in best possible way for our needs?
Hi
Existing cbootoptionfile(/home/aaney/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/cbo.dtb) reused.
This is from your host flash log. Are you sure this cbo.dtb has the change you made?
Hello WayneWWW,
Thank you for the reply. Yes, I have updated the cbo.dtb file. In fact, I created it as this was missing after a fresh install. I have also verified the boot order looking into the cbo.dtb file. I have pasted the contents of the cbo.dts file as well.
Couple other data points:
- I have tried updating CPUBL-CFG partition on couple of different Xaviers.
- I have tried updating CPUBL-CFG partition using dd(1) as well, where I have used both, a signed cbo.dtb file as well as just the cbo.dtb file. Both failed. This was done after couple of tries with SDKManager.
Were you able flash the cbo.dtb (with different boot-order) successfully?
Hi,
Sorry that I forgot there is a bug on rel-32.3.1. We already fix it.
For this issue, please upgrade to rel-32.4 and apply this patch to your cboot.
diff --git a/lib/cbo/tegrabl_cbo.c b/lib/cbo/tegrabl_cbo.c
index d47c58c..b86d631 100644
--- a/lib/cbo/tegrabl_cbo.c
+++ b/lib/cbo/tegrabl_cbo.c
@@ -21,7 +21,7 @@
#include <string.h>
#define NVIDIA_BOOT_PARTITION_GUID "6637b54f-c21b-48a7-952e-a8d071029d6b"
-#define CBO_DT_SIZE (16 * 1024) /* 16KB */
+#define CBO_DT_SIZE (4 * 1024) /* 4KB */
static struct cbo_info g_cbo_info;
If you don’t want to upgrade to rel-32.4, an alternative is modify the partition size of CPUBL-CFG in flash_l4t_t194_sdmmc.xml back to 16KB.
Hello WayneWWW,
Thank you for the reply.
For now, I don’t wish to upgrade to r32.4. However, can I apply this patch to the cboot src provided with either r32.4 or r32.2 and flash on the board?
Hello WayneWWW,
An update; I made the modifications as suggested by you on the cboot source that was provided with R32.2 release. Flashed it on the cpu-bootloader partition and now I see the boot order being changed.
However, I don’t know if this will have any other side-effects as NVIDIA may have made changes to cboot code between R32.2 and R32.3.1 releases. Can you please confirm what I have done here is okay to do?
Also, can you please let me know the reason for not providing cboot source code with R32.3.1? I hope this is not the case going forward. Please note, I have not yet looked at the JetPack 4.4 source tarball.
EDIT: I found the cboot source tarballs for R32.4.2 on the jetson download center.
Hi
However, I don’t know if this will have any other side-effects as NVIDIA may have made changes to cboot code between R32.2 and R32.3.1 releases. Can you please confirm what I have done here is okay to do?
I cannot guarantee if any side-effect. If you have any concern, please upgrade to rel-32.4.2.
Also, can you please let me know the reason for not providing cboot source code with R32.3.1? I hope this is not the case going forward.
Actually, we just don’t prepare to release this one. It did not start any plan or even review. Since rel-32.4.2 cboot src has been released, we suggest you to check rel-32.4.2 directly.