title: Why Device Tree Structure (DTS) file is needed both in bootloader and kernel source code?
body: <blockquote>
    <p>Bootloaders like U-Boot that do not implement the Open Firmware API, are expected to pass to the kernel a binary form of the flattened device tree - <a href="http://www.denx.de/wiki/view/DULG/LinuxFDTBlob" rel="noreferrer">LinuxFDTBlob</a></p>
  </blockquote>
  
  <p>Why are the DTS files present in the kernel as well? Isn't that redundant?  </p>
  
  <p>As an example, U-boot source code has following file:<br>
  <a href="http://git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/dts/tegra124-jetson-tk1.dts;hb=HEAD" rel="noreferrer">arch/arm/dts/tegra124-jetson-tk1.dts</a></p>
  
  <p>This file can also be found under Linux source code:<br>
  <a href="https://git.kernel.org/cgit/linux/kernel/git/arm/arm-soc.git/tree/arch/arm/boot/dts/tegra124-jetson-tk1.dts" rel="noreferrer">arch/arm/boot/dts/tegra124-jetson-tk1.dts</a>  </p>
  
  <p>Although the kernel version is 4 times the U-boot version, I would like to know the reason behind this redundancy. I believe it is harder to maintain and use both for the maintainers and the developers</p>