eclair: query phys memstart on arm64
Change-Id: I32db1153f5c1e4a217db69d8d55f0d0ccfa07c77
This commit is contained in:
committed by
Masamichi Takagi
parent
bf7fd81c1b
commit
32b32f0c4a
@ -5,6 +5,8 @@
|
|||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <ihk/ihk_host_user.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 print_kregs(char *rbp, size_t rbp_size, const struct arch_kregs *kregs)
|
||||||
{
|
{
|
||||||
int i, ret, total = 0;
|
int i, ret, total = 0;
|
||||||
@ -105,8 +107,11 @@ uintptr_t virt_to_phys(uintptr_t va)
|
|||||||
return NOPHYS;
|
return NOPHYS;
|
||||||
} /* virt_to_phys() */
|
} /* 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");
|
MAP_KERNEL_START = lookup_symbol("_head");
|
||||||
if (MAP_KERNEL_START == NOSYMBOL) {
|
if (MAP_KERNEL_START == NOSYMBOL) {
|
||||||
fprintf(stderr, "error: obtaining MAP_KERNEL_START\n");
|
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);
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -2,6 +2,9 @@
|
|||||||
#ifndef HEADER_USER_ARM64_ECLAIR_H
|
#ifndef HEADER_USER_ARM64_ECLAIR_H
|
||||||
#define 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
|
#ifdef CONFIG_ARM64_64K_PAGES
|
||||||
#
|
#
|
||||||
# if (CONFIG_ARM64_VA_BITS == 42)
|
# if (CONFIG_ARM64_VA_BITS == 42)
|
||||||
|
|||||||
@ -122,7 +122,7 @@ uintptr_t virt_to_phys(uintptr_t va)
|
|||||||
return NOPHYS;
|
return NOPHYS;
|
||||||
} /* virt_to_phys() */
|
} /* virt_to_phys() */
|
||||||
|
|
||||||
int arch_setup_constants(void)
|
int arch_setup_constants(int mcos_fd)
|
||||||
{
|
{
|
||||||
MAP_KERNEL_START = lookup_symbol("_head");
|
MAP_KERNEL_START = lookup_symbol("_head");
|
||||||
if (MAP_KERNEL_START == NOSYMBOL) {
|
if (MAP_KERNEL_START == NOSYMBOL) {
|
||||||
|
|||||||
@ -231,7 +231,7 @@ static int setup_constants(void) {
|
|||||||
int error;
|
int error;
|
||||||
uintptr_t va;
|
uintptr_t va;
|
||||||
|
|
||||||
error = arch_setup_constants();
|
error = arch_setup_constants(opt.mcos_fd);
|
||||||
if (error) {
|
if (error) {
|
||||||
fprintf(stderr, "error: setting up arch constants\n");
|
fprintf(stderr, "error: setting up arch constants\n");
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@ -25,7 +25,7 @@ int arch_read_kregs(unsigned long ctx, struct arch_kregs *kregs);
|
|||||||
#define NOPHYS ((uintptr_t)-1)
|
#define NOPHYS ((uintptr_t)-1)
|
||||||
uintptr_t virt_to_phys(uintptr_t va);
|
uintptr_t virt_to_phys(uintptr_t va);
|
||||||
|
|
||||||
int arch_setup_constants(void);
|
int arch_setup_constants(int mcos_fd);
|
||||||
|
|
||||||
//#define DEBUG
|
//#define DEBUG
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
|||||||
2
ihk
2
ihk
Submodule ihk updated: 961151b74f...f0ef7f641f
Reference in New Issue
Block a user