_init_mpu_rt_base(9)
π _init_mpu_rt_base(9) β Kernel API Manual π
okay so bestie, welcome to the _init_mpu_rt_base(9) page β¨ this is a kernel API manual entry, and honestly? she's a little niche but she's iconic. let's get into it π«Ά
πΈ NAME πΈ
_init_mpu_rt_base β populate the virtual address for a hwmod π
β¨ SYNOPSIS β¨
int _init_mpu_rt_base (struct omap_hwmod *oh , void *data , int index ,
struct device_node *np );
like, that's the whole signature. four args, no cap π
π¦ ARGUMENTS π¦
ohβ thestruct omap_hwmod *she's gonna use to locate the virtual address. main character energy fr π₯dataβ lowkey unused π caller should passNULL, okay? don't be weird about it.indexβ the index of the reg entry iospace in device tree πnpβ thestruct device_node *of the IP block's device node in the DT data π
π DESCRIPTION π
So what she does is cache the virtual address used by the MPU to access this IP block's registers π§ literally the whole job. And she does it early β because the OCP registers that are part of the device's address space need to be ioremapped properly, and that can't happen if nobody knows the VA yet. timing is everything, iykyk β
Now, the vibe check on errors: if SYSC access is not needed, the registers will not be remapped β and non-availability of MPU access is not treated as an error π like she's not gonna yell at you for it. chill.
Returns 0 on success π, -EINVAL if an invalid hwmod is passed π, and -ENXIO on absent or invalid register target address space π
π₯ SEE ALSO π₯
Kernel file ./arch/arm/mach-omap2/omap_hwmod.c plus this whole friend group:
struct clkctrl_provider(9), struct omap_hwmod_reset(9), struct omap_hwmod_soc_ops(9), _update_sysc_cache(9), _write_sysconfig(9), _set_master_standbymode(9), _set_slave_idlemode(9), _set_clockactivity(9), _set_softreset(9), _clear_softreset(9), _wait_softreset_complete(9), _set_dmadisable(9), _set_module_autoidle(9), _enable_wakeup(9), _add_initiator_dep(9), _del_initiator_dep(9), _init_main_clk(9), _init_interface_clks(9), _init_opt_clks(9), _enable_clocks(9), _omap4_clkctrl_managed_by_clkfwk(9), _omap4_has_clkctrl_clock(9), _disable_clocks(9), _omap4_enable_module(9), _omap4_wait_target_disable(9), _save_mpu_port_index(9), _find_mpu_rt_port(9), _enable_sysc(9), _idle_sysc(9), _shutdown_sysc(9), _lookup(9), _init_clkdm(9), _init_clocks(9), _lookup_hardreset(9), _assert_hardreset(9), _deassert_hardreset(9), _read_hardreset(9), _are_all_hardreset_lines_asserted(9), _are_any_hardreset_lines_asserted(9), _omap4_disable_module(9), _ocp_softreset(9), _reset(9), _omap4_update_context_lost(9), _omap4_get_context_lost(9), _enable(9), _idle(9), _shutdown(9), of_dev_hwmod_lookup(9), omap_hwmod_fix_mpu_rt_idx(9), omap_hwmod_parse_module_range(9), _init(9), _setup_iclk_autoidle(9), _setup_reset(9), _setup_postsetup(9), _setup(9), _register(9), _add_link(9), _register_link(9), _omap2xxx_3xxx_wait_target_ready(9), _omap4_wait_target_ready(9), _omap2_assert_hardreset(9), _omap2_deassert_hardreset(9), _omap2_is_hardreset_asserted(9), _omap4_assert_hardreset(9), _omap4_deassert_hardreset(9), _omap4_is_hardreset_asserted(9), _omap4_disable_direct_prcm(9), _am33xx_deassert_hardreset(9), omap_hwmod_softreset(9), omap_hwmod_lookup(9), omap_hwmod_for_each(9), omap_hwmod_register_links(9), _ensure_mpu_hwmod_is_setup(9), omap_hwmod_setup_one(9), omap_hwmod_check_sysc(9), omap_hwmod_init_regbits(9), omap_hwmod_init_reg_offs(9), omap_hwmod_init_sysc_flags(9), omap_hwmod_init_idlemodes(9), omap_hwmod_check_module(9), omap_hwmod_allocate_module(9), omap_hwmod_init_module(9), omap_hwmod_setup_earlycon_flags(9), omap_hwmod_setup_all(9), omap_hwmod_enable(9), omap_hwmod_idle(9), omap_hwmod_shutdown(9), omap_hwmod_get_mpu_rt_va(9), omap_hwmod_assert_hardreset(9), omap_hwmod_deassert_hardreset(9), omap_hwmod_for_each_by_class(9), omap_hwmod_set_postsetup_state(9), omap_hwmod_init(9)
bestie that's a lot of cross-references and yes you do need all of them. no skipping π
mwah π that's the page! shoutout to the source at ./arch/arm/mach-omap2 and the October 2026 datestamp β she's stamped, she's official, she's that girl πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms