diff --git a/hw/ub/ub.c b/hw/ub/ub.c index a02cbbacc242bb67c828878a9a1dfc0470847f9b..30e7b7ce4b90a13bc659373822e8248a29fe6f0e 100644 --- a/hw/ub/ub.c +++ b/hw/ub/ub.c @@ -153,11 +153,8 @@ static void ub_dev_clear_cfg1(UBDevice *dev) cfg1_basic = (UbCfg1Basic *)(dev->config + offset); cfg1_basic->elr = 0; cfg1_basic->elr_done = 0; - cfg1_basic->mig_ctrl = 0; cfg1_basic->sys_pgs = 0; cfg1_basic->eid_upi_tab = 0; - cfg1_basic->ctp_tb_bypass = 0; - cfg1_basic->crystal_dma_en = 0; cfg1_basic->dev_token_id = 0; cfg1_basic->bus_access_en = 0; cfg1_basic->dev_rs_access_en = 0; @@ -307,7 +304,6 @@ static void ub_init_wmask(UBDevice *ub_dev) memset(&cfg0_basic_wmask->fm_eid, 0xff, sizeof(UbEid)); cfg0_basic_wmask->net_addr_info.primary_cna = 0xffffff; cfg0_basic_wmask->upi = ~0; - cfg0_basic_wmask->dev_rst = ~0; cfg0_basic_wmask->mtu_cfg = ~0; cfg0_basic_wmask->cc_en = ~0; cfg0_basic_wmask->th_en = ~0; @@ -323,18 +319,13 @@ static void ub_init_wmask(UBDevice *ub_dev) cfg0_emq_cap_wmask->error_msg_que_ctrlr.correctable_err_report_enable = ~0; cfg0_emq_cap_wmask->error_msg_que_ctrlr.uncorrectable_nonfatal_err_report_enable = ~0; cfg0_emq_cap_wmask->error_msg_que_ctrlr.uncorrectable_fatal_err_report_enable = ~0; - cfg0_emq_cap_wmask->error_msg_que_ctrlr.interrupt_generation_enable = ~0; /* cfg1 basic */ emulated_offset = ub_cfg_offset_to_emulated_offset(UB_CFG1_BASIC_START, true); cfg1_basic_wmask = (UbCfg1Basic *)(ub_dev->wmask + emulated_offset); memset(cfg1_basic_wmask, 0, sizeof(UbCfg1Basic)); - cfg1_basic_wmask->elr = ~0; - cfg1_basic_wmask->mig_ctrl = ~0; cfg1_basic_wmask->sys_pgs = ~0; cfg1_basic_wmask->eid_upi_tab = ~0UL; - cfg1_basic_wmask->ctp_tb_bypass = ~0; - cfg1_basic_wmask->crystal_dma_en = ~0; cfg1_basic_wmask->dev_token_id = ~0; cfg1_basic_wmask->bus_access_en = ~0; cfg1_basic_wmask->dev_rs_access_en = ~0; @@ -915,7 +906,7 @@ static void ub_config_set_port_basic(NeighborInfo *info, UBDevice *dev) /* set wmask */ port_basic_wmask->port_cna = ~0; - port_basic_wmask->port_reset = ~0; + port_basic_w1cmask->port_reset = ~0; } // #pragma GCC pop_options @@ -1453,12 +1444,8 @@ static void ub_dev_get_cfg0_info(Monitor *mon, UBDevice *udev) cfg0->support_feature.bits.route_table_supported); monitor_printf(mon, "│%-24s│%-45u│\n", "cfg0:feat.upi", cfg0->support_feature.bits.upi_supported); - monitor_printf(mon, "│%-24s│%-45u│\n", "cfg0:feat.broker", - cfg0->support_feature.bits.broker_supported); monitor_printf(mon, "│%-24s│%-45u│\n", "cfg0:feat.switch", cfg0->support_feature.bits.switch_supported); - monitor_printf(mon, "│%-24s│%-45u│\n", "config0:feat.rsv", - cfg0->support_feature.bits.rsv); monitor_printf(mon, "│%-24s│%-45u│\n", "cfg0:feat.cc", cfg0->support_feature.bits.cc_supported); monitor_printf(mon, "│%-24s│0x%-8x0x%-8x0x%-8x0x%-13x│\n", @@ -1525,8 +1512,6 @@ static void ub_dev_get_cfg1_info(Monitor *mon, UBDevice *udev) cfg1->support_feature.bits.ers1s); monitor_printf(mon, "│%-24s│%-45u│\n", "cfg1:feat.ers2s", cfg1->support_feature.bits.ers2s); - monitor_printf(mon, "│%-24s│%-45u│\n", "config1:feat.cdmas", - cfg1->support_feature.bits.cdmas); monitor_printf(mon, "│%-24s│%-45u│\n", "config1:feat.matt_juris", cfg1->support_feature.bits.matt_juris); for (i = 0; i < UB_NUM_REGIONS; i++) { @@ -1536,14 +1521,6 @@ static void ub_dev_get_cfg1_info(Monitor *mon, UBDevice *udev) } monitor_printf(mon, "│%-24s│%-20u%-25u│\n", "cfg1:elr elr_done", cfg1->elr, cfg1->elr_done); - monitor_printf(mon, "│%-24s│%-20u%-25u│\n", "cfg1:mig ctrl stat", - cfg1->mig_ctrl, cfg1->mig_status); - monitor_printf(mon, "│%-24s│%-45u│\n", "cfg1:tpid u num", - cfg1->tpid_num); - monitor_printf(mon, "│%-24s│%-45u│\n", "cfg1:ctp_tb_bypass", - cfg1->ctp_tb_bypass); - monitor_printf(mon, "│%-24s│%-45u│\n", "cfg1:crystal_dma_en", - cfg1->crystal_dma_en); monitor_printf(mon, "│%-24s│0x%-21lx0x%-20x│\n", "cfg1:eid_upi tab ten", cfg1->eid_upi_tab, cfg1->eid_upi_ten); monitor_printf(mon, "│%-24s│%-45u│\n", "cfg1:bus_access_en", diff --git a/hw/ub/ub_ubc.c b/hw/ub/ub_ubc.c index ce8201d25614b9df9c74f19cbf8e3645bb1c9814..2369586c268a8156504040d22ade6febb0703f28 100644 --- a/hw/ub/ub_ubc.c +++ b/hw/ub/ub_ubc.c @@ -269,7 +269,6 @@ static void ub_bus_controller_space_cfg0_init(UBDevice *ub_dev) support_feature->bits.mtu_supported = 1; support_feature->bits.route_table_supported = SUPPORTED; support_feature->bits.upi_supported = SUPPORTED; - support_feature->bits.broker_supported = NOT_SUPPORTED; support_feature->bits.switch_supported = SUPPORTED; support_feature->bits.cc_supported = NOT_SUPPORTED; /* SHP CAP */ @@ -312,7 +311,6 @@ static void ub_bus_controller_space_cfg1_init(UBDevice *ub_dev) support_feature->bits.ers0s = SUPPORTED; support_feature->bits.ers1s = NOT_SUPPORTED; support_feature->bits.ers2s = SUPPORTED; - support_feature->bits.cdmas = SUPPORTED; support_feature->bits.matt_juris = UB_DRIVE; cfg1_basic->ers_space_size[0] = UBC_ERS0_SPACE_SIZE; cfg1_basic->ers_space_size[1] = UBC_ERS1_SPACE_SIZE; @@ -360,7 +358,6 @@ static void ub_bus_controller_wmask_init(UBDevice *ub_dev) dec_cap_mask->decoder_ctrl.decoder_en = ~0; memset(&dec_cap_mask->dec_matt_ba, 0xff, sizeof(dec_cap_mask->dec_matt_ba)); memset(&dec_cap_mask->dec_mmio_ba, 0xff, sizeof(dec_cap_mask->dec_mmio_ba)); - memset(&dec_cap_mask->dev_usi_idx, 0xff, sizeof(dec_cap_mask->dev_usi_idx)); dec_cap_mask->decoder_cmdq_cfg.cmdq_en = ~0; dec_cap_mask->decoder_cmdq_cfg.cmdq_size_use = ~0; dec_cap_mask->decoder_cmdq_prod.cmdq_wr_idx = ~0; @@ -388,7 +385,6 @@ static void ub_bus_controller_w1cmask_init(UBDevice *ub_dev) memset(cfg0_shp_w1cmask, 0, UB_SLICE_SZ); for (int i = 0; i < cfg0_shp->slot_num; ++i) { cfg0_shp_w1cmask->slot_info[i].pp_st = ~0; - cfg0_shp_w1cmask->slot_info[i].pd_st = ~0; cfg0_shp_w1cmask->slot_info[i].pdsc_st = ~0; } } diff --git a/include/hw/ub/ub_config.h b/include/hw/ub/ub_config.h index 05b2c19c57a469f6156999f3f999e855347b0a5a..4750c5d4af7a1c98aa9dd2e272833102cbfba1a7 100644 --- a/include/hw/ub/ub_config.h +++ b/include/hw/ub/ub_config.h @@ -146,9 +146,9 @@ typedef struct __attribute__ ((__packed__)) Cfg0SupportFeature { uint8_t mtu_supported : 3; uint8_t route_table_supported : 1; uint8_t upi_supported : 1; - uint8_t broker_supported : 1; + uint8_t rsv1 : 1; uint8_t switch_supported : 1; - uint8_t rsv : 1; + uint8_t rsv2 : 1; uint8_t cc_supported : 1; } bits; }; @@ -182,8 +182,8 @@ typedef struct __attribute__ ((__packed__)) UbCfg0Basic { /* dw26~dw30 */ ConfigNetAddrInfo net_addr_info; // RW /* dw31~dw44 */ - uint32_t upi : 16; // RW - uint32_t rsv1 : 16; + uint32_t upi : 15; // RW + uint32_t rsv1 : 17; uint32_t module_id : 16; // HwInit uint32_t vendor_id : 16; uint32_t dev_rst : 1; // RW @@ -237,7 +237,7 @@ typedef struct __attribute__ ((__packed__)) UbSlotInfo { uint32_t rsv10 : 31; uint8_t pdsc_st : 1; uint32_t rsv11 : 31; - /* dw14~dw17 */ + /* dw14~dw15 */ uint32_t rsv[2]; } UbSlotInfo; @@ -255,9 +255,7 @@ typedef struct __attribute__ ((__packed__)) ErrorMsgQueCtrl { uint64_t correctable_err_report_enable : 1; uint64_t uncorrectable_nonfatal_err_report_enable : 1; uint64_t uncorrectable_fatal_err_report_enable : 1; - uint64_t rsv_1 : 5; - uint64_t interrupt_generation_enable : 1 ; - uint64_t rsv_2 : 55; + uint64_t rsv_1 : 61; } ErrorMsgQueCtrl; typedef struct __attribute__ ((__packed__)) UbCfg0EmqCap { @@ -277,7 +275,7 @@ typedef struct __attribute__ ((__packed__)) Cfg1SupportFeature { uint8_t ers0s : 1; uint8_t ers1s : 1; uint8_t ers2s : 1; - uint8_t cdmas : 1; + uint8_t rsv3 : 1; uint8_t matt_juris : 1; } bits; }; @@ -377,7 +375,7 @@ typedef struct __attribute__ ((__packed__)) UbCfg1IntType1Cap { uint32_t interrupt_enable : 1; uint32_t rsv1 : 31; /* dw2 */ - uint32_t support_int_num : 3; + uint32_t support_interrupt_num : 3; uint32_t rsv2 : 29; /* dw3 */ uint32_t interrupt_enable_num : 3; @@ -426,12 +424,9 @@ typedef struct __attribute__ ((__packed__)) UbCfg1Basic { uint32_t rsv1 : 31; uint32_t elr_done : 1; uint32_t rsv2 : 31; - uint32_t mig_ctrl : 8; - uint32_t rsv3 : 24; - uint32_t mig_status : 8; - uint32_t rsv4 : 24; - uint32_t ers_att : 3; - uint32_t rsv5 : 29; + uint32_t rsv3; + uint32_t rsv4; + uint32_t rsv5; uint32_t sys_pgs : 1; uint32_t rsv6 : 31; uint64_t eid_upi_tab; @@ -440,12 +435,9 @@ typedef struct __attribute__ ((__packed__)) UbCfg1Basic { uint64_t rsv8; uint32_t class_code : 16; uint32_t rsv9 : 16; - uint32_t tpid_num : 16; - uint32_t rsv10 : 16; - uint32_t ctp_tb_bypass : 1; - uint32_t rsv11 : 31; - uint32_t crystal_dma_en : 1; - uint32_t rsv12 : 31; + uint32_t rsv10; + uint32_t rsv11; + uint32_t rsv12; uint32_t dev_token_id : 20; uint32_t rsv13 : 12; uint32_t bus_access_en : 1; @@ -497,8 +489,8 @@ typedef struct __attribute__ ((__packed__)) UbRouteTable { /* slice header default value, unit (4 bytes) */ #define UB_SLICE_VERSION 0x0 -#define UB_CFG0_BASIC_SLICE_USED_SIZE 0x24 -#define UB_CFG1_BASIC_SLICE_USED_SIZE 0x20 +#define UB_CFG0_BASIC_SLICE_USED_SIZE 0x2C +#define UB_CFG1_BASIC_SLICE_USED_SIZE 0x30 #define UB_PORT_BASIC_SLICE_USED_SIZE 0x11 /* ub dev cap */