
What are all of these convert*.sh scripts in the previous_attempts
directory?

Xilinx has multiple ways to create device trees from the XSA.  Some
old, some new, some mostly working, some not.

All methods need fixes when used with linux-xlnx kernels, particularly
for PSGTR clocks that are used by USB, DisplayPort, and PCIe.  The
clock numbers appear to be mangled in this modified Linux kernel, so
that they don't match the hardware.  The mainline kernel, however, has
no such problem.

A large part of my difficulty in the process was because of this bug
in the linux-xlnx kernel.  I was looking for a fix that would allow
a proper device tree to be written directly from the XSA.  Once I
switched to the mainline kernel, I was mostly able to achieve this
goal, as you see here.

Multiple attempts were made to reliably generate device trees.
Ultimately, more control over the process was required, and the Xilinx
methods were insufficiently transparent, so I wrote my own conversion
from the HWH file to a top level device tree, "hwh_to_dts".  (The HWH
is inside the XSA, which is a zip archive.)

At least with this method, the program is simple enough to know
exactly how it is converting data from the hardware handoff file
into the device tree.  

So convert_xsa_to_device_tree_method_8.sh is the one that is ultimately
being used.  The other methods are kept, for possible future development,
and also because if method_8 sometimes isn't doing what it should the
results from these other methods may inform a fix.  However, these
other methods are becoming stale with time, and probably need to be
fixed to produce any output at all.

Another issue is that this top-level device tree still relies on
lower-level device tree information from dts-bindings directories
and zynqmp.dtsi.  Xilinx supplies many contradictory versions of these,
and none seem correct for use with a mainline kernel.  After
much experimentation, one that mostly works was found.  Fixes to
it were added to the device tree generation until the system appears
to be fully operational.

More information is in the comments in build.sh
