enabling capes and the bone boot sequence

Hi,
I’m looking for a little Bone boot sequence education…

I’m working on a bone cape design and I’ve some questions about the bone boot sequence for the bones.
I suspect I don’t yet have a detailed enough understanding of the boot sequence and how it interacts with the cape hardware.

I’ll try to frame my questions via a simple boot time sequence:

  1. bone gets powered up

  2. sometime after power up, the sys_boot pins are read by the bone hardware.
    I don’t want the cape to be driving any of the sysboot pins during “boot time” (so as not to accidentally alter the boot configuration).

Question 1:
How can cape hardware tell when the time that the sys_boot pins are being access has passed and it’s safe to drive these lines?

  1. sometime a bit later, some entity goes scanning i2C0 for cape eproms.

Question 2:
What software entity does this and when does this happen?

  1. The cape’s info is read from the eprom (actually all the cape eproms are read I’d guess) and the software (I assume) checks for pin conflicts between all the installed capes.

Question 3:
What happens if a conflict is found?

  1. Assuming no pin conflicts are detected ( the common case of only one cape), then I think the pin mux info from the eprom is used to re-muxed pins to what the eprom calls for. After5 this point in time, the pins will now be muxed per the info in the cape eprom.
    Now seems like when I’d like to enable IO on the cape.
    Before this, if I enable IO, I could be driving pins that are not yet set up as expected and hence I could be doing all kinds of unknown things…

Question 4:
How can a cape know when this state is reached?

How do I know when it’s safe to let signal from the outside world pass thru the cape?
I’m thinking that a hardware “io enable” line needs to go active here.
Can this condition be detected via hardware signals or do I need to do this via a bit of software that gets run and “makes the cape come alive”?
If software, when/where does it go in order to be run at this step of the boot sequence?

Clearly this could be done at user application start up time, but is there some place during booting that this can be done?

BBW vs BBB differences
6) For the BB Black, some pins are not available that were avail on the BB White.
An example are the LCD pins used to drive the HDMI framer.
In the BBB SRM, I read that I can put the framer in a low power state and then the pins can be used (at the cost of no video out).
That implies to me that some piece of software needs to be run to put the framer in the low power state.

Question 5:
Where would one put this bit of software to get it run at an appropriate time? What hook / event am I looking for?

I2C0 vs I2C2
The I2C signals that access the cape eproms appear to be generated from the Sitara chip. On the SoC schematic they are labeled as I2C0.
On most schematic pages the the names are I2C0. Then the SRM talks about never re-muxing P9 pins 19 & 20 or the capes will not e found.
OK, but the signals on the P9 pins are I2C2…
I’m a bit confused:

Question 6:
Are the eproms connected to I2c0 or I2C2 or are they the same and if so, what have I missed here?

I realize that perhaps I just have some basic boot sequence concept all wrong… If so, please feel free to educate me or point me to what I need to be reading to get straightened out.

Dave

Question 1:
How can cape hardware tell when the time that the sys_boot pins are being access has passed and it’s safe to drive these lines?

Use the reset line on the expansion header.

BBW vs BBB differences
6) For the BB Black, some pins are not available that were avail on the BB White.
An example are the LCD pins used to drive the HDMI framer.
In the BBB SRM, I read that I can put the framer in a low power state and then the pins can be used (at the cost of no video out).
That implies to me that some piece of software needs to be run to put the framer in the low power state.

The pins can be used as indicated in the System Reference Manual and the WikI found at http://circuitco.com/support. These pins are INPUTS. They are not being driven. Yes, you can put the HDMI frame in a low power state by communicating with it over the I2C interface between it and he processor. But it is not required to make you cape work.

Question 6:
Are the eproms connected to I2c0 or I2C2 or are they the same and if so, what have I missed here?

Did you look a the schematic? The answer is yes. The ones on the main board is I2C0. The ones on the cape are I2c2.

Gerald