• Content Count

  • Joined

  • Last visited

About chcollin

  • Rank
    Frequent Visitor

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Update 3 - Major step in progression ! I finally ended up programming the SPI Flash I can confirm the Flash is correctly written. Jumper 11 was removed from the Atlys board so I turned it off and on again. I can tell the Atlys does boot on the Flash and load things to memory. The hardware implementation does start (my design uses LEDs and I can see them turning on). However, it seems like the software part doesn't start. The microblaze program doesn't seem to be started (it is supposed to send EDID information to the connected HDMI input device). Unfortunately, I couldn't find a way to get Bootloader outputs, this might give me hints on what's going on. For some unknown reason, when I plug Atlys' jtag cable to my host USB port and turn the board on, no /dev/ttyUSB0 appears. There must be something wrong with my installation although SDK and IMPACT have no problem programming the board. My System configuration is as follows : Centos 6 x86_64 libusb1-1.0.9-0.7.rc1.el6.x86_64 digilent.adept.runtime_2.13.1-x86_64 ftdi.drivers_1.0.4-x86_64 libCseDigilent_2.4.4-x86_64 [root@localhost share]# dadutil showinfo -d Atlys Product Name: Atlys User Name: Atlys Serial Number: 210178457950 Product ID: 00C0010C Firmware Version: 0303 Device Transport Type: 00010001 (USB) Device Capabilities: 0000000D DJTG - JTAG scan chain access DEPP - Asynchronous Parallel Input/Output DSTM - Streaming Synchronous Parallel Input/Output Yet, no /dev/ttyUSB0 shows up so I don't know how to connect to JTAG to get bootloader outputs... 😢 Does anybody have any suggestion ? This would be convenient to read bootloader output, it might point me out what's wrong with loading/starting the microblaze application. Cheers
  2. OK, linker doesn't find xilisf functions. There might be problems with missing -L or -l options to gcc, but this is an ISE issue, so I'll post on xilinx forum instead. I'll be back after I solve this problem and try to boot The Atlys with this thing EDIT : For some unknown reason, the "Generate Linker Script" Option generates a file with missing -xilisf option for linker. I ended up editing this file manually to add this option and finally every thing went smooth. I now have a download.bit ready to be uploaded to Atlys' SPI Flash Chances are low that everything works ok at first try, but it's going in the right direction ! Thx again for your help @JColvin
  3. Thx @JColvin I'll let you know soon how things evolved
  4. @JColvin , first off, many thanks. It's very kind of you having done all this research and giving me all those tips. I really appreciate it. Now, about the XPAR_SPI_FLASH_DEVICE_ID thing : I(ve been downloading ISE 12.4 and searched header files for this symbol ... unsuccessufully. I'm starting to think there is a missing header file / declaration with the tutorial. But all your tips might help me on this trial. I've been greping xilisf header files about N25Q128, and this is what I found in xilisf_intelstm.h : #define XISF_NM_DEV_N25Q128 0xBA18 /**< Device ID for N25Q128 */ #define XISF_MIC_DEV_N25Q128 0xBB18 /**< Device ID for N25Q128 */ So... maybe the STM flash family is the good choice and maybe I should declare #define XPAR_SPI_FLASH_DEVICE_ID XISF_NM_DEV_N25Q128 ... assuming MIC is Micron and NM is Numonyx ... OK, it"s a bit straight forward, I admit... But it might be worse trying this. I'll try programming SPI Flash with this parameter value and see how things go. Cheers
  5. Update 2 OK, the bootloader side of things happens to be the dark side of things People here at Digilent might help me on one point (googleing didn't give results). Could anyone tell me what is the flash family I should choose for the xilisf library ? Here is what is available : #define ATMEL 1 /**< Atmel family device */ #define INTEL 2 /**< Intel family device */ #define STM 3 /**< STM family device */ #define WINBOND 4 /**< Winbond family device */ #define SPANSION 5 /**< Spansion family device */ #define SST 6 /**< SST family device */ Secondly : Following the tutorial given by @JColvin, it is suggested to replace bootloader.c with a custom one (it substitutes regular memory reads by SPI Flash reads). I managed to find this custom bootloader.c file (attached to this post), unfortunately it doesn't compile. preprocessor rises an error for undeclared symbol XPAR_SPI_FLASH_DEVICE_ID. I've been greping all header files in ISE 14.7 for that symbol... unsuccessfully 😢 Any suggestion ? Cheers bootloader.c
  6. Update 1 I managed to add xps_spi core to HDMI_DEMO project and export design 😀 As I didn't know how to configure it, I started a new XPS project from scratch using BSB wizard and Atlys_PLB_BSB_Support files to retrieve those needed information. Then, back to HDMI_DEMO project, I configured my new xps_spi core as follows : Added those lines to system.ucf : Net xps_spi_0_SCK_pin LOC=R15 | IOSTANDARD=LVCMOS33; Net xps_spi_0_MISO_pin LOC=R13 | IOSTANDARD=LVCMOS33; Net xps_spi_0_MOSI_pin LOC=T13 | IOSTANDARD=LVCMOS33; Connected xps_spi core ports to those. Finaly, configured xps_spi core as indicated in screenshots. Export was successful. I'll do the SDK part tomorrow. Thanks again @JColvin
  7. Wow ! Many thanks @JColvin ! This solution seems very promising. I'll try this asap and will tell you if this solves my problem. I'm almost sure it will as it depicts exactly what i'm looking for. At least it should be a milestone on the path to victory. Cheers
  8. Actually, I'd like to find answers to the questions asked in this thread :
  9. Thank you @Cristian.Fatu, however I'm afraid this is not "that simple"... From what I have understood, the tricky part is to generate a .bit file that contains both EDK implementation AND SDK PLB Microblaze binaries as well as a bootstrap loader. If this solution is documented over the web for AXI based projects, I can't find any piece of info about PLB based projects. Once this .bit file is obtained, indeed the way to store it is as you mentionned (using Adept). As you might have understood now, my problem is not to store data to SPI, but to generate a bootloadable .bit file containing both EDK implementation and SDK LPB Microblaze binaries. Hope this can be done ... Cheers
  10. Hi FPGA gurus ! Merry Christmas and happy new year to all of you FPGA lovers at Digilent ! I'm trying (unsuccessfully) to store Atlys HDMI demo to SPI/Flash so that whenever I turn the Atlys board on the project runs, without the need to upload and launch it through SDK. Atlys HDMI demo is a PLB based project and the only piece of info I can find about storing projects to SPI/Flash is for AXI based projects. Can anybody help me achieving this ? Any help would be greatly appreciated. Cheers
  11. This solution seems to be suitable for AXI-based projects... whereas I'm using PLB 😢 That's sad...
  12. I might answer partially my own question as I have found this tutorial : How To Store Your SDK Project in SPI Flash It is for Vivado but with a little luck, this might work for ISE 14.7 too. I'll post some time soon to tell you if I managed to have it work or if I need help !
  13. Thank you @D@n, I'll have a look at your project when I have time. However, it was not my intention to rewrite the xps_iic EDID module, as I'm totally satisfied with what I have now. I'm just trying to understand how to store the whole project to Atlys' SPI/FLASH so that whenever I turn it on the project runs, without the need to launch it through SDK. Cheers
  14. I have no hint as to why this was designed this way. All I can say is that Microblaze handles IIC interrupts for feeding HDMI connector with supported resolution infos. Quoting the demo documentation : "Implementing an EDID transmitter so that attached devices will recognize the Atlys as a display device Input sources that require EDID packets to recognize a device must be attached after the software has been loaded to the FPGA. This is because the IIC controller must be configured properly in order to respond to the EDID requests which occur just as the device is plugged in.  The transmitted EDID packet may be altered in the hdmi_demo.h header file." I guess this was, at that time (2013), the way to use HDMI in connector. In header file : /* * EDID array definition. Changing these values changes the EDID * packet that is sent over the E-DDC wires. It contains information on which * resolutions the device supports. Currently, this packet provides fairly * generic resolution support. Note that using resolutions with widths larger * than the line stride of the hdmi_output core results in a choppy picture. */ In source code : /*** IicHandler ** ** Parameters: ** CallBackRef - Pointer to NULL ** ** Return Value: ** None ** ** Errors: ** None ** ** Description: ** This function is connected to the interrupt handler such that it is ** called whenever an interrupt is triggered by the IIC core. It is ** designed to behave like a monitor on an E-DDC interface. It outputs ** the data held in rgbEdid as its EDID. */
  15. Hi FPGA gurus ! This might be my forever last question :D My project is complete, all bugs and customizations done. I wanted to get rid of the microblaze part but I realized I couldn't since HDMI In connector needs xps_iic and microblaze for the EDID thing. So, here is my question, as I didn't find any answer to it : How can I store the whole project into Atlys so that I don't need to download and run it from SDK every time ? Especially, the C program needs to be run on bootup so that EDID interrupts are handled. To resume : What's the process so that whenever I turn the Atlys on, my implementation and program run ? Can anybody help on this ? After 2 years I'm finally seeing the light at the end of the tunnel !! Many many thanks in advance. Cheers