linux/arch/x86/mm/numa_32.c
<<
>>
Prefs
   1/*
   2 * Written by: Patricia Gaughen <gone@us.ibm.com>, IBM Corporation
   3 * August 2002: added remote node KVA remap - Martin J. Bligh 
   4 *
   5 * Copyright (C) 2002, IBM Corp.
   6 *
   7 * All rights reserved.          
   8 *
   9 * This program is free software; you can redistribute it and/or modify
  10 * it under the terms of the GNU General Public License as published by
  11 * the Free Software Foundation; either version 2 of the License, or
  12 * (at your option) any later version.
  13 *
  14 * This program is distributed in the hope that it will be useful, but
  15 * WITHOUT ANY WARRANTY; without even the implied warranty of
  16 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
  17 * NON INFRINGEMENT.  See the GNU General Public License for more
  18 * details.
  19 *
  20 * You should have received a copy of the GNU General Public License
  21 * along with this program; if not, write to the Free Software
  22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  23 */
  24
  25#include <linux/memblock.h>
  26#include <linux/init.h>
  27
  28#include "numa_internal.h"
  29
  30extern unsigned long highend_pfn, highstart_pfn;
  31
  32void __init initmem_init(void)
  33{
  34        x86_numa_init();
  35
  36#ifdef CONFIG_HIGHMEM
  37        highstart_pfn = highend_pfn = max_pfn;
  38        if (max_pfn > max_low_pfn)
  39                highstart_pfn = max_low_pfn;
  40        printk(KERN_NOTICE "%ldMB HIGHMEM available.\n",
  41               pages_to_mb(highend_pfn - highstart_pfn));
  42        high_memory = (void *) __va(highstart_pfn * PAGE_SIZE - 1) + 1;
  43#else
  44        high_memory = (void *) __va(max_low_pfn * PAGE_SIZE - 1) + 1;
  45#endif
  46        printk(KERN_NOTICE "%ldMB LOWMEM available.\n",
  47                        pages_to_mb(max_low_pfn));
  48        printk(KERN_DEBUG "max_low_pfn = %lx, highstart_pfn = %lx\n",
  49                        max_low_pfn, highstart_pfn);
  50
  51        printk(KERN_DEBUG "Low memory ends at vaddr %08lx\n",
  52                        (ulong) pfn_to_kaddr(max_low_pfn));
  53
  54        printk(KERN_DEBUG "High memory starts at vaddr %08lx\n",
  55                        (ulong) pfn_to_kaddr(highstart_pfn));
  56
  57        __vmalloc_start_set = true;
  58        setup_bootmem_allocator();
  59}
  60