Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F137625767
D21301.id60957.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D21301.id60957.diff
View Options
Index: sys/powerpc/booke/pmap.c
===================================================================
--- sys/powerpc/booke/pmap.c
+++ sys/powerpc/booke/pmap.c
@@ -219,7 +219,7 @@
#define TLB1_ENTRIES (tlb1_entries)
-static vm_offset_t tlb1_map_base = VM_MAXUSER_ADDRESS + PAGE_SIZE;
+static vm_offset_t tlb1_map_base = (vm_offset_t)VM_MAXUSER_ADDRESS + PAGE_SIZE;
static tlbtid_t tid_alloc(struct pmap *);
static void tid_flush(tlbtid_t tid);
@@ -1574,7 +1574,6 @@
* Note that kernel end does not necessarily relate to kernsize.
* kernsize is the size of the kernel that is actually mapped.
*/
- kernstart = trunc_page(start);
data_start = round_page(kernelend);
data_end = data_start;
@@ -2146,7 +2145,7 @@
void **kaddr, size_t ulen, size_t *klen)
{
- if ((uintptr_t)uaddr + ulen > VM_MAXUSER_ADDRESS + PAGE_SIZE)
+ if (trunc_page((uintptr_t)uaddr + ulen) > VM_MAXUSER_ADDRESS)
return (EFAULT);
*kaddr = (void *)(uintptr_t)uaddr;
@@ -2166,7 +2165,7 @@
vm_offset_t *decoded_addr)
{
- if (addr < VM_MAXUSER_ADDRESS)
+ if (trunc_page(addr) <= VM_MAXUSER_ADDRESS)
*is_user = 1;
else
*is_user = 0;
@@ -4025,7 +4024,8 @@
void
tlb1_init()
{
- uint32_t mas0, mas1, mas2, mas3, mas7;
+ vm_offset_t mas2;
+ uint32_t mas0, mas1, mas3, mas7;
uint32_t tsz;
tlb1_get_tlbconf();
@@ -4044,6 +4044,7 @@
tsz = (mas1 & MAS1_TSIZE_MASK) >> MAS1_TSIZE_SHIFT;
kernsize += (tsz > 0) ? tsize2size(tsz) : 0;
+ kernstart = trunc_page(mas2);
/* Setup TLB miss defaults */
set_mas4_defaults();
Index: sys/powerpc/include/param.h
===================================================================
--- sys/powerpc/include/param.h
+++ sys/powerpc/include/param.h
@@ -103,7 +103,7 @@
#define CACHE_LINE_SIZE (1 << CACHE_LINE_SHIFT)
#define PAGE_SHIFT 12
-#define PAGE_SIZE (1L << PAGE_SHIFT) /* Page size */
+#define PAGE_SIZE (1 << PAGE_SHIFT) /* Page size */
#define PAGE_MASK (PAGE_SIZE - 1)
#define NPTEPG (PAGE_SIZE/(sizeof (pt_entry_t)))
Index: sys/powerpc/include/vmparam.h
===================================================================
--- sys/powerpc/include/vmparam.h
+++ sys/powerpc/include/vmparam.h
@@ -72,53 +72,35 @@
#endif
#ifdef AIM
-#define VM_MAXUSER_ADDRESS32 ((vm_offset_t)0xfffff000)
+#define VM_MAXUSER_ADDRESS32 0xfffff000
#else
-#define VM_MAXUSER_ADDRESS32 ((vm_offset_t)0x7ffff000)
+#define VM_MAXUSER_ADDRESS32 0x7ffff000
#endif
/*
* Would like to have MAX addresses = 0, but this doesn't (currently) work
*/
-#if !defined(LOCORE)
#ifdef __powerpc64__
-#define VM_MIN_ADDRESS (0x0000000000000000UL)
-#define VM_MAXUSER_ADDRESS (0x3ffffffffffff000UL)
-#define VM_MAX_ADDRESS (0xffffffffffffffffUL)
+#define VM_MIN_ADDRESS 0x0000000000000000
+#define VM_MAXUSER_ADDRESS 0x3ffffffffffff000
+#define VM_MAX_ADDRESS 0xffffffffffffffff
+#define VM_MIN_KERNEL_ADDRESS 0xe000000000000000
+#define VM_MAX_KERNEL_ADDRESS 0xe0000007ffffffff
+#define VM_MAX_SAFE_KERNEL_ADDRESS VM_MAX_KERNEL_ADDRESS
#else
-#define VM_MIN_ADDRESS ((vm_offset_t)0)
+#define VM_MIN_ADDRESS 0
#define VM_MAXUSER_ADDRESS VM_MAXUSER_ADDRESS32
-#define VM_MAX_ADDRESS ((vm_offset_t)0xffffffff)
+#define VM_MAX_ADDRESS 0xffffffff
#endif
+
#define SHAREDPAGE (VM_MAXUSER_ADDRESS - PAGE_SIZE)
-#else /* LOCORE */
-#ifdef BOOKE
-#define VM_MIN_ADDRESS 0
-#ifdef __powerpc64__
-#define VM_MAXUSER_ADDRESS 0x3ffffffffffff000
-#else
-#define VM_MAXUSER_ADDRESS 0x7ffff000
-#endif
-#endif
-#endif /* LOCORE */
#define FREEBSD32_SHAREDPAGE (VM_MAXUSER_ADDRESS32 - PAGE_SIZE)
#define FREEBSD32_USRSTACK FREEBSD32_SHAREDPAGE
-#ifdef __powerpc64__
-#ifndef LOCORE
-#define VM_MIN_KERNEL_ADDRESS 0xe000000000000000UL
-#define VM_MAX_KERNEL_ADDRESS 0xe0000007ffffffffUL
-#else
-#define VM_MIN_KERNEL_ADDRESS 0xe000000000000000
-#define VM_MAX_KERNEL_ADDRESS 0xe0000007ffffffff
-#endif
-#define VM_MAX_SAFE_KERNEL_ADDRESS VM_MAX_KERNEL_ADDRESS
-#endif
-
-#ifdef AIM
#define KERNBASE 0x00100100 /* start of kernel virtual */
+#ifdef AIM
#ifndef __powerpc64__
#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)KERNEL_SR << ADDR_SR_SHFT)
#define VM_MAX_SAFE_KERNEL_ADDRESS (VM_MIN_KERNEL_ADDRESS + 2*SEGMENT_LENGTH -1)
@@ -136,12 +118,9 @@
/* Use the direct map for UMA small allocs on powerpc64. */
#ifdef __powerpc64__
#define UMA_MD_SMALL_ALLOC
-#endif
-
-#define KERNBASE 0x04000100 /* start of kernel physical */
-#ifndef __powerpc64__
-#define VM_MIN_KERNEL_ADDRESS 0xc0000000
-#define VM_MAX_KERNEL_ADDRESS 0xffffefff
+#else
+#define VM_MIN_KERNEL_ADDRESS 0xc0000000
+#define VM_MAX_KERNEL_ADDRESS 0xffffefff
#define VM_MAX_SAFE_KERNEL_ADDRESS VM_MAX_KERNEL_ADDRESS
#endif
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Nov 25, 4:24 PM (5 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26150093
Default Alt Text
D21301.id60957.diff (4 KB)
Attached To
Mode
D21301: powerpc: Link Book-E kernels at the same address as AIM kernels
Attached
Detach File
Event Timeline
Log In to Comment