Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16916 Discussions

CFM0 Overlaps with Configuration Data (Error 20646 Quartus Prime)

ashbinbabu
Novice
380 Views

Hi,

We are using 10M25 for the design of our PFR enabled FPGA code for a server motherboard. Here we have partitioned CFM0 for recovery image and CFM1 for the active image. We had a reference design that used 10M16. We have changed the verilog code as per our requirements. However, the reset vector offset in platform designer for NIOS II and the addresses that were used to create .hex in the app project were all left unchanged.

 

Now on creating .pof in dual configuration mode, we are getting an error  -" Error (20646): The page CFM0 user data requested start address 0x00083000 overlaps with configuration data that end at address 0x000A3767."

 

What could be the reason for this? Where are we going wrong? Is it the reset vector, or something while creating BSP project or while generating .hex code? First of all we dont know how to compute reset vector freshly and thats why we reused the addresses in reference design. 

 

Here is how the onchip flash looks like :

ashbinbabu_0-1732271103964.png

 

Here is how NIOS II vectors look like:

ashbinbabu_1-1732271151979.png

 

And for generating .pof, here are the settings we use:

ashbinbabu_2-1732271202519.png

For these addresses, we added reset vector offset with ICB_Length which is 0x1000 for 10M25 as well as 10M16.

 

Pls let us know if anyone have any idea. 

 

Regards,

Ashbin P Babu

0 Kudos
6 Replies
NurAiman_M_Intel
Employee
298 Views

Hi,


The Error (20646) is due to the start address overlaps with configuration data. You can see in the page 42 below

https://cdrdv2-public.intel.com/666495/ug-683865-666495.pdf


Please ensure to follow all the guidelines sated in the userguide.


Regards,

Aiman


0 Kudos
ashbinbabu
Novice
295 Views

Hi Aiman,

 

We do know the reason for the error. But how to correct this?

Let me give a detailed explanation about the problem below:

  1. In our design, we are using 10M25 device instead of 10M16 compared to in our reference design.
  2. we are reusing the reset vector offset, exception vector offset etc. as per the reference design itself. Pls see the below images for reference. 

ashbinbabu_0-1732875232216.png

 

  1. Pls see the below image showing the flash layout:

ashbinbabu_1-1732875232216.png

 

  1. Here we could notice that the address mapping of CFM is different from that of reference design probably because of the change in device.
  2. Now we have compiled and generated the .sopcinfo file from platform designer for both pfr and recovery.
  3. We created a BSP project from this .sopcinfo file
  4. Using this settings.bsp, we created the .hex file for both pfr and recovery using the commands below:

alt-file-convert -I elf32-littlenios2 -O hex --input=recovery_app.elf --output=recovery_code.hex --base=0x00182000 --end=0x0018bfff --reset=0x00182000 --out-data-width=8 --boot="C:/intelFPGA_lite/18.1/nios2eds/components/altera_nios2/boot_loader_cfi.srec"

alt-file-convert -I elf32-littlenios2 -O hex --input=pfr_app.elf --output=pfr_code.hex --base=0x00140000 --end=0x0018bfff --reset=0x00140000 --out-data-width=8 --boot="C:/intelFPGA_lite/18.1/nios2eds/components/altera_nios2/boot_loader_cfi.srec"

  1. While creating both BSP and .hex files, we didnt change any addresses and offsets and reused everything that was used in the reference design which used 10M16. For example, the base, end, reset addresses in the above commands were reused.
  2. Now on creating a .pof file in Quartus, we are using the following settings. Pls see the image below:

ashbinbabu_2-1732875232217.png

 

  1. However, on generating .pof file, we are getting an error as follows:

-" Error (20646): The page CFM0 user data requested start address 0x00083000 overlaps with configuration data that end at address 0x000A3767."

  1. What could be the reason for this? When the device is changed, should the reset vector offsets also need to be changed? Pls let us know how if it is to be changed.
  2. Should we change the other addresses which we use during BSP generation and .hex file creation as well? Let us know if it is required.
  3. Pls let us know the actual cause for this and how to avoid this issue so that we can successfully create the .pof file.

Regards,

Ashbin

0 Kudos
FvM
Honored Contributor I
282 Views

Hi,
obviously, userdata start addresses of  0x41000 and 0x83000 are not suitable for 10m25 flash layout. If you want to keep the distance from CFM1 and CFM0 end address (-0x9000) , they should be changed to 0x5b000 and 0xb7000.

P.S.: I don't work with NIOS II and am not aware of the relation between start adresses and vectors shown in post #1 for 10m16. But basically everything should be relocated according to increased CFM1 and CFM0 flash size.

Regards

Frank

0 Kudos
ashbinbabu
Novice
274 Views

Hi Frank,

Can you show an example on how you calculate these new recommended offsets?

Regards,

Ashbin

0 Kudos
FvM
Honored Contributor I
203 Views

Hi,
I was comparing CFM1 and CFM0 area of both devices.

CFM1 (usually application image) memory range 0x08000 - 0x49fff on 10M16 and 0x08000 - 0x63fff on 10M25
CFM0 (usually factor image)           memory range 0x4a000 - 0x8bfff on 10M16 and 0x64000 - 0xbffff on 10M25

User data is placed in upper free space of each block.

0 Kudos
NurAiman_M_Intel
Employee
27 Views

Hi,


May I know if you need any further assistance upon solution given by FvM?


Regards,

Aiman


0 Kudos
Reply