Hi Ivan, On Wed, Apr 18, 2018 at 2:29 AM, Ivan Gorinov <[email protected]> wrote: > On Thu, Apr 05, 2018 at 09:31:34AM -0600, Bin Meng wrote: >> > The microcode update data block encoded in Device Tree is used by >> > the bootstrap processor (BSP) but not passed to the other CPUs (AP). >> >> I don't understand what the bug is here. The AP microcode update is >> done in sipi_vector.S. > > I have found how it works. When a ROM image is built, the binman tool > looks for symbol '_dt_ucode_base_size' and updates position and size > of the microcode update data in the ucode_base and ucode_size variables. > The ucode_base pointer is used to update the bootstrap CPU very early, > and the other CPUs later in the multiprocessing code. > > On x86, binman is called from Makefile only if a ROM image is created: > > u-boot.rom: u-boot-x86-16bit.bin u-boot.bin \ > ... > $(call if_changed,binman) > > If there is no ROM image, ucode_base and ucode_size are not initialized and > the microcode update data from DTB applied by microcode_update_intel() to the > bootstrap CPU is not used by the multiprocessing code.
Correct. If it's not a ROM image, which means U-Boot is probably not the 1st stage bootloader, which means updating microcode is not necessary. So is there any issue with current implementation? Regards, Bin _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

