1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- 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.
|