]> git.sur5r.net Git - u-boot/blobdiff - include/asm-generic/global_data.h
Merge branch 'master' of git://git.denx.de/u-boot-sunxi
[u-boot] / include / asm-generic / global_data.h
index a587d3c2030a27831473ef1ef4cb8352957e6172..0fd4900392be58b9da2be98461ac403a81aeb4e8 100644 (file)
@@ -1,9 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright (c) 2012 The Chromium OS Authors.
  * (C) Copyright 2002-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #ifndef __ASM_GENERIC_GBL_DATA_H
@@ -28,52 +27,36 @@ typedef struct global_data {
        bd_t *bd;
        unsigned long flags;
        unsigned int baudrate;
-       unsigned long cpu_clk;  /* CPU clock in Hz!             */
+       unsigned long cpu_clk;          /* CPU clock in Hz!             */
        unsigned long bus_clk;
        /* We cannot bracket this with CONFIG_PCI due to mpc5xxx */
        unsigned long pci_clk;
        unsigned long mem_clk;
 #if defined(CONFIG_LCD) || defined(CONFIG_VIDEO)
-       unsigned long fb_base;  /* Base address of framebuffer mem */
+       unsigned long fb_base;          /* Base address of framebuffer mem */
 #endif
-#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 */
+#if defined(CONFIG_POST)
+       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
 #ifdef CONFIG_BOARD_TYPES
        unsigned long board_type;
 #endif
        unsigned long have_console;     /* serial_init() was called */
-#ifdef CONFIG_PRE_CONSOLE_BUFFER
+#if CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
        unsigned long precon_buf_idx;   /* Pre-Console buffer index */
 #endif
-#ifdef CONFIG_MODEM_SUPPORT
-       unsigned long do_mdm_init;
-       unsigned long be_quiet;
-#endif
-       unsigned long env_addr; /* Address  of Environment struct */
-       unsigned long env_valid;        /* Checksum of Environment valid? */
-
-       unsigned long ram_top;  /* Top address of RAM used by U-Boot */
+       unsigned long env_addr;         /* Address  of Environment struct */
+       unsigned long env_valid;        /* Environment valid? enum env_valid */
+       unsigned long env_has_init;     /* Bitmask of boolean of struct env_location offsets */
+       int env_load_location;
 
+       unsigned long ram_base;         /* Base address of RAM used by U-Boot */
+       unsigned long ram_top;          /* Top address of RAM used by U-Boot */
        unsigned long relocaddr;        /* Start address of U-Boot in RAM */
-       phys_size_t ram_size;   /* RAM size */
-#ifdef CONFIG_SYS_MEM_RESERVE_SECURE
-#define MEM_RESERVE_SECURE_SECURED     0x1
-#define MEM_RESERVE_SECURE_MAINTAINED  0x2
-#define MEM_RESERVE_SECURE_ADDR_MASK   (~0x3)
-       /*
-        * Secure memory addr
-        * This variable needs maintenance if the RAM base is not zero,
-        * or if RAM splits into non-consecutive banks. It also has a
-        * flag indicating the secure memory is marked as secure by MMU.
-        * Flags used: 0x1 secured
-        *             0x2 maintained
-        */
-       phys_addr_t secure_ram;
-#endif
-       unsigned long mon_len;  /* monitor len */
+       phys_size_t 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;
@@ -85,14 +68,17 @@ typedef struct global_data {
        struct list_head uclass_root;   /* Head of core tree */
 #endif
 #ifdef CONFIG_TIMER
-       struct udevice  *timer; /* Timer instance for Driver Model */
+       struct udevice  *timer;         /* Timer instance for Driver Model */
 #endif
 
-       const void *fdt_blob;   /* Our device tree, NULL if none */
-       void *new_fdt;          /* Relocated FDT */
-       unsigned long fdt_size; /* Space reserved for relocated FDT */
+       const void *fdt_blob;           /* Our device tree, NULL if none */
+       void *new_fdt;                  /* Relocated FDT */
+       unsigned long fdt_size;         /* Space reserved for relocated FDT */
+#ifdef CONFIG_OF_LIVE
+       struct device_node *of_root;
+#endif
        struct jt_funcs *jt;            /* jump table */
-       char env_buf[32];       /* buffer for getenv() before reloc. */
+       char env_buf[32];               /* buffer for env_get() before reloc. */
 #ifdef CONFIG_TRACE
        void            *trace_buff;    /* The trace buffer */
 #endif
@@ -102,9 +88,9 @@ typedef struct global_data {
 #ifdef CONFIG_SYS_I2C_MXC
        void *srdata[10];
 #endif
-       unsigned long timebase_h;
-       unsigned long timebase_l;
-#ifdef CONFIG_SYS_MALLOC_F_LEN
+       unsigned int timebase_h;
+       unsigned int timebase_l;
+#if CONFIG_VAL(SYS_MALLOC_F_LEN)
        unsigned long malloc_base;      /* base address of early malloc() */
        unsigned long malloc_limit;     /* limit address */
        unsigned long malloc_ptr;       /* current address */
@@ -126,9 +112,25 @@ typedef struct global_data {
        ulong video_top;                /* Top of video frame buffer area */
        ulong video_bottom;             /* Bottom of video frame buffer area */
 #endif
+#ifdef CONFIG_BOOTSTAGE
+       struct bootstage_data *bootstage;       /* Bootstage information */
+       struct bootstage_data *new_bootstage;   /* Relocated bootstage info */
+#endif
+#ifdef CONFIG_LOG
+       int log_drop_count;             /* Number of dropped log messages */
+       int default_log_level;          /* For devices with no filters */
+       struct list_head log_head;      /* List of struct log_device */
+       int log_fmt;                    /* Mask containing log format info */
+#endif
 } gd_t;
 #endif
 
+#ifdef CONFIG_BOARD_TYPES
+#define gd_board_type()                gd->board_type
+#else
+#define gd_board_type()                0
+#endif
+
 /*
  * Global Data Flags - the top 16 bits are reserved for arch-specific flags
  */
@@ -143,7 +145,10 @@ typedef struct global_data {
 #define GD_FLG_SERIAL_READY    0x00100 /* Pre-reloc serial console ready  */
 #define GD_FLG_FULL_MALLOC_INIT        0x00200 /* Full malloc() is ready          */
 #define GD_FLG_SPL_INIT                0x00400 /* spl_init() has been called      */
-#define GD_FLG_SKIP_RELOC      0x00800 /* Don't relocate */
-#define GD_FLG_RECORD          0x01000 /* Record console */
+#define GD_FLG_SKIP_RELOC      0x00800 /* Don't relocate                  */
+#define GD_FLG_RECORD          0x01000 /* Record console                  */
+#define GD_FLG_ENV_DEFAULT     0x02000 /* Default variable flag           */
+#define GD_FLG_SPL_EARLY_INIT  0x04000 /* Early SPL init is done          */
+#define GD_FLG_LOG_READY       0x08000 /* Log system is ready for use     */
 
 #endif /* __ASM_GENERIC_GBL_DATA_H */