|
|
@@ -0,0 +1,83 @@
|
|
|
+Imagination University Program MIPSfpga
|
|
|
+=======================================
|
|
|
+
|
|
|
+Under the Imagination University Program, a microAptiv UP core has been
|
|
|
+released for academic usage.
|
|
|
+
|
|
|
+As we are dealing with a MIPS core instantiated on an FPGA, specifications
|
|
|
+are fluid and can be varied in RTL.
|
|
|
+
|
|
|
+This binding document is provided as baseline guidance for the example
|
|
|
+project provided by IMG.
|
|
|
+
|
|
|
+The example project runs on the Nexys4DDR board by Digilent powered by
|
|
|
+the ARTIX-7 FPGA by Xilinx.
|
|
|
+
|
|
|
+Relevant details about the example project and the Nexys4DDR board:
|
|
|
+
|
|
|
+- microAptiv UP core m14Kc
|
|
|
+- 50MHz clock speed
|
|
|
+- 128Mbyte DDR RAM at 0x0000_0000
|
|
|
+- 8Kbyte RAM at 0x1000_0000
|
|
|
+- axi_intc at 0x1020_0000
|
|
|
+- axi_uart16550 at 0x1040_0000
|
|
|
+- axi_gpio at 0x1060_0000
|
|
|
+- axi_i2c at 0x10A0_0000
|
|
|
+- custom_gpio at 0x10C0_0000
|
|
|
+- axi_ethernetlite at 0x10E0_0000
|
|
|
+- 8Kbyte BootRAM at 0x1FC0_0000
|
|
|
+
|
|
|
+Required properties:
|
|
|
+--------------------
|
|
|
+ - compatible: Must include "digilent,nexys4ddr","img,xilfpga".
|
|
|
+
|
|
|
+CPU nodes:
|
|
|
+----------
|
|
|
+A "cpus" node is required. Required properties:
|
|
|
+ - #address-cells: Must be 1.
|
|
|
+ - #size-cells: Must be 0.
|
|
|
+A CPU sub-node is also required for at least CPU 0. Required properties:
|
|
|
+ - device_type: Must be "cpu".
|
|
|
+ - compatible: Must be "mips,m14Kc".
|
|
|
+ - reg: Must be <0>.
|
|
|
+ - clocks: phandle to ext clock for fixed-clock received by MIPS core.
|
|
|
+
|
|
|
+Example:
|
|
|
+
|
|
|
+ compatible = "img,xilfpga","digilent,nexys4ddr";
|
|
|
+ cpus {
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <0>;
|
|
|
+
|
|
|
+ cpu0: cpu@0 {
|
|
|
+ device_type = "cpu";
|
|
|
+ compatible = "mips,m14Kc";
|
|
|
+ reg = <0>;
|
|
|
+ clocks = <&ext>;
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
+ ext: ext {
|
|
|
+ compatible = "fixed-clock";
|
|
|
+ #clock-cells = <0>;
|
|
|
+ clock-frequency = <50000000>;
|
|
|
+ };
|
|
|
+
|
|
|
+Boot protocol:
|
|
|
+--------------
|
|
|
+
|
|
|
+The BootRAM is a writeable "RAM" in FPGA at 0x1FC0_0000.
|
|
|
+This is for easy reprogrammibility via JTAG.
|
|
|
+
|
|
|
+The BootRAM initializes the cache and the axi_uart peripheral.
|
|
|
+
|
|
|
+DDR initialization is already handled by a HW IP block.
|
|
|
+
|
|
|
+When the example project bitstream is loaded, the cpu_reset button
|
|
|
+needs to be pressed.
|
|
|
+
|
|
|
+The bootram initializes the cache and axi_uart.
|
|
|
+Then outputs MIPSFPGA\n\r on the serial port on the Nexys4DDR board.
|
|
|
+
|
|
|
+At this point, the board is ready to load the Linux kernel
|
|
|
+vmlinux file via JTAG.
|