Ignore:
Timestamp:
Apr 26, 2017, 2:14:33 PM (7 years ago)
Author:
alain
Message:

Modify the boot_info_t struct to describe external peripherals in all clusters.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/arch_info/boot_info.h

    r1 r6  
    3232 ********************************************************************************************/
    3333
    34 #define BOOT_INFO_SIGNATURE    0xBABEF00D
     34#define BOOT_INFO_SIGNATURE    0x12344321
    3535
    3636/*********************************************************************************************
     
    6969typedef struct boot_device_s
    7070{
     71    uint64_t    base;                 /*! segment physical base address                     */
     72    uint64_t    size;                 /*! channel size (bytes)                              */
    7173    uint32_t    type;                 /*! peripheral type (func | impl)                     */
    72     xptr_t      base;                 /*! segment global base address                       */
    73     uint64_t    size;                 /*! channel size (bytes)                              */
    7474    uint32_t    channels;             /*! number of channels                                */
    7575    uint32_t    param0;               /*! semantic depends on peripherat type               */
     
    9090typedef struct boot_info_s
    9191{
    92     uint32_t      signature;         /*! boot info signature                                */
     92    uint32_t      signature;                     /*! boot info signature                    */
    9393
    9494    // global platform parameters
    9595
    96         uint32_t      paddr_width;        /*! number of bits in physical address                */
    97     uint32_t      x_width;            /*! number of bits to code X coordinate               */
    98     uint32_t      y_width;            /*! number of bits to code Y coordinate               */
    99         uint32_t      x_size;             /*! number of cluster in a row                        */
    100         uint32_t      y_size;             /*! number of cluster in a column                     */
    101         uint32_t      io_cxy;             /*! IO cluster identifier                             */
     96        uint32_t      paddr_width;                   /*! number of bits in physical address     */
     97    uint32_t      x_width;                       /*! number of bits to code X coordinate    */
     98    uint32_t      y_width;                       /*! number of bits to code Y coordinate    */
     99        uint32_t      x_size;                        /*! number of cluster in a row             */
     100        uint32_t      y_size;                        /*! number of cluster in a column          */
     101        uint32_t      io_cxy;                        /*! IO cluster identifier                  */
    102102
    103     // specific cluster parameters
     103    // shared resources
    104104
    105         uint32_t      cxy;                /*! current cluster identifier                        */
    106         uint32_t      cores_nr;           /*! number of cores in current cluster                */
    107     boot_core_t   core[CONFIG_MAX_CORES_PER_CLUSTER];   /* array of core descriptors        */ 
    108         uint32_t      devices_nr;         /*! number of peripherals in current cluster          */
    109     boot_device_t dev[CONFIG_MAX_DEVICES_PER_CLUSTER];  /* array of device descriptors      */
    110     uint32_t      pages_nr;           /*! total number of 4 Kbytes pages in cluster         */
    111     uint32_t      pages_offset;       /*! number of pages already allocated for kernel      */
     105    uint32_t      ext_dev_nr;                    /*! number of external peripherals         */
     106    boot_device_t ext_dev[CONFIG_MAX_EXT_DEV];   /*! array of external peripherals          */
     107
     108    // private resources (per cluster)
     109
     110        uint32_t      cxy;                           /*! cluster identifier                     */
     111        uint32_t      cores_nr;                      /*! number of local cores in               */
     112    boot_core_t   core[CONFIG_MAX_LOCAL_CORES];  /*! array of core descriptors              */ 
     113        uint32_t      int_dev_nr;                    /*! number of local peripherals            */
     114    boot_device_t int_dev[CONFIG_MAX_INT_DEV];   /*! array of internal peripherals          */
     115    uint32_t      pages_nr;                      /*! number of 4 Kbytes pages               */
     116    uint32_t      pages_offset;                  /*! number of pages allocated for kernel   */
    112117
    113118    // kernel segments
    114119
    115     intptr_t      kernel_code_start;  /*! kernel code base address                          */
    116     intptr_t      kernel_code_end;    /*! kernel code last address (excluded)               */
    117     intptr_t      kernel_data_start;  /*! kernel data base address                          */
    118     intptr_t      kernel_data_end;    /*! kernel data last address (excluded)               */
     120    intptr_t      kernel_code_start;             /*! kernel code base address               */
     121    intptr_t      kernel_code_end;               /*! kernel code last address (excluded)    */
     122    intptr_t      kernel_data_start;             /*! kernel data base address               */
     123    intptr_t      kernel_data_end;               /*! kernel data last address (excluded)    */
    119124}
    120125boot_info_t;
Note: See TracChangeset for help on using the changeset viewer.