• gd_t结构 bd_t结构


    gd_t在u-boot-2018.07-fmxx/include/asm-generic/global_data.h中定义

    typedef struct global_data {
        bd_t *bd;
        unsigned long flags;
        unsigned int baudrate;
        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 */
    #endif
    #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 */
    #if CONFIG_IS_ENABLED(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;    /* 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_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 */
        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;
        struct global_data *new_gd;    /* relocated global data */

    #ifdef CONFIG_DM
        struct udevice    *dm_root;    /* Root instance for Driver Model */
        struct udevice    *dm_root_f;    /* Pre-relocation root instance */
        struct list_head uclass_root;    /* Head of core tree */
    #endif
    #ifdef CONFIG_TIMER
        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 */
    #ifdef CONFIG_OF_LIVE
        struct device_node *of_root;
    #endif
        struct jt_funcs *jt;        /* jump table */
        char env_buf[32];        /* buffer for env_get() before reloc. */
    #ifdef CONFIG_TRACE
        void        *trace_buff;    /* The trace buffer */
    #endif
    #if defined(CONFIG_SYS_I2C)
        int        cur_i2c_bus;    /* current used i2c bus */
    #endif
    #ifdef CONFIG_SYS_I2C_MXC
        void *srdata[10];
    #endif
        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 */
    #endif
    #ifdef CONFIG_PCI
        struct pci_controller *hose;    /* PCI hose for early use */
        phys_addr_t pci_ram_top;    /* top of region accessible to PCI */
    #endif
    #ifdef CONFIG_PCI_BOOTDELAY
        int pcidelay_done;
    #endif
        struct udevice *cur_serial_dev;    /* current serial device */
        struct arch_global_data arch;    /* architecture-specific data */
    #ifdef CONFIG_CONSOLE_RECORD
        struct membuff console_out;    /* console output */
        struct membuff console_in;    /* console input */
    #endif
    #ifdef CONFIG_DM_VIDEO
        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;

    bd_t在u-boot-2018.07-fmxx/include/asm-generic/global_data.h中定义

    typedef struct bd_info {
        unsigned long    bi_memstart;    /* start of DRAM memory */
        phys_size_t    bi_memsize;    /* size     of DRAM memory in bytes */
        unsigned long    bi_flashstart;    /* start of FLASH memory */
        unsigned long    bi_flashsize;    /* size     of FLASH memory */
        unsigned long    bi_flashoffset; /* reserved area for startup monitor */
        unsigned long    bi_sramstart;    /* start of SRAM memory */
        unsigned long    bi_sramsize;    /* size     of SRAM memory */
    #ifdef CONFIG_ARM
        unsigned long    bi_arm_freq; /* arm frequency */
        unsigned long    bi_dsp_freq; /* dsp core frequency */
        unsigned long    bi_ddr_freq; /* ddr frequency */
    #endif
    #if defined(CONFIG_MPC8xx) || defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
        unsigned long    bi_immr_base;    /* base of IMMR register */
    #endif
    #if defined(CONFIG_M68K)
        unsigned long    bi_mbar_base;    /* base of internal registers */
    #endif
    #if defined(CONFIG_MPC83xx)
        unsigned long    bi_immrbar;
    #endif
        unsigned long    bi_bootflags;    /* boot / reboot flag (Unused) */
        unsigned long    bi_ip_addr;    /* IP Address */
        unsigned char    bi_enetaddr[6];    /* OLD: see README.enetaddr */
        unsigned short    bi_ethspeed;    /* Ethernet speed in Mbps */
        unsigned long    bi_intfreq;    /* Internal Freq, in MHz */
        unsigned long    bi_busfreq;    /* Bus Freq, in MHz */
    #if defined(CONFIG_CPM2)
        unsigned long    bi_cpmfreq;    /* CPM_CLK Freq, in MHz */
        unsigned long    bi_brgfreq;    /* BRG_CLK Freq, in MHz */
        unsigned long    bi_sccfreq;    /* SCC_CLK Freq, in MHz */
        unsigned long    bi_vco;        /* VCO Out from PLL, in MHz */
    #endif
    #if defined(CONFIG_M68K)
        unsigned long    bi_ipbfreq;    /* IPB Bus Freq, in MHz */
        unsigned long    bi_pcifreq;    /* PCI Bus Freq, in MHz */
    #endif
    #if defined(CONFIG_EXTRA_CLOCK)
        unsigned long bi_inpfreq;    /* input Freq in MHz */
        unsigned long bi_vcofreq;    /* vco Freq in MHz */
        unsigned long bi_flbfreq;    /* Flexbus Freq in MHz */
    #endif

    #ifdef CONFIG_HAS_ETH1
        unsigned char   bi_enet1addr[6];    /* OLD: see README.enetaddr */
    #endif
    #ifdef CONFIG_HAS_ETH2
        unsigned char    bi_enet2addr[6];    /* OLD: see README.enetaddr */
    #endif
    #ifdef CONFIG_HAS_ETH3
        unsigned char   bi_enet3addr[6];    /* OLD: see README.enetaddr */
    #endif
    #ifdef CONFIG_HAS_ETH4
        unsigned char   bi_enet4addr[6];    /* OLD: see README.enetaddr */
    #endif
    #ifdef CONFIG_HAS_ETH5
        unsigned char   bi_enet5addr[6];    /* OLD: see README.enetaddr */
    #endif

        ulong            bi_arch_number;    /* unique id for this board */
        ulong            bi_boot_params;    /* where this board expects params */
    #ifdef CONFIG_NR_DRAM_BANKS
        struct {            /* RAM configuration */
            phys_addr_t start;
            phys_size_t size;
        } bi_dram[CONFIG_NR_DRAM_BANKS];
    #endif /* CONFIG_NR_DRAM_BANKS */
    } bd_t;

  • 相关阅读:
    zookeeper
    redis客户端高低版本简单实战、雪崩、击穿、穿透、布隆过滤器(三)
    redis集群理论与实战(二)
    redis集群理论与实战
    oracle单表循环修改表字段
    redis的集群、主从复制、CAP、paxos
    CF1328D Carousel
    AT4842 [ABC136E] Max GCD
    [ABC135D] Digits Parade
    AT4752 [ABC131E] Friendships
  • 原文地址:https://www.cnblogs.com/idyllcheung/p/11627985.html
Copyright © 2020-2023  润新知