cancel
Showing results for 
Search instead for 
Did you mean: 

H7 SystemInit contains line with no effect

JojoS
Associate III

I had debugging problems with a H7 target, and by stepping thru the boot process I found the following line in SystemInit():

 

/*
   * Disable the FMC bank1 (enabled after reset).
   * This, prevents CPU speculation access on this bank which blocks the use of FMC during
   * 24us. During this time the others FMC master (such as LTDC) cannot use it!
   */
  FMC_Bank1_R->BTCR[0] = 0x000030D2;

 

At this stage of the boot process, the FMC power is not enabled, and thus reading or writing the register has no effect. Am I overseeing something or is this line for confusion?

1 ACCEPTED SOLUTION

Accepted Solutions
SofLit
ST Employee

Hello @JojoS ,


@JojoS wrote:

At this stage of the boot process, the FMC power is not enabled, 


You mean FMC clock not the power but your comment makes sense as the FMC clock is enabled in SystemInit_ExtMemCtl(), just after. 

I will escalate this remark internally and get back to you as soon as I have an answer. Internal ticket number for follow up: 196021

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

View solution in original post

4 REPLIES 4
SofLit
ST Employee

Hello @JojoS ,


@JojoS wrote:

At this stage of the boot process, the FMC power is not enabled, 


You mean FMC clock not the power but your comment makes sense as the FMC clock is enabled in SystemInit_ExtMemCtl(), just after. 

I will escalate this remark internally and get back to you as soon as I have an answer. Internal ticket number for follow up: 196021

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

>> Am I overseeing something or is this line for confusion?

Are you easily confused, is it a problem?

Probably there due to the generic way in which ST builds these thing, and perhaps salient to one particular case.

Perhaps so when built as a secondary application the loader has already started the clocks, external memories, etc prior to getting here.

Which file/project was this lifted from? An EVAL / DISCO board?

The SystemInit() in ARM's model would be used to bring up the whole board and memories so startup.s code can copy statics, etc.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Thanks, of corse it as a minor issue as it should have no affect. But it would be clearer if it is conditionally inserted. 

FYI,

Issue confirmed and will be fixed.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.