tests: Migration ppc now inlines its program
No need to write it to a file. Just need a proper firmware O:-) Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
2884100cc6
commit
cdf338152f
@ -19,9 +19,6 @@
|
|||||||
#include "qemu/sockets.h"
|
#include "qemu/sockets.h"
|
||||||
#include "chardev/char.h"
|
#include "chardev/char.h"
|
||||||
#include "sysemu/sysemu.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 start_address = 1024 * 1024;
|
||||||
const unsigned end_address = 100 * 1024 * 1024;
|
const unsigned end_address = 100 * 1024 * 1024;
|
||||||
@ -92,36 +89,6 @@ static void init_bootfile_x86(const char *bootpath)
|
|||||||
fclose(bootfile);
|
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
|
|
||||||
*/
|
|
||||||
|
|
||||||
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,
|
* Wait for some output in the serial output file,
|
||||||
* we get an 'A' followed by an endless string of 'B's
|
* we get an 'A' followed by an endless string of 'B's
|
||||||
@ -422,12 +389,14 @@ static void test_migrate_start(QTestState **from, QTestState **to,
|
|||||||
if (access("/sys/module/kvm_hv", F_OK)) {
|
if (access("/sys/module/kvm_hv", F_OK)) {
|
||||||
accel = "tcg";
|
accel = "tcg";
|
||||||
}
|
}
|
||||||
init_bootfile_ppc(bootpath);
|
|
||||||
cmd_src = g_strdup_printf("-machine accel=%s -m 256M"
|
cmd_src = g_strdup_printf("-machine accel=%s -m 256M"
|
||||||
" -name source,debug-threads=on"
|
" -name source,debug-threads=on"
|
||||||
" -serial file:%s/src_serial"
|
" -serial file:%s/src_serial"
|
||||||
" -drive file=%s,if=pflash,format=raw",
|
" -prom-env '"
|
||||||
accel, tmpfs, bootpath);
|
"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"
|
cmd_dst = g_strdup_printf("-machine accel=%s -m 256M"
|
||||||
" -name target,debug-threads=on"
|
" -name target,debug-threads=on"
|
||||||
" -serial file:%s/dest_serial"
|
" -serial file:%s/dest_serial"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user