HARDWARE DESCRIPTION(9)
π Hardware description π
okay so this is the Hardware description(9) page from the Kernel API Manual, and it's here to explain the GENI based QUP situation. Bestie, GENI based QUP is a highly-flexible and programmable module for supporting a wide range of serial interfaces like UART, SPI, I2C, I3C, etc. A single QUP module can provide up to 8 serial interfaces, using its internal serial engines. The actual configuration is determined by the target platform configuration. The protocol supported by each interface is determined by the firmware loaded to the serial engine. Each SE consists of a DMA Engine and GENI sub modules which enable serial engines to support FIFO and DMA modes of operation.
The diagram is giving vintage ASCII, but it's literally the spec, so here it is in all its glory:
ββββββββββββββββββββββββββββββββββββββ
β QUP Wrapper β
β +----------------------------+ β
ββββββββββββββββββββββββββββββββββββββ
--QUP & SE Clocks--> | Serial Engine N | +-IO------>
| | ... | | Interface <---Clock
Perf.----+ +----+-----------------------+ | | State Interface |
| Serial Engine 1 | | | | |
| | | | | | | |
<--------AHB-------> | | | | | |
+----+ | | | | | | |
| | <------SE IRQ------+ +----------------------------+ |
| |
Figure 1: GENI based QUP Wrapper
The GENI submodules include primary and secondary sequencers which are used to drive TX & RX operations. On serial interfaces that operate using master-slave model, primary sequencer drives both TX & RX operations. On serial interfaces that operate using peer-to-peer model, primary sequencer drives TX operation and secondary sequencer drives RX operation.
π SEE ALSO π
the whole squad, no omissions:
- Kernel file
./drivers/soc/qcom/qcom-geni-se.c Overview(9)Software description(9)struct geni_wrapper(9)struct geni_se_desc(9)struct se_fw_hdr(9)geni_se_get_qup_hw_version(9)geni_se_init(9)geni_se_select_mode(9)Overview(9)geni_se_config_packing(9)geni_se_resources_off(9)geni_se_resources_on(9)geni_se_clk_tbl_get(9)geni_se_clk_freq_match(9)geni_se_tx_init_dma(9)geni_se_tx_dma_prep(9)geni_se_rx_init_dma(9)geni_se_rx_dma_prep(9)geni_se_tx_dma_unprep(9)geni_se_rx_dma_unprep(9)geni_icc_set_bw_ab(9)geni_se_resources_deactivate(9)geni_se_resources_activate(9)geni_se_set_perf_level(9)geni_se_set_perf_opp(9)geni_se_domain_attach(9)geni_se_resources_init(9)geni_find_protocol_fw(9)geni_configure_xfer_mode(9)geni_enable_interrupts(9)geni_write_fw_revision(9)geni_load_se_fw(9)geni_load_se_firmware(9)
π«Ά and that's the page, bestie! source/version:./drivers/soc/qcom; date:October 2026; title:Hardware description(9). bye π β¨
π¦ 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