Date: Wed, 21 Apr 2010 01:39:52 +0000 (UTC) From: Juli Mallett <jmallett@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r206974 - user/jmallett/octeon/sys/contrib/octeon-sdk Message-ID: <201004210139.o3L1dqJL007523@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jmallett Date: Wed Apr 21 01:39:52 2010 New Revision: 206974 URL: http://svn.freebsd.org/changeset/base/206974 Log: o) Fix one case of missing CVMX_DONT_INCLUDE_CONFIG. o) Add physical<->virtual mapping code for FreeBSD kernel. o) Define away CVMX_SHARED when building for FreeBSD kernel. Modified: user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-access-native.h user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-cmd-queue.h user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-platform.h Modified: user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-access-native.h ============================================================================== --- user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-access-native.h Wed Apr 21 01:13:08 2010 (r206973) +++ user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-access-native.h Wed Apr 21 01:39:52 2010 (r206974) @@ -122,6 +122,8 @@ static inline uint64_t cvmx_ptr_to_phys( return address + 0x400000000ull; /* 256MB-512MB is a virtual mapping for the 2nd 256MB */ else return address; /* Looks to be a 1:1 mapped userspace pointer */ +#elif defined(__FreeBSD__) && defined(_KERNEL) + return (pmap_kextract((vm_offset_t)ptr)); #else #if CVMX_USE_1_TO_1_TLB_MAPPINGS /* We are assumung we're running the Simple Executive standalone. In this @@ -201,6 +203,15 @@ static inline void *cvmx_phys_to_ptr(uin return CASTPTR(void, physical_address - 0x400000000ull); else return CASTPTR(void, physical_address); +#elif defined(__FreeBSD__) && defined(_KERNEL) +#if defined(__mips_n64) + return CASTPTR(void, CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS, physical_address)); +#else + if (physical_address < 0x20000000) + return CASTPTR(void, CVMX_ADD_SEG32(CVMX_MIPS32_SPACE_KSEG0, physical_address)); + else + panic("%s: mapping high address (%#jx) not yet supported.\n", __func__, (uintmax_t)physical_address); +#endif #else #if CVMX_USE_1_TO_1_TLB_MAPPINGS Modified: user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-cmd-queue.h ============================================================================== --- user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-cmd-queue.h Wed Apr 21 01:13:08 2010 (r206973) +++ user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-cmd-queue.h Wed Apr 21 01:39:52 2010 (r206974) @@ -92,8 +92,10 @@ #ifndef __CVMX_CMD_QUEUE_H__ #define __CVMX_CMD_QUEUE_H__ +#ifndef CVMX_DONT_INCLUDE_CONFIG #include "executive-config.h" #include "cvmx-config.h" +#endif #include "cvmx-fpa.h" #ifdef __cplusplus Modified: user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-platform.h ============================================================================== --- user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-platform.h Wed Apr 21 01:13:08 2010 (r206973) +++ user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-platform.h Wed Apr 21 01:39:52 2010 (r206974) @@ -119,7 +119,11 @@ * This is for data structures use by software ONLY, * as it is not 1-1 VA-PA mapped. */ +#if defined(CVMX_BUILD_FOR_FREEBSD) +#define CVMX_SHARED +#else #define CVMX_SHARED __attribute__ ((cvmx_shared)) +#endif #if defined(CVMX_BUILD_FOR_UBOOT)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004210139.o3L1dqJL007523>