Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ec57e53 authored by Marcelo Tosatti's avatar Marcelo Tosatti Committed by Paul Mackerras
Browse files

[PATCH] powerpc: generalize PPC44x_PIN_SIZE



The following patch generalizes PPC44x_PIN_SIZE by changing it to
PPC_PIN_SIZE, which can be defined by any sub-arch to automatically adjust
VMALLOC_START.

Define PPC_PIN_SIZE on 8xx, avoiding potential conflicts with the
pinned space.

Signed-off-by: default avatarMarcelo Tosatti <marcelo.tosatti@cyclades.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent f4fc4a5b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -104,7 +104,7 @@ unsigned long __init mmu_mapin_ram(void)

	/* Determine number of entries necessary to cover lowmem */
	pinned_tlbs = (unsigned int)
		(_ALIGN(total_lowmem, PPC44x_PIN_SIZE) >> PPC44x_PIN_SHIFT);
		(_ALIGN(total_lowmem, PPC_PIN_SIZE) >> PPC44x_PIN_SHIFT);

	/* Write upper watermark to save location */
	tlb_44x_hwater = PPC44x_LOW_SLOT - pinned_tlbs;
@@ -112,7 +112,7 @@ unsigned long __init mmu_mapin_ram(void)
	/* If necessary, set additional pinned TLBs */
	if (pinned_tlbs > 1)
		for (i = (PPC44x_LOW_SLOT-(pinned_tlbs-1)); i < PPC44x_LOW_SLOT; i++) {
			unsigned int phys_addr = (PPC44x_LOW_SLOT-i) * PPC44x_PIN_SIZE;
			unsigned int phys_addr = (PPC44x_LOW_SLOT-i) * PPC_PIN_SIZE;
			ppc44x_pin_tlb(i, phys_addr+PAGE_OFFSET, phys_addr);
		}

+1 −1
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@

/* TLB entry offset/size used for pinning kernel lowmem */
#define PPC44x_PIN_SHIFT	28
#define PPC44x_PIN_SIZE		(1 << PPC44x_PIN_SHIFT)
#define PPC_PIN_SIZE		(1 << PPC44x_PIN_SHIFT)

/* Lowest TLB slot consumed by the default pinned TLBs */
#define PPC44x_LOW_SLOT		63
+2 −0
Original line number Diff line number Diff line
@@ -113,6 +113,8 @@ enum ppc_sys_devices {
	MPC8xx_CPM_USB,
};

#define PPC_PIN_SIZE	(24 * 1024 * 1024)	/* 24Mbytes of data pinned */

#ifndef BOARD_CHIP_NAME
#define BOARD_CHIP_NAME ""
#endif
+3 −3
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
#include <asm/processor.h>		/* For TASK_SIZE */
#include <asm/mmu.h>
#include <asm/page.h>
#include <asm/io.h>			/* For sub-arch specific PPC_PIN_SIZE */
struct mm_struct;

extern unsigned long va_to_phys(unsigned long address);
@@ -127,9 +128,8 @@ extern unsigned long ioremap_bot, ioremap_base;
 * of RAM.  -- Cort
 */
#define VMALLOC_OFFSET (0x1000000) /* 16M */
#ifdef CONFIG_44x
#include <asm/ibm44x.h>
#define VMALLOC_START (((_ALIGN((long)high_memory, PPC44x_PIN_SIZE) + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1)))
#ifdef PPC_PIN_SIZE
#define VMALLOC_START (((_ALIGN((long)high_memory, PPC_PIN_SIZE) + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1)))
#else
#define VMALLOC_START ((((long)high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1)))
#endif