Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Numato Elbert V2 support #12

Closed
wants to merge 8 commits into from

Commits on Jan 18, 2018

  1. Configuration menu
    Copy the full SHA
    e8f6bc4 View commit details
    Browse the repository at this point in the history
  2. platforms/elbertv2.py: Elbert V2 board definition

    First attempt; hand translated from Numato UCF file; currently untested.
    ewenmcneill committed Jan 18, 2018
    Configuration menu
    Copy the full SHA
    ec33d2f View commit details
    Browse the repository at this point in the history
  3. targets/elbertv2: WIP (untested!) Elbert v2 target

    Copied from targets/mimasv2, with random guesses as to what should
    be removed from mimasv2 code.
    
    In particular:
    - Mimas v2 supports 100 MHz + 12 MHz clock; Elbert v2 has only 12 MHz clock
    - Mimas v2 has external SDRAM; Elbert v2 has no external SDRAM
    - Mimas v2 has physical programming/communications switch over shared USB link
    - Elbert V2 has only programing over built in USB link; needs separate USBUART
      module to provide communications
    
    **COMPLETELY UNTESTED** at this stage, have not even tried parsing Python...
    ewenmcneill committed Jan 18, 2018
    Configuration menu
    Copy the full SHA
    eaed47a View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2018

  1. firmware: stub-out framebuffer/pattern if no main ram

    On systems without external SDRAM (eg, Numato Elbert v2), there
    is no MAIN_RAM_BASE, and we cannot hold a frame buffer as we
    have only small amounts of in-FPGA SRAM.
    
    This should be cleaned up to avoid even compiling the framebuffer /
    pattern when there is no main ram / MAIN_RAM_BASE, but for now we
    have stubbed out everything referring to main ram or L2 cache (since
    the L2 cache is over the external SDRAM).
    
    In theory this should still work on systems with MAIN RAM, but currently
    untested.
    ewenmcneill committed Jan 19, 2018
    Configuration menu
    Copy the full SHA
    87b46c0 View commit details
    Browse the repository at this point in the history
  2. firmware/linker.ld: WIP: hand-calculated Elbert v2 values

    UGLY!  Hand hacked linker.ld to allow linking on platform without
    main_ram.
    
    TODO: figure out way to generate this conditional on whether there
    is main ram or not.
    
    On platforms with main ram, we tell linker to assume that most things
    will be in main_ram by the time we execute the code (and the boot
    loader copies into the main ram).  On a platform without main ram,
    we have to execute directly from the SPI flash (which is mapped
    in a different location), and need to:
    (a) ensure that the .text (code) and .rodata (const data) is in
    the spi flash; and
    
    (b) .data (updatable data) and .bss (stack) are in sram (static ram,
    on FPGA cells)
    ewenmcneill committed Jan 19, 2018
    Configuration menu
    Copy the full SHA
    313ce5c View commit details
    Browse the repository at this point in the history
  3. elbertv2: cas commented out

    Commented out cas submodule, as it wasn't being found for elbertv2
    (perhaps due to changes needed in third_party/litex?); commented out
    asserts on frequency copied from mimasv2 as it is unclear what they
    should be on 12MHz clock (mimasv2 ones are based around 100Mhz clock)
    
    At this point, with hand hacked linker.ld, we can compile and link
    firmware ("make firmware"); but firmware is completely untested.
    ewenmcneill committed Jan 19, 2018
    Configuration menu
    Copy the full SHA
    62636e0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b89e7b2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d169bbb View commit details
    Browse the repository at this point in the history