updated documentation for bbai

update SRM for bbai, unexpected but welcome… dated 1/22/25
Expansion — BeagleBoard Documentation

it has the egpio pins for the PRU that I was working on a year ago when I thought that information was in the device tree:
https://forum.beagleboard.org/t/device-tree-bindings-for-egpio-bbai/

thanks for the update.
gomer

3 Likes

thanks!

this updated documentation dated 1/22/25 is the missing link that was needed to complete the data analysis for a config-pin type tool. I started looking into this over a year ago and started this topic:

the data analysis has these data / relationships:
SRM dated:1/22/25 1:M pin–>ball, pin–>address, pin–>signal (mode)
TRM 1:M pad–>signal (mode) 1:1 pad<–>physical address
DTS (device tree (decompiled from DTB)) … 1:M pin–>function
datasheet 1:M signal–>ball , 1:M ball–>signal

I still have the question about the same signal being exposed to two different header pins… is there any guidance as to what would happen if the board was (mis)configured in this way? I’m looking for some warning or documentation that describes this, not some (snide) ‘YEAH, dont do that’.

here are some examples;

config-pin: signal pr2_pru0_gpo2
pr2_pru0_gpo2:
	pr2_pru0_gpo2:
		VOUT1_D5     D 0x15F0	F9	P8_42
		MMC3_CLK     D 0x177C	AD4	P8_21
	pr2_pru0_gpo20:
	    VOUT1_D23    D 0x1638	A10	P8_46
        MCASP1_AXR15 D 0x16F0	F14	P8_08
		
config-pin: sig pr2_pru0_gpo3
pr2_pru0_gpo3:
	pr2_pru0_gpo3:
		VOUT1_D6     D 0x15F4	F8	P8_39
		MMC3_CMD     D 0x1780	AC4	P8_20

here is another example for uart7_txd:

config-pin: sig uart7_txd
uart7_txd:
	uart7_txd:
		GPMC_A3      7 0x144C		
		VIN1A_FLD0   5 0x14E8	AF9	P8_33
		VOUT1_D17    2 0x1620	B8	P9_11
		MCASP3_FSX   3 0x1728

at this point in the project, I have a competent data analysis tool that reports by pin or function or signal or ball or pad. I can hand edit the decompiled DTB, recompile it, and it works fine (I think).

the question is whether this is a tool just for me (easier) or are others interested in further automation? The problem is that it is a tool of many pieces and would probably require that I post an image with everything configured, rather than describe all the perl modules that need to be installed, and nmap installation, and, and, and.

here is another snip of the current ‘help’ command:

config-pin: help
ball : USAGE: 
	ball <ball fragment> : report details for some or all balls
default : USAGE: 
	default <header fragment> : 
		report default configuration for header pin(s)
function : USAGE: 
	function <function fragment> : report details for one or more functions
header : USAGE: 
	header <header fragment> : report details for header pin(s)
help : USAGE: 
	help <command> : report usage of command
pad : USAGE: 
	pad <pad fragment> : report details for pad(s)
q : USAGE: 
	quit : 
signal : USAGE: 
	signal <signal fragment> : report details for one or more signals
update : USAGE: 
	update header signal : change the default signal for a given pin
config-pin:

one last snip for the header report:

config-pin: head p8.15
P8.15:
	P8_15
		4A003570 --> VIN2A_D2 D1
			default     	0x4000e	gpio4_3
			gpio        	0x5000e	gpio4_3
			gpio_pu     	0x6000e	gpio4_3
			gpio_pd     	0x4000e	gpio4_3
			pru_ecap_pwm	0x4000b	pr1_ecap0_ecap_capin_apwm_o
			ecap_pwm    	0x4000a	eCAP1_in_PWM1_out
			pruin       	0x1000f	
			pruout      	0x1000f	
			eqep        	0x4000e	gpio4_3
		4A0035B4 --> VIN2A_D19 A3
			default     	0x1000f	
			gpio        	0x1000f	
			gpio_pu     	0x1000f	
			gpio_pd     	0x1000f	
			pru_ecap_pwm	0x1000f	
			ecap_pwm    	0x1000f	
			pruin       	0x5000c	pr1_pru1_gpi16
			pruout      	0x4000d	pr1_pru1_gpo16
			eqep        	0x1000f

feedback solicited.
gomer