KBUILD_CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
endif
--ifeq ($(CONFIG_CC_STACKPROTECTOR),y)
--KBUILD_CFLAGS +=-fstack-protector
--endif
--
ifeq ($(CONFIG_CPU_BIG_ENDIAN),y)
KBUILD_CPPFLAGS += -mbig-endian
AS += -EB
tune-y := $(tune-y)
ifeq ($(CONFIG_AEABI),y)
- -CFLAGS_ABI :=-mabi=aapcs-linux -mno-thumb-interwork
+ +CFLAGS_ABI :=-mabi=aapcs-linux -mno-thumb-interwork -mfpu=vfp
else
CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
endif
machine-$(CONFIG_ARCH_AT91) += at91
machine-$(CONFIG_ARCH_BCM) += bcm
machine-$(CONFIG_ARCH_BCM2835) += bcm2835
++machine-$(CONFIG_ARCH_BERLIN) += berlin
machine-$(CONFIG_ARCH_CLPS711X) += clps711x
machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx
machine-$(CONFIG_ARCH_DAVINCI) += davinci
machine-$(CONFIG_ARCH_DOVE) += dove
machine-$(CONFIG_ARCH_EBSA110) += ebsa110
++machine-$(CONFIG_ARCH_EFM32) += efm32
machine-$(CONFIG_ARCH_EP93XX) += ep93xx
machine-$(CONFIG_ARCH_EXYNOS) += exynos
machine-$(CONFIG_ARCH_GEMINI) += gemini
machine-$(CONFIG_ARCH_HIGHBANK) += highbank
++machine-$(CONFIG_ARCH_HI3xxx) += hisi
machine-$(CONFIG_ARCH_INTEGRATOR) += integrator
machine-$(CONFIG_ARCH_IOP13XX) += iop13xx
machine-$(CONFIG_ARCH_IOP32X) += iop32x
machine-$(CONFIG_ARCH_KS8695) += ks8695
machine-$(CONFIG_ARCH_LPC32XX) += lpc32xx
machine-$(CONFIG_ARCH_MMP) += mmp
++machine-$(CONFIG_ARCH_MOXART) += moxart
machine-$(CONFIG_ARCH_MSM) += msm
machine-$(CONFIG_ARCH_MV78XX0) += mv78xx0
machine-$(CONFIG_ARCH_MVEBU) += mvebu
machine-$(CONFIG_ARCH_S5PV210) += s5pv210
machine-$(CONFIG_ARCH_SA1100) += sa1100
machine-$(CONFIG_ARCH_SHMOBILE) += shmobile
--machine-$(CONFIG_ARCH_SHMOBILE_MULTI) += shmobile
machine-$(CONFIG_ARCH_SIRF) += prima2
machine-$(CONFIG_ARCH_SOCFPGA) += socfpga
machine-$(CONFIG_ARCH_STI) += sti
core-y += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
core-y += arch/arm/net/
core-y += arch/arm/crypto/
++core-y += arch/arm/firmware/
core-y += $(machdirs) $(platdirs)
drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/
printk("Mem-info:\n");
show_free_areas(filter);
-- if (filter & SHOW_MEM_FILTER_PAGE_COUNT)
-- return;
--
for_each_bank (i, mi) {
struct membank *bank = &mi->bank[i];
unsigned int pfn1, pfn2;
*max_high = bank_pfn_end(&mi->bank[mi->nr_banks - 1]);
}
--static void __init arm_bootmem_init(unsigned long start_pfn,
-- unsigned long end_pfn)
--{
-- struct memblock_region *reg;
-- unsigned int boot_pages;
-- phys_addr_t bitmap;
-- pg_data_t *pgdat;
--
-- /*
-- * Allocate the bootmem bitmap page. This must be in a region
-- * of memory which has already been mapped.
-- */
-- boot_pages = bootmem_bootmap_pages(end_pfn - start_pfn);
-- bitmap = memblock_alloc_base(boot_pages << PAGE_SHIFT, L1_CACHE_BYTES,
-- __pfn_to_phys(end_pfn));
--
-- /*
-- * Initialise the bootmem allocator, handing the
-- * memory banks over to bootmem.
-- */
-- node_set_online(0);
-- pgdat = NODE_DATA(0);
-- init_bootmem_node(pgdat, __phys_to_pfn(bitmap), start_pfn, end_pfn);
--
-- /* Free the lowmem regions from memblock into bootmem. */
-- for_each_memblock(memory, reg) {
-- unsigned long start = memblock_region_memory_base_pfn(reg);
-- unsigned long end = memblock_region_memory_end_pfn(reg);
--
-- if (end >= end_pfn)
-- end = end_pfn;
-- if (start >= end)
-- break;
--
-- free_bootmem(__pfn_to_phys(start), (end - start) << PAGE_SHIFT);
-- }
--
-- /* Reserve the lowmem memblock reserved regions in bootmem. */
-- for_each_memblock(reserved, reg) {
-- unsigned long start = memblock_region_reserved_base_pfn(reg);
-- unsigned long end = memblock_region_reserved_end_pfn(reg);
--
-- if (end >= end_pfn)
-- end = end_pfn;
-- if (start >= end)
-- break;
--
-- reserve_bootmem(__pfn_to_phys(start),
-- (end - start) << PAGE_SHIFT, BOOTMEM_DEFAULT);
-- }
--}
--
#ifdef CONFIG_ZONE_DMA
phys_addr_t arm_dma_zone_size __read_mostly;
#ifdef CONFIG_ZONE_DMA
if (mdesc->dma_zone_size) {
arm_dma_zone_size = mdesc->dma_zone_size;
- arm_dma_limit = __pv_phys_offset + arm_dma_zone_size - 1;
+ arm_dma_limit = PHYS_OFFSET + arm_dma_zone_size - 1;
} else
arm_dma_limit = 0xffffffff;
arm_dma_pfn_limit = arm_dma_limit >> PAGE_SHIFT;
#endif
}
--static void __init arm_bootmem_free(unsigned long min, unsigned long max_low,
++static void __init zone_sizes_init(unsigned long min, unsigned long max_low,
unsigned long max_high)
{
unsigned long zone_size[MAX_NR_ZONES], zhole_size[MAX_NR_ZONES];
#endif
#ifdef CONFIG_BLK_DEV_INITRD
/* FDT scan will populate initrd_start */
- - if (initrd_start) {
+ + if (initrd_start && !phys_initrd_size) {
phys_initrd_start = __virt_to_phys(initrd_start);
phys_initrd_size = initrd_end - initrd_start;
}
+ + initrd_start = initrd_end = 0;
if (phys_initrd_size &&
!memblock_is_region_memory(phys_initrd_start, phys_initrd_size)) {
pr_err("INITRD: 0x%08llx+0x%08lx is not a memory region - disabling initrd\n",
dma_contiguous_reserve(min(arm_dma_limit, arm_lowmem_limit));
arm_memblock_steal_permitted = false;
-- memblock_allow_resize();
memblock_dump_all();
}
{
unsigned long min, max_low, max_high;
++ memblock_allow_resize();
max_low = max_high = 0;
find_limits(&min, &max_low, &max_high);
-- arm_bootmem_init(min, max_low);
--
/*
* Sparsemem tries to allocate bootmem in memory_present(),
* so must be done after the fixed reservations
* the sparse mem_map arrays initialized by sparse_init()
* for memmap_init_zone(), otherwise all PFNs are invalid.
*/
-- arm_bootmem_free(min, max_low, max_high);
++ zone_sizes_init(min, max_low, max_high);
/*
* This doesn't seem to be used by the Linux memory manager any
* free the section of the memmap array.
*/
if (pg < pgend)
-- free_bootmem(pg, pgend - pg);
++ memblock_free_early(pg, pgend - pg);
}
/*
extern u32 itcm_end;
#endif
-- max_mapnr = pfn_to_page(max_pfn + PHYS_PFN_OFFSET) - mem_map;
++ set_max_mapnr(pfn_to_page(max_pfn) - mem_map);
/* this will put all unused low memory onto the freelists */
free_unused_memmap(&meminfo);