Although U-Boot supports x86 hardware, it does not include support for x86 BIOS firmware.
Therefore, the first step in using U-Boot on a legacy x86 PC would be to replace the BIOS with your own custom firmware that includes the first stage of U-Boot.
After you’ve done that, the old BIOS boot conventions like loading a 446-byte boot code from block #0 of the first hard disk won’t apply any more, and U-Boot’s conventions will be used instead.
Of course, replacing the BIOS requires that your custom firmware must first be able to handle the initialization of your system’s chipset, and testing and enabling the RAM after a cold start. On PC hardware, this can be a bigger challenge than you expected, as chipset programming documentation may not be easily available for all PC chipsets.
U-Boot is not a BIOS-compatible bootloader nor an easy drop-in replacement for BIOS; when its documentation says it supports x86, it only means that U-Boot can readily be integrated with hardware projects that use an x86 processor on custom hardware.
It looks like you’re perhaps confusing the terminology that was specific to GRUB Legacy (first stage, second stage, stage 1.5) with more generic systems design terminology for boot loaders.
In the systems design sense, on a legacy x86 PC with a goal of running Linux, the BIOS is the first-stage bootloader: it is arranged in ROM (or flash EEPROM) to be the first thing the processor will execute after a cold reset, and its job is to initialize the necessary hardware and load a relatively compact program from a fixed or otherwise well-defined location.
In the systems design sense, the entirety of GRUB would be a second-stage bootloader. GRUB Legacy is also divided in components that are called “stages”, but these are just internal divisions of GRUB that were created to work around legacy BIOS restrictions; GRUB stages are not the same as the systems design first/second stage bootloader terminology.