Note that files for config (like “jetson-agx-orin-devkit.conf”) are plain text and human-readable. One file might include another, and so parts can be reused in customizing, e.g., copy “jetson-agx-orin-devkit.conf” to a new name.conf, and copy the parts which are unchanged, include those, and then copy an edited version of the other files as needed.
If you examine (in “Linux_for_Tegra/”) this:
ls -l jetson-agx-orin-devkit.conf
…then you will see that this is just a more “human” name for the actual “technical” name file. That “technical” name consists of a module name (there is a file for the module part) and the carrier board name (that also has a file which is included). Sometimes there is also a hardware revision in the technical name.
Sometimes people make their own disk drive layout (mainly just the rootfs size), which is edited in one of the XML files. In your case you could reuse the module part verbatim, and probably make changes to the carrier board file(s). Part of this is likely a device tree change (and you can have it use the correct device tree that way).
On a normally booted Jetson, when USB is a “device”, this is just the kernel’s “USB Gadget” feature. USB has some “standard” devices which all use the same code, e.g., keyboards, and compliant virtual block storage (disks, e.g., how a smartphone makes a filesystem available). More details:
https://forums.developer.nvidia.com/t/xavier-nx-bridge-usb-otg-connected-host-identifies-pcie-connected-nvme-ssd-as-disk/254268/5
USB Gadget is not specific to a Jetson, it is a general feature “framework” in Linux. When a partition is presented, then it doesn’t matter if it is a real partition, or a RAM disk loopback partition (it just happens that NVIDIA’s use is for a loopback covered file, where that file is the correct size and formatted under loopback).