How do I upgrade MicroBlaze from v6.00 to v7.00 in EDK?
MicroBlaze v6.00 can now be upgraded to v7.00, which provides a Memory Management Unit (MMU), new Floating Point Unit instructions for increased performance, new Fast Simplex Link (FSL) instructions, and access to the PLB v4.6 interconnect.
This solution details the steps required to upgrade MicroBlaze, maintaining the existing OPB system bus. To take advantage of the new PLB v4.6 interconnect, the system must be rebuilt.
The following issues must be considered when upgrading:
- In existing OPB systems where debug is used, opb_mdm must be replaced with mdm (configured for OPB). All MicroBlaze debug port connections must be replaced by a corresponding DEBUG bus connection.
- If Trace signals are connected in the system for debugging, these connections may have to be adjusted, as the number of bits in the ports Trace_MSR_Reg and Trace_Exception_Kind has changed.
- The possibility of using FSL to connect MicroBlaze caches has been removed, so existing systems using these connections must be upgraded to use XCL instead. Note that this does not represent a functional change, and since XCL was introduced MicroBlaze v4.00 not many systems are affected by this change.
- EDK 9.2i includes new versions of the gcc compiler and binary utilities for MicroBlaze (Xilinx Answer 29379). New and old object code cannot be mixed. It is possible to inadvertently link to a pre-existing library containing old code, but the resulting executable will not work correctly. To avoid problems, recompiling all code is recommended.
To upgrade from v6.00 to v7.00, follow these steps:
1. Change the MicroBlaze HW_VER parameter in the MHS file to the active MicroBlaze 7 processor version found in the IP Catalog. When the file is saved, EDK will automatically update the system.
2. Right-click on MicroBlaze in "System Assembly View" and select "Configure IP...." Go to the "Buses" tab, and ensure that "Select Processor Local Bus (PLB) interface" is deselected.
3. Debug: Remove opb_mdm by right-clicking and selecting "Delete instance...," and clicking OK in the dialog. Add MicroBlaze Debug Module (MDM) by dragging it from the IP Catalog (it can be found under Debug). Configure the module to use OPB, and connect it to MicroBlaze via the OPB and DEBUG bus. Also connect the Debug_Sys_Rst port to the corresponding port on mb_opb.
4. If Trace signals are used, for example together with a ChipScope Integrated Logic Analyzer IP, increase the trigger width to accommodate the additional bits. This is necessary only if Trace_MSR_Reg and/or Trace_Exception_Kind are connected.
5. If your system has caches connected to memory with FSL, you must use XCL instead:
a. If the Memory Controller IP used does not support XCL, you first must replace it with an appropriate Multi-Channel Memory Controller.
b. The XCL can then be connected by clicking on the XCL connection symbols in the Bus Connectivity Panel.
6. Select Software > Clean Software in EDK to clean all generated library and object code, and rebuild the projects with Software > Build All User Applications. This ensures that all software is recompiled with the new gcc compiler.