Hey again, On Thu, Aug 04, 2022 at 12:50:50AM +0200, Jason A. Donenfeld wrote: > Hi Michael, > > On Wed, Aug 03, 2022 at 06:25:39PM -0400, Michael S. Tsirkin wrote: > > > - /* Offset 0x250 is a pointer to the first setup_data link. */ > > > - stq_p(header + 0x250, first_setup_data); > > > + if (first_setup_data) { > > > + /* Offset 0x250 is a pointer to the first setup_data link. */ > > > + stq_p(header + 0x250, first_setup_data); > > > + rom_add_blob("setup_data", setup_datas, setup_data_total_len, setup_data_total_len, > > > + SETUP_DATA_PHYS_BASE, NULL, NULL, NULL, NULL, false); > > > + } > > > + > > > > > > > Allocating memory on x86 is tricky business. Can we maybe use bios-linker-loader > > with COMMAND_WRITE_POINTER to get an address from firmware? > > Hmm. Is BIOSLinker even available to us at this stage in preparation? > > One thing to note is that this memory doesn't really need to be > persistent. It's only used extreeeemely early in boot. So it could be > somewhere that gets used/remapped later on. Actually, it's possible there's one place that's already available, and that this isn't so bad after all. In my tests, this seems to be working in a wide variety of configurations. I'll send a v2. Jason