Forum Discussion
Here is an example of RSU with UART (with 57600 baud console connection) on same device. I think you can find your answers in it.
- Zahkriin4 years ago
New Contributor
Thanks for the example project. I found an answer to my question, however I don't quite understand why? You write in line 854 that the maximum address is 13ffh (79871). In the Platform Designer it says under Flash Memory that the largest address is 0x4dfff (319487 or 8*79871 - 1). Why do you divide the addresses by 8?
Furthermore I don't understand your page_erase_addr in line 740. Of course you take 19 bits, because there is so much space in the register. But why do you start counting up in the middle?- jozephka994 years ago
Contributor
1. As in the UFM user guide at (https://www.intel.com/content/www/us/en/docs/programmable/683180/18-0/sector-address.html), you have to convert the sector addresses to the avalon mm addresses. This process done by dividing 4 not 8 (2 bit shifting).
2. Page erase operation at below the line ~740 is just UFM erase. Actually you can add here CFM sectors as well but I done CFM sectors erasing in sector erase mode. As you can see in UFM user guide (https://www.intel.com/content/www/us/en/docs/programmable/683180/18-0/ufm-and-cfm-array-size.html) 10M08 devices has 8+8= 16 pages in UFM sections. If you look at the flash ip, you can see that UFM sectors are between 0 and 0x07fff. It is normal sector addressing. It means approximately 0 - 0x2000 in avalon addressing and that is equal to 0-8192 bits. So we have 16 pages total, then one page's address is 8192/16=512 in avalon addressing. For this reason I increase the UFM page erase addresses by 512 for each page of UFM. I hope it doesn't confusing. In fact it is hard to understand that addressing and documentations about it is very poor.
- Zahkriin4 years ago
New Contributor
Now I finally understand how the addressing works. Thank you for your quick and very helpful answers.
- JensVkb4 years ago
Occasional Contributor
@jozephka99 Why is it ok to start programming the flash data from either address 0xAC00 or 0x2000, based on the addresses shown in the Flash IP configuration, while the addresses shown in the .map file are a bit higher? In the map it shows 0x8800 as start of CFM1, so 0x2200, and 2B800 as start of CFM0, so 0xAE00.
This is based on your lines 373 - 378 from the file manual_rsu.vhd. I'm guessing your code works, so it is correct to use the addresses of the Flash IP block and not to use the .map information.
- jozephka994 years ago
Contributor
It is because the actual data -that differs from 1's- in that .rpd file begins from 0x8800 (0x2200) (CFM1) and 0x2B800 (0xAE00) (CFM0). Data before this addresses is full of "FF"s that is default value of OC RAM. (You can see that if you open the .rpd file with a HEX editor.) .map tells us that you don't have to change these addresses because you already erase the OC RAM before writing it and they are already in the default values. So you can either begin from addresses that shown in IP core like me, or you can use .map addressings. But I think .map addressings can change and it is not that easy to do it in dynamic way.
- JensVkb4 years ago
Occasional Contributor
Hmm, when I open the <project>_cfm1_auto.rpd, the first rule contains some data already, followed by some FF bytes, but not 0x200 worth.
I do see a lot of FF bytes starting a bit before halfway the file, so that's probably what you mean... Does this mean that I need to send the file back to front to the FPGA?
The file is attached as "proof", just inside a .zip because direct .rpd upload is not allowed here.I'm generating the .rpd files through "convert programming file" and then ticking "create config data RPD".
Additional question: in "Options/Boot info..." I switch the "RPD File Endianness" to "Big endian" to save myself the bit-swap on the FPGA, right?
- sadann222 years ago
New Contributor
I'm very interested to learn from your example but there is a problem during download because i received this:
Anti-virus warning
– 1 attachment contains a virus or blocked file. Downloading this attachment is disabled.
Is there another way I can get your exaple.
- jozephka992 years ago
Contributor
Which file did you try to download. I downloaded the project zip file in opera without any error. May be you can try it with different browser.
- sadann222 years ago
New Contributor
Thank you jozephka99 for your response.
I tried to download "manual_rsu (with console and for 10m08).zip" with microsoft Edge browser, which is the only browser I'm allowed to use. After I received the above mentioned message I used my iphone and succeeded to download the file. Then I tried to send the unzipped files to the my work PC and found out that the problem was the VHD files. I changed the type of files to TXT and finally succeded to send all the files to my work.
I have already opened the project in quartus and I'm ready for the next phase.
I have no idea how to communicate with the module from my PC. What should I see on the display and what commands should I enter in order to start the configuration process.
Can you, please, assist me on the process of configuration.
Thank you very much for your time.