Skip to content

Commit 80e615a

Browse files
committed
[ot] hw/riscv: ot_earlgrey: Connect lc_ctrl broadcast signals to flash
This commit primarily focuses on adding the LC broadcast signal connections to the flash now that it can support many of these signals. It also does a bit of cleanup, re-organising the many signals coming from the lifecycle manager. Since both the OTP and Flash need the `OT_LC_ESCALATE_EN` and `LC_SEED_HW_RD_EN` signals, these are passed through IRQ splitters. Signed-off-by: Alex Jones <[email protected]>
1 parent aba3373 commit 80e615a

File tree

1 file changed

+42
-14
lines changed

1 file changed

+42
-14
lines changed

hw/riscv/ot_earlgrey.c

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ enum OtEGSocDevice {
161161
OT_EG_SOC_SPLITTER_LC_HW_DEBUG,
162162
OT_EG_SOC_SPLITTER_LC_ESCALATE,
163163
OT_EG_SOC_SPLITTER_LC_SEED_HW_RD,
164+
OT_EG_SOC_SPLITTER_LC_CREATOR_SEED_SW_RW,
164165
};
165166

166167
enum OtEgResetRequest {
@@ -735,23 +736,34 @@ static const IbexDeviceDef ot_eg_soc_devices[] = {
735736
/*
736737
* TODO: add missing life cycle broadcast signals when the required
737738
* supporting HW is available:
738-
* - OT_LC_NVM_DEBUG_EN (for embed. flash)
739739
* - OT_LC_KEYMGR_EN (when keymgr is implemented)
740-
* - OT_LC_CREATOR_SEED_SW_RW_EN (for embed. flash)
741-
* - OT_LC_OWNER_SEED_SW_RW_EN (for embed. flash)
742-
* - OT_LC_ISO_PART_SW_RD_EN (for embed. flash)
743-
* - OT_LC_ISO_PART_SW_WR_EN (for embed. flash)
744-
* - OT_LC_SEED_HW_RD_EN (for embed. flash)
745740
*/
741+
/* Splitters for signals that go to many blocks. */
746742
OT_EG_SOC_D2S(OT_LC_BROADCAST, OT_LC_HW_DEBUG_EN, LC_HW_DEBUG),
747743
OT_EG_SOC_D2S(OT_LC_BROADCAST, OT_LC_ESCALATE_EN, LC_ESCALATE),
748744
OT_EG_SOC_D2S(OT_LC_BROADCAST, OT_LC_SEED_HW_RD_EN, LC_SEED_HW_RD),
745+
OT_EG_SOC_D2S(OT_LC_BROADCAST, OT_LC_CREATOR_SEED_SW_RW_EN,
746+
LC_CREATOR_SEED_SW_RW),
747+
/* Signals to ibex_wrapper */
749748
OT_EG_SOC_SIGNAL(OT_LC_BROADCAST, OT_LC_CPU_EN, IBEX_WRAPPER,
750749
OT_IBEX_WRAPPER_CPU_EN, OT_IBEX_LC_CTRL_CPU_EN),
750+
/* Signals to flash_ctrl */
751+
OT_EG_SOC_SIGNAL(OT_LC_BROADCAST, OT_LC_OWNER_SEED_SW_RW_EN,
752+
FLASH_CTRL, OT_LC_BROADCAST,
753+
OT_FLASH_LC_OWNER_SEED_SW_RW_EN),
754+
OT_EG_SOC_SIGNAL(OT_LC_BROADCAST, OT_LC_SEED_HW_RD_EN, FLASH_CTRL,
755+
OT_LC_BROADCAST, OT_FLASH_LC_SEED_HW_RD_EN),
756+
OT_EG_SOC_SIGNAL(OT_LC_BROADCAST, OT_LC_ISO_PART_SW_RD_EN,
757+
FLASH_CTRL, OT_LC_BROADCAST,
758+
OT_FLASH_LC_ISO_PART_SW_RD_EN),
759+
OT_EG_SOC_SIGNAL(OT_LC_BROADCAST, OT_LC_ISO_PART_SW_WR_EN,
760+
FLASH_CTRL, OT_LC_BROADCAST,
761+
OT_FLASH_LC_ISO_PART_SW_WR_EN),
762+
OT_EG_SOC_SIGNAL(OT_LC_BROADCAST, OT_LC_NVM_DEBUG_EN, FLASH_CTRL,
763+
OT_LC_BROADCAST, OT_FLASH_LC_NVM_DEBUG_EN),
764+
/* Signals to OTP */
751765
OT_EG_SOC_SIGNAL(OT_LC_BROADCAST, OT_LC_CHECK_BYP_EN, OTP_CTRL,
752-
OT_LC_BROADCAST, OT_OTP_LC_CHECK_BYP_EN),
753-
OT_EG_SOC_SIGNAL(OT_LC_BROADCAST, OT_LC_CREATOR_SEED_SW_RW_EN, OTP_CTRL,
754-
OT_LC_BROADCAST, OT_OTP_LC_CREATOR_SEED_SW_RW_EN)
766+
OT_LC_BROADCAST, OT_OTP_LC_CHECK_BYP_EN)
755767
),
756768
.link = IBEXDEVICELINKDEFS(
757769
OT_EG_SOC_DEVLINK("otp_ctrl", OTP_CTRL),
@@ -1377,29 +1389,45 @@ static const IbexDeviceDef ot_eg_soc_devices[] = {
13771389
[OT_EG_SOC_SPLITTER_LC_HW_DEBUG] = {
13781390
.type = TYPE_SPLIT_IRQ,
13791391
.prop = IBEXDEVICEPROPDEFS(
1380-
IBEX_DEV_UINT_PROP("num-lines", 1u) // to be changed
1392+
IBEX_DEV_UINT_PROP("num-lines", 1u) /** @todo to be changed */
13811393
)
13821394
},
13831395
[OT_EG_SOC_SPLITTER_LC_ESCALATE] = {
13841396
.type = TYPE_SPLIT_IRQ,
13851397
.gpio = IBEXGPIOCONNDEFS(
13861398
OT_EG_SOC_S2D(0, OTP_CTRL, OT_LC_BROADCAST,
1387-
OT_OTP_LC_ESCALATE_EN)
1399+
OT_OTP_LC_ESCALATE_EN),
1400+
OT_EG_SOC_S2D(1, FLASH_CTRL, OT_LC_BROADCAST,
1401+
OT_FLASH_LC_ESCALATE_EN)
13881402
),
13891403
.prop = IBEXDEVICEPROPDEFS(
1390-
IBEX_DEV_UINT_PROP("num-lines", 1u) // to be changed
1404+
IBEX_DEV_UINT_PROP("num-lines", 2u) /** @todo to be changed */
13911405
)
13921406
},
13931407
[OT_EG_SOC_SPLITTER_LC_SEED_HW_RD] = {
13941408
.type = TYPE_SPLIT_IRQ,
13951409
.gpio = IBEXGPIOCONNDEFS(
13961410
OT_EG_SOC_S2D(0, OTP_CTRL, OT_LC_BROADCAST,
1397-
OT_OTP_LC_SEED_HW_RD_EN)
1411+
OT_OTP_LC_SEED_HW_RD_EN),
1412+
OT_EG_SOC_S2D(1, FLASH_CTRL, OT_LC_BROADCAST,
1413+
OT_FLASH_LC_SEED_HW_RD_EN)
13981414
),
13991415
.prop = IBEXDEVICEPROPDEFS(
14001416
IBEX_DEV_UINT_PROP("num-lines", 2u)
14011417
)
1402-
}
1418+
},
1419+
[OT_EG_SOC_SPLITTER_LC_CREATOR_SEED_SW_RW] = {
1420+
.type = TYPE_SPLIT_IRQ,
1421+
.gpio = IBEXGPIOCONNDEFS(
1422+
OT_EG_SOC_S2D(0, OTP_CTRL, OT_LC_BROADCAST,
1423+
OT_OTP_LC_CREATOR_SEED_SW_RW_EN),
1424+
OT_EG_SOC_S2D(1, FLASH_CTRL, OT_LC_BROADCAST,
1425+
OT_FLASH_LC_CREATOR_SEED_SW_RW_EN)
1426+
),
1427+
.prop = IBEXDEVICEPROPDEFS(
1428+
IBEX_DEV_UINT_PROP("num-lines", 2u)
1429+
)
1430+
},
14031431
/* clang-format on */
14041432
};
14051433

0 commit comments

Comments
 (0)