Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7bfe97c7 authored by Dan Williams's avatar Dan Williams
Browse files

tools/testing/nvdimm: add virtual ramdisk range



Test the virtual disk ranges that platform firmware like EDK2/OVMF might
emit.

Tested-by: default avatar"Lee, Chun-Yi" <jlee@suse.com>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent c2f32acd
Loading
Loading
Loading
Loading
+16 −2
Original line number Original line Diff line number Diff line
@@ -104,6 +104,7 @@ enum {
	NUM_MEM = NUM_DCR + NUM_BDW + 2 /* spa0 iset */ + 4 /* spa1 iset */,
	NUM_MEM = NUM_DCR + NUM_BDW + 2 /* spa0 iset */ + 4 /* spa1 iset */,
	DIMM_SIZE = SZ_32M,
	DIMM_SIZE = SZ_32M,
	LABEL_SIZE = SZ_128K,
	LABEL_SIZE = SZ_128K,
	SPA_VCD_SIZE = SZ_4M,
	SPA0_SIZE = DIMM_SIZE,
	SPA0_SIZE = DIMM_SIZE,
	SPA1_SIZE = DIMM_SIZE*2,
	SPA1_SIZE = DIMM_SIZE*2,
	SPA2_SIZE = DIMM_SIZE,
	SPA2_SIZE = DIMM_SIZE,
@@ -618,7 +619,7 @@ static int nfit_test0_alloc(struct nfit_test *t)


static int nfit_test1_alloc(struct nfit_test *t)
static int nfit_test1_alloc(struct nfit_test *t)
{
{
	size_t nfit_size = sizeof(struct acpi_nfit_system_address)
	size_t nfit_size = sizeof(struct acpi_nfit_system_address) * 2
		+ sizeof(struct acpi_nfit_memory_map)
		+ sizeof(struct acpi_nfit_memory_map)
		+ offsetof(struct acpi_nfit_control_region, window_size);
		+ offsetof(struct acpi_nfit_control_region, window_size);


@@ -631,6 +632,10 @@ static int nfit_test1_alloc(struct nfit_test *t)
	if (!t->spa_set[0])
	if (!t->spa_set[0])
		return -ENOMEM;
		return -ENOMEM;


	t->spa_set[1] = test_alloc(t, SPA_VCD_SIZE, &t->spa_set_dma[1]);
	if (!t->spa_set[1])
		return -ENOMEM;

	return ars_state_init(&t->pdev.dev, &t->ars_state);
	return ars_state_init(&t->pdev.dev, &t->ars_state);
}
}


@@ -1335,7 +1340,16 @@ static void nfit_test1_setup(struct nfit_test *t)
	spa->address = t->spa_set_dma[0];
	spa->address = t->spa_set_dma[0];
	spa->length = SPA2_SIZE;
	spa->length = SPA2_SIZE;


	offset += sizeof(*spa);
	/* virtual cd region */
	spa = nfit_buf + sizeof(*spa);
	spa->header.type = ACPI_NFIT_TYPE_SYSTEM_ADDRESS;
	spa->header.length = sizeof(*spa);
	memcpy(spa->range_guid, to_nfit_uuid(NFIT_SPA_VCD), 16);
	spa->range_index = 0;
	spa->address = t->spa_set_dma[1];
	spa->length = SPA_VCD_SIZE;

	offset += sizeof(*spa) * 2;
	/* mem-region0 (spa0, dimm0) */
	/* mem-region0 (spa0, dimm0) */
	memdev = nfit_buf + offset;
	memdev = nfit_buf + offset;
	memdev->header.type = ACPI_NFIT_TYPE_MEMORY_MAP;
	memdev->header.type = ACPI_NFIT_TYPE_MEMORY_MAP;