eclair: query phys memstart on arm64

Change-Id: I32db1153f5c1e4a217db69d8d55f0d0ccfa07c77
This commit is contained in:
Balazs Gerofi
2020-01-11 22:00:57 +09:00
committed by Masamichi Takagi
parent bf7fd81c1b
commit 32b32f0c4a
6 changed files with 18 additions and 6 deletions

View File

@ -5,6 +5,8 @@
#include <sys/ioctl.h>
#include <ihk/ihk_host_user.h>
uint64_t PHYS_OFFSET;
int print_kregs(char *rbp, size_t rbp_size, const struct arch_kregs *kregs)
{
int i, ret, total = 0;
@ -105,8 +107,11 @@ uintptr_t virt_to_phys(uintptr_t va)
return NOPHYS;
} /* virt_to_phys() */
int arch_setup_constants(void)
int arch_setup_constants(int mcos_fd)
{
int error;
dumpargs_t args;
MAP_KERNEL_START = lookup_symbol("_head");
if (MAP_KERNEL_START == NOSYMBOL) {
fprintf(stderr, "error: obtaining MAP_KERNEL_START\n");
@ -114,7 +119,11 @@ int arch_setup_constants(void)
}
printf("arm64 MAP_KERNEL_START 0x%lx\n", MAP_KERNEL_START);
return 0;
args.cmd = DUMP_QUERY_PHYS_START;
args.buf = &PHYS_OFFSET;
error = ioctl(mcos_fd, IHK_OS_DUMP, &args);
return error;
}
/*

View File

@ -2,6 +2,9 @@
#ifndef HEADER_USER_ARM64_ECLAIR_H
#define HEADER_USER_ARM64_ECLAIR_H
/* PHYS_OFFSET needs to be changed according to the environment. */
extern uint64_t PHYS_OFFSET;
#ifdef CONFIG_ARM64_64K_PAGES
#
# if (CONFIG_ARM64_VA_BITS == 42)

View File

@ -122,7 +122,7 @@ uintptr_t virt_to_phys(uintptr_t va)
return NOPHYS;
} /* virt_to_phys() */
int arch_setup_constants(void)
int arch_setup_constants(int mcos_fd)
{
MAP_KERNEL_START = lookup_symbol("_head");
if (MAP_KERNEL_START == NOSYMBOL) {

View File

@ -231,7 +231,7 @@ static int setup_constants(void) {
int error;
uintptr_t va;
error = arch_setup_constants();
error = arch_setup_constants(opt.mcos_fd);
if (error) {
fprintf(stderr, "error: setting up arch constants\n");
return 1;

View File

@ -25,7 +25,7 @@ int arch_read_kregs(unsigned long ctx, struct arch_kregs *kregs);
#define NOPHYS ((uintptr_t)-1)
uintptr_t virt_to_phys(uintptr_t va);
int arch_setup_constants(void);
int arch_setup_constants(int mcos_fd);
//#define DEBUG
#ifdef DEBUG