__ssp_early_readl(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… __ssp_early_readl β€” read from a SiFive serial port register (early) ✨

okay so bestie, welcome to the Kernel API Manual page for __ssp_early_readl β€” yes that's two underscores, don't come for me, that's just her name πŸŽ€


🌸 SYNOPSIS

u32 __ssp_early_readl (struct uart_port *port , u16 offs );

that's it. that's the whole vibe check. two args, one u32 coming back at you πŸ¦‹


✨ ARGUMENTS

  • port β€” a pointer to a struct uart_port record. literally just the port, she's holding the whole struct for you 🫢
  • offs β€” the register address offset, measured from the IP block base address. so like, where in the block you're poking around πŸ’…

πŸ’– DESCRIPTION

so picture this: you hand her a pointer port to a struct uart_port record, right? and then she reads the contents of the IP block register that's chilling at offset offs from the IP block base, and returns it to you. that's the whole personality. no cap, that's it πŸ”₯

the important lore tho: this function is intended for early console use. early. as in before everything else is up and running early. she's the main character of the pre-boot era πŸ‘‘


🌈 CONTEXT

who's allowed to call her? it's giving exclusive guest list ngl πŸ™ˆ she's intended to be called only by:

  • the earlyconsole code, or
  • __ssp_readl or __ssp_writel (in this driver)

so like, don't just show up uninvited, okay? iykyk πŸ’€


⭐ RETURN

she returns the register value read from the UART. that's the whole gift. the register value. from the UART. periodt πŸ’œ


🧚 SEE ALSO

okay gather round, the whole friend group is here πŸŽ€


πŸ¦‹ and that's the page!! she lives in ./drivers/tty/serial, she's dated October 2026, and she's filed under __ssp_early_readl(9) in the Kernel API Manual. go forth and read those registers early, bestie πŸ’–βœ¨πŸ“

πŸ“¦ where this page comes from