David Hendricks (dhendrix@chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2210
-gerrit
commit bd77fb9e99bbbb71d8a516f2b0a8dcd257afd72c Author: David Hendricks dhendrix@chromium.org Date: Mon Jan 28 12:24:54 2013 -0800
armv7: nuke global_data.h and remove some references to gd struct
This begins to remove references to global data which u-boot used. There are still many commented out references to gd-> and bd-> which we'll fix once we're happy with the replacements.
Change-Id: Ie1b40a997e28a118f8f3ad96a2f9a2462d32fbe3 Signed-off-by: David Hendricks dhendrix@chromium.org --- src/arch/armv7/include/common.h | 3 - src/arch/armv7/include/global_data.h | 108 ------------------------------ src/arch/armv7/lib/cache-cp15.c | 11 +-- src/cpu/samsung/exynos5-common/spl_boot.c | 12 ---- 4 files changed, 3 insertions(+), 131 deletions(-)
diff --git a/src/arch/armv7/include/common.h b/src/arch/armv7/include/common.h index a2cd9ae..5a27fc0 100644 --- a/src/arch/armv7/include/common.h +++ b/src/arch/armv7/include/common.h @@ -83,7 +83,6 @@ void __assert_fail(const char *assertion, const char *file, unsigned line, typedef void (interrupt_handler_t)(void *);
//#include <asm/u-boot.h> /* boot information for Linux kernel */ -#include <global_data.h> /* global data used for startup functions */
/* * Return the time since boot in microseconds, This is needed for bootstage @@ -152,7 +151,6 @@ void reset_cmd_timeout(void);
/* arch/$(ARCH)/lib/board.c */ void board_init_f (void); -void board_init_r (gd_t *, ulong) __attribute__ ((noreturn)); int checkboard (void); int checkflash (void); int checkdram (void); @@ -247,7 +245,6 @@ int dcache_status (void); void dcache_enable (void); void dcache_disable(void); void mmu_disable(void); -void relocate_code (ulong, gd_t *, ulong) __attribute__ ((noreturn)); ulong get_endaddr (void); void trap_init (ulong); #if defined (CONFIG_4xx) || \ diff --git a/src/arch/armv7/include/global_data.h b/src/arch/armv7/include/global_data.h deleted file mode 100644 index 4ae86aa..0000000 --- a/src/arch/armv7/include/global_data.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * (C) Copyright 2002-2010 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#ifndef __ASM_GBL_DATA_H -#define __ASM_GBL_DATA_H - -/* - * The following data structure is placed in some memory which is - * available very early after boot (like DPRAM on MPC8xx/MPC82xx, or - * some locked parts of the data cache) to allow for a minimum set of - * global variables during system initialization (until we have set - * up the memory controller so that we can use RAM). - * - * Keep it *SMALL* and remember to set GENERATED_GBL_DATA_SIZE > sizeof(gd_t) - */ - -typedef struct global_data { -// bd_t *bd; - unsigned long flags; - unsigned long baudrate; - unsigned long have_console; /* serial_init() was called */ -#ifdef CONFIG_PRE_CONSOLE_BUFFER - unsigned long precon_buf_idx; /* Pre-Console buffer index */ -#endif - unsigned long env_addr; /* Address of Environment struct */ - unsigned long env_valid; /* Checksum of Environment valid? */ - unsigned long fb_base; /* base address of frame buffer */ -#ifdef CONFIG_FSL_ESDHC - unsigned long sdhc_clk; -#endif -#ifdef CONFIG_AT91FAMILY - /* "static data" needed by at91's clock.c */ - unsigned long cpu_clk_rate_hz; - unsigned long main_clk_rate_hz; - unsigned long mck_rate_hz; - unsigned long plla_rate_hz; - unsigned long pllb_rate_hz; - unsigned long at91_pllb_usb_init; -#endif -#ifdef CONFIG_ARM - /* "static data" needed by most of timer.c on ARM platforms */ - unsigned long timer_rate_hz; - unsigned long tbl; - unsigned long tbu; - unsigned long long timer_reset_value; - unsigned long lastinc; -#endif -#ifdef CONFIG_IXP425 - unsigned long timestamp; -#endif - unsigned long relocaddr; /* Start address of U-Boot in RAM */ - unsigned long long ram_size; /* RAM size */ - unsigned long mon_len; /* monitor len */ - unsigned long irq_sp; /* irq stack pointer */ - unsigned long start_addr_sp; /* start_addr_stackpointer */ - unsigned long reloc_off; -#if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF)) - unsigned long tlb_addr; - unsigned long tlb_size; -#endif - const void *fdt_blob; /* Our device tree, NULL if none */ -#ifdef CONFIG_SYS_SKIP_ARM_RELOCATION - ulong malloc_end; /* End of malloc region (addr + 1) */ -#endif - void **jt; /* jump table */ - char env_buf[32]; /* buffer for getenv() before reloc. */ -#if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER) - unsigned long post_log_word; /* Record POST activities */ - unsigned long post_log_res; /* success of POST test */ - unsigned long post_init_f_time; /* When post_init_f started */ -#endif -} gd_t; - -/* - * Global Data Flags - */ -#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */ -#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */ -#define GD_FLG_SILENT 0x00004 /* Silent mode */ -#define GD_FLG_POSTFAIL 0x00008 /* Critical POST test failed */ -#define GD_FLG_POSTSTOP 0x00010 /* POST seqeunce aborted */ -#define GD_FLG_LOGINIT 0x00020 /* Log Buffer has been initialized */ -#define GD_FLG_DISABLE_CONSOLE 0x00040 /* Disable console (in & out) */ -#define GD_FLG_ENV_READY 0x00080 /* Environment imported into hash table */ - -#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8") - -#endif /* __ASM_GBL_DATA_H */ diff --git a/src/arch/armv7/lib/cache-cp15.c b/src/arch/armv7/lib/cache-cp15.c index c684d65..221befa 100644 --- a/src/arch/armv7/lib/cache-cp15.c +++ b/src/arch/armv7/lib/cache-cp15.c @@ -24,9 +24,8 @@ #include <common.h> #include <stdlib.h> #include <system.h> -#include <global_data.h>
-DECLARE_GLOBAL_DATA_PTR; +static unsigned int tlb_addr;
static void cp_delay (void) { @@ -41,9 +40,7 @@ static void cp_delay (void) static void set_section_dcache(int section, enum dcache_option option) { u32 value = section << MMU_SECTION_SHIFT | (3 << 10); -// u32 *page_table = (u32 *)gd->tlb_addr; u32 *page_table; - unsigned int tlb_addr; unsigned int tlb_size = 4096 * 4;
/* @@ -82,7 +79,7 @@ void __mmu_page_table_flush(unsigned long start, unsigned long stop)
void mmu_set_region_dcache(unsigned long start, int size, enum dcache_option option) { - u32 *page_table = (u32 *)gd->tlb_addr; + u32 *page_table = &tlb_addr; u32 upto, end;
end = ALIGN(start + size, MMU_SECTION_SIZE) >> MMU_SECTION_SHIFT; @@ -113,8 +110,6 @@ static inline void dram_bank_mmu_setup(int bank) } #endif
-/* FIXME(dhendrix): modified to take arguments from the caller (mainboard's - romstage.c) so it doesn't rely on global data struct */ /** * dram_bank_mmu_set - set up the data cache policy for a given dram bank * @@ -163,7 +158,7 @@ static inline void mmu_setup(void)
/* Copy the page table address to cp15 */ asm volatile("mcr p15, 0, %0, c2, c0, 0" - : : "r" (gd->tlb_addr) : "memory"); + : : "r" (tlb_addr) : "memory"); /* Set the access control to all-supervisor */ asm volatile("mcr p15, 0, %0, c3, c0, 0" : : "r" (~0)); diff --git a/src/cpu/samsung/exynos5-common/spl_boot.c b/src/cpu/samsung/exynos5-common/spl_boot.c index ecff871..ddf6937 100644 --- a/src/cpu/samsung/exynos5-common/spl_boot.c +++ b/src/cpu/samsung/exynos5-common/spl_boot.c @@ -55,9 +55,6 @@
#include <arch/io.h>
-/* FIXME(dhendrix): clean out u-boot global data stuff */ -//DECLARE_GLOBAL_DATA_PTR; - #define OM_STAT (0x1f << 1)
/** @@ -344,15 +341,6 @@ void board_init_f(void) hlt(); }
-/* Place Holders */ -void board_init_r(gd_t *id, ulong dest_addr) -{ - /* Function attribute is no-return */ - /* This Function never executes */ - while (1) - ; -} - //void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3) {}
#if 0