On 29/01/2018 13:17, Juan Quintela wrote:
> No need to write it to a file. Just need a proper firmware O:-)
>
> Signed-off-by: Juan Quintela <[email protected]>
> CC: Laurent Vivier <[email protected]>
> ---
> tests/migration-test.c | 41 +++++------------------------------------
> 1 file changed, 5 insertions(+), 36 deletions(-)
>
> diff --git a/tests/migration-test.c b/tests/migration-test.c
> index fcad2ed460..26439f6071 100644
> --- a/tests/migration-test.c
> +++ b/tests/migration-test.c
> @@ -18,9 +18,6 @@
> #include "qemu/sockets.h"
> #include "chardev/char.h"
> #include "sysemu/sysemu.h"
> -#include "hw/nvram/chrp_nvram.h"
> -
> -#define MIN_NVRAM_SIZE 8192 /* from spapr_nvram.c */
>
> const unsigned start_address = 1024 * 1024;
> const unsigned end_address = 100 * 1024 * 1024;
> @@ -133,36 +130,6 @@ static void init_bootfile_x86(const char *bootpath)
> fclose(bootfile);
> }
>
> -static void init_bootfile_ppc(const char *bootpath)
> -{
> - FILE *bootfile;
> - char buf[MIN_NVRAM_SIZE];
> - ChrpNvramPartHdr *header = (ChrpNvramPartHdr *)buf;
> -
> - memset(buf, 0, MIN_NVRAM_SIZE);
> -
> - /* Create a "common" partition in nvram to store boot-command property */
> -
> - header->signature = CHRP_NVPART_SYSTEM;
> - memcpy(header->name, "common", 6);
> - chrp_nvram_finish_partition(header, MIN_NVRAM_SIZE);
> -
> - /* FW_MAX_SIZE is 4MB, but slof.bin is only 900KB,
> - * so let's modify memory between 1MB and 100MB
> - * to do like PC bootsector
> - */
You should copy this comment where we have inlined the code (below).
> -
> - sprintf(buf + 16,
> - "boot-command=hex .\" _\" begin %x %x do i c@ 1 + i c! 1000
> +loop "
> - ".\" B\" 0 until", end_address, start_address);
> -
> - /* Write partition to the NVRAM file */
> -
> - bootfile = fopen(bootpath, "wb");
> - g_assert_cmpint(fwrite(buf, MIN_NVRAM_SIZE, 1, bootfile), ==, 1);
> - fclose(bootfile);
> -}
> -
> /*
> * Wait for some output in the serial output file,
> * we get an 'A' followed by an endless string of 'B's
> @@ -453,12 +420,14 @@ static void test_migrate_start(QTestState **from,
> QTestState **to,
> if (access("/sys/module/kvm_hv", F_OK)) {
> accel = "tcg";
> }
> - init_bootfile_ppc(bootpath);
I think you could move bootpath allocation/free inside the
'if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {' as it
is not used anymore by ppc.
> cmd_src = g_strdup_printf("-machine accel=%s -m 256M"
> " -name source,debug-threads=on"
> " -serial file:%s/src_serial"
> - " -drive file=%s,if=pflash,format=raw",
> - accel, tmpfs, bootpath);
> + " -prom-env '"
> + "boot-command=hex .\" _\" begin %x %x "
> + "do i c@ 1 + i c! 1000 +loop .\" B\" 0 "
> + "until'", accel, tmpfs, end_address,
> + start_address);
> cmd_dst = g_strdup_printf("-machine accel=%s -m 256M"
> " -name target,debug-threads=on"
> " -serial file:%s/dest_serial"
>
Thanks,
Laurent