Well I don't have an XU4, and many of the arm arch boards are set up slightly differently. So you'll need to do some work, to work out what is needed.
So fist off, what is your file system. Is /boot a seperate partition, or is it a sub directory of the root partition $this->bbcode_second_pass_code('', 'df') is your friend.
From what I can see of the XU4 install instructions, you probably just have a root partition formatted as ext4. So you'll want to format your usb stick in the same way, and install arm arch on it in the same way. Details
https://archlinuxarm.org/platforms/armv7/samsung/odroid-xu4.
Next we need to go into how your machine is set up to interact with uboot. $this->bbcode_second_pass_code('', 'ls /boot') is your friend.
Probably you have a modern set up with $this->bbcode_second_pass_code('', 'boot.txt') if so look at that file, near the top:
$this->bbcode_second_pass_code('', 'if test -n ${distro_bootpart}; then setenv bootpart ${distro_bootpart}; else setenv bootpart 1; fi
part uuid ${devtype} ${devnum}:${bootpart} uuid
setenv bootargs "console=tty0 console=${console} root=PARTUUID=${uuid} rw rootwait"
')
Now for us the relevant bit is the "bootargs root=" we'll want to change ${uuid} from point to your flash, to pointing at the USB. So find what devices your usb root file system is, say its on /dev/sda1 then:
$this->bbcode_second_pass_code('', 'blkid /dev/sda1
/dev/sda1: UUID="9c66e1c4-d82b-4606-b686-f5bc6d42e9d9" TYPE="ext4" PARTUUID="94a2dc27-01"')
And you can see that gives the PARTUUID of the device, so you the usb root partition. This is what we want passed to the kernel.
So somewhere above the bootargs line you'll want to add something like $this->bbcode_second_pass_code('', 'setenv uuid 94a2dc27-01') or whatever your usb root partuuid is.
You'll then need to run "./mksrc" to convert the "boot.txt" into a "boot.src".
Then uboot when it boots, will look for the boot.src. load it, and that will set the bootargs to such that root is the usb root. And all is good.
But how does uboot find the boot.src. You'll need to check what your uboot does. Its probably specified somewhere in the source code, ether in a arm arch path, or on the main uboot site. What would be easiest is to access uboot from the command line, so attaching a uart to the board, then you can interrupt u-boot and see whats its doing. It may well be it will scan the usb stick for a boot.src, in which case uboot will probably just run from the first boot.src it finds. So that gives another method, set up the usb stick, and then just remove the flash set up - but you can only do this if you know what uboot does.
And this is the crux, to do what you want we know how to do it, pass the correct "root=" to the kernel command line. But how your arm arch OS and how u-boot does that, isn't clear - and thats what you'll need to understand, and need to dig into at your end.