[[TracNav(802.11/TOC)]] = Using the 802.11 Reference Design: SDK = The first step in modifying the 802.11 Reference Design software is creating a workspace in the Xilinx SDK and importing the reference software projects. The steps below describe how to create an SDK workspace containing the full software design. == Creating the SDK Workspace == 1. Ensure your Xilinx tools match the version used to create the reference design (see the [wiki:../../Download download] page for the current versions) 1. Ensure your local copy of the WARP edk_user_repository is up to date and in the repository search path of XPS (see [wiki:edk_user_repository edk_user_repository] for details) 1. Download the 802.11 Reference Design archive and expand the inner .zip archive in {{{/EDK_Projects/w3_802.11_EDK_vXXX.zip}}}. * Be sure the expanded EDK project path has no spaces; {{{C:/work/w3_802.11_EDK/}}} works, {{{C:/Documents and Settings/user/w3_802.11_EDK/}}} does not * The text below assumes your expanded EDK project is in {{{/}}}. 1. Launch Xilinx SDK and select {{{/SDK_Workspace}}} as the active workspace 1. Select Xilinx Tools -> Repositories. In Local Repositories click New, then select {{{/}}} and click OK. Be sure to select the root of the XPS project (the folder containing {{{system.mhs}}}, '''not''' the SDK_Workspace folder. 1. Import the SDK projects provided by the reference design 1. Select File -> Import 1. Expand General -> Existing Projects into Workspace, click Next 1. Click Browse and navigate to {{{/SDK_Workspace}}} 1. 9 projects will be listed: {{{ wlan_bsp_cpu_high wlan_bsp_cpu_low wlan_mac_high_ap wlan_mac_high_ibss wlan_mac_high_sta wlan_mac_low_dcf wlan_mac_low_nomac wlan_mac_shared Mango_802.11_RefDes_vXXX_hw_platform <- the version number in this project name will change between releases }}} 1. Ensure all 9 projects are checked and click Finish 1. In the SDK Project Explorer: 1. Right click on the {{{wlan_mac_high_ap}}} project and select Change Referenced BSP. In the dialog box select {{{wlan_bsp_cpu_high}}} then click OK 1. Right click on the {{{wlan_mac_high_ibss}}} project and select Change Referenced BSP. In the dialog box select {{{wlan_bsp_cpu_high}}} then click OK 1. Right click on the {{{wlan_mac_high_sta}}} project and select Change Referenced BSP. In the dialog box select {{{wlan_bsp_cpu_high}}} then click OK 1. Right click on the {{{wlan_mac_low_dcf}}} project and select Change Referenced BSP. In the dialog box select {{{wlan_bsp_cpu_low}}} then click OK 1. Right click on the {{{wlan_mac_low_nomac}}} project and select Change Referenced BSP. In the dialog box select {{{wlan_bsp_cpu_low}}} then click OK 1. Right click on the {{{wlan_mac_high_ap}}} project and select Clean Project 1. Right click on the {{{wlan_mac_high_ibss}}} project and select Clean Project 1. Right click on the {{{wlan_mac_high_sta}}} project and select Clean Project 1. Right click on the {{{wlan_mac_low_dcf}}} project and select Clean Project 1. Right click on the {{{wlan_mac_low_nomac}}} project and select Clean Project 1. The 5 software applications (AP, STA, IBSS, DCF and NoMAC) should now build to completion. Click once on each project in the SDK Project Explorer tab and check the console for the message {{{elfcheck passed}}} Once you've created the SDK workspace you can begin modifying the reference C code. By default the SDK will automatically compile a software project when any of its source files are modified and saved. Watch the SDK console tab for compiler warnings/errors. == Using the Modified Design == When the SDK has successfully compiled the software projects for CPU High and CPU Low, you can use the updated design in hardware. The output of the XPS hardware implementation flow is a bitstream named {{{system.bit}}}. This bitstream contains the full hardware design. In this design the initial values of the memory blocks used for instruction/data are all zero. The SDK's Program FPGA tool (under the Xilinx Tools menu) implements the process of updating the memory blocks in {{{system.bit}}} with the software binary (the .elf file) generated by the SDK compiler/linker. The output of this flow is a new bistream named {{{download.bit}}}, ready to download to the FPGA. The Program FPGA tool requires selection of one software binary per processor in the design. You must select a valid .elf file per CPU. If you select the default bootloop, the corresponding processor will be configured with a "do nothing forever" application, leading to a boot failure of the 802.11 design. The image below shows the .elf selections to use the IBSS application in CPU High and DCF MAC in CPU Low:[[BR]] [[Image(wiki:802.11/files:sdk_program_fpga_elf_selection.png)]] After selecting valid .elf files click Program. This will generate the file {{{download.bit}}} in {{{/Mango_802.11_RefDes_vXXX_hw_platform/}}}. If you have a JTAG cable attached to your PC the tool will also attempt configuring your FPGA with the updated design. If no JTAG cable or FPGA is found, the tool will report "Program FPGA Failed". The {{{download.bit}}} file is still updated in this case and can be used to configure the FPGA later (via iMPACT, ChipScope, SD cards, etc). If you want to generate a .bin file for use on SD cards, find the updated {{{download.bit}}} file as described above and follow the usual [wiki:howto/SD_Config#BinaryFormat SD card config] flow.