]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - arch/x86/include/asm/global_data.h
Merge branch 'master' of git://git.denx.de/u-boot-nand-flash
[karo-tx-uboot.git] / arch / x86 / include / asm / global_data.h
index bce999f41ce3ee1f80ac1b03a36eac5f8ff64ee4..9a2056a70f6a4c72a016ed564d4fa613211272de 100644 (file)
 
 #ifndef        __ASM_GBL_DATA_H
 #define __ASM_GBL_DATA_H
-/*
- * The following data structure is placed in some memory wich 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).
- */
 
 #ifndef __ASSEMBLY__
 
-typedef        struct global_data {
-       /* NOTE: gd_addr MUST be first member of struct global_data! */
-       unsigned long   gd_addr;        /* Location of Global Data */
-       bd_t            *bd;
-       unsigned long   flags;
-       unsigned int    baudrate;
-       unsigned long   have_console;   /* serial_init() was called */
-#ifdef CONFIG_PRE_CONSOLE_BUFFER
-       unsigned long   precon_buf_idx; /* Pre-Console buffer index */
+/* Architecture-specific global data */
+struct arch_global_data {
+       struct global_data *gd_addr;            /* Location of Global Data */
+       uint64_t tsc_base;              /* Initial value returned by rdtsc() */
+       uint32_t tsc_base_kclocks;      /* Initial tsc as a kclocks value */
+       uint32_t tsc_prev;              /* For show_boot_progress() */
+       void *new_fdt;                  /* Relocated FDT */
+};
+
 #endif
-       unsigned long   reloc_off;      /* Relocation Offset */
-       unsigned long   load_off;       /* Load Offset */
-       unsigned long   env_addr;       /* Address  of Environment struct */
-       unsigned long   env_valid;      /* Checksum of Environment valid? */
-       unsigned long   cpu_clk;        /* CPU clock in Hz!             */
-       unsigned long   bus_clk;
-       unsigned long   relocaddr;      /* Start address of U-Boot in RAM */
-       unsigned long   start_addr_sp;  /* start_addr_stackpointer */
-       unsigned long   gdt_addr;       /* Location of GDT */
-       unsigned long   new_gd_addr;    /* New location of Global Data */
-       phys_size_t     ram_size;       /* RAM size */
-       unsigned long   reset_status;   /* reset status register at boot */
-       void            **jt;           /* jump table */
-       char            env_buf[32];    /* buffer for getenv() before reloc. */
-} gd_t;
 
-static inline gd_t *get_fs_gd_ptr(void)
+#include <asm-generic/global_data.h>
+
+#ifndef __ASSEMBLY__
+static inline __attribute__((no_instrument_function)) gd_t *get_fs_gd_ptr(void)
 {
        gd_t *gd_ptr;
 
@@ -72,7 +53,11 @@ static inline gd_t *get_fs_gd_ptr(void)
 
 #endif
 
-#include <asm-generic/global_data_flags.h>
+/*
+ * Our private Global Data Flags
+ */
+#define GD_FLG_COLD_BOOT       0x00100 /* Cold Boot */
+#define GD_FLG_WARM_BOOT       0x00200 /* Warm Boot */
 
 #define DECLARE_GLOBAL_DATA_PTR