STRUCT PRU_RPROC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ struct pru_rproc β€” the Kernel API Manual moment

okay so bestie, welcome to the struct pru_rproc(9) page ✨ this is from the Kernel API Manual and it's literally the whole personality of the PRU remoteproc structure. one struct. so many fields. we're gonna get through it together, no cap 🫢


πŸŽ€ NAME πŸŽ€

struct pru_rproc β€” the PRU remoteproc structure, aka the main character of this whole page πŸ‘‘


✨ SYNOPSIS ✨

here's the whole glow-up, verbatim, don't touch a single character bestie:

struct pru_rproc {
    int id;
    struct device *dev;
    struct pruss *pruss;
    struct rproc *rproc;
    const struct pru_private_data *data;
    struct pruss_mem_region mem_regions[PRU_IOMEM_MAX];
    struct device_node *client_np;
    struct mutex lock;
    const char *fw_name;
    unsigned int *mapped_irq;
    struct pru_irq_rsc *pru_interrupt_map;
    size_t pru_interrupt_map_sz;
    spinlock_t rmw_lock;
    u32 dbg_single_step;
    u32 dbg_continuous;
    u8 evt_count;
    u8 gpmux_save;
 };

🌸 Members 🌸

okay now the vibe check on every single field, one by one, because we do not skip πŸ’…

  • id β€” the id of the PRU core within the PRUSS πŸ†”
  • dev β€” the PRU core device pointer, it's giving device energy
  • pruss β€” back-reference to the parent PRUSS structure, like a link back to the parent account fr fr
  • rproc β€” the remoteproc pointer for this PRU core, iconic
  • data β€” PRU core specific data, each core's own little lore
  • mem_regions β€” data for each of the PRU memory regions, all of them, plural, we love a collection πŸ’–
  • client_np β€” the client device node 🌈
  • lock β€” a mutex to protect client usage, do not skip the lock bestie, it's literally there to save you 😭
  • fw_name β€” name of the firmware image used during loading, like a contact name but for firmware
  • mapped_irq β€” virtual interrupt numbers of created fw specific mapping
  • pru_interrupt_map β€” pointer to interrupt mapping description (firmware) πŸ¦‹
  • pru_interrupt_map_sz β€” the pru_interrupt_map size, the lil sibling field
  • rmw_lock β€” lock for read, modify, write operations on registers, protecting the register glow-up one step at a time ✨
  • dbg_single_step β€” debug state variable to set PRU into single step mode 🐾
  • dbg_continuous β€” debug state variable to restore PRU execution mode, the un-single-step, the comeback arc
  • evt_count β€” number of mapped events
  • gpmux_save β€” saved value for gpmux config πŸ’Ύ

πŸ”₯ SEE ALSO πŸ”₯

go read these next bestie, iykyk:


that's the whole page bestie, you ate that πŸ“ and for the credits moment: this one lives at ./drivers/remoteproc, from the October 2026 Kernel API Manual, and it's literally signed struct pru_rproc(9) at the bottom like a little autograph πŸ’œ mwah, go read the source, you're gonna slay 🧚

πŸ“¦ where this page comes from