From owner-svn-src-projects@FreeBSD.ORG Sat Feb 15 18:06:50 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 430D0DD4; Sat, 15 Feb 2014 18:06:50 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1254F1BD9; Sat, 15 Feb 2014 18:06:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s1FI6n9a038745; Sat, 15 Feb 2014 18:06:49 GMT (envelope-from andrew@svn.freebsd.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s1FI6nlp038741; Sat, 15 Feb 2014 18:06:49 GMT (envelope-from andrew@svn.freebsd.org) Message-Id: <201402151806.s1FI6nlp038741@svn.freebsd.org> From: Andrew Turner Date: Sat, 15 Feb 2014 18:06:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r261941 - projects/arm64/sys/boot/arm64/efi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Feb 2014 18:06:50 -0000 Author: andrew Date: Sat Feb 15 18:06:49 2014 New Revision: 261941 URL: http://svnweb.freebsd.org/changeset/base/261941 Log: Add arm64_efi_translate to get a physical address from a kernel virtual address. Modified: projects/arm64/sys/boot/arm64/efi/copy.c projects/arm64/sys/boot/arm64/efi/libarm64.h Modified: projects/arm64/sys/boot/arm64/efi/copy.c ============================================================================== --- projects/arm64/sys/boot/arm64/efi/copy.c Sat Feb 15 17:59:32 2014 (r261940) +++ projects/arm64/sys/boot/arm64/efi/copy.c Sat Feb 15 18:06:49 2014 (r261941) @@ -52,7 +52,7 @@ arm64_efi_copy_init(void) status = BS->AllocatePages(AllocateAnyPages, EfiLoaderData, STAGE_PAGES, &staging); if (EFI_ERROR(status)) { - printf("failed to allocate staging area: %d\n", + printf("failed to allocate staging area: %ld\n", status & EFI_ERROR_MASK); return (status); } @@ -60,6 +60,13 @@ arm64_efi_copy_init(void) return (0); } +void * +arm64_efi_translate(vm_offset_t ptr) +{ + + return ((void *)(ptr + stage_offset)); +} + ssize_t arm64_efi_copyin(const void *src, vm_offset_t dest, const size_t len) { @@ -69,7 +76,7 @@ arm64_efi_copyin(const void *src, vm_off stage_offset_set = 1; } - bcopy(src, (void *)(dest + stage_offset), len); + bcopy(src, arm64_efi_translate(dest), len); return (len); } @@ -77,7 +84,7 @@ ssize_t arm64_efi_copyout(const vm_offset_t src, void *dest, const size_t len) { - bcopy((void *)(src + stage_offset), dest, len); + bcopy(arm64_efi_translate(src), dest, len); return (len); } Modified: projects/arm64/sys/boot/arm64/efi/libarm64.h ============================================================================== --- projects/arm64/sys/boot/arm64/efi/libarm64.h Sat Feb 15 17:59:32 2014 (r261940) +++ projects/arm64/sys/boot/arm64/efi/libarm64.h Sat Feb 15 18:06:49 2014 (r261941) @@ -36,6 +36,7 @@ int arm64_setcurrdev(struct env_var *ev, /* copy.c */ int arm64_efi_copy_init(void); +void *arm64_efi_translate(vm_offset_t ptr); ssize_t arm64_efi_copyin(const void *src, vm_offset_t dest, const size_t len); ssize_t arm64_efi_copyout(const vm_offset_t src, void *dest, const size_t len); ssize_t arm64_efi_readin(const int fd, vm_offset_t dest, const size_t len);