/* * ATSTK1000 board-specific setup code. * * Copyright (C) 2005-2006 Atmel Corporation * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include #include #include #include #include #include /* Initialized by bootloader-specific startup code. */ struct tag *bootloader_tags __initdata; struct lcdc_platform_data __initdata atstk1000_fb0_data; asmlinkage void __init board_early_init(void) { extern void sdram_init(void); #ifdef CONFIG_LOADER_STANDALONE sdram_init(); #endif } void __init board_setup_fbmem(unsigned long fbmem_start, unsigned long fbmem_size) { if (!fbmem_size) return; if (!fbmem_start) { void *fbmem; fbmem = alloc_bootmem_low_pages(fbmem_size); fbmem_start = __pa(fbmem); } else { pg_data_t *pgdat; for_each_online_pgdat(pgdat) { if (fbmem_start >= pgdat->bdata->node_boot_start && fbmem_start <= pgdat->bdata->node_low_pfn) reserve_bootmem_node(pgdat, fbmem_start, fbmem_size); } } printk("%luKiB framebuffer memory at address 0x%08lx\n", fbmem_size >> 10, fbmem_start); atstk1000_fb0_data.fbmem_start = fbmem_start; atstk1000_fb0_data.fbmem_size = fbmem_size; }