The vendor u-boot code "works" but is horrible. Upstream u-boot also "works" and is cleaner to work with for packaging. Your Hub has a hardware problem. If you fix that (in hardware) the upstream u-boot works fine.
Define "hardware problem" and elucidate upon "If you fix that (in hardware) the upstream u-boot works fine."