On 15/07/19 20:08, Nadav Amit wrote: >> On Jul 15, 2019, at 8:48 AM, Andrew Jones <drjones@xxxxxxxxxx> wrote: >> >> On Fri, Jun 28, 2019 at 01:30:19PM -0700, Nadav Amit wrote: >>> Enable to run the tests when test-device is not present (e.g., >>> bare-metal). Users can provide the number of CPUs and ram size through >>> kernel parameters. >> >> Can you provide multiboot a pointer to an initrd (text file) with >> environment variables listed instead? Because this works >> >> $ cat x86/params.c >> #include <libcflat.h> >> int main(void) >> { >> printf("nr_cpus=%ld\n", atol(getenv("NR_CPUS"))); >> printf("memsize=%ld\n", atol(getenv("MEMSIZE"))); >> return 0; >> } >> >> $ cat params.initrd >> NR_CPUS=2 >> MEMSIZE=256 >> >> $ qemu-system-x86_64 -nodefaults -device pc-testdev -device isa-debug-exit,iobase=0xf4,iosize=0x4 -vnc none -serial stdio -device pci-testdev -machine accel=kvm -kernel x86/params.flat -initrd params.initrd >> enabling apic >> enabling apic >> nr_cpus=2 >> memsize=256 >> >> >> This works because setup_multiboot() looks for an initrd, and then, >> if present, it gets interpreted as a list of environment variables >> which become the unit tests **envp. > > Looks like a nice solution, but Paolo preferred to see if this information > can be extracted from e810 and ACPI MADT. Paolo? It was mostly a matter of requiring adjustments in the tests. Andrew's solution would be fine! Paolo