aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Kay <chris.kay@arm.com>2020-05-14 20:15:43 +0100
committerChris Kay <chris@cjkay.com>2020-06-08 11:42:52 +0100
commit0a6b545cd0a165c2d3464f616ed08d090b9e1bf9 (patch)
tree8a1e4d6f1eb38ba09335f7e2e1b10352cf592f49
parent148a652a60a5775dec1f5eea9a7086c52ffd50ef (diff)
fwk: Add support for static element tables
Element tables are always expected to be generated at module initialization time. Most modules, however, can provide these elements at compile-time. This commit adds support for doing so. Change-Id: I77c64ddcb6e406cc1eecbf60f1d6b817384ae4f8 Signed-off-by: Chris Kay <chris.kay@arm.com>
-rw-r--r--framework/include/fwk_module.h119
-rw-r--r--framework/src/fwk_module.c20
-rw-r--r--framework/test/test_fwk_module.c8
-rw-r--r--product/juno/module/juno_system/src/mod_juno_system.c5
-rw-r--r--product/juno/scp_ramfw/config_clock.c20
-rw-r--r--product/juno/scp_ramfw/config_debug.c3
-rw-r--r--product/juno/scp_ramfw/config_dvfs.c3
-rw-r--r--product/juno/scp_ramfw/config_i2c.c4
-rw-r--r--product/juno/scp_ramfw/config_juno_adc.c2
-rw-r--r--product/juno/scp_ramfw/config_juno_cdcel937.c10
-rw-r--r--product/juno/scp_ramfw/config_juno_ddr_phy400.c10
-rw-r--r--product/juno/scp_ramfw/config_juno_debug.c10
-rw-r--r--product/juno/scp_ramfw/config_juno_dmc400.c18
-rw-r--r--product/juno/scp_ramfw/config_juno_hdlcd.c2
-rw-r--r--product/juno/scp_ramfw/config_juno_ppu.c15
-rw-r--r--product/juno/scp_ramfw/config_juno_pvt.c2
-rw-r--r--product/juno/scp_ramfw/config_juno_soc_clock_ram.c15
-rw-r--r--product/juno/scp_ramfw/config_juno_thermal.c2
-rw-r--r--product/juno/scp_ramfw/config_juno_xrp7724.c28
-rw-r--r--product/juno/scp_ramfw/config_log.c3
-rw-r--r--product/juno/scp_ramfw/config_mhu.c3
-rw-r--r--product/juno/scp_ramfw/config_mock_psu.c3
-rw-r--r--product/juno/scp_ramfw/config_power_domain.c5
-rw-r--r--product/juno/scp_ramfw/config_psu.c2
-rw-r--r--product/juno/scp_ramfw/config_reg_sensor.c3
-rw-r--r--product/juno/scp_ramfw/config_scmi.c18
-rw-r--r--product/juno/scp_ramfw/config_scmi_perf.c1
-rw-r--r--product/juno/scp_ramfw/config_sds.c3
-rw-r--r--product/juno/scp_ramfw/config_sensor.c3
-rw-r--r--product/juno/scp_ramfw/config_smt.c3
-rw-r--r--product/juno/scp_ramfw/config_system_power.c16
-rw-r--r--product/juno/scp_ramfw/config_timer.c4
-rw-r--r--product/juno/scp_romfw/config_juno_ppu.c3
-rw-r--r--product/juno/scp_romfw/config_log.c3
-rw-r--r--product/juno/scp_romfw/config_sds.c3
-rw-r--r--product/juno/scp_romfw/config_timer.c2
-rw-r--r--product/juno/scp_romfw_bypass/config_juno_ppu.c3
-rw-r--r--product/juno/scp_romfw_bypass/config_log.c3
-rw-r--r--product/juno/scp_romfw_bypass/config_sds.c3
-rw-r--r--product/juno/scp_romfw_bypass/config_timer.c2
-rw-r--r--product/n1sdp/mcp_ramfw/config_log.c2
-rw-r--r--product/n1sdp/mcp_ramfw/config_mhu.c2
-rw-r--r--product/n1sdp/mcp_ramfw/config_pik_clock.c2
-rw-r--r--product/n1sdp/mcp_ramfw/config_scmi_agent.c3
-rw-r--r--product/n1sdp/mcp_ramfw/config_smt.c2
-rw-r--r--product/n1sdp/mcp_romfw/config_log.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_clock.c19
-rw-r--r--product/n1sdp/scp_ramfw/config_cmn600.c1
-rw-r--r--product/n1sdp/scp_ramfw/config_css_clock.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_debugger_cli.c1
-rw-r--r--product/n1sdp/scp_ramfw/config_log.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_mhu.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_n1sdp_ddr_phy.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_n1sdp_dmc620.c14
-rw-r--r--product/n1sdp/scp_ramfw/config_n1sdp_i2c.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_n1sdp_pcie.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_n1sdp_pll.c12
-rw-r--r--product/n1sdp/scp_ramfw/config_n1sdp_remote_pd.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_n1sdp_timer_sync.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_pik_clock.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_power_domain.c4
-rw-r--r--product/n1sdp/scp_ramfw/config_ppu_v0.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_ppu_v1.c3
-rw-r--r--product/n1sdp/scp_ramfw/config_scmi.c18
-rw-r--r--product/n1sdp/scp_ramfw/config_sds.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_sensor.c21
-rw-r--r--product/n1sdp/scp_ramfw/config_smt.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_ssc.c1
-rw-r--r--product/n1sdp/scp_ramfw/config_system_info.c1
-rw-r--r--product/n1sdp/scp_ramfw/config_system_power.c2
-rw-r--r--product/n1sdp/scp_ramfw/config_timer.c4
-rw-r--r--product/n1sdp/scp_romfw/config_log.c2
-rw-r--r--product/rddaniel/mcp_romfw/config_log.c2
-rw-r--r--product/rddaniel/scp_ramfw/config_clock.c19
-rw-r--r--product/rddaniel/scp_ramfw/config_cmn_rhodes.c3
-rw-r--r--product/rddaniel/scp_ramfw/config_css_clock.c2
-rw-r--r--product/rddaniel/scp_ramfw/config_gtimer.c2
-rw-r--r--product/rddaniel/scp_ramfw/config_mhu2.c2
-rw-r--r--product/rddaniel/scp_ramfw/config_pik_clock.c2
-rw-r--r--product/rddaniel/scp_ramfw/config_power_domain.c3
-rw-r--r--product/rddaniel/scp_ramfw/config_ppu_v1.c2
-rw-r--r--product/rddaniel/scp_ramfw/config_scmi.c18
-rw-r--r--product/rddaniel/scp_ramfw/config_sds.c2
-rw-r--r--product/rddaniel/scp_ramfw/config_smt.c2
-rw-r--r--product/rddaniel/scp_ramfw/config_system_pll.c2
-rw-r--r--product/rddaniel/scp_ramfw/config_system_power.c2
-rw-r--r--product/rddaniel/scp_ramfw/config_timer.c2
-rw-r--r--product/rddaniel/src/config_pl011.c2
-rw-r--r--product/rddaniel/src/config_sid.c3
-rw-r--r--product/rddaniel/src/config_system_info.c1
-rw-r--r--product/rddanielxlr/mcp_romfw/config_log.c2
-rw-r--r--product/rddanielxlr/scp_ramfw/config_clock.c20
-rw-r--r--product/rddanielxlr/scp_ramfw/config_cmn_rhodes.c3
-rw-r--r--product/rddanielxlr/scp_ramfw/config_css_clock.c2
-rw-r--r--product/rddanielxlr/scp_ramfw/config_gtimer.c2
-rw-r--r--product/rddanielxlr/scp_ramfw/config_mhu2.c2
-rw-r--r--product/rddanielxlr/scp_ramfw/config_pik_clock.c2
-rw-r--r--product/rddanielxlr/scp_ramfw/config_power_domain.c3
-rw-r--r--product/rddanielxlr/scp_ramfw/config_ppu_v1.c2
-rw-r--r--product/rddanielxlr/scp_ramfw/config_scmi.c5
-rw-r--r--product/rddanielxlr/scp_ramfw/config_sds.c2
-rw-r--r--product/rddanielxlr/scp_ramfw/config_smt.c2
-rw-r--r--product/rddanielxlr/scp_ramfw/config_system_pll.c2
-rw-r--r--product/rddanielxlr/scp_ramfw/config_system_power.c3
-rw-r--r--product/rddanielxlr/scp_ramfw/config_timer.c2
-rw-r--r--product/rddanielxlr/src/config_pl011.c2
-rw-r--r--product/rddanielxlr/src/config_sid.c3
-rw-r--r--product/rddanielxlr/src/config_system_info.c1
-rw-r--r--product/rdn1e1/mcp_romfw/config_log.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_clock.c19
-rw-r--r--product/rdn1e1/scp_ramfw/config_cmn600.c1
-rw-r--r--product/rdn1e1/scp_ramfw/config_css_clock.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_ddr_phy500.c8
-rw-r--r--product/rdn1e1/scp_ramfw/config_dmc620.c8
-rw-r--r--product/rdn1e1/scp_ramfw/config_dvfs.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_log.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_mhu2.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_mock_psu.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_pik_clock.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_power_domain.c3
-rw-r--r--product/rdn1e1/scp_ramfw/config_ppu_v0.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_ppu_v1.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_psu.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_scmi.c18
-rw-r--r--product/rdn1e1/scp_ramfw/config_scmi_perf.c1
-rw-r--r--product/rdn1e1/scp_ramfw/config_sds.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_sensor.c4
-rw-r--r--product/rdn1e1/scp_ramfw/config_smt.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_system_pll.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_system_power.c2
-rw-r--r--product/rdn1e1/scp_ramfw/config_timer.c4
-rw-r--r--product/rdn1e1/scp_romfw/config_gtimer.c2
-rw-r--r--product/rdn1e1/scp_romfw/config_log.c2
-rw-r--r--product/rdn1e1/src/config_sid.c3
-rw-r--r--product/rdn1e1/src/config_system_info.c12
-rw-r--r--product/sgi575/mcp_romfw/config_log.c2
-rw-r--r--product/sgi575/scp_ramfw/config_clock.c19
-rw-r--r--product/sgi575/scp_ramfw/config_cmn600.c7
-rw-r--r--product/sgi575/scp_ramfw/config_css_clock.c2
-rw-r--r--product/sgi575/scp_ramfw/config_ddr_phy500.c8
-rw-r--r--product/sgi575/scp_ramfw/config_dmc620.c14
-rw-r--r--product/sgi575/scp_ramfw/config_dvfs.c2
-rw-r--r--product/sgi575/scp_ramfw/config_log.c2
-rw-r--r--product/sgi575/scp_ramfw/config_mhu.c2
-rw-r--r--product/sgi575/scp_ramfw/config_mock_psu.c2
-rw-r--r--product/sgi575/scp_ramfw/config_pik_clock.c2
-rw-r--r--product/sgi575/scp_ramfw/config_power_domain.c3
-rw-r--r--product/sgi575/scp_ramfw/config_ppu_v0.c2
-rw-r--r--product/sgi575/scp_ramfw/config_ppu_v1.c2
-rw-r--r--product/sgi575/scp_ramfw/config_psu.c2
-rw-r--r--product/sgi575/scp_ramfw/config_scmi.c5
-rw-r--r--product/sgi575/scp_ramfw/config_scmi_perf.c3
-rw-r--r--product/sgi575/scp_ramfw/config_sds.c2
-rw-r--r--product/sgi575/scp_ramfw/config_sensor.c4
-rw-r--r--product/sgi575/scp_ramfw/config_smt.c2
-rw-r--r--product/sgi575/scp_ramfw/config_ssc.c9
-rw-r--r--product/sgi575/scp_ramfw/config_system_info.c12
-rw-r--r--product/sgi575/scp_ramfw/config_system_pll.c2
-rw-r--r--product/sgi575/scp_ramfw/config_system_power.c2
-rw-r--r--product/sgi575/scp_ramfw/config_timer.c4
-rw-r--r--product/sgi575/scp_romfw/config_gtimer.c2
-rw-r--r--product/sgi575/scp_romfw/config_log.c2
-rw-r--r--product/sgm775/scp_ramfw/config_clock.c5
-rw-r--r--product/sgm775/scp_ramfw/config_css_clock.c3
-rw-r--r--product/sgm775/scp_ramfw/config_debugger_cli.c1
-rw-r--r--product/sgm775/scp_ramfw/config_dvfs.c3
-rw-r--r--product/sgm775/scp_ramfw/config_log.c3
-rw-r--r--product/sgm775/scp_ramfw/config_mhu.c2
-rw-r--r--product/sgm775/scp_ramfw/config_mock_psu.c3
-rw-r--r--product/sgm775/scp_ramfw/config_pik_clock.c3
-rw-r--r--product/sgm775/scp_ramfw/config_power_domain.c3
-rw-r--r--product/sgm775/scp_ramfw/config_ppu_v0.c3
-rw-r--r--product/sgm775/scp_ramfw/config_ppu_v1.c2
-rw-r--r--product/sgm775/scp_ramfw/config_psu.c3
-rw-r--r--product/sgm775/scp_ramfw/config_scmi.c5
-rw-r--r--product/sgm775/scp_ramfw/config_scmi_perf.c3
-rw-r--r--product/sgm775/scp_ramfw/config_scmi_system_power.c6
-rw-r--r--product/sgm775/scp_ramfw/config_sds.c2
-rw-r--r--product/sgm775/scp_ramfw/config_sensor.c5
-rw-r--r--product/sgm775/scp_ramfw/config_sgm775_ddr_phy500.c4
-rw-r--r--product/sgm775/scp_ramfw/config_sgm775_dmc500.c8
-rw-r--r--product/sgm775/scp_ramfw/config_smt.c2
-rw-r--r--product/sgm775/scp_ramfw/config_system_pll.c3
-rw-r--r--product/sgm775/scp_ramfw/config_system_power.c23
-rw-r--r--product/sgm775/scp_ramfw/config_timer.c4
-rw-r--r--product/sgm775/scp_romfw/config_clock.c16
-rw-r--r--product/sgm775/scp_romfw/config_css_clock.c2
-rw-r--r--product/sgm775/scp_romfw/config_log.c3
-rw-r--r--product/sgm775/scp_romfw/config_pik_clock.c2
-rw-r--r--product/sgm775/scp_romfw/config_ppu_v0.c2
-rw-r--r--product/sgm775/scp_romfw/config_ppu_v1.c16
-rw-r--r--product/sgm775/scp_romfw/config_sds.c2
-rw-r--r--product/sgm775/scp_romfw/config_system_pll.c2
-rw-r--r--product/sgm775/scp_romfw/config_timer.c4
-rw-r--r--product/sgm775/src/config_sid.c3
-rw-r--r--product/sgm775/src/config_system_info.c12
-rw-r--r--product/sgm776/scp_ramfw/config_clock.c20
-rw-r--r--product/sgm776/scp_ramfw/config_css_clock.c2
-rw-r--r--product/sgm776/scp_ramfw/config_ddr_phy500.c10
-rw-r--r--product/sgm776/scp_ramfw/config_dmc500.c18
-rw-r--r--product/sgm776/scp_ramfw/config_dvfs.c2
-rw-r--r--product/sgm776/scp_ramfw/config_log.c3
-rw-r--r--product/sgm776/scp_ramfw/config_mhu.c2
-rw-r--r--product/sgm776/scp_ramfw/config_mock_psu.c2
-rw-r--r--product/sgm776/scp_ramfw/config_pik_clock.c2
-rw-r--r--product/sgm776/scp_ramfw/config_power_domain.c3
-rw-r--r--product/sgm776/scp_ramfw/config_ppu_v1.c2
-rw-r--r--product/sgm776/scp_ramfw/config_psu.c2
-rw-r--r--product/sgm776/scp_ramfw/config_scmi.c18
-rw-r--r--product/sgm776/scp_ramfw/config_scmi_system_power.c6
-rw-r--r--product/sgm776/scp_ramfw/config_sds.c2
-rw-r--r--product/sgm776/scp_ramfw/config_sensor.c5
-rw-r--r--product/sgm776/scp_ramfw/config_smt.c2
-rw-r--r--product/sgm776/scp_ramfw/config_system_pll.c2
-rw-r--r--product/sgm776/scp_ramfw/config_system_power.c23
-rw-r--r--product/sgm776/scp_ramfw/config_timer.c4
-rw-r--r--product/sgm776/scp_romfw/config_clock.c16
-rw-r--r--product/sgm776/scp_romfw/config_css_clock.c2
-rw-r--r--product/sgm776/scp_romfw/config_log.c3
-rw-r--r--product/sgm776/scp_romfw/config_pik_clock.c2
-rw-r--r--product/sgm776/scp_romfw/config_ppu_v1.c15
-rw-r--r--product/sgm776/scp_romfw/config_sds.c2
-rw-r--r--product/sgm776/scp_romfw/config_system_pll.c2
-rw-r--r--product/sgm776/scp_romfw/config_timer.c4
-rw-r--r--product/sgm776/src/config_sid.c3
-rw-r--r--product/sgm776/src/config_system_info.c12
-rw-r--r--product/synquacer/scp_ramfw/config_ccn512.c1
-rw-r--r--product/synquacer/scp_ramfw/config_css_clock.c2
-rw-r--r--product/synquacer/scp_ramfw/config_f_i2c.c4
-rw-r--r--product/synquacer/scp_ramfw/config_hsspi.c4
-rw-r--r--product/synquacer/scp_ramfw/config_log_f_uart3.c2
-rw-r--r--product/synquacer/scp_ramfw/config_log_pl011.c2
-rw-r--r--product/synquacer/scp_ramfw/config_mhu.c2
-rw-r--r--product/synquacer/scp_ramfw/config_pik_clock.c2
-rw-r--r--product/synquacer/scp_ramfw/config_power_domain.c3
-rw-r--r--product/synquacer/scp_ramfw/config_ppu_v0_synquacer.c2
-rw-r--r--product/synquacer/scp_ramfw/config_scmi.c18
-rw-r--r--product/synquacer/scp_ramfw/config_smt.c2
-rw-r--r--product/synquacer/scp_ramfw/config_synquacer_memc.c4
-rw-r--r--product/synquacer/scp_ramfw/config_system_power.c23
-rw-r--r--product/synquacer/scp_ramfw/config_timer.c4
-rw-r--r--product/synquacer/scp_romfw/config_log_f_uart3.c2
-rw-r--r--product/synquacer/scp_romfw/config_synquacer_pik_clock.c2
-rw-r--r--product/synquacer/scp_romfw/config_timer.c4
-rw-r--r--product/tc0/scp_ramfw/config_clock.c4
-rw-r--r--product/tc0/scp_ramfw/config_css_clock.c2
-rw-r--r--product/tc0/scp_ramfw/config_dvfs.c2
-rw-r--r--product/tc0/scp_ramfw/config_gtimer.c2
-rw-r--r--product/tc0/scp_ramfw/config_mhu2.c2
-rw-r--r--product/tc0/scp_ramfw/config_mock_psu.c2
-rw-r--r--product/tc0/scp_ramfw/config_pik_clock.c2
-rw-r--r--product/tc0/scp_ramfw/config_power_domain.c2
-rw-r--r--product/tc0/scp_ramfw/config_ppu_v1.c2
-rw-r--r--product/tc0/scp_ramfw/config_psu.c2
-rw-r--r--product/tc0/scp_ramfw/config_scmi.c4
-rw-r--r--product/tc0/scp_ramfw/config_scmi_perf.c4
-rw-r--r--product/tc0/scp_ramfw/config_sds.c2
-rw-r--r--product/tc0/scp_ramfw/config_smt.c2
-rw-r--r--product/tc0/scp_ramfw/config_system_pll.c2
-rw-r--r--product/tc0/scp_ramfw/config_system_power.c2
-rw-r--r--product/tc0/scp_ramfw/config_timer.c2
-rw-r--r--product/tc0/scp_romfw/config_clock.c4
-rw-r--r--product/tc0/scp_romfw/config_cmn_booker.c8
-rw-r--r--product/tc0/scp_romfw/config_css_clock.c2
-rw-r--r--product/tc0/scp_romfw/config_gtimer.c2
-rw-r--r--product/tc0/scp_romfw/config_pik_clock.c2
-rw-r--r--product/tc0/scp_romfw/config_ppu_v1.c14
-rw-r--r--product/tc0/scp_romfw/config_sds.c2
-rw-r--r--product/tc0/scp_romfw/config_system_pll.c2
-rw-r--r--product/tc0/scp_romfw/config_timer.c2
-rw-r--r--product/tc0/src/config_pl011.c2
271 files changed, 773 insertions, 633 deletions
diff --git a/framework/include/fwk_module.h b/framework/include/fwk_module.h
index 017e114e..0d7f305a 100644
--- a/framework/include/fwk_module.h
+++ b/framework/include/fwk_module.h
@@ -288,28 +288,117 @@ struct fwk_module {
};
/*!
- * \brief Module configuration.
+ * \brief Define a static element table with the content of the table.
+ *
+ * \param[in] ... An array of elements in the form `{ X, Y, Z, { 0 } }`.
+ *
+ * \see ::fwk_module_elements::table
*/
-struct fwk_module_config {
+#define FWK_MODULE_STATIC_ELEMENTS(...) \
+ { \
+ .type = FWK_MODULE_ELEMENTS_TYPE_STATIC, \
+ .table = (const struct fwk_element[])__VA_ARGS__, \
+ }
+
+/*!
+ * \brief Define a static element table with a pointer to the table.
+ *
+ * \details Some element tables require extra preprocessing beforehand. As it is
+ * undefined behaviour for preprocessing macros to occur within macro
+ * argument lists, this macro has been provided to work around this
+ * language restriction.
+ *
+ * \param[in] TABLE Pointer to the static element table.
+ *
+ * \see ::fwk_module_elements::table
+ */
+#define FWK_MODULE_STATIC_ELEMENTS_PTR(TABLE) \
+ { \
+ .type = FWK_MODULE_ELEMENTS_TYPE_STATIC, \
+ .table = TABLE, \
+ }
+
+/*!
+ * \brief Define a dynamic element table.
+ *
+ * \details Element table generators are functions that take a module identifier
+ * and return an element table. They will be called once the module has
+ * begun initialization, and may allocate a variable number of elements.
+ *
+ * \param[in] GENERATOR Function to generate the element table.
+ *
+ * \see ::fwk_module_elements::generator
+ */
+#define FWK_MODULE_DYNAMIC_ELEMENTS(GENERATOR) \
+ { \
+ .type = FWK_MODULE_ELEMENTS_TYPE_DYNAMIC, \
+ .generator = (GENERATOR), \
+ }
+
+/*!
+ * \brief Element table type.
+ */
+enum fwk_module_elements_type {
+ FWK_MODULE_ELEMENTS_TYPE_STATIC, /*<! Static element table. */
+ FWK_MODULE_ELEMENTS_TYPE_DYNAMIC, /*<! Dynamic element table. */
+};
+
+/*!
+ * \brief Element table.
+ */
+struct fwk_module_elements {
/*!
- * \brief Pointer to the function to get the table of element descriptions.
- *
- * \param module_id Identifier of the module.
+ * \brief Element table type.
*
- * \details The table of module element descriptions ends with an invalid
- * element description where the pointer to the element name is
- * equal to NULL.
- *
- * \warning The framework does not copy the element description data and
- * keep a pointer to the ones returned by this function. Pointers
- * returned by this function must thus points to data with static
- * storage or data stored in memory allocated from the memory
- * management component.
+ * \details Elements may be statically defined, or they can be generated
+ * once the module comes online.
*/
- const struct fwk_element *(*get_element_table)(fwk_id_t module_id);
+ enum fwk_module_elements_type type;
+ /*!
+ * \brief Element table data.
+ */
+ union {
+ /*!
+ * \brief Pointer to the function to get the table of element
+ * descriptions.
+ *
+ * \param[in] module_id Identifier of the module.
+ *
+ * \details The table of module element descriptions ends with an
+ * invalid element description where the pointer to the element
+ * name is equal to `NULL`.
+ *
+ * \warning The framework does not copy the element description data
+ * and keep a pointer to the ones returned by this function.
+ * Pointers returned by this function must thus points to data
+ * with static storage or data stored in memory allocated from
+ * the memory management component.
+ *
+ * \return Pointer to table of element descriptions.
+ */
+ const struct fwk_element *(*generator)(fwk_id_t module_id);
+
+ /*!
+ * \brief Table of element descriptions.
+ *
+ * \details The table of module element descriptions ends with an
+ * invalid element description where the pointer to the element
+ * name is equal to `NULL`.
+ */
+ const struct fwk_element *table;
+ };
+};
+
+/*!
+ * \brief Module configuration.
+ */
+struct fwk_module_config {
/*! Pointer to the module-specific configuration data */
const void *data;
+
+ /*! Element table */
+ struct fwk_module_elements elements;
};
/*!
diff --git a/framework/src/fwk_module.c b/framework/src/fwk_module.c
index 5b36c0b0..5c484a41 100644
--- a/framework/src/fwk_module.c
+++ b/framework/src/fwk_module.c
@@ -179,11 +179,23 @@ static int init_module(struct fwk_module_ctx *module_ctx,
}
#endif
- if (module_config->get_element_table != NULL) {
- element_table = module_config->get_element_table(module_ctx->id);
- if (!fwk_expect(element_table != NULL))
- return FWK_E_PARAM;
+ switch (module_config->elements.type) {
+ case FWK_MODULE_ELEMENTS_TYPE_STATIC:
+ element_table = module_config->elements.table;
+
+ break;
+
+ case FWK_MODULE_ELEMENTS_TYPE_DYNAMIC:
+ if (module_config->elements.generator != NULL) {
+ element_table = module_config->elements.generator(module_ctx->id);
+ if (!fwk_expect(element_table != NULL))
+ return FWK_E_PARAM;
+ }
+
+ break;
+ }
+ if (element_table != NULL) {
for (count = 0; element_table[count].name != NULL; count++)
continue;
diff --git a/framework/test/test_fwk_module.c b/framework/test/test_fwk_module.c
index c8b97d82..18ef04f5 100644
--- a/framework/test/test_fwk_module.c
+++ b/framework/test/test_fwk_module.c
@@ -277,10 +277,12 @@ static void test_case_setup(void)
fake_element_desc_table1[1].name = NULL;
fake_element_desc_table1[1].data = NULL;
- fake_module_config0.get_element_table = get_element_table0;
+ fake_module_config0.elements.type = FWK_MODULE_ELEMENTS_TYPE_DYNAMIC;
+ fake_module_config0.elements.generator = get_element_table0;
fake_module_config0.data = &config_module0;
- fake_module_config1.get_element_table = get_element_table1;
+ fake_module_config1.elements.type = FWK_MODULE_ELEMENTS_TYPE_DYNAMIC;
+ fake_module_config1.elements.generator = get_element_table1;
fake_module_config1.data = &config_module1;
module_table[0] = &fake_module_desc0;
@@ -539,7 +541,7 @@ static void test___fwk_module_init_succeed(void)
fake_module_desc1.start = NULL;
/* Module 1 has no element */
- fake_module_config1.get_element_table = NULL;
+ fake_module_config1.elements.generator = NULL;
bind_count_call = 0;
start_count_call = 0;
diff --git a/product/juno/module/juno_system/src/mod_juno_system.c b/product/juno/module/juno_system/src/mod_juno_system.c
index 774da4c9..f39deba4 100644
--- a/product/juno/module/juno_system/src/mod_juno_system.c
+++ b/product/juno/module/juno_system/src/mod_juno_system.c
@@ -372,7 +372,4 @@ const struct fwk_module module_juno_system = {
};
/* No elements, no configuration data */
-struct fwk_module_config config_juno_system = {
- .get_element_table = NULL,
- .data = NULL,
-};
+struct fwk_module_config config_juno_system = { 0 };
diff --git a/product/juno/scp_ramfw/config_clock.c b/product/juno/scp_ramfw/config_clock.c
index 1b0ca8f4..ac017cfa 100644
--- a/product/juno/scp_ramfw/config_clock.c
+++ b/product/juno/scp_ramfw/config_clock.c
@@ -112,13 +112,15 @@ static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
}
struct fwk_module_config config_clock = {
- .get_element_table = clock_get_dev_desc_table,
- .data = &((struct mod_clock_config) {
- .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
- .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
- }),
+ .data =
+ &(struct mod_clock_config){
+ .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
+ .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(clock_get_dev_desc_table),
};
diff --git a/product/juno/scp_ramfw/config_debug.c b/product/juno/scp_ramfw/config_debug.c
index 1417ee94..61506a7e 100644
--- a/product/juno/scp_ramfw/config_debug.c
+++ b/product/juno/scp_ramfw/config_debug.c
@@ -32,6 +32,5 @@ static const struct fwk_element *get_debug_element_table(fwk_id_t module_id)
/* Configuration of the Debug module */
struct fwk_module_config config_debug = {
- .get_element_table = get_debug_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_debug_element_table),
};
diff --git a/product/juno/scp_ramfw/config_dvfs.c b/product/juno/scp_ramfw/config_dvfs.c
index b16899e9..bbf85195 100644
--- a/product/juno/scp_ramfw/config_dvfs.c
+++ b/product/juno/scp_ramfw/config_dvfs.c
@@ -420,6 +420,5 @@ static const struct fwk_element *dvfs_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_dvfs = {
- .get_element_table = dvfs_get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(dvfs_get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_i2c.c b/product/juno/scp_ramfw/config_i2c.c
index 0ebf9591..ae5b0607 100644
--- a/product/juno/scp_ramfw/config_i2c.c
+++ b/product/juno/scp_ramfw/config_i2c.c
@@ -38,7 +38,7 @@ static const struct fwk_element *dw_apb_i2c_get_element_table(
}
struct fwk_module_config config_dw_apb_i2c = {
- .get_element_table = dw_apb_i2c_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(dw_apb_i2c_get_element_table),
};
static const struct fwk_element i2c_element_table[] = {
@@ -59,5 +59,5 @@ static const struct fwk_element *i2c_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_i2c = {
- .get_element_table = i2c_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(i2c_get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_juno_adc.c b/product/juno/scp_ramfw/config_juno_adc.c
index f3f86032..3efdeefa 100644
--- a/product/juno/scp_ramfw/config_juno_adc.c
+++ b/product/juno/scp_ramfw/config_juno_adc.c
@@ -68,5 +68,5 @@ static const struct fwk_element *get_adc_juno_element_table(fwk_id_t id)
}
struct fwk_module_config config_juno_adc = {
- .get_element_table = get_adc_juno_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_adc_juno_element_table),
};
diff --git a/product/juno/scp_ramfw/config_juno_cdcel937.c b/product/juno/scp_ramfw/config_juno_cdcel937.c
index 02f4f8c9..fc9a8004 100644
--- a/product/juno/scp_ramfw/config_juno_cdcel937.c
+++ b/product/juno/scp_ramfw/config_juno_cdcel937.c
@@ -203,8 +203,10 @@ static const struct fwk_element *juno_cdcel937_get_element_table(
}
struct fwk_module_config config_juno_cdcel937 = {
- .get_element_table = juno_cdcel937_get_element_table,
- .data = &(struct mod_juno_cdcel937_config) {
- .i2c_hal_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_I2C, 0),
- },
+ .data =
+ &(struct mod_juno_cdcel937_config){
+ .i2c_hal_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_I2C, 0),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(juno_cdcel937_get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_juno_ddr_phy400.c b/product/juno/scp_ramfw/config_juno_ddr_phy400.c
index 1f298a29..071ff374 100644
--- a/product/juno/scp_ramfw/config_juno_ddr_phy400.c
+++ b/product/juno/scp_ramfw/config_juno_ddr_phy400.c
@@ -47,8 +47,10 @@ static const struct fwk_element *juno_ddr_phy400_get_element_table
}
struct fwk_module_config config_juno_ddr_phy400 = {
- .get_element_table = juno_ddr_phy400_get_element_table,
- .data = &((struct mod_juno_ddr_phy400_config) {
- .timer_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0),
- })
+ .data =
+ &(struct mod_juno_ddr_phy400_config){
+ .timer_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(juno_ddr_phy400_get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_juno_debug.c b/product/juno/scp_ramfw/config_juno_debug.c
index 60c7b5b7..57b1b7a3 100644
--- a/product/juno/scp_ramfw/config_juno_debug.c
+++ b/product/juno/scp_ramfw/config_juno_debug.c
@@ -69,8 +69,10 @@ static const struct fwk_element *get_juno_debug_elem_table(fwk_id_t module_id)
}
struct fwk_module_config config_juno_debug = {
- .get_element_table = get_juno_debug_elem_table,
- .data = &((struct mod_juno_debug_config) {
- .timer_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0),
- }),
+ .data =
+ &(struct mod_juno_debug_config){
+ .timer_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_juno_debug_elem_table),
};
diff --git a/product/juno/scp_ramfw/config_juno_dmc400.c b/product/juno/scp_ramfw/config_juno_dmc400.c
index 467989e3..bfe68e9c 100644
--- a/product/juno/scp_ramfw/config_juno_dmc400.c
+++ b/product/juno/scp_ramfw/config_juno_dmc400.c
@@ -111,12 +111,14 @@ static const struct fwk_element *juno_dmc400_get_element_table
/* Configuration of the Juno DMC400 module */
struct fwk_module_config config_juno_dmc400 = {
- .get_element_table = juno_dmc400_get_element_table,
- .data = &((struct mod_juno_dmc400_module_config) {
- .timer_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0),
- .ddr_phy_module_id =
- FWK_ID_MODULE_INIT(FWK_MODULE_IDX_JUNO_DDR_PHY400),
- .ddr_phy_api_id =
- FWK_ID_API_INIT(FWK_MODULE_IDX_JUNO_DDR_PHY400, 0),
- })
+ .data =
+ &(struct mod_juno_dmc400_module_config){
+ .timer_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0),
+ .ddr_phy_module_id =
+ FWK_ID_MODULE_INIT(FWK_MODULE_IDX_JUNO_DDR_PHY400),
+ .ddr_phy_api_id =
+ FWK_ID_API_INIT(FWK_MODULE_IDX_JUNO_DDR_PHY400, 0),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(juno_dmc400_get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_juno_hdlcd.c b/product/juno/scp_ramfw/config_juno_hdlcd.c
index 43d81484..df5cc12d 100644
--- a/product/juno/scp_ramfw/config_juno_hdlcd.c
+++ b/product/juno/scp_ramfw/config_juno_hdlcd.c
@@ -120,5 +120,5 @@ static const struct fwk_element *juno_hdlcd_get_element_table(
}
struct fwk_module_config config_juno_hdlcd = {
- .get_element_table = juno_hdlcd_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(juno_hdlcd_get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_juno_ppu.c b/product/juno/scp_ramfw/config_juno_ppu.c
index aba07a96..61c27e07 100644
--- a/product/juno/scp_ramfw/config_juno_ppu.c
+++ b/product/juno/scp_ramfw/config_juno_ppu.c
@@ -135,10 +135,13 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_juno_ppu = {
- .get_element_table = get_element_table,
- .data = &((struct mod_juno_ppu_config) {
- .timer_alarm_id = FWK_ID_SUB_ELEMENT_INIT(FWK_MODULE_IDX_TIMER,
- 0,
- JUNO_PPU_ALARM_IDX),
- }),
+ .data =
+ &(struct mod_juno_ppu_config){
+ .timer_alarm_id = FWK_ID_SUB_ELEMENT_INIT(
+ FWK_MODULE_IDX_TIMER,
+ 0,
+ JUNO_PPU_ALARM_IDX),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_juno_pvt.c b/product/juno/scp_ramfw/config_juno_pvt.c
index 214821a0..72d8e3a5 100644
--- a/product/juno/scp_ramfw/config_juno_pvt.c
+++ b/product/juno/scp_ramfw/config_juno_pvt.c
@@ -265,5 +265,5 @@ static const struct fwk_element *get_pvt_juno_element_table(fwk_id_t id)
}
struct fwk_module_config config_juno_pvt = {
- .get_element_table = get_pvt_juno_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pvt_juno_element_table),
};
diff --git a/product/juno/scp_ramfw/config_juno_soc_clock_ram.c b/product/juno/scp_ramfw/config_juno_soc_clock_ram.c
index c765ce38..4a454d85 100644
--- a/product/juno/scp_ramfw/config_juno_soc_clock_ram.c
+++ b/product/juno/scp_ramfw/config_juno_soc_clock_ram.c
@@ -475,12 +475,17 @@ static const struct fwk_element *juno_soc_clock_ram_get_element_table
}
struct fwk_module_config config_juno_soc_clock_ram = {
- .get_element_table = juno_soc_clock_ram_get_element_table,
- .data = &((struct mod_juno_soc_clock_ram_config) {
+ .data =
+ &(struct mod_juno_soc_clock_ram_config){
.timer_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0),
- .debug_pd_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_POWER_DOMAIN,
+ .debug_pd_id = FWK_ID_ELEMENT_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
POWER_DOMAIN_IDX_DBGSYS),
- .systop_pd_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_POWER_DOMAIN,
+ .systop_pd_id = FWK_ID_ELEMENT_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
POWER_DOMAIN_IDX_SYSTOP),
- }),
+ },
+
+ .elements =
+ FWK_MODULE_DYNAMIC_ELEMENTS(juno_soc_clock_ram_get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_juno_thermal.c b/product/juno/scp_ramfw/config_juno_thermal.c
index d76cafb9..55c70d14 100644
--- a/product/juno/scp_ramfw/config_juno_thermal.c
+++ b/product/juno/scp_ramfw/config_juno_thermal.c
@@ -45,5 +45,5 @@ static const struct fwk_element *juno_thermal_get_element_table(
}
const struct fwk_module_config config_juno_thermal = {
- .get_element_table = juno_thermal_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(juno_thermal_get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_juno_xrp7724.c b/product/juno/scp_ramfw/config_juno_xrp7724.c
index 0471299d..e20eae06 100644
--- a/product/juno/scp_ramfw/config_juno_xrp7724.c
+++ b/product/juno/scp_ramfw/config_juno_xrp7724.c
@@ -125,16 +125,20 @@ static const struct fwk_element *juno_xrp7724_get_element_table(
}
const struct fwk_module_config config_juno_xrp7724 = {
- .get_element_table = juno_xrp7724_get_element_table,
- .data = &((struct mod_juno_xrp7724_config) {
- .slave_address = 0x28,
- .i2c_hal_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_I2C, 0),
- .timer_hal_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0),
- .gpio_assert_id = FWK_ID_SUB_ELEMENT_INIT(FWK_MODULE_IDX_JUNO_XRP7724,
- MOD_JUNO_XRP7724_ELEMENT_IDX_GPIO,
- MOD_JUNO_XRP7724_GPIO_IDX_ASSERT),
- .gpio_mode_id = FWK_ID_SUB_ELEMENT_INIT(FWK_MODULE_IDX_JUNO_XRP7724,
- MOD_JUNO_XRP7724_ELEMENT_IDX_GPIO,
- MOD_JUNO_XRP7724_GPIO_IDX_MODE),
- }),
+ .data =
+ &(struct mod_juno_xrp7724_config){
+ .slave_address = 0x28,
+ .i2c_hal_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_I2C, 0),
+ .timer_hal_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0),
+ .gpio_assert_id = FWK_ID_SUB_ELEMENT_INIT(
+ FWK_MODULE_IDX_JUNO_XRP7724,
+ MOD_JUNO_XRP7724_ELEMENT_IDX_GPIO,
+ MOD_JUNO_XRP7724_GPIO_IDX_ASSERT),
+ .gpio_mode_id = FWK_ID_SUB_ELEMENT_INIT(
+ FWK_MODULE_IDX_JUNO_XRP7724,
+ MOD_JUNO_XRP7724_ELEMENT_IDX_GPIO,
+ MOD_JUNO_XRP7724_GPIO_IDX_MODE),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(juno_xrp7724_get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_log.c b/product/juno/scp_ramfw/config_log.c
index 8722ffe9..c15667d8 100644
--- a/product/juno/scp_ramfw/config_log.c
+++ b/product/juno/scp_ramfw/config_log.c
@@ -41,7 +41,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
@@ -55,6 +55,5 @@ static const struct mod_log_config log_data = {
};
struct fwk_module_config config_log = {
- .get_element_table = NULL,
.data = &log_data,
};
diff --git a/product/juno/scp_ramfw/config_mhu.c b/product/juno/scp_ramfw/config_mhu.c
index 3997d324..bf720514 100644
--- a/product/juno/scp_ramfw/config_mhu.c
+++ b/product/juno/scp_ramfw/config_mhu.c
@@ -55,6 +55,5 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_mhu = {
- .get_element_table = get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_mock_psu.c b/product/juno/scp_ramfw/config_mock_psu.c
index cfb2ac13..553a6512 100644
--- a/product/juno/scp_ramfw/config_mock_psu.c
+++ b/product/juno/scp_ramfw/config_mock_psu.c
@@ -56,6 +56,5 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_mock_psu = {
- .get_element_table = get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_power_domain.c b/product/juno/scp_ramfw/config_power_domain.c
index 8d9ed2da..291a2712 100644
--- a/product/juno/scp_ramfw/config_power_domain.c
+++ b/product/juno/scp_ramfw/config_power_domain.c
@@ -307,6 +307,7 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_power_domain = {
- .get_element_table = get_element_table,
- .data = &(struct mod_power_domain_config){ 0 }
+ .data = &(struct mod_power_domain_config){ 0 },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_psu.c b/product/juno/scp_ramfw/config_psu.c
index 4da6a984..f938a7a1 100644
--- a/product/juno/scp_ramfw/config_psu.c
+++ b/product/juno/scp_ramfw/config_psu.c
@@ -119,5 +119,5 @@ static const struct fwk_element *psu_get_dev_desc_table(fwk_id_t module_id)
}
struct fwk_module_config config_psu = {
- .get_element_table = psu_get_dev_desc_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(psu_get_dev_desc_table),
};
diff --git a/product/juno/scp_ramfw/config_reg_sensor.c b/product/juno/scp_ramfw/config_reg_sensor.c
index 0fee4765..9b63ad91 100644
--- a/product/juno/scp_ramfw/config_reg_sensor.c
+++ b/product/juno/scp_ramfw/config_reg_sensor.c
@@ -45,6 +45,5 @@ static const struct fwk_element *get_reg_sensor_element_table(fwk_id_t id)
}
struct fwk_module_config config_reg_sensor = {
- .get_element_table = get_reg_sensor_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_reg_sensor_element_table),
};
diff --git a/product/juno/scp_ramfw/config_scmi.c b/product/juno/scp_ramfw/config_scmi.c
index bb13e668..f79c2f81 100644
--- a/product/juno/scp_ramfw/config_scmi.c
+++ b/product/juno/scp_ramfw/config_scmi.c
@@ -105,12 +105,14 @@ static const struct mod_scmi_agent agent_table[] = {
};
struct fwk_module_config config_scmi = {
- .get_element_table = get_element_table,
- .data = &(struct mod_scmi_config) {
- .protocol_count_max = 5,
- .agent_count = FWK_ARRAY_SIZE(agent_table) - 1,
- .agent_table = agent_table,
- .vendor_identifier = "arm",
- .sub_vendor_identifier = "arm",
- },
+ .data =
+ &(struct mod_scmi_config){
+ .protocol_count_max = 5,
+ .agent_count = FWK_ARRAY_SIZE(agent_table) - 1,
+ .agent_table = agent_table,
+ .vendor_identifier = "arm",
+ .sub_vendor_identifier = "arm",
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_scmi_perf.c b/product/juno/scp_ramfw/config_scmi_perf.c
index 7b139414..8cd3db8b 100644
--- a/product/juno/scp_ramfw/config_scmi_perf.c
+++ b/product/juno/scp_ramfw/config_scmi_perf.c
@@ -66,7 +66,6 @@ static const struct mod_scmi_perf_domain_config domains[] = {
struct fwk_module_config config_scmi_perf = {
- .get_element_table = NULL,
.data = &((struct mod_scmi_perf_config) {
.domains = &domains,
#ifdef BUILD_HAS_FAST_CHANNELS
diff --git a/product/juno/scp_ramfw/config_sds.c b/product/juno/scp_ramfw/config_sds.c
index 9b13aa43..3e74949e 100644
--- a/product/juno/scp_ramfw/config_sds.c
+++ b/product/juno/scp_ramfw/config_sds.c
@@ -73,6 +73,7 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = get_element_table,
.data = &sds_module_config,
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_sensor.c b/product/juno/scp_ramfw/config_sensor.c
index 119d296e..339f6a30 100644
--- a/product/juno/scp_ramfw/config_sensor.c
+++ b/product/juno/scp_ramfw/config_sensor.c
@@ -377,6 +377,5 @@ static const struct fwk_element *get_sensor_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sensor = {
- .get_element_table = get_sensor_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_sensor_element_table),
};
diff --git a/product/juno/scp_ramfw/config_smt.c b/product/juno/scp_ramfw/config_smt.c
index 6b2b7ed8..4e932c96 100644
--- a/product/juno/scp_ramfw/config_smt.c
+++ b/product/juno/scp_ramfw/config_smt.c
@@ -100,6 +100,5 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_smt = {
- .get_element_table = get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_system_power.c b/product/juno/scp_ramfw/config_system_power.c
index 57905557..8cb55ddd 100644
--- a/product/juno/scp_ramfw/config_system_power.c
+++ b/product/juno/scp_ramfw/config_system_power.c
@@ -49,11 +49,13 @@ static const struct fwk_element *system_power_get_element_table(
}
const struct fwk_module_config config_system_power = {
- .data = &((struct mod_system_power_config) {
- .soc_wakeup_irq = EXT_WAKEUP_IRQ,
- .driver_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_JUNO_SYSTEM),
- .driver_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_JUNO_SYSTEM, 0),
- .initial_system_power_state = MOD_PD_STATE_ON,
- }),
- .get_element_table = system_power_get_element_table,
+ .data =
+ &(struct mod_system_power_config){
+ .soc_wakeup_irq = EXT_WAKEUP_IRQ,
+ .driver_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_JUNO_SYSTEM),
+ .driver_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_JUNO_SYSTEM, 0),
+ .initial_system_power_state = MOD_PD_STATE_ON,
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_power_get_element_table),
};
diff --git a/product/juno/scp_ramfw/config_timer.c b/product/juno/scp_ramfw/config_timer.c
index 9da6062e..e42eb2e8 100644
--- a/product/juno/scp_ramfw/config_timer.c
+++ b/product/juno/scp_ramfw/config_timer.c
@@ -39,7 +39,7 @@ static const struct fwk_element *gtimer_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_element_table),
};
static const struct fwk_element timer_element_table[] = {
@@ -60,5 +60,5 @@ static const struct fwk_element *timer_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_timer = {
- .get_element_table = timer_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_element_table),
};
diff --git a/product/juno/scp_romfw/config_juno_ppu.c b/product/juno/scp_romfw/config_juno_ppu.c
index b4cba63c..e9ddf7b0 100644
--- a/product/juno/scp_romfw/config_juno_ppu.c
+++ b/product/juno/scp_romfw/config_juno_ppu.c
@@ -114,6 +114,5 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_juno_ppu = {
- .get_element_table = get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/juno/scp_romfw/config_log.c b/product/juno/scp_romfw/config_log.c
index eb645991..5c32d34e 100644
--- a/product/juno/scp_romfw/config_log.c
+++ b/product/juno/scp_romfw/config_log.c
@@ -46,7 +46,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
@@ -60,6 +60,5 @@ static const struct mod_log_config log_data = {
};
struct fwk_module_config config_log = {
- .get_element_table = NULL,
.data = &log_data,
};
diff --git a/product/juno/scp_romfw/config_sds.c b/product/juno/scp_romfw/config_sds.c
index 36b02f29..2f186890 100644
--- a/product/juno/scp_romfw/config_sds.c
+++ b/product/juno/scp_romfw/config_sds.c
@@ -189,6 +189,7 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = get_element_table,
.data = &sds_module_config,
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/juno/scp_romfw/config_timer.c b/product/juno/scp_romfw/config_timer.c
index c3b16d2e..e95a6d59 100644
--- a/product/juno/scp_romfw/config_timer.c
+++ b/product/juno/scp_romfw/config_timer.c
@@ -34,5 +34,5 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_gtimer = {
- .get_element_table = get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/juno/scp_romfw_bypass/config_juno_ppu.c b/product/juno/scp_romfw_bypass/config_juno_ppu.c
index b4cba63c..e9ddf7b0 100644
--- a/product/juno/scp_romfw_bypass/config_juno_ppu.c
+++ b/product/juno/scp_romfw_bypass/config_juno_ppu.c
@@ -114,6 +114,5 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_juno_ppu = {
- .get_element_table = get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/juno/scp_romfw_bypass/config_log.c b/product/juno/scp_romfw_bypass/config_log.c
index eb645991..5c32d34e 100644
--- a/product/juno/scp_romfw_bypass/config_log.c
+++ b/product/juno/scp_romfw_bypass/config_log.c
@@ -46,7 +46,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
@@ -60,6 +60,5 @@ static const struct mod_log_config log_data = {
};
struct fwk_module_config config_log = {
- .get_element_table = NULL,
.data = &log_data,
};
diff --git a/product/juno/scp_romfw_bypass/config_sds.c b/product/juno/scp_romfw_bypass/config_sds.c
index da12ae31..9c4d569c 100644
--- a/product/juno/scp_romfw_bypass/config_sds.c
+++ b/product/juno/scp_romfw_bypass/config_sds.c
@@ -189,6 +189,7 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = get_element_table,
.data = &sds_module_config,
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/juno/scp_romfw_bypass/config_timer.c b/product/juno/scp_romfw_bypass/config_timer.c
index c3b16d2e..e95a6d59 100644
--- a/product/juno/scp_romfw_bypass/config_timer.c
+++ b/product/juno/scp_romfw_bypass/config_timer.c
@@ -34,5 +34,5 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_gtimer = {
- .get_element_table = get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/n1sdp/mcp_ramfw/config_log.c b/product/n1sdp/mcp_ramfw/config_log.c
index 8e8f97f2..e253fedc 100644
--- a/product/n1sdp/mcp_ramfw/config_log.c
+++ b/product/n1sdp/mcp_ramfw/config_log.c
@@ -40,7 +40,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/n1sdp/mcp_ramfw/config_mhu.c b/product/n1sdp/mcp_ramfw/config_mhu.c
index ad675b0f..7ac04500 100644
--- a/product/n1sdp/mcp_ramfw/config_mhu.c
+++ b/product/n1sdp/mcp_ramfw/config_mhu.c
@@ -35,5 +35,5 @@ static const struct fwk_element *mhu_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_n1sdp_mhu = {
- .get_element_table = mhu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(mhu_get_element_table),
};
diff --git a/product/n1sdp/mcp_ramfw/config_pik_clock.c b/product/n1sdp/mcp_ramfw/config_pik_clock.c
index b7531e37..39c70c6e 100644
--- a/product/n1sdp/mcp_ramfw/config_pik_clock.c
+++ b/product/n1sdp/mcp_ramfw/config_pik_clock.c
@@ -78,5 +78,5 @@ static const struct fwk_element *pik_clock_get_element_table
}
const struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/n1sdp/mcp_ramfw/config_scmi_agent.c b/product/n1sdp/mcp_ramfw/config_scmi_agent.c
index 956869f9..58aa6e1d 100644
--- a/product/n1sdp/mcp_ramfw/config_scmi_agent.c
+++ b/product/n1sdp/mcp_ramfw/config_scmi_agent.c
@@ -38,6 +38,5 @@ static const struct fwk_element *get_agent_table(fwk_id_t module_id)
}
const struct fwk_module_config config_scmi_agent = {
- .get_element_table = get_agent_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_agent_table),
};
diff --git a/product/n1sdp/mcp_ramfw/config_smt.c b/product/n1sdp/mcp_ramfw/config_smt.c
index 0fa30bbd..253ce971 100644
--- a/product/n1sdp/mcp_ramfw/config_smt.c
+++ b/product/n1sdp/mcp_ramfw/config_smt.c
@@ -39,5 +39,5 @@ static const struct fwk_element *smt_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_n1sdp_smt = {
- .get_element_table = smt_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(smt_get_element_table),
};
diff --git a/product/n1sdp/mcp_romfw/config_log.c b/product/n1sdp/mcp_romfw/config_log.c
index dcb2c52c..692497ad 100644
--- a/product/n1sdp/mcp_romfw/config_log.c
+++ b/product/n1sdp/mcp_romfw/config_log.c
@@ -45,7 +45,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/n1sdp/scp_ramfw/config_clock.c b/product/n1sdp/scp_ramfw/config_clock.c
index d6ab6eb4..08fd75c6 100644
--- a/product/n1sdp/scp_ramfw/config_clock.c
+++ b/product/n1sdp/scp_ramfw/config_clock.c
@@ -71,14 +71,15 @@ static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
}
const struct fwk_module_config config_clock = {
- .get_element_table = clock_get_dev_desc_table,
- .data = &((struct mod_clock_config) {
- .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
- .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
- }),
+ .data =
+ &(struct mod_clock_config){
+ .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
+ .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
+ },
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(clock_get_dev_desc_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_cmn600.c b/product/n1sdp/scp_ramfw/config_cmn600.c
index be92ceba..6393e68f 100644
--- a/product/n1sdp/scp_ramfw/config_cmn600.c
+++ b/product/n1sdp/scp_ramfw/config_cmn600.c
@@ -168,7 +168,6 @@ static const struct mod_cmn600_memory_region_map mmap[] = {
};
const struct fwk_module_config config_cmn600 = {
- .get_element_table = NULL,
.data = &((struct mod_cmn600_config) {
.base = SCP_CMN600_BASE,
.mesh_size_x = 4,
diff --git a/product/n1sdp/scp_ramfw/config_css_clock.c b/product/n1sdp/scp_ramfw/config_css_clock.c
index 76e299ee..dee0f257 100644
--- a/product/n1sdp/scp_ramfw/config_css_clock.c
+++ b/product/n1sdp/scp_ramfw/config_css_clock.c
@@ -184,5 +184,5 @@ static const struct fwk_element *css_clock_get_element_table
}
const struct fwk_module_config config_css_clock = {
- .get_element_table = css_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(css_clock_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_debugger_cli.c b/product/n1sdp/scp_ramfw/config_debugger_cli.c
index e6b5c974..3ba9710a 100644
--- a/product/n1sdp/scp_ramfw/config_debugger_cli.c
+++ b/product/n1sdp/scp_ramfw/config_debugger_cli.c
@@ -21,6 +21,5 @@ static const struct mod_debugger_cli_module_config debugger_cli_data = {
* Configuration for the debugger CLI module
*/
struct fwk_module_config config_debugger_cli = {
- .get_element_table = NULL,
.data = &debugger_cli_data
};
diff --git a/product/n1sdp/scp_ramfw/config_log.c b/product/n1sdp/scp_ramfw/config_log.c
index 97e62c58..e0add751 100644
--- a/product/n1sdp/scp_ramfw/config_log.c
+++ b/product/n1sdp/scp_ramfw/config_log.c
@@ -40,7 +40,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/n1sdp/scp_ramfw/config_mhu.c b/product/n1sdp/scp_ramfw/config_mhu.c
index 42f9ade0..c709e0f8 100644
--- a/product/n1sdp/scp_ramfw/config_mhu.c
+++ b/product/n1sdp/scp_ramfw/config_mhu.c
@@ -53,5 +53,5 @@ static const struct fwk_element *mhu_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_mhu = {
- .get_element_table = mhu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(mhu_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_n1sdp_ddr_phy.c b/product/n1sdp/scp_ramfw/config_n1sdp_ddr_phy.c
index b5e973ce..93f45019 100644
--- a/product/n1sdp/scp_ramfw/config_n1sdp_ddr_phy.c
+++ b/product/n1sdp/scp_ramfw/config_n1sdp_ddr_phy.c
@@ -35,5 +35,5 @@ static const struct fwk_element *n1sdp_ddr_phy_get_element_table
/* Configuration of the N1SDP DDR PHY module. */
const struct fwk_module_config config_n1sdp_ddr_phy = {
- .get_element_table = n1sdp_ddr_phy_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(n1sdp_ddr_phy_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_n1sdp_dmc620.c b/product/n1sdp/scp_ramfw/config_n1sdp_dmc620.c
index f739896a..6f03db08 100644
--- a/product/n1sdp/scp_ramfw/config_n1sdp_dmc620.c
+++ b/product/n1sdp/scp_ramfw/config_n1sdp_dmc620.c
@@ -45,12 +45,12 @@ static const struct fwk_element *dmc620_get_element_table(fwk_id_t module_id)
/* Configuration of the DMC620 module. */
const struct fwk_module_config config_n1sdp_dmc620 = {
- .get_element_table = dmc620_get_element_table,
- .data = &((struct mod_dmc620_module_config) {
- .ddr_module_id = FWK_ID_MODULE_INIT(
- FWK_MODULE_IDX_N1SDP_DDR_PHY),
- .ddr_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_N1SDP_DDR_PHY,
- 0),
+ .data =
+ &(struct mod_dmc620_module_config){
+ .ddr_module_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_N1SDP_DDR_PHY),
+ .ddr_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_N1SDP_DDR_PHY, 0),
.ddr_speed = DDR_CLOCK_MHZ,
- }),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(dmc620_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_n1sdp_i2c.c b/product/n1sdp/scp_ramfw/config_n1sdp_i2c.c
index 482fdb40..1b4e4f05 100644
--- a/product/n1sdp/scp_ramfw/config_n1sdp_i2c.c
+++ b/product/n1sdp/scp_ramfw/config_n1sdp_i2c.c
@@ -60,5 +60,5 @@ static const struct fwk_element *get_i2c_table(fwk_id_t module_id)
}
const struct fwk_module_config config_n1sdp_i2c = {
- .get_element_table = get_i2c_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_i2c_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_n1sdp_pcie.c b/product/n1sdp/scp_ramfw/config_n1sdp_pcie.c
index b0f50116..1d7925e2 100644
--- a/product/n1sdp/scp_ramfw/config_n1sdp_pcie.c
+++ b/product/n1sdp/scp_ramfw/config_n1sdp_pcie.c
@@ -48,5 +48,5 @@ static const struct fwk_element *n1sdp_pcie_get_element_table
}
const struct fwk_module_config config_n1sdp_pcie = {
- .get_element_table = n1sdp_pcie_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(n1sdp_pcie_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_n1sdp_pll.c b/product/n1sdp/scp_ramfw/config_n1sdp_pll.c
index dfc29464..34b58dc4 100644
--- a/product/n1sdp/scp_ramfw/config_n1sdp_pll.c
+++ b/product/n1sdp/scp_ramfw/config_n1sdp_pll.c
@@ -90,9 +90,11 @@ static const struct fwk_element *n1sdp_pll_get_element_table
}
const struct fwk_module_config config_n1sdp_pll = {
- .get_element_table = n1sdp_pll_get_element_table,
- .data = &((struct n1sdp_pll_module_config) {
- .custom_freq_table = freq_table,
- .custom_freq_table_size = FWK_ARRAY_SIZE(freq_table),
- }),
+ .data =
+ &(struct n1sdp_pll_module_config){
+ .custom_freq_table = freq_table,
+ .custom_freq_table_size = FWK_ARRAY_SIZE(freq_table),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(n1sdp_pll_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_n1sdp_remote_pd.c b/product/n1sdp/scp_ramfw/config_n1sdp_remote_pd.c
index 39b413e6..eefd00cc 100644
--- a/product/n1sdp/scp_ramfw/config_n1sdp_remote_pd.c
+++ b/product/n1sdp/scp_ramfw/config_n1sdp_remote_pd.c
@@ -76,5 +76,5 @@ static const struct fwk_element *remote_pd_get_element_table(fwk_id_t id)
}
const struct fwk_module_config config_n1sdp_remote_pd = {
- .get_element_table = remote_pd_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(remote_pd_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_n1sdp_timer_sync.c b/product/n1sdp/scp_ramfw/config_n1sdp_timer_sync.c
index f8951697..708c8183 100644
--- a/product/n1sdp/scp_ramfw/config_n1sdp_timer_sync.c
+++ b/product/n1sdp/scp_ramfw/config_n1sdp_timer_sync.c
@@ -41,5 +41,5 @@ static const struct fwk_element *n1sdp_tsync_get_element_table(
}
struct fwk_module_config config_n1sdp_timer_sync = {
- .get_element_table = n1sdp_tsync_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(n1sdp_tsync_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_pik_clock.c b/product/n1sdp/scp_ramfw/config_pik_clock.c
index d51606e3..7ff5cdd3 100644
--- a/product/n1sdp/scp_ramfw/config_pik_clock.c
+++ b/product/n1sdp/scp_ramfw/config_pik_clock.c
@@ -1023,5 +1023,5 @@ static const struct fwk_element *pik_clock_get_element_table
}
const struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_power_domain.c b/product/n1sdp/scp_ramfw/config_power_domain.c
index 73cb8827..21aa763d 100644
--- a/product/n1sdp/scp_ramfw/config_power_domain.c
+++ b/product/n1sdp/scp_ramfw/config_power_domain.c
@@ -509,6 +509,8 @@ static const struct fwk_element *n1sdp_power_domain_get_element_table
* Power module configuration data
*/
const struct fwk_module_config config_power_domain = {
- .get_element_table = n1sdp_power_domain_get_element_table,
.data = &n1sdp_power_domain_config,
+
+ .elements =
+ FWK_MODULE_DYNAMIC_ELEMENTS(n1sdp_power_domain_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_ppu_v0.c b/product/n1sdp/scp_ramfw/config_ppu_v0.c
index 8cbb1ff0..42834aa8 100644
--- a/product/n1sdp/scp_ramfw/config_ppu_v0.c
+++ b/product/n1sdp/scp_ramfw/config_ppu_v0.c
@@ -39,5 +39,5 @@ static const struct fwk_element *ppu_v0_get_element_table(fwk_id_t module_id)
* Power module configuration data
*/
const struct fwk_module_config config_ppu_v0 = {
- .get_element_table = ppu_v0_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ppu_v0_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_ppu_v1.c b/product/n1sdp/scp_ramfw/config_ppu_v1.c
index 45743e2c..60d0d4ae 100644
--- a/product/n1sdp/scp_ramfw/config_ppu_v1.c
+++ b/product/n1sdp/scp_ramfw/config_ppu_v1.c
@@ -160,6 +160,7 @@ static const struct fwk_element *ppu_v1_get_element_table(fwk_id_t module_id)
* Power module configuration data
*/
const struct fwk_module_config config_ppu_v1 = {
- .get_element_table = ppu_v1_get_element_table,
.data = &ppu_v1_config_data,
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ppu_v1_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_scmi.c b/product/n1sdp/scp_ramfw/config_scmi.c
index 7da4e38e..2634dce0 100644
--- a/product/n1sdp/scp_ramfw/config_scmi.c
+++ b/product/n1sdp/scp_ramfw/config_scmi.c
@@ -86,12 +86,14 @@ static struct mod_scmi_agent agent_table[] = {
};
const struct fwk_module_config config_scmi = {
- .get_element_table = get_service_table,
- .data = &((struct mod_scmi_config) {
- .protocol_count_max = 8,
- .agent_count = FWK_ARRAY_SIZE(agent_table) - 1,
- .agent_table = agent_table,
- .vendor_identifier = "arm",
- .sub_vendor_identifier = "arm",
- }),
+ .data =
+ &(struct mod_scmi_config){
+ .protocol_count_max = 8,
+ .agent_count = FWK_ARRAY_SIZE(agent_table) - 1,
+ .agent_table = agent_table,
+ .vendor_identifier = "arm",
+ .sub_vendor_identifier = "arm",
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_service_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_sds.c b/product/n1sdp/scp_ramfw/config_sds.c
index a512fa13..2fc55c56 100644
--- a/product/n1sdp/scp_ramfw/config_sds.c
+++ b/product/n1sdp/scp_ramfw/config_sds.c
@@ -155,6 +155,6 @@ static const struct fwk_element *sds_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = sds_get_element_table,
.data = &sds_module_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sds_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_sensor.c b/product/n1sdp/scp_ramfw/config_sensor.c
index 305934e8..5d5f8ae8 100644
--- a/product/n1sdp/scp_ramfw/config_sensor.c
+++ b/product/n1sdp/scp_ramfw/config_sensor.c
@@ -98,14 +98,16 @@ static const struct fwk_element *get_n1sdp_sensor_element_table(fwk_id_t id)
}
struct fwk_module_config config_n1sdp_sensor = {
- .get_element_table = get_n1sdp_sensor_element_table,
- .data = &((struct mod_n1sdp_sensor_config) {
- .alarm_id = FWK_ID_SUB_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0, 0),
- .alarm_api = FWK_ID_API_INIT(FWK_MODULE_IDX_TIMER,
- MOD_TIMER_API_IDX_ALARM),
- .t_sensor_count = 3,
- .v_sensor_count = 5,
- }),
+ .data =
+ &(struct mod_n1sdp_sensor_config){
+ .alarm_id = FWK_ID_SUB_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0, 0),
+ .alarm_api =
+ FWK_ID_API_INIT(FWK_MODULE_IDX_TIMER, MOD_TIMER_API_IDX_ALARM),
+ .t_sensor_count = 3,
+ .v_sensor_count = 5,
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_n1sdp_sensor_element_table),
};
/*
@@ -185,6 +187,5 @@ static const struct fwk_element *get_sensor_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sensor = {
- .get_element_table = get_sensor_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_sensor_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_smt.c b/product/n1sdp/scp_ramfw/config_smt.c
index c0b49524..f2f54acf 100644
--- a/product/n1sdp/scp_ramfw/config_smt.c
+++ b/product/n1sdp/scp_ramfw/config_smt.c
@@ -80,5 +80,5 @@ static const struct fwk_element *smt_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_smt = {
- .get_element_table = smt_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(smt_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_ssc.c b/product/n1sdp/scp_ramfw/config_ssc.c
index 7aef3a82..c8619f3d 100644
--- a/product/n1sdp/scp_ramfw/config_ssc.c
+++ b/product/n1sdp/scp_ramfw/config_ssc.c
@@ -14,7 +14,6 @@
#include <stddef.h>
const struct fwk_module_config config_ssc = {
- .get_element_table = NULL,
.data = &(struct mod_ssc_config) {
.ssc_base = SCP_SSC_BASE,
.ssc_debug_cfg_set = 0xFF,
diff --git a/product/n1sdp/scp_ramfw/config_system_info.c b/product/n1sdp/scp_ramfw/config_system_info.c
index 95f509eb..482b1f21 100644
--- a/product/n1sdp/scp_ramfw/config_system_info.c
+++ b/product/n1sdp/scp_ramfw/config_system_info.c
@@ -15,7 +15,6 @@
#include <stddef.h>
const struct fwk_module_config config_system_info = {
- .get_element_table = NULL,
.data = &((struct mod_system_info_config) {
.system_info_driver_module_id =
FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SSC),
diff --git a/product/n1sdp/scp_ramfw/config_system_power.c b/product/n1sdp/scp_ramfw/config_system_power.c
index 460cdd6b..6abcab67 100644
--- a/product/n1sdp/scp_ramfw/config_system_power.c
+++ b/product/n1sdp/scp_ramfw/config_system_power.c
@@ -89,6 +89,6 @@ static const struct fwk_element *n1sdp_system_get_element_table(
}
const struct fwk_module_config config_system_power = {
- .get_element_table = n1sdp_system_get_element_table,
.data = &system_power_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(n1sdp_system_get_element_table),
};
diff --git a/product/n1sdp/scp_ramfw/config_timer.c b/product/n1sdp/scp_ramfw/config_timer.c
index f0ee9d84..85ed8be4 100644
--- a/product/n1sdp/scp_ramfw/config_timer.c
+++ b/product/n1sdp/scp_ramfw/config_timer.c
@@ -43,7 +43,7 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
/*
@@ -67,5 +67,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/n1sdp/scp_romfw/config_log.c b/product/n1sdp/scp_romfw/config_log.c
index c51babcb..ae7c844c 100644
--- a/product/n1sdp/scp_romfw/config_log.c
+++ b/product/n1sdp/scp_romfw/config_log.c
@@ -45,7 +45,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/rddaniel/mcp_romfw/config_log.c b/product/rddaniel/mcp_romfw/config_log.c
index 59704bef..1a599aba 100644
--- a/product/rddaniel/mcp_romfw/config_log.c
+++ b/product/rddaniel/mcp_romfw/config_log.c
@@ -39,7 +39,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/rddaniel/scp_ramfw/config_clock.c b/product/rddaniel/scp_ramfw/config_clock.c
index 8729aaa8..628530fb 100644
--- a/product/rddaniel/scp_ramfw/config_clock.c
+++ b/product/rddaniel/scp_ramfw/config_clock.c
@@ -193,14 +193,15 @@ static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
}
const struct fwk_module_config config_clock = {
- .get_element_table = clock_get_dev_desc_table,
- .data = &((struct mod_clock_config) {
- .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
- .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
- }),
+ .data =
+ &(struct mod_clock_config){
+ .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
+ .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
+ },
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(clock_get_dev_desc_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_cmn_rhodes.c b/product/rddaniel/scp_ramfw/config_cmn_rhodes.c
index 5cc38d18..2271f3eb 100644
--- a/product/rddaniel/scp_ramfw/config_cmn_rhodes.c
+++ b/product/rddaniel/scp_ramfw/config_cmn_rhodes.c
@@ -137,6 +137,5 @@ static const struct fwk_element *cmn_rhodes_get_device_table(fwk_id_t module_id)
}
const struct fwk_module_config config_cmn_rhodes = {
- .get_element_table = cmn_rhodes_get_device_table,
- .data = NULL
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(cmn_rhodes_get_device_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_css_clock.c b/product/rddaniel/scp_ramfw/config_css_clock.c
index 7a07fe82..bf84b36c 100644
--- a/product/rddaniel/scp_ramfw/config_css_clock.c
+++ b/product/rddaniel/scp_ramfw/config_css_clock.c
@@ -451,5 +451,5 @@ static const struct fwk_element *css_clock_get_element_table
}
const struct fwk_module_config config_css_clock = {
- .get_element_table = css_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(css_clock_get_element_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_gtimer.c b/product/rddaniel/scp_ramfw/config_gtimer.c
index e3325a17..5fd27d85 100644
--- a/product/rddaniel/scp_ramfw/config_gtimer.c
+++ b/product/rddaniel/scp_ramfw/config_gtimer.c
@@ -39,5 +39,5 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_mhu2.c b/product/rddaniel/scp_ramfw/config_mhu2.c
index 17af6096..d32f2c3c 100644
--- a/product/rddaniel/scp_ramfw/config_mhu2.c
+++ b/product/rddaniel/scp_ramfw/config_mhu2.c
@@ -36,5 +36,5 @@ static const struct fwk_element *mhu_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_mhu2 = {
- .get_element_table = mhu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(mhu_get_element_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_pik_clock.c b/product/rddaniel/scp_ramfw/config_pik_clock.c
index 1efc16cc..c2b596d4 100644
--- a/product/rddaniel/scp_ramfw/config_pik_clock.c
+++ b/product/rddaniel/scp_ramfw/config_pik_clock.c
@@ -382,5 +382,5 @@ static const struct fwk_element *pik_clock_get_element_table
}
const struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_power_domain.c b/product/rddaniel/scp_ramfw/config_power_domain.c
index b3c1622e..b62b6eab 100644
--- a/product/rddaniel/scp_ramfw/config_power_domain.c
+++ b/product/rddaniel/scp_ramfw/config_power_domain.c
@@ -369,6 +369,7 @@ static const struct fwk_element *rddaniel_power_domain_get_element_table
* Power module configuration data
*/
const struct fwk_module_config config_power_domain = {
- .get_element_table = rddaniel_power_domain_get_element_table,
.data = &rddaniel_power_domain_config,
+ .elements =
+ FWK_MODULE_DYNAMIC_ELEMENTS(rddaniel_power_domain_get_element_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_ppu_v1.c b/product/rddaniel/scp_ramfw/config_ppu_v1.c
index 9dede325..a4d12d86 100644
--- a/product/rddaniel/scp_ramfw/config_ppu_v1.c
+++ b/product/rddaniel/scp_ramfw/config_ppu_v1.c
@@ -142,6 +142,6 @@ static const struct fwk_element *ppu_v1_get_element_table(fwk_id_t module_id)
* Power module configuration data
*/
const struct fwk_module_config config_ppu_v1 = {
- .get_element_table = ppu_v1_get_element_table,
.data = &ppu_v1_config_data,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ppu_v1_get_element_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_scmi.c b/product/rddaniel/scp_ramfw/config_scmi.c
index 555ac645..81dc9f60 100644
--- a/product/rddaniel/scp_ramfw/config_scmi.c
+++ b/product/rddaniel/scp_ramfw/config_scmi.c
@@ -50,12 +50,14 @@ static struct mod_scmi_agent agent_table[] = {
};
const struct fwk_module_config config_scmi = {
- .get_element_table = get_service_table,
- .data = &((struct mod_scmi_config) {
- .protocol_count_max = 9,
- .agent_count = FWK_ARRAY_SIZE(agent_table),
- .agent_table = agent_table,
- .vendor_identifier = "arm",
- .sub_vendor_identifier = "arm",
- }),
+ .data =
+ &(struct mod_scmi_config){
+ .protocol_count_max = 9,
+ .agent_count = FWK_ARRAY_SIZE(agent_table),
+ .agent_table = agent_table,
+ .vendor_identifier = "arm",
+ .sub_vendor_identifier = "arm",
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_service_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_sds.c b/product/rddaniel/scp_ramfw/config_sds.c
index 7ebba145..985d6a1e 100644
--- a/product/rddaniel/scp_ramfw/config_sds.c
+++ b/product/rddaniel/scp_ramfw/config_sds.c
@@ -136,6 +136,6 @@ static const struct fwk_element *sds_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = sds_get_element_table,
.data = &sds_module_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sds_get_element_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_smt.c b/product/rddaniel/scp_ramfw/config_smt.c
index e3b2abcb..309e55e5 100644
--- a/product/rddaniel/scp_ramfw/config_smt.c
+++ b/product/rddaniel/scp_ramfw/config_smt.c
@@ -51,5 +51,5 @@ static const struct fwk_element *smt_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_smt = {
- .get_element_table = smt_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(smt_get_element_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_system_pll.c b/product/rddaniel/scp_ramfw/config_system_pll.c
index d7cf71b3..5524e345 100644
--- a/product/rddaniel/scp_ramfw/config_system_pll.c
+++ b/product/rddaniel/scp_ramfw/config_system_pll.c
@@ -255,5 +255,5 @@ static const struct fwk_element *system_pll_get_element_table
}
const struct fwk_module_config config_system_pll = {
- .get_element_table = system_pll_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_pll_get_element_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_system_power.c b/product/rddaniel/scp_ramfw/config_system_power.c
index d3d4e521..82591d6c 100644
--- a/product/rddaniel/scp_ramfw/config_system_power.c
+++ b/product/rddaniel/scp_ramfw/config_system_power.c
@@ -89,6 +89,6 @@ static const struct fwk_element *rddaniel_system_get_element_table(
}
const struct fwk_module_config config_system_power = {
- .get_element_table = rddaniel_system_get_element_table,
.data = &system_power_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(rddaniel_system_get_element_table),
};
diff --git a/product/rddaniel/scp_ramfw/config_timer.c b/product/rddaniel/scp_ramfw/config_timer.c
index 0828e41e..87be05fd 100644
--- a/product/rddaniel/scp_ramfw/config_timer.c
+++ b/product/rddaniel/scp_ramfw/config_timer.c
@@ -35,5 +35,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/rddaniel/src/config_pl011.c b/product/rddaniel/src/config_pl011.c
index 07192a92..fce84b36 100644
--- a/product/rddaniel/src/config_pl011.c
+++ b/product/rddaniel/src/config_pl011.c
@@ -34,5 +34,5 @@ static const struct fwk_element *get_pl011_table(fwk_id_t id)
}
const struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
diff --git a/product/rddaniel/src/config_sid.c b/product/rddaniel/src/config_sid.c
index 5244deba..67cc6c3d 100644
--- a/product/rddaniel/src/config_sid.c
+++ b/product/rddaniel/src/config_sid.c
@@ -29,7 +29,6 @@ static const struct fwk_element *get_subsystem_table(fwk_id_t id)
}
const struct fwk_module_config config_sid = {
- .get_element_table = get_subsystem_table,
.data = &(struct mod_sid_config) {
.sid_base = SCP_SID_BASE,
.pcid_expected = {
@@ -44,4 +43,6 @@ const struct fwk_module_config config_sid = {
.CID3 = 0xB1,
},
},
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_subsystem_table),
};
diff --git a/product/rddaniel/src/config_system_info.c b/product/rddaniel/src/config_system_info.c
index 23a2b480..38590cc0 100644
--- a/product/rddaniel/src/config_system_info.c
+++ b/product/rddaniel/src/config_system_info.c
@@ -15,7 +15,6 @@
#include <stddef.h>
const struct fwk_module_config config_system_info = {
- .get_element_table = NULL,
.data = &((struct mod_system_info_config) {
.system_info_driver_module_id =
FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SID),
diff --git a/product/rddanielxlr/mcp_romfw/config_log.c b/product/rddanielxlr/mcp_romfw/config_log.c
index ea1a8bd3..330337d7 100644
--- a/product/rddanielxlr/mcp_romfw/config_log.c
+++ b/product/rddanielxlr/mcp_romfw/config_log.c
@@ -39,7 +39,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/rddanielxlr/scp_ramfw/config_clock.c b/product/rddanielxlr/scp_ramfw/config_clock.c
index df35fa45..8dc69391 100644
--- a/product/rddanielxlr/scp_ramfw/config_clock.c
+++ b/product/rddanielxlr/scp_ramfw/config_clock.c
@@ -85,13 +85,15 @@ static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
}
const struct fwk_module_config config_clock = {
- .get_element_table = clock_get_dev_desc_table,
- .data = &((struct mod_clock_config) {
- .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
- .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
- }),
+ .data =
+ &(struct mod_clock_config){
+ .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
+ .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(clock_get_dev_desc_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_cmn_rhodes.c b/product/rddanielxlr/scp_ramfw/config_cmn_rhodes.c
index d0400282..39ca8e42 100644
--- a/product/rddanielxlr/scp_ramfw/config_cmn_rhodes.c
+++ b/product/rddanielxlr/scp_ramfw/config_cmn_rhodes.c
@@ -582,6 +582,5 @@ static const struct fwk_element *cmn_rhodes_get_device_table(fwk_id_t module_id)
}
const struct fwk_module_config config_cmn_rhodes = {
- .get_element_table = cmn_rhodes_get_device_table,
- .data = NULL
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(cmn_rhodes_get_device_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_css_clock.c b/product/rddanielxlr/scp_ramfw/config_css_clock.c
index f018cfe7..d4ba20d4 100644
--- a/product/rddanielxlr/scp_ramfw/config_css_clock.c
+++ b/product/rddanielxlr/scp_ramfw/config_css_clock.c
@@ -175,5 +175,5 @@ static const struct fwk_element *css_clock_get_element_table
}
const struct fwk_module_config config_css_clock = {
- .get_element_table = css_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(css_clock_get_element_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_gtimer.c b/product/rddanielxlr/scp_ramfw/config_gtimer.c
index e3325a17..5fd27d85 100644
--- a/product/rddanielxlr/scp_ramfw/config_gtimer.c
+++ b/product/rddanielxlr/scp_ramfw/config_gtimer.c
@@ -39,5 +39,5 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_mhu2.c b/product/rddanielxlr/scp_ramfw/config_mhu2.c
index 62c23caf..ea3693b6 100644
--- a/product/rddanielxlr/scp_ramfw/config_mhu2.c
+++ b/product/rddanielxlr/scp_ramfw/config_mhu2.c
@@ -36,5 +36,5 @@ static const struct fwk_element *mhu_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_mhu2 = {
- .get_element_table = mhu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(mhu_get_element_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_pik_clock.c b/product/rddanielxlr/scp_ramfw/config_pik_clock.c
index fbabe4a1..c4d1dca1 100644
--- a/product/rddanielxlr/scp_ramfw/config_pik_clock.c
+++ b/product/rddanielxlr/scp_ramfw/config_pik_clock.c
@@ -238,5 +238,5 @@ static const struct fwk_element *pik_clock_get_element_table
}
const struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_power_domain.c b/product/rddanielxlr/scp_ramfw/config_power_domain.c
index ad7ceae5..54c68a80 100644
--- a/product/rddanielxlr/scp_ramfw/config_power_domain.c
+++ b/product/rddanielxlr/scp_ramfw/config_power_domain.c
@@ -207,6 +207,7 @@ static const struct fwk_element *rddanielxlr_power_domain_get_element_table
* Power module configuration data
*/
const struct fwk_module_config config_power_domain = {
- .get_element_table = rddanielxlr_power_domain_get_element_table,
.data = &rddanielxlr_power_domain_config,
+ .elements =
+ FWK_MODULE_DYNAMIC_ELEMENTS(rddanielxlr_power_domain_get_element_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_ppu_v1.c b/product/rddanielxlr/scp_ramfw/config_ppu_v1.c
index 6b1dd851..95f2f3eb 100644
--- a/product/rddanielxlr/scp_ramfw/config_ppu_v1.c
+++ b/product/rddanielxlr/scp_ramfw/config_ppu_v1.c
@@ -150,6 +150,6 @@ static const struct fwk_element *ppu_v1_get_element_table(fwk_id_t module_id)
* Power module configuration data
*/
const struct fwk_module_config config_ppu_v1 = {
- .get_element_table = ppu_v1_get_element_table,
.data = &ppu_v1_config_data,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ppu_v1_get_element_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_scmi.c b/product/rddanielxlr/scp_ramfw/config_scmi.c
index 424dbc29..250861e9 100644
--- a/product/rddanielxlr/scp_ramfw/config_scmi.c
+++ b/product/rddanielxlr/scp_ramfw/config_scmi.c
@@ -50,12 +50,13 @@ static struct mod_scmi_agent agent_table[] = {
};
const struct fwk_module_config config_scmi = {
- .get_element_table = get_service_table,
- .data = &((struct mod_scmi_config) {
+ .data = &((struct mod_scmi_config){
.protocol_count_max = 9,
.agent_count = FWK_ARRAY_SIZE(agent_table),
.agent_table = agent_table,
.vendor_identifier = "arm",
.sub_vendor_identifier = "arm",
}),
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_service_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_sds.c b/product/rddanielxlr/scp_ramfw/config_sds.c
index c14ee2b8..1200a055 100644
--- a/product/rddanielxlr/scp_ramfw/config_sds.c
+++ b/product/rddanielxlr/scp_ramfw/config_sds.c
@@ -135,6 +135,6 @@ static const struct fwk_element *sds_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = sds_get_element_table,
.data = &sds_module_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sds_get_element_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_smt.c b/product/rddanielxlr/scp_ramfw/config_smt.c
index 99f29ebc..443f4b1f 100644
--- a/product/rddanielxlr/scp_ramfw/config_smt.c
+++ b/product/rddanielxlr/scp_ramfw/config_smt.c
@@ -51,5 +51,5 @@ static const struct fwk_element *smt_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_smt = {
- .get_element_table = smt_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(smt_get_element_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_system_pll.c b/product/rddanielxlr/scp_ramfw/config_system_pll.c
index d84fdcef..2f96f9d1 100644
--- a/product/rddanielxlr/scp_ramfw/config_system_pll.c
+++ b/product/rddanielxlr/scp_ramfw/config_system_pll.c
@@ -111,5 +111,5 @@ static const struct fwk_element *system_pll_get_element_table
}
const struct fwk_module_config config_system_pll = {
- .get_element_table = system_pll_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_pll_get_element_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_system_power.c b/product/rddanielxlr/scp_ramfw/config_system_power.c
index 6505bdc1..193e27b1 100644
--- a/product/rddanielxlr/scp_ramfw/config_system_power.c
+++ b/product/rddanielxlr/scp_ramfw/config_system_power.c
@@ -89,6 +89,7 @@ static const struct fwk_element *rddanielxlr_system_get_element_table(
}
const struct fwk_module_config config_system_power = {
- .get_element_table = rddanielxlr_system_get_element_table,
.data = &system_power_config,
+ .elements =
+ FWK_MODULE_DYNAMIC_ELEMENTS(rddanielxlr_system_get_element_table),
};
diff --git a/product/rddanielxlr/scp_ramfw/config_timer.c b/product/rddanielxlr/scp_ramfw/config_timer.c
index 0828e41e..87be05fd 100644
--- a/product/rddanielxlr/scp_ramfw/config_timer.c
+++ b/product/rddanielxlr/scp_ramfw/config_timer.c
@@ -35,5 +35,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/rddanielxlr/src/config_pl011.c b/product/rddanielxlr/src/config_pl011.c
index 07192a92..fce84b36 100644
--- a/product/rddanielxlr/src/config_pl011.c
+++ b/product/rddanielxlr/src/config_pl011.c
@@ -34,5 +34,5 @@ static const struct fwk_element *get_pl011_table(fwk_id_t id)
}
const struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
diff --git a/product/rddanielxlr/src/config_sid.c b/product/rddanielxlr/src/config_sid.c
index 5ba0abcd..cf5d889d 100644
--- a/product/rddanielxlr/src/config_sid.c
+++ b/product/rddanielxlr/src/config_sid.c
@@ -29,7 +29,6 @@ static const struct fwk_element *get_subsystem_table(fwk_id_t id)
}
const struct fwk_module_config config_sid = {
- .get_element_table = get_subsystem_table,
.data = &(struct mod_sid_config) {
.sid_base = SCP_SID_BASE,
.pcid_expected = {
@@ -44,4 +43,6 @@ const struct fwk_module_config config_sid = {
.CID3 = 0xB1,
},
},
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_subsystem_table),
};
diff --git a/product/rddanielxlr/src/config_system_info.c b/product/rddanielxlr/src/config_system_info.c
index 841b39be..b49bffe9 100644
--- a/product/rddanielxlr/src/config_system_info.c
+++ b/product/rddanielxlr/src/config_system_info.c
@@ -13,7 +13,6 @@
#include <fwk_module_idx.h>
const struct fwk_module_config config_system_info = {
- .get_element_table = NULL,
.data = &((struct mod_system_info_config) {
.system_info_driver_module_id =
FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SID),
diff --git a/product/rdn1e1/mcp_romfw/config_log.c b/product/rdn1e1/mcp_romfw/config_log.c
index d172915d..87f68676 100644
--- a/product/rdn1e1/mcp_romfw/config_log.c
+++ b/product/rdn1e1/mcp_romfw/config_log.c
@@ -40,7 +40,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/rdn1e1/scp_ramfw/config_clock.c b/product/rdn1e1/scp_ramfw/config_clock.c
index 4a520df9..9daad5b3 100644
--- a/product/rdn1e1/scp_ramfw/config_clock.c
+++ b/product/rdn1e1/scp_ramfw/config_clock.c
@@ -67,14 +67,15 @@ static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
}
const struct fwk_module_config config_clock = {
- .get_element_table = clock_get_dev_desc_table,
- .data = &((struct mod_clock_config) {
- .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
- .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
- }),
+ .data =
+ &(struct mod_clock_config){
+ .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
+ .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
+ },
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(clock_get_dev_desc_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_cmn600.c b/product/rdn1e1/scp_ramfw/config_cmn600.c
index cdb83725..5ead1482 100644
--- a/product/rdn1e1/scp_ramfw/config_cmn600.c
+++ b/product/rdn1e1/scp_ramfw/config_cmn600.c
@@ -110,7 +110,6 @@ static const struct mod_cmn600_memory_region_map mmap[] = {
};
const struct fwk_module_config config_cmn600 = {
- .get_element_table = NULL,
.data = &((struct mod_cmn600_config) {
.base = SCP_CMN600_BASE,
.mesh_size_x = 4,
diff --git a/product/rdn1e1/scp_ramfw/config_css_clock.c b/product/rdn1e1/scp_ramfw/config_css_clock.c
index e7ff3a48..e1650234 100644
--- a/product/rdn1e1/scp_ramfw/config_css_clock.c
+++ b/product/rdn1e1/scp_ramfw/config_css_clock.c
@@ -188,5 +188,5 @@ static const struct fwk_element *css_clock_get_element_table
}
const struct fwk_module_config config_css_clock = {
- .get_element_table = css_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(css_clock_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_ddr_phy500.c b/product/rdn1e1/scp_ramfw/config_ddr_phy500.c
index 15ea65ef..e38a5df7 100644
--- a/product/rdn1e1/scp_ramfw/config_ddr_phy500.c
+++ b/product/rdn1e1/scp_ramfw/config_ddr_phy500.c
@@ -53,10 +53,12 @@ static const struct fwk_element *ddr_phy500_get_element_table
/* Configuration of the DDR PHY500 module. */
const struct fwk_module_config config_ddr_phy500 = {
- .get_element_table = ddr_phy500_get_element_table,
- .data = &((struct mod_ddr_phy500_module_config) {
+ .data =
+ &(struct mod_ddr_phy500_module_config){
.ddr_reg_val = &ddr_reg_val,
.initialize_init_complete = true,
.initialize_ref_en = true,
- }),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ddr_phy500_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_dmc620.c b/product/rdn1e1/scp_ramfw/config_dmc620.c
index 6633abbe..04028a32 100644
--- a/product/rdn1e1/scp_ramfw/config_dmc620.c
+++ b/product/rdn1e1/scp_ramfw/config_dmc620.c
@@ -209,11 +209,13 @@ static void direct_ddr_cmd(struct mod_dmc620_reg *dmc)
/* Configuration of the DMC500 module. */
const struct fwk_module_config config_dmc620 = {
- .get_element_table = dmc620_get_element_table,
- .data = &((struct mod_dmc620_module_config) {
+ .data =
+ &(struct mod_dmc620_module_config){
.dmc_val = &dmc_val,
.ddr_module_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_DDR_PHY500),
.ddr_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_DDR_PHY500, 0),
.direct_ddr_cmd = direct_ddr_cmd,
- }),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(dmc620_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_dvfs.c b/product/rdn1e1/scp_ramfw/config_dvfs.c
index 60119e77..a8f060da 100644
--- a/product/rdn1e1/scp_ramfw/config_dvfs.c
+++ b/product/rdn1e1/scp_ramfw/config_dvfs.c
@@ -119,5 +119,5 @@ static const struct fwk_element *dvfs_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_dvfs = {
- .get_element_table = dvfs_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(dvfs_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_log.c b/product/rdn1e1/scp_ramfw/config_log.c
index f0349a68..1b19b71d 100644
--- a/product/rdn1e1/scp_ramfw/config_log.c
+++ b/product/rdn1e1/scp_ramfw/config_log.c
@@ -40,7 +40,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/rdn1e1/scp_ramfw/config_mhu2.c b/product/rdn1e1/scp_ramfw/config_mhu2.c
index e6809e04..5fddd5cf 100644
--- a/product/rdn1e1/scp_ramfw/config_mhu2.c
+++ b/product/rdn1e1/scp_ramfw/config_mhu2.c
@@ -46,5 +46,5 @@ static const struct fwk_element *mhu_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_mhu2 = {
- .get_element_table = mhu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(mhu_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_mock_psu.c b/product/rdn1e1/scp_ramfw/config_mock_psu.c
index c6045ead..050b89b5 100644
--- a/product/rdn1e1/scp_ramfw/config_mock_psu.c
+++ b/product/rdn1e1/scp_ramfw/config_mock_psu.c
@@ -51,5 +51,5 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_mock_psu = {
- .get_element_table = get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_pik_clock.c b/product/rdn1e1/scp_ramfw/config_pik_clock.c
index 998c8fbd..a7004180 100644
--- a/product/rdn1e1/scp_ramfw/config_pik_clock.c
+++ b/product/rdn1e1/scp_ramfw/config_pik_clock.c
@@ -300,5 +300,5 @@ static const struct fwk_element *pik_clock_get_element_table
}
const struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_power_domain.c b/product/rdn1e1/scp_ramfw/config_power_domain.c
index 9af50099..7e62817b 100644
--- a/product/rdn1e1/scp_ramfw/config_power_domain.c
+++ b/product/rdn1e1/scp_ramfw/config_power_domain.c
@@ -211,6 +211,7 @@ static const struct fwk_element *rdn1e1_power_domain_get_element_table
* Power module configuration data
*/
const struct fwk_module_config config_power_domain = {
- .get_element_table = rdn1e1_power_domain_get_element_table,
.data = &rdn1e1_power_domain_config,
+ .elements =
+ FWK_MODULE_DYNAMIC_ELEMENTS(rdn1e1_power_domain_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_ppu_v0.c b/product/rdn1e1/scp_ramfw/config_ppu_v0.c
index bf03aafc..b77b401e 100644
--- a/product/rdn1e1/scp_ramfw/config_ppu_v0.c
+++ b/product/rdn1e1/scp_ramfw/config_ppu_v0.c
@@ -36,5 +36,5 @@ static const struct fwk_element *ppu_v0_get_element_table(fwk_id_t module_id)
* Power module configuration data
*/
const struct fwk_module_config config_ppu_v0 = {
- .get_element_table = ppu_v0_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ppu_v0_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_ppu_v1.c b/product/rdn1e1/scp_ramfw/config_ppu_v1.c
index b647a6eb..2e608a26 100644
--- a/product/rdn1e1/scp_ramfw/config_ppu_v1.c
+++ b/product/rdn1e1/scp_ramfw/config_ppu_v1.c
@@ -152,6 +152,6 @@ static const struct fwk_element *ppu_v1_get_element_table(fwk_id_t module_id)
* Power module configuration data
*/
const struct fwk_module_config config_ppu_v1 = {
- .get_element_table = ppu_v1_get_element_table,
.data = &ppu_v1_config_data,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ppu_v1_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_psu.c b/product/rdn1e1/scp_ramfw/config_psu.c
index 60c9bebb..11c9f199 100644
--- a/product/rdn1e1/scp_ramfw/config_psu.c
+++ b/product/rdn1e1/scp_ramfw/config_psu.c
@@ -39,5 +39,5 @@ static const struct fwk_element *psu_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_psu = {
- .get_element_table = psu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(psu_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_scmi.c b/product/rdn1e1/scp_ramfw/config_scmi.c
index 7caf1532..09471b99 100644
--- a/product/rdn1e1/scp_ramfw/config_scmi.c
+++ b/product/rdn1e1/scp_ramfw/config_scmi.c
@@ -69,12 +69,14 @@ static struct mod_scmi_agent agent_table[] = {
};
const struct fwk_module_config config_scmi = {
- .get_element_table = get_service_table,
- .data = &((struct mod_scmi_config) {
- .protocol_count_max = 9,
- .agent_count = FWK_ARRAY_SIZE(agent_table) - 1,
- .agent_table = agent_table,
- .vendor_identifier = "arm",
- .sub_vendor_identifier = "arm",
- }),
+ .data =
+ &(struct mod_scmi_config){
+ .protocol_count_max = 9,
+ .agent_count = FWK_ARRAY_SIZE(agent_table) - 1,
+ .agent_table = agent_table,
+ .vendor_identifier = "arm",
+ .sub_vendor_identifier = "arm",
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_service_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_scmi_perf.c b/product/rdn1e1/scp_ramfw/config_scmi_perf.c
index 9039f77b..44b2abfe 100644
--- a/product/rdn1e1/scp_ramfw/config_scmi_perf.c
+++ b/product/rdn1e1/scp_ramfw/config_scmi_perf.c
@@ -32,7 +32,6 @@ static const struct mod_scmi_perf_domain_config domains[] = {
};
const struct fwk_module_config config_scmi_perf = {
- .get_element_table = NULL,
.data = &((struct mod_scmi_perf_config) {
.domains = &domains,
.fast_channels_alarm_id = FWK_ID_NONE_INIT,
diff --git a/product/rdn1e1/scp_ramfw/config_sds.c b/product/rdn1e1/scp_ramfw/config_sds.c
index 7d72c89b..bd723a54 100644
--- a/product/rdn1e1/scp_ramfw/config_sds.c
+++ b/product/rdn1e1/scp_ramfw/config_sds.c
@@ -137,6 +137,6 @@ static const struct fwk_element *sds_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = sds_get_element_table,
.data = &sds_module_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sds_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_sensor.c b/product/rdn1e1/scp_ramfw/config_sensor.c
index b75764b4..818619c4 100644
--- a/product/rdn1e1/scp_ramfw/config_sensor.c
+++ b/product/rdn1e1/scp_ramfw/config_sensor.c
@@ -49,7 +49,7 @@ static const struct fwk_element *get_reg_sensor_element_table(fwk_id_t id)
}
struct fwk_module_config config_reg_sensor = {
- .get_element_table = get_reg_sensor_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_reg_sensor_element_table),
};
/*
@@ -73,5 +73,5 @@ static const struct fwk_element *get_sensor_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_sensor = {
- .get_element_table = get_sensor_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_sensor_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_smt.c b/product/rdn1e1/scp_ramfw/config_smt.c
index 56307ce5..4518a537 100644
--- a/product/rdn1e1/scp_ramfw/config_smt.c
+++ b/product/rdn1e1/scp_ramfw/config_smt.c
@@ -63,5 +63,5 @@ static const struct fwk_element *smt_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_smt = {
- .get_element_table = smt_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(smt_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_system_pll.c b/product/rdn1e1/scp_ramfw/config_system_pll.c
index 610068f7..2ed82eac 100644
--- a/product/rdn1e1/scp_ramfw/config_system_pll.c
+++ b/product/rdn1e1/scp_ramfw/config_system_pll.c
@@ -88,5 +88,5 @@ static const struct fwk_element *system_pll_get_element_table
}
const struct fwk_module_config config_system_pll = {
- .get_element_table = system_pll_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_pll_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_system_power.c b/product/rdn1e1/scp_ramfw/config_system_power.c
index 9c015e36..12c853a0 100644
--- a/product/rdn1e1/scp_ramfw/config_system_power.c
+++ b/product/rdn1e1/scp_ramfw/config_system_power.c
@@ -89,6 +89,6 @@ static const struct fwk_element *rdn1e1_system_get_element_table(
}
const struct fwk_module_config config_system_power = {
- .get_element_table = rdn1e1_system_get_element_table,
.data = &system_power_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(rdn1e1_system_get_element_table),
};
diff --git a/product/rdn1e1/scp_ramfw/config_timer.c b/product/rdn1e1/scp_ramfw/config_timer.c
index 0fb20432..c9abf9f9 100644
--- a/product/rdn1e1/scp_ramfw/config_timer.c
+++ b/product/rdn1e1/scp_ramfw/config_timer.c
@@ -43,7 +43,7 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
/*
@@ -67,5 +67,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/rdn1e1/scp_romfw/config_gtimer.c b/product/rdn1e1/scp_romfw/config_gtimer.c
index bcf4515c..91e8d1bf 100644
--- a/product/rdn1e1/scp_romfw/config_gtimer.c
+++ b/product/rdn1e1/scp_romfw/config_gtimer.c
@@ -37,5 +37,5 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
diff --git a/product/rdn1e1/scp_romfw/config_log.c b/product/rdn1e1/scp_romfw/config_log.c
index 54a43be3..d2d13eee 100644
--- a/product/rdn1e1/scp_romfw/config_log.c
+++ b/product/rdn1e1/scp_romfw/config_log.c
@@ -40,7 +40,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/rdn1e1/src/config_sid.c b/product/rdn1e1/src/config_sid.c
index 2e8a3da3..5caeadf3 100644
--- a/product/rdn1e1/src/config_sid.c
+++ b/product/rdn1e1/src/config_sid.c
@@ -35,7 +35,6 @@ static const struct fwk_element *get_subsystem_table(fwk_id_t id)
}
const struct fwk_module_config config_sid = {
- .get_element_table = get_subsystem_table,
.data = &(struct mod_sid_config) {
.sid_base = SCP_SID_BASE,
.pcid_expected = {
@@ -50,4 +49,6 @@ const struct fwk_module_config config_sid = {
.CID3 = 0xB1,
},
},
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_subsystem_table),
};
diff --git a/product/rdn1e1/src/config_system_info.c b/product/rdn1e1/src/config_system_info.c
index 23a2b480..dd124fdd 100644
--- a/product/rdn1e1/src/config_system_info.c
+++ b/product/rdn1e1/src/config_system_info.c
@@ -15,12 +15,10 @@
#include <stddef.h>
const struct fwk_module_config config_system_info = {
- .get_element_table = NULL,
- .data = &((struct mod_system_info_config) {
- .system_info_driver_module_id =
- FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SID),
- .system_info_driver_data_api_id =
- FWK_ID_API_INIT(FWK_MODULE_IDX_SID,
- MOD_SID_SYSTEM_INFO_DRIVER_DATA_API_IDX),
+ .data = &((struct mod_system_info_config){
+ .system_info_driver_module_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SID),
+ .system_info_driver_data_api_id = FWK_ID_API_INIT(
+ FWK_MODULE_IDX_SID,
+ MOD_SID_SYSTEM_INFO_DRIVER_DATA_API_IDX),
}),
};
diff --git a/product/sgi575/mcp_romfw/config_log.c b/product/sgi575/mcp_romfw/config_log.c
index 7b87a604..c69edb3e 100644
--- a/product/sgi575/mcp_romfw/config_log.c
+++ b/product/sgi575/mcp_romfw/config_log.c
@@ -40,7 +40,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/sgi575/scp_ramfw/config_clock.c b/product/sgi575/scp_ramfw/config_clock.c
index c8cdf9d4..916446b5 100644
--- a/product/sgi575/scp_ramfw/config_clock.c
+++ b/product/sgi575/scp_ramfw/config_clock.c
@@ -67,14 +67,15 @@ static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
}
const struct fwk_module_config config_clock = {
- .get_element_table = clock_get_dev_desc_table,
- .data = &((struct mod_clock_config) {
- .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
- .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
- }),
+ .data =
+ &(struct mod_clock_config){
+ .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
+ .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
+ },
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(clock_get_dev_desc_table),
};
diff --git a/product/sgi575/scp_ramfw/config_cmn600.c b/product/sgi575/scp_ramfw/config_cmn600.c
index a2e3e11b..f1a77b6b 100644
--- a/product/sgi575/scp_ramfw/config_cmn600.c
+++ b/product/sgi575/scp_ramfw/config_cmn600.c
@@ -97,8 +97,7 @@ static const struct mod_cmn600_memory_region_map mmap[] = {
};
const struct fwk_module_config config_cmn600 = {
- .get_element_table = NULL,
- .data = &((struct mod_cmn600_config) {
+ .data = &((struct mod_cmn600_config){
.base = SCP_CMN600_BASE,
.mesh_size_x = 4,
.mesh_size_y = 2,
@@ -108,8 +107,8 @@ const struct fwk_module_config config_cmn600 = {
.mmap_table = mmap,
.mmap_count = FWK_ARRAY_SIZE(mmap),
.chip_addr_space = UINT64_C(4) * FWK_TIB,
- .clock_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK,
- CLOCK_IDX_INTERCONNECT),
+ .clock_id =
+ FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, CLOCK_IDX_INTERCONNECT),
.hnf_cal_mode = false,
}),
};
diff --git a/product/sgi575/scp_ramfw/config_css_clock.c b/product/sgi575/scp_ramfw/config_css_clock.c
index 243072f7..d44355ea 100644
--- a/product/sgi575/scp_ramfw/config_css_clock.c
+++ b/product/sgi575/scp_ramfw/config_css_clock.c
@@ -188,5 +188,5 @@ static const struct fwk_element *css_clock_get_element_table
}
const struct fwk_module_config config_css_clock = {
- .get_element_table = css_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(css_clock_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_ddr_phy500.c b/product/sgi575/scp_ramfw/config_ddr_phy500.c
index b2376ef0..7c884978 100644
--- a/product/sgi575/scp_ramfw/config_ddr_phy500.c
+++ b/product/sgi575/scp_ramfw/config_ddr_phy500.c
@@ -54,10 +54,12 @@ static const struct fwk_element *ddr_phy500_get_element_table
/* Configuration of the DDR PHY500 module. */
struct fwk_module_config config_ddr_phy500 = {
- .get_element_table = ddr_phy500_get_element_table,
- .data = &((struct mod_ddr_phy500_module_config) {
+ .data =
+ &(struct mod_ddr_phy500_module_config){
.ddr_reg_val = &ddr_reg_val,
.initialize_init_complete = true,
.initialize_ref_en = true,
- }),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ddr_phy500_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_dmc620.c b/product/sgi575/scp_ramfw/config_dmc620.c
index 1f306b60..823bc4b4 100644
--- a/product/sgi575/scp_ramfw/config_dmc620.c
+++ b/product/sgi575/scp_ramfw/config_dmc620.c
@@ -209,13 +209,13 @@ static void direct_ddr_cmd(struct mod_dmc620_reg *dmc)
/* Configuration of the DMC620 module. */
const struct fwk_module_config config_dmc620 = {
- .get_element_table = dmc620_get_element_table,
- .data = &((struct mod_dmc620_module_config) {
+ .data =
+ &(struct mod_dmc620_module_config){
.dmc_val = &dmc_val,
- .ddr_module_id = FWK_ID_MODULE_INIT(
- FWK_MODULE_IDX_DDR_PHY500),
- .ddr_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_DDR_PHY500,
- 0),
+ .ddr_module_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_DDR_PHY500),
+ .ddr_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_DDR_PHY500, 0),
.direct_ddr_cmd = direct_ddr_cmd,
- }),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(dmc620_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_dvfs.c b/product/sgi575/scp_ramfw/config_dvfs.c
index 9b828b5b..814bbfdf 100644
--- a/product/sgi575/scp_ramfw/config_dvfs.c
+++ b/product/sgi575/scp_ramfw/config_dvfs.c
@@ -79,5 +79,5 @@ static const struct fwk_element *dvfs_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_dvfs = {
- .get_element_table = dvfs_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(dvfs_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_log.c b/product/sgi575/scp_ramfw/config_log.c
index ff4761eb..2c1f6d0f 100644
--- a/product/sgi575/scp_ramfw/config_log.c
+++ b/product/sgi575/scp_ramfw/config_log.c
@@ -40,7 +40,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/sgi575/scp_ramfw/config_mhu.c b/product/sgi575/scp_ramfw/config_mhu.c
index f388a08b..399d8b5a 100644
--- a/product/sgi575/scp_ramfw/config_mhu.c
+++ b/product/sgi575/scp_ramfw/config_mhu.c
@@ -45,5 +45,5 @@ static const struct fwk_element *mhu_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_mhu = {
- .get_element_table = mhu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(mhu_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_mock_psu.c b/product/sgi575/scp_ramfw/config_mock_psu.c
index 039d6b68..99d73d9e 100644
--- a/product/sgi575/scp_ramfw/config_mock_psu.c
+++ b/product/sgi575/scp_ramfw/config_mock_psu.c
@@ -51,5 +51,5 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_mock_psu = {
- .get_element_table = get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_pik_clock.c b/product/sgi575/scp_ramfw/config_pik_clock.c
index a1fe384f..5e992e90 100644
--- a/product/sgi575/scp_ramfw/config_pik_clock.c
+++ b/product/sgi575/scp_ramfw/config_pik_clock.c
@@ -300,5 +300,5 @@ static const struct fwk_element *pik_clock_get_element_table
}
const struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_power_domain.c b/product/sgi575/scp_ramfw/config_power_domain.c
index e63839b5..51c53bc4 100644
--- a/product/sgi575/scp_ramfw/config_power_domain.c
+++ b/product/sgi575/scp_ramfw/config_power_domain.c
@@ -212,6 +212,7 @@ static const struct fwk_element *sgi575_power_domain_get_element_table
* Power module configuration data
*/
const struct fwk_module_config config_power_domain = {
- .get_element_table = sgi575_power_domain_get_element_table,
.data = &sgi575_power_domain_config,
+ .elements =
+ FWK_MODULE_DYNAMIC_ELEMENTS(sgi575_power_domain_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_ppu_v0.c b/product/sgi575/scp_ramfw/config_ppu_v0.c
index 425f0047..7830ddec 100644
--- a/product/sgi575/scp_ramfw/config_ppu_v0.c
+++ b/product/sgi575/scp_ramfw/config_ppu_v0.c
@@ -36,5 +36,5 @@ static const struct fwk_element *ppu_v0_get_element_table(fwk_id_t module_id)
* Power module configuration data
*/
const struct fwk_module_config config_ppu_v0 = {
- .get_element_table = ppu_v0_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ppu_v0_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_ppu_v1.c b/product/sgi575/scp_ramfw/config_ppu_v1.c
index e37596e5..26dd66ba 100644
--- a/product/sgi575/scp_ramfw/config_ppu_v1.c
+++ b/product/sgi575/scp_ramfw/config_ppu_v1.c
@@ -152,6 +152,6 @@ static const struct fwk_element *ppu_v1_get_element_table(fwk_id_t module_id)
* Power module configuration data
*/
const struct fwk_module_config config_ppu_v1 = {
- .get_element_table = ppu_v1_get_element_table,
.data = &ppu_v1_config_data,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ppu_v1_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_psu.c b/product/sgi575/scp_ramfw/config_psu.c
index 4001ba30..b45cf1de 100644
--- a/product/sgi575/scp_ramfw/config_psu.c
+++ b/product/sgi575/scp_ramfw/config_psu.c
@@ -39,5 +39,5 @@ static const struct fwk_element *psu_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_psu = {
- .get_element_table = psu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(psu_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_scmi.c b/product/sgi575/scp_ramfw/config_scmi.c
index dd0e59e5..a86ab36d 100644
--- a/product/sgi575/scp_ramfw/config_scmi.c
+++ b/product/sgi575/scp_ramfw/config_scmi.c
@@ -69,12 +69,13 @@ static struct mod_scmi_agent agent_table[] = {
};
const struct fwk_module_config config_scmi = {
- .get_element_table = get_service_table,
- .data = &((struct mod_scmi_config) {
+ .data = &((struct mod_scmi_config){
.protocol_count_max = 9,
.agent_count = FWK_ARRAY_SIZE(agent_table) - 1,
.agent_table = agent_table,
.vendor_identifier = "arm",
.sub_vendor_identifier = "arm",
}),
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_service_table),
};
diff --git a/product/sgi575/scp_ramfw/config_scmi_perf.c b/product/sgi575/scp_ramfw/config_scmi_perf.c
index de948e2c..bb9b94f5 100644
--- a/product/sgi575/scp_ramfw/config_scmi_perf.c
+++ b/product/sgi575/scp_ramfw/config_scmi_perf.c
@@ -32,8 +32,7 @@ static const struct mod_scmi_perf_domain_config domains[] = {
};
const struct fwk_module_config config_scmi_perf = {
- .get_element_table = NULL,
- .data = &((struct mod_scmi_perf_config) {
+ .data = &((struct mod_scmi_perf_config){
.domains = &domains,
.fast_channels_alarm_id = FWK_ID_NONE_INIT,
}),
diff --git a/product/sgi575/scp_ramfw/config_sds.c b/product/sgi575/scp_ramfw/config_sds.c
index 52d8eded..2ce32e88 100644
--- a/product/sgi575/scp_ramfw/config_sds.c
+++ b/product/sgi575/scp_ramfw/config_sds.c
@@ -158,6 +158,6 @@ static const struct fwk_element *sds_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = sds_get_element_table,
.data = &sds_module_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sds_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_sensor.c b/product/sgi575/scp_ramfw/config_sensor.c
index 6bf75c79..5adef76c 100644
--- a/product/sgi575/scp_ramfw/config_sensor.c
+++ b/product/sgi575/scp_ramfw/config_sensor.c
@@ -49,7 +49,7 @@ static const struct fwk_element *get_reg_sensor_element_table(fwk_id_t id)
}
struct fwk_module_config config_reg_sensor = {
- .get_element_table = get_reg_sensor_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_reg_sensor_element_table),
};
/*
@@ -73,5 +73,5 @@ static const struct fwk_element *get_sensor_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_sensor = {
- .get_element_table = get_sensor_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_sensor_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_smt.c b/product/sgi575/scp_ramfw/config_smt.c
index 8912b0de..cc3f16f4 100644
--- a/product/sgi575/scp_ramfw/config_smt.c
+++ b/product/sgi575/scp_ramfw/config_smt.c
@@ -63,5 +63,5 @@ static const struct fwk_element *smt_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_smt = {
- .get_element_table = smt_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(smt_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_ssc.c b/product/sgi575/scp_ramfw/config_ssc.c
index 322a52d0..69652dfc 100644
--- a/product/sgi575/scp_ramfw/config_ssc.c
+++ b/product/sgi575/scp_ramfw/config_ssc.c
@@ -14,9 +14,8 @@
#include <stddef.h>
const struct fwk_module_config config_ssc = {
- .get_element_table = NULL,
- .data = &(struct mod_ssc_config) {
- .ssc_base = SSC_BASE,
- .product_name = "System Guidance for Infrastructure - 575"
- },
+ .data =
+ &(struct mod_ssc_config){
+ .ssc_base = SSC_BASE,
+ .product_name = "System Guidance for Infrastructure - 575" },
};
diff --git a/product/sgi575/scp_ramfw/config_system_info.c b/product/sgi575/scp_ramfw/config_system_info.c
index 95f509eb..08c70f1e 100644
--- a/product/sgi575/scp_ramfw/config_system_info.c
+++ b/product/sgi575/scp_ramfw/config_system_info.c
@@ -15,12 +15,10 @@
#include <stddef.h>
const struct fwk_module_config config_system_info = {
- .get_element_table = NULL,
- .data = &((struct mod_system_info_config) {
- .system_info_driver_module_id =
- FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SSC),
- .system_info_driver_data_api_id =
- FWK_ID_API_INIT(FWK_MODULE_IDX_SSC,
- MOD_SSC_SYSTEM_INFO_DRIVER_DATA_API_IDX),
+ .data = &((struct mod_system_info_config){
+ .system_info_driver_module_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SSC),
+ .system_info_driver_data_api_id = FWK_ID_API_INIT(
+ FWK_MODULE_IDX_SSC,
+ MOD_SSC_SYSTEM_INFO_DRIVER_DATA_API_IDX),
}),
};
diff --git a/product/sgi575/scp_ramfw/config_system_pll.c b/product/sgi575/scp_ramfw/config_system_pll.c
index 83ca02a5..0e30b8a3 100644
--- a/product/sgi575/scp_ramfw/config_system_pll.c
+++ b/product/sgi575/scp_ramfw/config_system_pll.c
@@ -88,5 +88,5 @@ static const struct fwk_element *system_pll_get_element_table
}
const struct fwk_module_config config_system_pll = {
- .get_element_table = system_pll_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_pll_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_system_power.c b/product/sgi575/scp_ramfw/config_system_power.c
index c460ba2b..e392a1e0 100644
--- a/product/sgi575/scp_ramfw/config_system_power.c
+++ b/product/sgi575/scp_ramfw/config_system_power.c
@@ -90,5 +90,5 @@ static const struct fwk_element *sgi575_system_get_element_table(
const struct fwk_module_config config_system_power = {
.data = &system_power_config,
- .get_element_table = sgi575_system_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sgi575_system_get_element_table),
};
diff --git a/product/sgi575/scp_ramfw/config_timer.c b/product/sgi575/scp_ramfw/config_timer.c
index b7c6a030..4cdbabcc 100644
--- a/product/sgi575/scp_ramfw/config_timer.c
+++ b/product/sgi575/scp_ramfw/config_timer.c
@@ -43,7 +43,7 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
/*
@@ -67,5 +67,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/sgi575/scp_romfw/config_gtimer.c b/product/sgi575/scp_romfw/config_gtimer.c
index 4c304b65..1357f83c 100644
--- a/product/sgi575/scp_romfw/config_gtimer.c
+++ b/product/sgi575/scp_romfw/config_gtimer.c
@@ -37,5 +37,5 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
diff --git a/product/sgi575/scp_romfw/config_log.c b/product/sgi575/scp_romfw/config_log.c
index c5f89f05..0c2d14be 100644
--- a/product/sgi575/scp_romfw/config_log.c
+++ b/product/sgi575/scp_romfw/config_log.c
@@ -40,7 +40,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/sgm775/scp_ramfw/config_clock.c b/product/sgm775/scp_ramfw/config_clock.c
index fccc0678..84d3b29a 100644
--- a/product/sgm775/scp_ramfw/config_clock.c
+++ b/product/sgm775/scp_ramfw/config_clock.c
@@ -109,8 +109,7 @@ static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
}
struct fwk_module_config config_clock = {
- .get_element_table = clock_get_dev_desc_table,
- .data = &((struct mod_clock_config) {
+ .data = &((struct mod_clock_config){
.pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
FWK_MODULE_IDX_POWER_DOMAIN,
MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
@@ -118,4 +117,6 @@ struct fwk_module_config config_clock = {
FWK_MODULE_IDX_POWER_DOMAIN,
MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
}),
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(clock_get_dev_desc_table),
};
diff --git a/product/sgm775/scp_ramfw/config_css_clock.c b/product/sgm775/scp_ramfw/config_css_clock.c
index 4957d557..2fe234c3 100644
--- a/product/sgm775/scp_ramfw/config_css_clock.c
+++ b/product/sgm775/scp_ramfw/config_css_clock.c
@@ -300,6 +300,5 @@ static const struct fwk_element *css_clock_get_element_table
}
struct fwk_module_config config_css_clock = {
- .get_element_table = css_clock_get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(css_clock_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_debugger_cli.c b/product/sgm775/scp_ramfw/config_debugger_cli.c
index e32b945e..45b36c79 100644
--- a/product/sgm775/scp_ramfw/config_debugger_cli.c
+++ b/product/sgm775/scp_ramfw/config_debugger_cli.c
@@ -24,6 +24,5 @@ static const struct mod_debugger_cli_module_config debugger_cli_data = {
* Configuration for the debugger CLI module
*/
struct fwk_module_config config_debugger_cli = {
- .get_element_table = NULL,
.data = &debugger_cli_data
};
diff --git a/product/sgm775/scp_ramfw/config_dvfs.c b/product/sgm775/scp_ramfw/config_dvfs.c
index 4b4928bf..6a16cd94 100644
--- a/product/sgm775/scp_ramfw/config_dvfs.c
+++ b/product/sgm775/scp_ramfw/config_dvfs.c
@@ -236,6 +236,5 @@ static const struct fwk_element *dvfs_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_dvfs = {
- .get_element_table = dvfs_get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(dvfs_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_log.c b/product/sgm775/scp_ramfw/config_log.c
index b7ea216a..c95c0640 100644
--- a/product/sgm775/scp_ramfw/config_log.c
+++ b/product/sgm775/scp_ramfw/config_log.c
@@ -45,7 +45,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
@@ -59,6 +59,5 @@ static const struct mod_log_config log_data = {
};
struct fwk_module_config config_log = {
- .get_element_table = NULL,
.data = &log_data,
};
diff --git a/product/sgm775/scp_ramfw/config_mhu.c b/product/sgm775/scp_ramfw/config_mhu.c
index 3df09453..e2cf48ec 100644
--- a/product/sgm775/scp_ramfw/config_mhu.c
+++ b/product/sgm775/scp_ramfw/config_mhu.c
@@ -53,5 +53,5 @@ static const struct fwk_element *mhu_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_mhu = {
- .get_element_table = mhu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(mhu_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_mock_psu.c b/product/sgm775/scp_ramfw/config_mock_psu.c
index e9f72d0d..569cb4a6 100644
--- a/product/sgm775/scp_ramfw/config_mock_psu.c
+++ b/product/sgm775/scp_ramfw/config_mock_psu.c
@@ -78,6 +78,5 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_mock_psu = {
- .get_element_table = get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_pik_clock.c b/product/sgm775/scp_ramfw/config_pik_clock.c
index de2ef26c..4edccbb4 100644
--- a/product/sgm775/scp_ramfw/config_pik_clock.c
+++ b/product/sgm775/scp_ramfw/config_pik_clock.c
@@ -300,6 +300,5 @@ static const struct fwk_element *pik_clock_get_element_table
}
struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_power_domain.c b/product/sgm775/scp_ramfw/config_power_domain.c
index cf0316a5..4aa040a5 100644
--- a/product/sgm775/scp_ramfw/config_power_domain.c
+++ b/product/sgm775/scp_ramfw/config_power_domain.c
@@ -256,6 +256,7 @@ static const struct fwk_element *sgm775_power_domain_get_element_table
* Power module configuration data
*/
struct fwk_module_config config_power_domain = {
- .get_element_table = sgm775_power_domain_get_element_table,
.data = &sgm775_power_domain_config,
+ .elements =
+ FWK_MODULE_DYNAMIC_ELEMENTS(sgm775_power_domain_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_ppu_v0.c b/product/sgm775/scp_ramfw/config_ppu_v0.c
index e2f196c9..f7797798 100644
--- a/product/sgm775/scp_ramfw/config_ppu_v0.c
+++ b/product/sgm775/scp_ramfw/config_ppu_v0.c
@@ -95,6 +95,5 @@ static const struct fwk_element *sgm775_ppu_v0_get_element_table
* Power module configuration data
*/
struct fwk_module_config config_ppu_v0 = {
- .get_element_table = sgm775_ppu_v0_get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sgm775_ppu_v0_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_ppu_v1.c b/product/sgm775/scp_ramfw/config_ppu_v1.c
index 50b30219..f13dc3f0 100644
--- a/product/sgm775/scp_ramfw/config_ppu_v1.c
+++ b/product/sgm775/scp_ramfw/config_ppu_v1.c
@@ -102,6 +102,6 @@ static const struct fwk_element *sgm775_ppu_v1_get_element_table
* Power module configuration data
*/
struct fwk_module_config config_ppu_v1 = {
- .get_element_table = sgm775_ppu_v1_get_element_table,
.data = &sgm775_ppu_v1_notification_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sgm775_ppu_v1_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_psu.c b/product/sgm775/scp_ramfw/config_psu.c
index 758722ab..fae09913 100644
--- a/product/sgm775/scp_ramfw/config_psu.c
+++ b/product/sgm775/scp_ramfw/config_psu.c
@@ -72,6 +72,5 @@ static const struct fwk_element *psu_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_psu = {
- .get_element_table = psu_get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(psu_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_scmi.c b/product/sgm775/scp_ramfw/config_scmi.c
index 0ae6f73b..b3480353 100644
--- a/product/sgm775/scp_ramfw/config_scmi.c
+++ b/product/sgm775/scp_ramfw/config_scmi.c
@@ -78,12 +78,13 @@ static const struct mod_scmi_agent agent_table[] = {
};
struct fwk_module_config config_scmi = {
- .get_element_table = get_service_table,
- .data = &((struct mod_scmi_config) {
+ .data = &((struct mod_scmi_config){
.protocol_count_max = 9,
.agent_count = FWK_ARRAY_SIZE(agent_table) - 1,
.agent_table = agent_table,
.vendor_identifier = "arm",
.sub_vendor_identifier = "arm",
}),
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_service_table),
};
diff --git a/product/sgm775/scp_ramfw/config_scmi_perf.c b/product/sgm775/scp_ramfw/config_scmi_perf.c
index 12398d01..c781b2f4 100644
--- a/product/sgm775/scp_ramfw/config_scmi_perf.c
+++ b/product/sgm775/scp_ramfw/config_scmi_perf.c
@@ -40,8 +40,7 @@ static const struct mod_scmi_perf_domain_config domains[] = {
};
struct fwk_module_config config_scmi_perf = {
- .get_element_table = NULL,
- .data = &((struct mod_scmi_perf_config) {
+ .data = &((struct mod_scmi_perf_config){
.domains = &domains,
.fast_channels_alarm_id = FWK_ID_NONE_INIT,
}),
diff --git a/product/sgm775/scp_ramfw/config_scmi_system_power.c b/product/sgm775/scp_ramfw/config_scmi_system_power.c
index 59f81c1a..3a44bf60 100644
--- a/product/sgm775/scp_ramfw/config_scmi_system_power.c
+++ b/product/sgm775/scp_ramfw/config_scmi_system_power.c
@@ -13,9 +13,7 @@
#include <stddef.h>
struct fwk_module_config config_scmi_system_power = {
- .get_element_table = NULL,
- .data = &((struct mod_scmi_system_power_config) {
+ .data = &((struct mod_scmi_system_power_config){
.system_view = MOD_SCMI_SYSTEM_VIEW_FULL,
- .system_suspend_state = MOD_SYSTEM_POWER_POWER_STATE_SLEEP0
- }),
+ .system_suspend_state = MOD_SYSTEM_POWER_POWER_STATE_SLEEP0 }),
};
diff --git a/product/sgm775/scp_ramfw/config_sds.c b/product/sgm775/scp_ramfw/config_sds.c
index ac5af81d..b7634f74 100644
--- a/product/sgm775/scp_ramfw/config_sds.c
+++ b/product/sgm775/scp_ramfw/config_sds.c
@@ -88,6 +88,6 @@ static const struct fwk_element *sds_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = sds_get_element_table,
.data = &sds_module_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sds_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_sensor.c b/product/sgm775/scp_ramfw/config_sensor.c
index b0f5c968..7c1ff747 100644
--- a/product/sgm775/scp_ramfw/config_sensor.c
+++ b/product/sgm775/scp_ramfw/config_sensor.c
@@ -50,7 +50,7 @@ static const struct fwk_element *get_reg_sensor_element_table(fwk_id_t id)
}
struct fwk_module_config config_reg_sensor = {
- .get_element_table = get_reg_sensor_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_reg_sensor_element_table),
};
/*
@@ -74,6 +74,5 @@ static const struct fwk_element *get_sensor_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sensor = {
- .get_element_table = get_sensor_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_sensor_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_sgm775_ddr_phy500.c b/product/sgm775/scp_ramfw/config_sgm775_ddr_phy500.c
index 1f3f1fdb..8ac90712 100644
--- a/product/sgm775/scp_ramfw/config_sgm775_ddr_phy500.c
+++ b/product/sgm775/scp_ramfw/config_sgm775_ddr_phy500.c
@@ -48,6 +48,6 @@ static const struct fwk_element *sgm775_ddr_phy500_get_element_table
/* Configuration of the DDR PHY500 module. */
struct fwk_module_config config_sgm775_ddr_phy500 = {
- .get_element_table = sgm775_ddr_phy500_get_element_table,
- .data = NULL,
+ .elements =
+ FWK_MODULE_DYNAMIC_ELEMENTS(sgm775_ddr_phy500_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_sgm775_dmc500.c b/product/sgm775/scp_ramfw/config_sgm775_dmc500.c
index b19a7c87..0b545252 100644
--- a/product/sgm775/scp_ramfw/config_sgm775_dmc500.c
+++ b/product/sgm775/scp_ramfw/config_sgm775_dmc500.c
@@ -54,8 +54,10 @@ static const struct fwk_element *sgm775_dmc500_get_element_table(
/* Configuration of the DMC500 module. */
struct fwk_module_config config_sgm775_dmc500 = {
- .get_element_table = sgm775_dmc500_get_element_table,
- .data = &((struct mod_sgm775_dmc500_module_config) {
+ .data =
+ &(struct mod_sgm775_dmc500_module_config){
.timer_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0),
- }),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sgm775_dmc500_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_smt.c b/product/sgm775/scp_ramfw/config_smt.c
index 1803ee9f..67e646d2 100644
--- a/product/sgm775/scp_ramfw/config_smt.c
+++ b/product/sgm775/scp_ramfw/config_smt.c
@@ -75,5 +75,5 @@ static const struct fwk_element *smt_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_smt = {
- .get_element_table = smt_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(smt_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_system_pll.c b/product/sgm775/scp_ramfw/config_system_pll.c
index 5c7b568d..4251b31f 100644
--- a/product/sgm775/scp_ramfw/config_system_pll.c
+++ b/product/sgm775/scp_ramfw/config_system_pll.c
@@ -119,6 +119,5 @@ static const struct fwk_element *system_pll_get_element_table
}
struct fwk_module_config config_system_pll = {
- .get_element_table = system_pll_get_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_pll_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_system_power.c b/product/sgm775/scp_ramfw/config_system_power.c
index 038a2e51..a5ba4748 100644
--- a/product/sgm775/scp_ramfw/config_system_power.c
+++ b/product/sgm775/scp_ramfw/config_system_power.c
@@ -95,14 +95,17 @@ static const struct fwk_element *system_power_get_element_table(
}
const struct fwk_module_config config_system_power = {
- .data = &((struct mod_system_power_config) {
- .soc_wakeup_irq = SOC_WAKEUP0_IRQ,
- .ext_ppus = ext_ppus,
- .ext_ppus_count = FWK_ARRAY_SIZE(ext_ppus),
- .driver_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SGM775_SYSTEM),
- .driver_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_SGM775_SYSTEM,
- MOD_SGM775_SYSTEM_API_IDX_SYSTEM_POWER_DRIVER),
- .initial_system_power_state = MOD_PD_STATE_ON,
- }),
- .get_element_table = system_power_get_element_table,
+ .data =
+ &(struct mod_system_power_config){
+ .soc_wakeup_irq = SOC_WAKEUP0_IRQ,
+ .ext_ppus = ext_ppus,
+ .ext_ppus_count = FWK_ARRAY_SIZE(ext_ppus),
+ .driver_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SGM775_SYSTEM),
+ .driver_api_id = FWK_ID_API_INIT(
+ FWK_MODULE_IDX_SGM775_SYSTEM,
+ MOD_SGM775_SYSTEM_API_IDX_SYSTEM_POWER_DRIVER),
+ .initial_system_power_state = MOD_PD_STATE_ON,
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_power_get_element_table),
};
diff --git a/product/sgm775/scp_ramfw/config_timer.c b/product/sgm775/scp_ramfw/config_timer.c
index bbac119b..dd7cf9ee 100644
--- a/product/sgm775/scp_ramfw/config_timer.c
+++ b/product/sgm775/scp_ramfw/config_timer.c
@@ -45,7 +45,7 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
/*
@@ -71,5 +71,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/sgm775/scp_romfw/config_clock.c b/product/sgm775/scp_romfw/config_clock.c
index 565fc96a..ad76b6c0 100644
--- a/product/sgm775/scp_romfw/config_clock.c
+++ b/product/sgm775/scp_romfw/config_clock.c
@@ -118,11 +118,13 @@ static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
}
const struct fwk_module_config config_clock = {
- .get_element_table = clock_get_dev_desc_table,
- .data = &((struct mod_clock_config) {
- .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_MSYS_ROM,
- MOD_MSYS_ROM_NOTIFICATION_IDX_POWER_SYSTOP),
- .pd_pre_transition_notification_id = FWK_ID_NONE_INIT,
- }),
+ .data =
+ &(struct mod_clock_config){
+ .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_MSYS_ROM,
+ MOD_MSYS_ROM_NOTIFICATION_IDX_POWER_SYSTOP),
+ .pd_pre_transition_notification_id = FWK_ID_NONE_INIT,
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(clock_get_dev_desc_table),
};
diff --git a/product/sgm775/scp_romfw/config_css_clock.c b/product/sgm775/scp_romfw/config_css_clock.c
index c029ad3b..6cb9fee9 100644
--- a/product/sgm775/scp_romfw/config_css_clock.c
+++ b/product/sgm775/scp_romfw/config_css_clock.c
@@ -134,5 +134,5 @@ static const struct fwk_element *css_clock_get_element_table
}
struct fwk_module_config config_css_clock = {
- .get_element_table = css_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(css_clock_get_element_table),
};
diff --git a/product/sgm775/scp_romfw/config_log.c b/product/sgm775/scp_romfw/config_log.c
index eaf1c80b..2ab30e1f 100644
--- a/product/sgm775/scp_romfw/config_log.c
+++ b/product/sgm775/scp_romfw/config_log.c
@@ -45,7 +45,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
@@ -59,6 +59,5 @@ static const struct mod_log_config log_data = {
};
struct fwk_module_config config_log = {
- .get_element_table = NULL,
.data = &log_data,
};
diff --git a/product/sgm775/scp_romfw/config_pik_clock.c b/product/sgm775/scp_romfw/config_pik_clock.c
index 9a6bd87e..2fc25398 100644
--- a/product/sgm775/scp_romfw/config_pik_clock.c
+++ b/product/sgm775/scp_romfw/config_pik_clock.c
@@ -310,5 +310,5 @@ static const struct fwk_element *pik_clock_get_element_table
}
struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/sgm775/scp_romfw/config_ppu_v0.c b/product/sgm775/scp_romfw/config_ppu_v0.c
index c965e590..f72bd55a 100644
--- a/product/sgm775/scp_romfw/config_ppu_v0.c
+++ b/product/sgm775/scp_romfw/config_ppu_v0.c
@@ -51,5 +51,5 @@ static const struct fwk_element *sgm775_ppu_v0_get_element_table(
* Power module configuration data
*/
struct fwk_module_config config_ppu_v0 = {
- .get_element_table = sgm775_ppu_v0_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sgm775_ppu_v0_get_element_table),
};
diff --git a/product/sgm775/scp_romfw/config_ppu_v1.c b/product/sgm775/scp_romfw/config_ppu_v1.c
index 70decf23..9e532252 100644
--- a/product/sgm775/scp_romfw/config_ppu_v1.c
+++ b/product/sgm775/scp_romfw/config_ppu_v1.c
@@ -50,11 +50,13 @@ static const struct fwk_element *sgm775_ppu_v1_get_element_table(
* Power module configuration data
*/
struct fwk_module_config config_ppu_v1 = {
- .get_element_table = sgm775_ppu_v1_get_element_table,
- .data = &(struct mod_ppu_v1_config) {
- .pd_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_MSYS_ROM,
- MOD_MSYS_ROM_NOTIFICATION_IDX_POWER_SYSTOP),
- .pd_source_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_MSYS_ROM),
- },
+ .data =
+ &(struct mod_ppu_v1_config){
+ .pd_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_MSYS_ROM,
+ MOD_MSYS_ROM_NOTIFICATION_IDX_POWER_SYSTOP),
+ .pd_source_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_MSYS_ROM),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sgm775_ppu_v1_get_element_table),
};
diff --git a/product/sgm775/scp_romfw/config_sds.c b/product/sgm775/scp_romfw/config_sds.c
index bf88489b..b8948b81 100644
--- a/product/sgm775/scp_romfw/config_sds.c
+++ b/product/sgm775/scp_romfw/config_sds.c
@@ -165,6 +165,6 @@ static const struct fwk_element *sds_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = sds_get_element_table,
.data = &sds_module_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sds_get_element_table),
};
diff --git a/product/sgm775/scp_romfw/config_system_pll.c b/product/sgm775/scp_romfw/config_system_pll.c
index 377f39b4..a84f1aff 100644
--- a/product/sgm775/scp_romfw/config_system_pll.c
+++ b/product/sgm775/scp_romfw/config_system_pll.c
@@ -94,5 +94,5 @@ static const struct fwk_element *system_pll_get_element_table
}
struct fwk_module_config config_system_pll = {
- .get_element_table = system_pll_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_pll_get_element_table),
};
diff --git a/product/sgm775/scp_romfw/config_timer.c b/product/sgm775/scp_romfw/config_timer.c
index d6ac6c17..ba58ddd6 100644
--- a/product/sgm775/scp_romfw/config_timer.c
+++ b/product/sgm775/scp_romfw/config_timer.c
@@ -42,7 +42,7 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
/*
@@ -66,5 +66,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/sgm775/src/config_sid.c b/product/sgm775/src/config_sid.c
index 30809cff..c4917c7e 100644
--- a/product/sgm775/src/config_sid.c
+++ b/product/sgm775/src/config_sid.c
@@ -30,7 +30,6 @@ static const struct fwk_element *get_subsystem_table(fwk_id_t id)
}
struct fwk_module_config config_sid = {
- .get_element_table = get_subsystem_table,
.data = &(struct mod_sid_config) {
.sid_base = SSC_BASE,
.pcid_expected = {
@@ -44,4 +43,6 @@ struct fwk_module_config config_sid = {
.CID3 = 0xB1,
},
},
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_subsystem_table),
};
diff --git a/product/sgm775/src/config_system_info.c b/product/sgm775/src/config_system_info.c
index 23a2b480..dd124fdd 100644
--- a/product/sgm775/src/config_system_info.c
+++ b/product/sgm775/src/config_system_info.c
@@ -15,12 +15,10 @@
#include <stddef.h>
const struct fwk_module_config config_system_info = {
- .get_element_table = NULL,
- .data = &((struct mod_system_info_config) {
- .system_info_driver_module_id =
- FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SID),
- .system_info_driver_data_api_id =
- FWK_ID_API_INIT(FWK_MODULE_IDX_SID,
- MOD_SID_SYSTEM_INFO_DRIVER_DATA_API_IDX),
+ .data = &((struct mod_system_info_config){
+ .system_info_driver_module_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SID),
+ .system_info_driver_data_api_id = FWK_ID_API_INIT(
+ FWK_MODULE_IDX_SID,
+ MOD_SID_SYSTEM_INFO_DRIVER_DATA_API_IDX),
}),
};
diff --git a/product/sgm776/scp_ramfw/config_clock.c b/product/sgm776/scp_ramfw/config_clock.c
index 8267de25..b39763f8 100644
--- a/product/sgm776/scp_ramfw/config_clock.c
+++ b/product/sgm776/scp_ramfw/config_clock.c
@@ -109,13 +109,15 @@ static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
}
struct fwk_module_config config_clock = {
- .get_element_table = clock_get_dev_desc_table,
- .data = &((struct mod_clock_config) {
- .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
- .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_POWER_DOMAIN,
- MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
- }),
+ .data =
+ &(struct mod_clock_config){
+ .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
+ .pd_pre_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_POWER_DOMAIN,
+ MOD_PD_NOTIFICATION_IDX_POWER_STATE_PRE_TRANSITION),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(clock_get_dev_desc_table),
};
diff --git a/product/sgm776/scp_ramfw/config_css_clock.c b/product/sgm776/scp_ramfw/config_css_clock.c
index 982e9f37..164d2e1c 100644
--- a/product/sgm776/scp_ramfw/config_css_clock.c
+++ b/product/sgm776/scp_ramfw/config_css_clock.c
@@ -354,5 +354,5 @@ static const struct fwk_element *css_clock_get_element_table
}
const struct fwk_module_config config_css_clock = {
- .get_element_table = css_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(css_clock_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_ddr_phy500.c b/product/sgm776/scp_ramfw/config_ddr_phy500.c
index b7d68e32..a3c48b34 100644
--- a/product/sgm776/scp_ramfw/config_ddr_phy500.c
+++ b/product/sgm776/scp_ramfw/config_ddr_phy500.c
@@ -59,8 +59,10 @@ static const struct fwk_element *ddr_phy500_get_element_table(
/* Configuration of the DDR PHY500 module. */
const struct fwk_module_config config_ddr_phy500 = {
- .get_element_table = ddr_phy500_get_element_table,
- .data = &((struct mod_ddr_phy500_module_config) {
- .ddr_reg_val = &ddr_reg_val,
- }),
+ .data =
+ &(struct mod_ddr_phy500_module_config){
+ .ddr_reg_val = &ddr_reg_val,
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ddr_phy500_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_dmc500.c b/product/sgm776/scp_ramfw/config_dmc500.c
index 13fb7a4f..080dbf59 100644
--- a/product/sgm776/scp_ramfw/config_dmc500.c
+++ b/product/sgm776/scp_ramfw/config_dmc500.c
@@ -213,12 +213,14 @@ static void direct_ddr_cmd(struct mod_dmc500_reg *dmc)
/* Configuration of the DMC500 module. */
const struct fwk_module_config config_dmc500 = {
- .get_element_table = dmc500_get_element_table,
- .data = &((struct mod_dmc500_module_config) {
- .timer_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0),
- .ddr_phy_module_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_DDR_PHY500),
- .ddr_phy_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_DDR_PHY500, 0),
- .reg_val = &reg_val,
- .direct_ddr_cmd = direct_ddr_cmd,
- }),
+ .data =
+ &(struct mod_dmc500_module_config){
+ .timer_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0),
+ .ddr_phy_module_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_DDR_PHY500),
+ .ddr_phy_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_DDR_PHY500, 0),
+ .reg_val = &reg_val,
+ .direct_ddr_cmd = direct_ddr_cmd,
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(dmc500_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_dvfs.c b/product/sgm776/scp_ramfw/config_dvfs.c
index ebba80ef..760569ad 100644
--- a/product/sgm776/scp_ramfw/config_dvfs.c
+++ b/product/sgm776/scp_ramfw/config_dvfs.c
@@ -212,5 +212,5 @@ static const struct fwk_element *dvfs_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_dvfs = {
- .get_element_table = dvfs_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(dvfs_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_log.c b/product/sgm776/scp_ramfw/config_log.c
index c27e8769..9357d63c 100644
--- a/product/sgm776/scp_ramfw/config_log.c
+++ b/product/sgm776/scp_ramfw/config_log.c
@@ -45,7 +45,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
const struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
@@ -59,6 +59,5 @@ static const struct mod_log_config log_data = {
};
const struct fwk_module_config config_log = {
- .get_element_table = NULL,
.data = &log_data,
};
diff --git a/product/sgm776/scp_ramfw/config_mhu.c b/product/sgm776/scp_ramfw/config_mhu.c
index c7f654c1..149f7c59 100644
--- a/product/sgm776/scp_ramfw/config_mhu.c
+++ b/product/sgm776/scp_ramfw/config_mhu.c
@@ -56,5 +56,5 @@ static const struct fwk_element *mhu_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_mhu2 = {
- .get_element_table = mhu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(mhu_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_mock_psu.c b/product/sgm776/scp_ramfw/config_mock_psu.c
index 84e2d70b..436e93de 100644
--- a/product/sgm776/scp_ramfw/config_mock_psu.c
+++ b/product/sgm776/scp_ramfw/config_mock_psu.c
@@ -75,5 +75,5 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_mock_psu = {
- .get_element_table = get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_pik_clock.c b/product/sgm776/scp_ramfw/config_pik_clock.c
index 64dc64ec..cb8e67a6 100644
--- a/product/sgm776/scp_ramfw/config_pik_clock.c
+++ b/product/sgm776/scp_ramfw/config_pik_clock.c
@@ -312,5 +312,5 @@ static const struct fwk_element *pik_clock_get_element_table
}
const struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_power_domain.c b/product/sgm776/scp_ramfw/config_power_domain.c
index 4857ba84..df69d520 100644
--- a/product/sgm776/scp_ramfw/config_power_domain.c
+++ b/product/sgm776/scp_ramfw/config_power_domain.c
@@ -245,6 +245,7 @@ static const struct fwk_element *sgm776_power_domain_get_element_table
* Power module configuration data
*/
struct fwk_module_config config_power_domain = {
- .get_element_table = sgm776_power_domain_get_element_table,
.data = &sgm776_power_domain_config,
+ .elements =
+ FWK_MODULE_DYNAMIC_ELEMENTS(sgm776_power_domain_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_ppu_v1.c b/product/sgm776/scp_ramfw/config_ppu_v1.c
index 60a99758..049d4a18 100644
--- a/product/sgm776/scp_ramfw/config_ppu_v1.c
+++ b/product/sgm776/scp_ramfw/config_ppu_v1.c
@@ -172,6 +172,6 @@ static const struct fwk_element *sgm776_ppu_v1_get_element_table(
* Power module configuration data
*/
struct fwk_module_config config_ppu_v1 = {
- .get_element_table = sgm776_ppu_v1_get_element_table,
.data = &sgm776_ppu_v1_notification_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sgm776_ppu_v1_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_psu.c b/product/sgm776/scp_ramfw/config_psu.c
index 3a91a791..95534c11 100644
--- a/product/sgm776/scp_ramfw/config_psu.c
+++ b/product/sgm776/scp_ramfw/config_psu.c
@@ -55,5 +55,5 @@ static const struct fwk_element *psu_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_psu = {
- .get_element_table = psu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(psu_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_scmi.c b/product/sgm776/scp_ramfw/config_scmi.c
index e4744b57..b1af3184 100644
--- a/product/sgm776/scp_ramfw/config_scmi.c
+++ b/product/sgm776/scp_ramfw/config_scmi.c
@@ -78,12 +78,14 @@ static const struct mod_scmi_agent agent_table[] = {
};
struct fwk_module_config config_scmi = {
- .get_element_table = get_service_table,
- .data = &((struct mod_scmi_config) {
- .protocol_count_max = 9,
- .agent_count = FWK_ARRAY_SIZE(agent_table) - 1,
- .agent_table = agent_table,
- .vendor_identifier = "arm",
- .sub_vendor_identifier = "arm",
- }),
+ .data =
+ &(struct mod_scmi_config){
+ .protocol_count_max = 9,
+ .agent_count = FWK_ARRAY_SIZE(agent_table) - 1,
+ .agent_table = agent_table,
+ .vendor_identifier = "arm",
+ .sub_vendor_identifier = "arm",
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_service_table),
};
diff --git a/product/sgm776/scp_ramfw/config_scmi_system_power.c b/product/sgm776/scp_ramfw/config_scmi_system_power.c
index 59f81c1a..3a44bf60 100644
--- a/product/sgm776/scp_ramfw/config_scmi_system_power.c
+++ b/product/sgm776/scp_ramfw/config_scmi_system_power.c
@@ -13,9 +13,7 @@
#include <stddef.h>
struct fwk_module_config config_scmi_system_power = {
- .get_element_table = NULL,
- .data = &((struct mod_scmi_system_power_config) {
+ .data = &((struct mod_scmi_system_power_config){
.system_view = MOD_SCMI_SYSTEM_VIEW_FULL,
- .system_suspend_state = MOD_SYSTEM_POWER_POWER_STATE_SLEEP0
- }),
+ .system_suspend_state = MOD_SYSTEM_POWER_POWER_STATE_SLEEP0 }),
};
diff --git a/product/sgm776/scp_ramfw/config_sds.c b/product/sgm776/scp_ramfw/config_sds.c
index 1a0ce091..cb3a7314 100644
--- a/product/sgm776/scp_ramfw/config_sds.c
+++ b/product/sgm776/scp_ramfw/config_sds.c
@@ -85,6 +85,6 @@ static const struct fwk_element *sds_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_sds = {
- .get_element_table = sds_get_element_table,
.data = &sds_module_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sds_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_sensor.c b/product/sgm776/scp_ramfw/config_sensor.c
index 65cb7a16..bc0298fb 100644
--- a/product/sgm776/scp_ramfw/config_sensor.c
+++ b/product/sgm776/scp_ramfw/config_sensor.c
@@ -51,7 +51,7 @@ static const struct fwk_element *get_reg_sensor_element_table(fwk_id_t id)
}
struct fwk_module_config config_reg_sensor = {
- .get_element_table = get_reg_sensor_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_reg_sensor_element_table),
};
/*
@@ -75,6 +75,5 @@ static const struct fwk_element *get_sensor_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_sensor = {
- .get_element_table = get_sensor_element_table,
- .data = NULL,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_sensor_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_smt.c b/product/sgm776/scp_ramfw/config_smt.c
index 2025b06a..8131cce4 100644
--- a/product/sgm776/scp_ramfw/config_smt.c
+++ b/product/sgm776/scp_ramfw/config_smt.c
@@ -79,5 +79,5 @@ static const struct fwk_element *smt_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_smt = {
- .get_element_table = smt_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(smt_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_system_pll.c b/product/sgm776/scp_ramfw/config_system_pll.c
index 6f0f5f90..ddd07639 100644
--- a/product/sgm776/scp_ramfw/config_system_pll.c
+++ b/product/sgm776/scp_ramfw/config_system_pll.c
@@ -119,5 +119,5 @@ static const struct fwk_element *system_pll_get_element_table
}
const struct fwk_module_config config_system_pll = {
- .get_element_table = system_pll_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_pll_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_system_power.c b/product/sgm776/scp_ramfw/config_system_power.c
index faff7617..e26826ff 100644
--- a/product/sgm776/scp_ramfw/config_system_power.c
+++ b/product/sgm776/scp_ramfw/config_system_power.c
@@ -93,14 +93,17 @@ static const struct fwk_element *system_power_get_element_table(
}
const struct fwk_module_config config_system_power = {
- .data = &((struct mod_system_power_config) {
- .soc_wakeup_irq = SOC_WAKEUP0_IRQ,
- .ext_ppus = ext_ppus,
- .ext_ppus_count = FWK_ARRAY_SIZE(ext_ppus),
- .driver_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SGM776_SYSTEM),
- .driver_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_SGM776_SYSTEM,
- MOD_SGM776_SYSTEM_API_IDX_SYSTEM_POWER_DRIVER),
- .initial_system_power_state = MOD_PD_STATE_ON,
- }),
- .get_element_table = system_power_get_element_table,
+ .data =
+ &(struct mod_system_power_config){
+ .soc_wakeup_irq = SOC_WAKEUP0_IRQ,
+ .ext_ppus = ext_ppus,
+ .ext_ppus_count = FWK_ARRAY_SIZE(ext_ppus),
+ .driver_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SGM776_SYSTEM),
+ .driver_api_id = FWK_ID_API_INIT(
+ FWK_MODULE_IDX_SGM776_SYSTEM,
+ MOD_SGM776_SYSTEM_API_IDX_SYSTEM_POWER_DRIVER),
+ .initial_system_power_state = MOD_PD_STATE_ON,
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_power_get_element_table),
};
diff --git a/product/sgm776/scp_ramfw/config_timer.c b/product/sgm776/scp_ramfw/config_timer.c
index 989d7f0f..8db19e26 100644
--- a/product/sgm776/scp_ramfw/config_timer.c
+++ b/product/sgm776/scp_ramfw/config_timer.c
@@ -44,7 +44,7 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
/*
@@ -70,5 +70,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/sgm776/scp_romfw/config_clock.c b/product/sgm776/scp_romfw/config_clock.c
index 9bb62d18..e8ce7449 100644
--- a/product/sgm776/scp_romfw/config_clock.c
+++ b/product/sgm776/scp_romfw/config_clock.c
@@ -109,11 +109,13 @@ static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
}
const struct fwk_module_config config_clock = {
- .get_element_table = clock_get_dev_desc_table,
- .data = &((struct mod_clock_config) {
- .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
- FWK_MODULE_IDX_MSYS_ROM,
- MOD_MSYS_ROM_NOTIFICATION_IDX_POWER_SYSTOP),
- .pd_pre_transition_notification_id = FWK_ID_NONE_INIT,
- }),
+ .data =
+ &(struct mod_clock_config){
+ .pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_MSYS_ROM,
+ MOD_MSYS_ROM_NOTIFICATION_IDX_POWER_SYSTOP),
+ .pd_pre_transition_notification_id = FWK_ID_NONE_INIT,
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(clock_get_dev_desc_table),
};
diff --git a/product/sgm776/scp_romfw/config_css_clock.c b/product/sgm776/scp_romfw/config_css_clock.c
index 8b42b357..3c2eff1a 100644
--- a/product/sgm776/scp_romfw/config_css_clock.c
+++ b/product/sgm776/scp_romfw/config_css_clock.c
@@ -188,5 +188,5 @@ static const struct fwk_element *css_clock_get_element_table
}
const struct fwk_module_config config_css_clock = {
- .get_element_table = css_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(css_clock_get_element_table),
};
diff --git a/product/sgm776/scp_romfw/config_log.c b/product/sgm776/scp_romfw/config_log.c
index 9976dd5d..f04da16d 100644
--- a/product/sgm776/scp_romfw/config_log.c
+++ b/product/sgm776/scp_romfw/config_log.c
@@ -44,7 +44,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
@@ -58,6 +58,5 @@ static const struct mod_log_config log_data = {
};
struct fwk_module_config config_log = {
- .get_element_table = NULL,
.data = &log_data,
};
diff --git a/product/sgm776/scp_romfw/config_pik_clock.c b/product/sgm776/scp_romfw/config_pik_clock.c
index b8a674b0..f2da692d 100644
--- a/product/sgm776/scp_romfw/config_pik_clock.c
+++ b/product/sgm776/scp_romfw/config_pik_clock.c
@@ -346,5 +346,5 @@ static const struct fwk_element *pik_clock_get_element_table
}
const struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/sgm776/scp_romfw/config_ppu_v1.c b/product/sgm776/scp_romfw/config_ppu_v1.c
index ef6ca06e..32b8a6cb 100644
--- a/product/sgm776/scp_romfw/config_ppu_v1.c
+++ b/product/sgm776/scp_romfw/config_ppu_v1.c
@@ -73,10 +73,13 @@ static const struct fwk_element *sgm776_ppu_v1_get_element_table(
* Power module configuration data
*/
struct fwk_module_config config_ppu_v1 = {
- .get_element_table = sgm776_ppu_v1_get_element_table,
- .data = &(struct mod_ppu_v1_config) {
- .pd_notification_id = FWK_ID_NOTIFICATION_INIT(FWK_MODULE_IDX_MSYS_ROM,
- MOD_MSYS_ROM_NOTIFICATION_IDX_POWER_SYSTOP),
- .pd_source_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_MSYS_ROM),
- },
+ .data =
+ &(struct mod_ppu_v1_config){
+ .pd_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_MSYS_ROM,
+ MOD_MSYS_ROM_NOTIFICATION_IDX_POWER_SYSTOP),
+ .pd_source_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_MSYS_ROM),
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sgm776_ppu_v1_get_element_table),
};
diff --git a/product/sgm776/scp_romfw/config_sds.c b/product/sgm776/scp_romfw/config_sds.c
index 211dd0c2..cce37aaf 100644
--- a/product/sgm776/scp_romfw/config_sds.c
+++ b/product/sgm776/scp_romfw/config_sds.c
@@ -172,6 +172,6 @@ static const struct fwk_element *sds_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = sds_get_element_table,
.data = &sds_module_config,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sds_get_element_table),
};
diff --git a/product/sgm776/scp_romfw/config_system_pll.c b/product/sgm776/scp_romfw/config_system_pll.c
index b77b5cc0..bdab0a62 100644
--- a/product/sgm776/scp_romfw/config_system_pll.c
+++ b/product/sgm776/scp_romfw/config_system_pll.c
@@ -81,5 +81,5 @@ static const struct fwk_element *system_pll_get_element_table
}
const struct fwk_module_config config_system_pll = {
- .get_element_table = system_pll_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_pll_get_element_table),
};
diff --git a/product/sgm776/scp_romfw/config_timer.c b/product/sgm776/scp_romfw/config_timer.c
index b73a1533..534ae387 100644
--- a/product/sgm776/scp_romfw/config_timer.c
+++ b/product/sgm776/scp_romfw/config_timer.c
@@ -42,7 +42,7 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
/*
@@ -66,5 +66,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/sgm776/src/config_sid.c b/product/sgm776/src/config_sid.c
index de443429..1f5f3ac9 100644
--- a/product/sgm776/src/config_sid.c
+++ b/product/sgm776/src/config_sid.c
@@ -36,7 +36,6 @@ static const struct fwk_element *get_subsystem_table(fwk_id_t id)
}
struct fwk_module_config config_sid = {
- .get_element_table = get_subsystem_table,
.data = &(struct mod_sid_config) {
.sid_base = SID_BASE,
.pcid_expected = {
@@ -50,4 +49,6 @@ struct fwk_module_config config_sid = {
.CID3 = 0xB1,
},
},
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_subsystem_table),
};
diff --git a/product/sgm776/src/config_system_info.c b/product/sgm776/src/config_system_info.c
index 23a2b480..dd124fdd 100644
--- a/product/sgm776/src/config_system_info.c
+++ b/product/sgm776/src/config_system_info.c
@@ -15,12 +15,10 @@
#include <stddef.h>
const struct fwk_module_config config_system_info = {
- .get_element_table = NULL,
- .data = &((struct mod_system_info_config) {
- .system_info_driver_module_id =
- FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SID),
- .system_info_driver_data_api_id =
- FWK_ID_API_INIT(FWK_MODULE_IDX_SID,
- MOD_SID_SYSTEM_INFO_DRIVER_DATA_API_IDX),
+ .data = &((struct mod_system_info_config){
+ .system_info_driver_module_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SID),
+ .system_info_driver_data_api_id = FWK_ID_API_INIT(
+ FWK_MODULE_IDX_SID,
+ MOD_SID_SYSTEM_INFO_DRIVER_DATA_API_IDX),
}),
};
diff --git a/product/synquacer/scp_ramfw/config_ccn512.c b/product/synquacer/scp_ramfw/config_ccn512.c
index 290870b6..032dac14 100644
--- a/product/synquacer/scp_ramfw/config_ccn512.c
+++ b/product/synquacer/scp_ramfw/config_ccn512.c
@@ -17,7 +17,6 @@
* CCN512 module
*/
struct fwk_module_config config_ccn512 = {
- .get_element_table = NULL,
.data = &((struct mod_ccn512_module_config){
.reg_base = (ccn512_reg_t *)CCN512_BASE,
}),
diff --git a/product/synquacer/scp_ramfw/config_css_clock.c b/product/synquacer/scp_ramfw/config_css_clock.c
index 150d63c5..97333302 100644
--- a/product/synquacer/scp_ramfw/config_css_clock.c
+++ b/product/synquacer/scp_ramfw/config_css_clock.c
@@ -19,5 +19,5 @@ static const struct fwk_element *css_clock_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_css_clock = {
- .get_element_table = css_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(css_clock_get_element_table),
};
diff --git a/product/synquacer/scp_ramfw/config_f_i2c.c b/product/synquacer/scp_ramfw/config_f_i2c.c
index a62844bc..cb4ea8a8 100644
--- a/product/synquacer/scp_ramfw/config_f_i2c.c
+++ b/product/synquacer/scp_ramfw/config_f_i2c.c
@@ -10,6 +10,4 @@
#include <stddef.h>
/* Configuration of the F_I2C module. */
-const struct fwk_module_config config_f_i2c = {
- .get_element_table = NULL,
-};
+const struct fwk_module_config config_f_i2c = { 0 };
diff --git a/product/synquacer/scp_ramfw/config_hsspi.c b/product/synquacer/scp_ramfw/config_hsspi.c
index 0cafc1c0..633c7d89 100644
--- a/product/synquacer/scp_ramfw/config_hsspi.c
+++ b/product/synquacer/scp_ramfw/config_hsspi.c
@@ -10,6 +10,4 @@
#include <stddef.h>
/* Configuration of the HSSPI module. */
-const struct fwk_module_config config_hsspi = {
- .get_element_table = NULL,
-};
+const struct fwk_module_config config_hsspi = { 0 };
diff --git a/product/synquacer/scp_ramfw/config_log_f_uart3.c b/product/synquacer/scp_ramfw/config_log_f_uart3.c
index 24f70400..64be42e1 100644
--- a/product/synquacer/scp_ramfw/config_log_f_uart3.c
+++ b/product/synquacer/scp_ramfw/config_log_f_uart3.c
@@ -40,7 +40,7 @@ static const struct fwk_element *get_f_uart3_table(fwk_id_t module_id)
}
struct fwk_module_config config_f_uart3 = {
- .get_element_table = get_f_uart3_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_f_uart3_table),
};
/*
diff --git a/product/synquacer/scp_ramfw/config_log_pl011.c b/product/synquacer/scp_ramfw/config_log_pl011.c
index e072b3dc..862749c7 100644
--- a/product/synquacer/scp_ramfw/config_log_pl011.c
+++ b/product/synquacer/scp_ramfw/config_log_pl011.c
@@ -39,7 +39,7 @@ static const struct fwk_element *get_pl011_table(fwk_id_t module_id)
}
struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};
/*
diff --git a/product/synquacer/scp_ramfw/config_mhu.c b/product/synquacer/scp_ramfw/config_mhu.c
index 40ce20b9..09bfba1b 100644
--- a/product/synquacer/scp_ramfw/config_mhu.c
+++ b/product/synquacer/scp_ramfw/config_mhu.c
@@ -42,5 +42,5 @@ static const struct fwk_element *mhu_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_mhu = {
- .get_element_table = mhu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(mhu_get_element_table),
};
diff --git a/product/synquacer/scp_ramfw/config_pik_clock.c b/product/synquacer/scp_ramfw/config_pik_clock.c
index 04ae5dae..d9511203 100644
--- a/product/synquacer/scp_ramfw/config_pik_clock.c
+++ b/product/synquacer/scp_ramfw/config_pik_clock.c
@@ -1149,5 +1149,5 @@ static const struct fwk_element *pik_clock_get_element_table(
}
const struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/synquacer/scp_ramfw/config_power_domain.c b/product/synquacer/scp_ramfw/config_power_domain.c
index e98555ea..fa743815 100644
--- a/product/synquacer/scp_ramfw/config_power_domain.c
+++ b/product/synquacer/scp_ramfw/config_power_domain.c
@@ -227,6 +227,7 @@ static const struct fwk_element *synquacer_power_domain_get_element_table(
* Power module configuration data
*/
const struct fwk_module_config config_power_domain = {
- .get_element_table = synquacer_power_domain_get_element_table,
.data = &synquacer_power_domain_config,
+ .elements =
+ FWK_MODULE_DYNAMIC_ELEMENTS(synquacer_power_domain_get_element_table),
};
diff --git a/product/synquacer/scp_ramfw/config_ppu_v0_synquacer.c b/product/synquacer/scp_ramfw/config_ppu_v0_synquacer.c
index bc325786..bb4779f8 100644
--- a/product/synquacer/scp_ramfw/config_ppu_v0_synquacer.c
+++ b/product/synquacer/scp_ramfw/config_ppu_v0_synquacer.c
@@ -153,5 +153,5 @@ static const struct fwk_element *ppu_v0_get_element_table(fwk_id_t module_id)
* Power module configuration data
*/
const struct fwk_module_config config_ppu_v0_synquacer = {
- .get_element_table = ppu_v0_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ppu_v0_get_element_table),
};
diff --git a/product/synquacer/scp_ramfw/config_scmi.c b/product/synquacer/scp_ramfw/config_scmi.c
index 9605311c..4bcc05d9 100644
--- a/product/synquacer/scp_ramfw/config_scmi.c
+++ b/product/synquacer/scp_ramfw/config_scmi.c
@@ -50,12 +50,14 @@ static struct mod_scmi_agent agent_table[] = {
};
const struct fwk_module_config config_scmi = {
- .get_element_table = get_service_table,
- .data = &((struct mod_scmi_config) {
- .protocol_count_max = 9,
- .agent_count = FWK_ARRAY_SIZE(agent_table) - 1,
- .agent_table = agent_table,
- .vendor_identifier = "socionext",
- .sub_vendor_identifier = "socionext",
- }),
+ .data =
+ &(struct mod_scmi_config){
+ .protocol_count_max = 9,
+ .agent_count = FWK_ARRAY_SIZE(agent_table) - 1,
+ .agent_table = agent_table,
+ .vendor_identifier = "socionext",
+ .sub_vendor_identifier = "socionext",
+ },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_service_table),
};
diff --git a/product/synquacer/scp_ramfw/config_smt.c b/product/synquacer/scp_ramfw/config_smt.c
index 7fa6b8ce..5d9f9af2 100644
--- a/product/synquacer/scp_ramfw/config_smt.c
+++ b/product/synquacer/scp_ramfw/config_smt.c
@@ -54,5 +54,5 @@ static const struct fwk_element *smt_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_smt = {
- .get_element_table = smt_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(smt_get_element_table),
};
diff --git a/product/synquacer/scp_ramfw/config_synquacer_memc.c b/product/synquacer/scp_ramfw/config_synquacer_memc.c
index ff2e3497..cf03e1a9 100644
--- a/product/synquacer/scp_ramfw/config_synquacer_memc.c
+++ b/product/synquacer/scp_ramfw/config_synquacer_memc.c
@@ -10,6 +10,4 @@
#include <stddef.h>
/* Configuration of the SynQuacerMEMC module. */
-const struct fwk_module_config config_synquacer_memc = {
- .get_element_table = NULL,
-};
+const struct fwk_module_config config_synquacer_memc = { 0 };
diff --git a/product/synquacer/scp_ramfw/config_system_power.c b/product/synquacer/scp_ramfw/config_system_power.c
index f6c2af4a..034f4b29 100644
--- a/product/synquacer/scp_ramfw/config_system_power.c
+++ b/product/synquacer/scp_ramfw/config_system_power.c
@@ -84,15 +84,16 @@ static const struct fwk_element *system_power_get_element_table(
}
const struct fwk_module_config config_system_power = {
- .data = &((struct mod_system_power_config) {
- .soc_wakeup_irq = FWK_INTERRUPT_NONE,
- .ext_ppus = ext_ppus,
- .ext_ppus_count = FWK_ARRAY_SIZE(ext_ppus),
- .initial_system_power_state = MOD_PD_STATE_ON,
- .driver_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SYNQUACER_SYSTEM),
- .driver_api_id = FWK_ID_API_INIT(
- FWK_MODULE_IDX_SYNQUACER_SYSTEM,
- MOD_SYNQUACER_SYSTEM_API_IDX_SYSTEM_POWER_DRIVER)
- }),
- .get_element_table = system_power_get_element_table,
+ .data =
+ &(struct mod_system_power_config){
+ .soc_wakeup_irq = FWK_INTERRUPT_NONE,
+ .ext_ppus = ext_ppus,
+ .ext_ppus_count = FWK_ARRAY_SIZE(ext_ppus),
+ .initial_system_power_state = MOD_PD_STATE_ON,
+ .driver_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SYNQUACER_SYSTEM),
+ .driver_api_id = FWK_ID_API_INIT(
+ FWK_MODULE_IDX_SYNQUACER_SYSTEM,
+ MOD_SYNQUACER_SYSTEM_API_IDX_SYSTEM_POWER_DRIVER) },
+
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_power_get_element_table),
};
diff --git a/product/synquacer/scp_ramfw/config_timer.c b/product/synquacer/scp_ramfw/config_timer.c
index 69d5ecb9..2403d254 100644
--- a/product/synquacer/scp_ramfw/config_timer.c
+++ b/product/synquacer/scp_ramfw/config_timer.c
@@ -39,7 +39,7 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
/*
@@ -65,5 +65,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/synquacer/scp_romfw/config_log_f_uart3.c b/product/synquacer/scp_romfw/config_log_f_uart3.c
index 7aefe1b4..b29e9fe3 100644
--- a/product/synquacer/scp_romfw/config_log_f_uart3.c
+++ b/product/synquacer/scp_romfw/config_log_f_uart3.c
@@ -40,7 +40,7 @@ static const struct fwk_element *get_f_uart3_table(fwk_id_t module_id)
}
struct fwk_module_config config_f_uart3 = {
- .get_element_table = get_f_uart3_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_f_uart3_table),
};
/*
diff --git a/product/synquacer/scp_romfw/config_synquacer_pik_clock.c b/product/synquacer/scp_romfw/config_synquacer_pik_clock.c
index caef18fc..b3b15e5f 100644
--- a/product/synquacer/scp_romfw/config_synquacer_pik_clock.c
+++ b/product/synquacer/scp_romfw/config_synquacer_pik_clock.c
@@ -244,5 +244,5 @@ static const struct fwk_element *pik_clock_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_synquacer_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/synquacer/scp_romfw/config_timer.c b/product/synquacer/scp_romfw/config_timer.c
index 69d5ecb9..2403d254 100644
--- a/product/synquacer/scp_romfw/config_timer.c
+++ b/product/synquacer/scp_romfw/config_timer.c
@@ -39,7 +39,7 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
/*
@@ -65,5 +65,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/tc0/scp_ramfw/config_clock.c b/product/tc0/scp_ramfw/config_clock.c
index e219e8d6..b0d6b47c 100644
--- a/product/tc0/scp_ramfw/config_clock.c
+++ b/product/tc0/scp_ramfw/config_clock.c
@@ -86,8 +86,8 @@ static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
}
const struct fwk_module_config config_clock = {
- .get_element_table = clock_get_dev_desc_table,
- .data = &((struct mod_clock_config) {
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(clock_get_dev_desc_table),
+ .data = &((struct mod_clock_config){
.pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
FWK_MODULE_IDX_POWER_DOMAIN,
MOD_PD_NOTIFICATION_IDX_POWER_STATE_TRANSITION),
diff --git a/product/tc0/scp_ramfw/config_css_clock.c b/product/tc0/scp_ramfw/config_css_clock.c
index 96e25c44..5f999c40 100644
--- a/product/tc0/scp_ramfw/config_css_clock.c
+++ b/product/tc0/scp_ramfw/config_css_clock.c
@@ -126,5 +126,5 @@ static const struct fwk_element *css_clock_get_element_table
}
const struct fwk_module_config config_css_clock = {
- .get_element_table = css_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(css_clock_get_element_table),
};
diff --git a/product/tc0/scp_ramfw/config_dvfs.c b/product/tc0/scp_ramfw/config_dvfs.c
index 94ddabf5..5dd5e858 100644
--- a/product/tc0/scp_ramfw/config_dvfs.c
+++ b/product/tc0/scp_ramfw/config_dvfs.c
@@ -65,5 +65,5 @@ static const struct fwk_element *dvfs_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_dvfs = {
- .get_element_table = dvfs_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(dvfs_get_element_table),
};
diff --git a/product/tc0/scp_ramfw/config_gtimer.c b/product/tc0/scp_ramfw/config_gtimer.c
index 79d94478..750ca5ef 100644
--- a/product/tc0/scp_ramfw/config_gtimer.c
+++ b/product/tc0/scp_ramfw/config_gtimer.c
@@ -39,5 +39,5 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
diff --git a/product/tc0/scp_ramfw/config_mhu2.c b/product/tc0/scp_ramfw/config_mhu2.c
index 1ead090f..00b01b90 100644
--- a/product/tc0/scp_ramfw/config_mhu2.c
+++ b/product/tc0/scp_ramfw/config_mhu2.c
@@ -46,5 +46,5 @@ static const struct fwk_element *mhu_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_mhu2 = {
- .get_element_table = mhu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(mhu_get_element_table),
};
diff --git a/product/tc0/scp_ramfw/config_mock_psu.c b/product/tc0/scp_ramfw/config_mock_psu.c
index f6c8d265..1d622fff 100644
--- a/product/tc0/scp_ramfw/config_mock_psu.c
+++ b/product/tc0/scp_ramfw/config_mock_psu.c
@@ -34,5 +34,5 @@ static const struct fwk_element *get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_mock_psu = {
- .get_element_table = get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
};
diff --git a/product/tc0/scp_ramfw/config_pik_clock.c b/product/tc0/scp_ramfw/config_pik_clock.c
index f937c5a7..909c0702 100644
--- a/product/tc0/scp_ramfw/config_pik_clock.c
+++ b/product/tc0/scp_ramfw/config_pik_clock.c
@@ -203,5 +203,5 @@ static const struct fwk_element *pik_clock_get_element_table
}
const struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/tc0/scp_ramfw/config_power_domain.c b/product/tc0/scp_ramfw/config_power_domain.c
index 7d948cd4..bd042883 100644
--- a/product/tc0/scp_ramfw/config_power_domain.c
+++ b/product/tc0/scp_ramfw/config_power_domain.c
@@ -166,6 +166,6 @@ static const struct fwk_element *tc0_power_domain_get_element_table
* Power module configuration data
*/
const struct fwk_module_config config_power_domain = {
- .get_element_table = tc0_power_domain_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(tc0_power_domain_get_element_table),
.data = &tc0_power_domain_config,
};
diff --git a/product/tc0/scp_ramfw/config_ppu_v1.c b/product/tc0/scp_ramfw/config_ppu_v1.c
index 2932c513..7b4f3310 100644
--- a/product/tc0/scp_ramfw/config_ppu_v1.c
+++ b/product/tc0/scp_ramfw/config_ppu_v1.c
@@ -150,6 +150,6 @@ static const struct fwk_element *ppu_v1_get_element_table(fwk_id_t module_id)
* Power module configuration data
*/
const struct fwk_module_config config_ppu_v1 = {
- .get_element_table = ppu_v1_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(ppu_v1_get_element_table),
.data = &ppu_v1_config_data,
};
diff --git a/product/tc0/scp_ramfw/config_psu.c b/product/tc0/scp_ramfw/config_psu.c
index a10c13fb..ab3a390a 100644
--- a/product/tc0/scp_ramfw/config_psu.c
+++ b/product/tc0/scp_ramfw/config_psu.c
@@ -30,5 +30,5 @@ static const struct fwk_element *psu_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_psu = {
- .get_element_table = psu_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(psu_get_element_table),
};
diff --git a/product/tc0/scp_ramfw/config_scmi.c b/product/tc0/scp_ramfw/config_scmi.c
index f1d13771..1b9f1e37 100644
--- a/product/tc0/scp_ramfw/config_scmi.c
+++ b/product/tc0/scp_ramfw/config_scmi.c
@@ -69,8 +69,8 @@ static struct mod_scmi_agent agent_table[] = {
};
const struct fwk_module_config config_scmi = {
- .get_element_table = get_service_table,
- .data = &((struct mod_scmi_config) {
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_service_table),
+ .data = &((struct mod_scmi_config){
.protocol_count_max = 9,
.agent_count = FWK_ARRAY_SIZE(agent_table),
.agent_table = agent_table,
diff --git a/product/tc0/scp_ramfw/config_scmi_perf.c b/product/tc0/scp_ramfw/config_scmi_perf.c
index 9005ff85..25b5f515 100644
--- a/product/tc0/scp_ramfw/config_scmi_perf.c
+++ b/product/tc0/scp_ramfw/config_scmi_perf.c
@@ -24,8 +24,8 @@ static const struct mod_scmi_perf_domain_config domains[] = {
};
const struct fwk_module_config config_scmi_perf = {
- .get_element_table = NULL,
- .data = &((struct mod_scmi_perf_config) {
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(NULL),
+ .data = &((struct mod_scmi_perf_config){
.domains = &domains,
.fast_channels_alarm_id = FWK_ID_NONE_INIT,
}),
diff --git a/product/tc0/scp_ramfw/config_sds.c b/product/tc0/scp_ramfw/config_sds.c
index 328db848..05694adc 100644
--- a/product/tc0/scp_ramfw/config_sds.c
+++ b/product/tc0/scp_ramfw/config_sds.c
@@ -80,6 +80,6 @@ static const struct fwk_element *sds_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = sds_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sds_get_element_table),
.data = &sds_module_config,
};
diff --git a/product/tc0/scp_ramfw/config_smt.c b/product/tc0/scp_ramfw/config_smt.c
index 59b49973..f6300242 100644
--- a/product/tc0/scp_ramfw/config_smt.c
+++ b/product/tc0/scp_ramfw/config_smt.c
@@ -63,5 +63,5 @@ static const struct fwk_element *smt_get_element_table(fwk_id_t module_id)
}
const struct fwk_module_config config_smt = {
- .get_element_table = smt_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(smt_get_element_table),
};
diff --git a/product/tc0/scp_ramfw/config_system_pll.c b/product/tc0/scp_ramfw/config_system_pll.c
index 15232c68..aef20e94 100644
--- a/product/tc0/scp_ramfw/config_system_pll.c
+++ b/product/tc0/scp_ramfw/config_system_pll.c
@@ -100,5 +100,5 @@ static const struct fwk_element *system_pll_get_element_table
}
const struct fwk_module_config config_system_pll = {
- .get_element_table = system_pll_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_pll_get_element_table),
};
diff --git a/product/tc0/scp_ramfw/config_system_power.c b/product/tc0/scp_ramfw/config_system_power.c
index 2821179f..142daeb4 100644
--- a/product/tc0/scp_ramfw/config_system_power.c
+++ b/product/tc0/scp_ramfw/config_system_power.c
@@ -89,6 +89,6 @@ static const struct fwk_element *tc0_system_get_element_table(
}
const struct fwk_module_config config_system_power = {
- .get_element_table = tc0_system_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(tc0_system_get_element_table),
.data = &system_power_config,
};
diff --git a/product/tc0/scp_ramfw/config_timer.c b/product/tc0/scp_ramfw/config_timer.c
index 4082f9fa..4d6a311d 100644
--- a/product/tc0/scp_ramfw/config_timer.c
+++ b/product/tc0/scp_ramfw/config_timer.c
@@ -38,5 +38,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/tc0/scp_romfw/config_clock.c b/product/tc0/scp_romfw/config_clock.c
index 3b49a0a5..56f9b405 100644
--- a/product/tc0/scp_romfw/config_clock.c
+++ b/product/tc0/scp_romfw/config_clock.c
@@ -51,8 +51,8 @@ static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
}
const struct fwk_module_config config_clock = {
- .get_element_table = clock_get_dev_desc_table,
- .data = &((struct mod_clock_config) {
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(clock_get_dev_desc_table),
+ .data = &((struct mod_clock_config){
.pd_transition_notification_id = FWK_ID_NOTIFICATION_INIT(
FWK_MODULE_IDX_MSYS_ROM,
MOD_MSYS_ROM_NOTIFICATION_IDX_POWER_SYSTOP),
diff --git a/product/tc0/scp_romfw/config_cmn_booker.c b/product/tc0/scp_romfw/config_cmn_booker.c
index 2365ec78..f5e4e22d 100644
--- a/product/tc0/scp_romfw/config_cmn_booker.c
+++ b/product/tc0/scp_romfw/config_cmn_booker.c
@@ -94,8 +94,8 @@ static const struct mod_cmn_booker_mem_region_map mmap[] = {
};
const struct fwk_module_config config_cmn_booker = {
- .get_element_table = NULL,
- .data = &((struct mod_cmn_booker_config) {
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(NULL),
+ .data = &((struct mod_cmn_booker_config){
.base = SCP_CMN_BOOKER_BASE,
.mesh_size_x = 2,
.mesh_size_y = 2,
@@ -104,8 +104,8 @@ const struct fwk_module_config config_cmn_booker = {
.snf_count = FWK_ARRAY_SIZE(snf_table),
.mmap_table = mmap,
.mmap_count = FWK_ARRAY_SIZE(mmap),
- .clock_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK,
- CLOCK_IDX_INTERCONNECT),
+ .clock_id =
+ FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, CLOCK_IDX_INTERCONNECT),
.hnf_cal_mode = false,
}),
};
diff --git a/product/tc0/scp_romfw/config_css_clock.c b/product/tc0/scp_romfw/config_css_clock.c
index 964ae164..540568a1 100644
--- a/product/tc0/scp_romfw/config_css_clock.c
+++ b/product/tc0/scp_romfw/config_css_clock.c
@@ -104,5 +104,5 @@ static const struct fwk_element *css_clock_get_element_table
}
const struct fwk_module_config config_css_clock = {
- .get_element_table = css_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(css_clock_get_element_table),
};
diff --git a/product/tc0/scp_romfw/config_gtimer.c b/product/tc0/scp_romfw/config_gtimer.c
index e3325a17..5fd27d85 100644
--- a/product/tc0/scp_romfw/config_gtimer.c
+++ b/product/tc0/scp_romfw/config_gtimer.c
@@ -39,5 +39,5 @@ static const struct fwk_element *gtimer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_gtimer = {
- .get_element_table = gtimer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(gtimer_get_dev_table),
};
diff --git a/product/tc0/scp_romfw/config_pik_clock.c b/product/tc0/scp_romfw/config_pik_clock.c
index 184d4d35..af9c829b 100644
--- a/product/tc0/scp_romfw/config_pik_clock.c
+++ b/product/tc0/scp_romfw/config_pik_clock.c
@@ -178,5 +178,5 @@ static const struct fwk_element *pik_clock_get_element_table
}
const struct fwk_module_config config_pik_clock = {
- .get_element_table = pik_clock_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(pik_clock_get_element_table),
};
diff --git a/product/tc0/scp_romfw/config_ppu_v1.c b/product/tc0/scp_romfw/config_ppu_v1.c
index 3a83aaf2..0251a8dd 100644
--- a/product/tc0/scp_romfw/config_ppu_v1.c
+++ b/product/tc0/scp_romfw/config_ppu_v1.c
@@ -132,10 +132,12 @@ static const struct fwk_element *tc0_ppu_v1_get_element_table(
* Power module configuration data
*/
struct fwk_module_config config_ppu_v1 = {
- .get_element_table = tc0_ppu_v1_get_element_table,
- .data = &(struct mod_ppu_v1_config) {
- .pd_notification_id = FWK_ID_NOTIFICATION_INIT(FWK_MODULE_IDX_MSYS_ROM,
- MOD_MSYS_ROM_NOTIFICATION_IDX_POWER_SYSTOP),
- .pd_source_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_MSYS_ROM),
- },
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(tc0_ppu_v1_get_element_table),
+ .data =
+ &(struct mod_ppu_v1_config){
+ .pd_notification_id = FWK_ID_NOTIFICATION_INIT(
+ FWK_MODULE_IDX_MSYS_ROM,
+ MOD_MSYS_ROM_NOTIFICATION_IDX_POWER_SYSTOP),
+ .pd_source_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_MSYS_ROM),
+ },
};
diff --git a/product/tc0/scp_romfw/config_sds.c b/product/tc0/scp_romfw/config_sds.c
index 3c0a3ec8..46d22e5b 100644
--- a/product/tc0/scp_romfw/config_sds.c
+++ b/product/tc0/scp_romfw/config_sds.c
@@ -90,6 +90,6 @@ static const struct fwk_element *sds_get_element_table(fwk_id_t module_id)
}
struct fwk_module_config config_sds = {
- .get_element_table = sds_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(sds_get_element_table),
.data = &sds_module_config,
};
diff --git a/product/tc0/scp_romfw/config_system_pll.c b/product/tc0/scp_romfw/config_system_pll.c
index c9a8408f..12aca89b 100644
--- a/product/tc0/scp_romfw/config_system_pll.c
+++ b/product/tc0/scp_romfw/config_system_pll.c
@@ -63,5 +63,5 @@ static const struct fwk_element *system_pll_get_element_table
}
const struct fwk_module_config config_system_pll = {
- .get_element_table = system_pll_get_element_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(system_pll_get_element_table),
};
diff --git a/product/tc0/scp_romfw/config_timer.c b/product/tc0/scp_romfw/config_timer.c
index 0828e41e..87be05fd 100644
--- a/product/tc0/scp_romfw/config_timer.c
+++ b/product/tc0/scp_romfw/config_timer.c
@@ -35,5 +35,5 @@ static const struct fwk_element *timer_get_dev_table(fwk_id_t module_id)
}
const struct fwk_module_config config_timer = {
- .get_element_table = timer_get_dev_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(timer_get_dev_table),
};
diff --git a/product/tc0/src/config_pl011.c b/product/tc0/src/config_pl011.c
index 07192a92..fce84b36 100644
--- a/product/tc0/src/config_pl011.c
+++ b/product/tc0/src/config_pl011.c
@@ -34,5 +34,5 @@ static const struct fwk_element *get_pl011_table(fwk_id_t id)
}
const struct fwk_module_config config_pl011 = {
- .get_element_table = get_pl011_table,
+ .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_pl011_table),
};