Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    emard
    @emard
    If minimig is from my "emard" repo, that is adaptation from fleafpga ohm, it mainly works but could be refreshed with AGA port or something new. Opensource yosys can do *.sv syntax, maybe is some particular feature from other compiler missing but sv at yosys is quite useable. Keyboard can be added by plugging to US2 port micro-usb to normal USB adapter cable (OTG cable). Amiga core will work with PS/2 keyboard or USB+PS/2 keyboard but not USB only keyboard (for cabling see https://github.com/emard/ulx3s/blob/master/doc/MANUAL.md#us2-connector-as-otg-ps2-or-sniffer). @lawrie has ported QL and mac128 to ulx3s with opensource tools, those are much simpler machines but if you need help we will tell what we know
    Dolu1990
    @Dolu1990

    @emard

    auu, I'm sure it is complex and we probably want some reduced/minimalistic subset of openhci functions to get usb hub working and to plug kbd, mouse, usb stick and similar

    Right, there is quite some overhead, but that's not tooooo bad. but for sure the footprint of a DMA less controller would be quite smaller

    Radu Stoichita
    @radu_stoichita_gitlab
    @lawrie i have built the SaxonSoc minimal using your readme and advices everything went smooth. The lightweight version of this soc example is much more understandable however it makes use of many Spinal features which are not documented at all 😢
    Lawrie Griffiths
    @lawrie
    @radu_stoichita_gitlab Yes, there are areas of SpinalHDL and its library which will need to be documented, if people are to use SaxonSoc for their own projects and add peripherals to it. Areas that I am unsure about and needed help from @Dolu1990 with are how to set up the Bmb interconnect, and how to set up the clock domains. Also the generator framework does not have much documentation, and I am not sure if the documentation that exists is up to date.
    Dolu1990
    @Dolu1990
    @lawrie @radu_stoichita_gitlab It isn't much but i added some doc about the roots of the framework : https://spinalhdl.github.io/SpinalDoc-RTD/SpinalHDL/Libraries/fiber.html
    Rob Taylor
    @rob_chipflow:matrix.org
    [m]
    👋
    Radu Stoichita
    @radu_stoichita_gitlab
    @Dolu1990 thank you that is indeed interesting but the learning curve is very steep for newbies like me. This is by far the most complicated hobby project I worked on and far underestimated the difficulty and complexity of such systems. For sure, the most complicated board I worked with before was a STM32 custom design with SDRAM. Didn't have to do all the low level setup though....
    rvalles
    @rvalles:matrix.org
    [m]
    @emard: "Keyboard can be added by plugging to US2 port micro-usb to normal USB adapter cable (OTG cable)." --> yeah... don't have one of these around, and what I had been trying is with that not-really-pmod with 2x usb a females.
    @emard: I'll have to look into making it build with yosys. Re: ps2-to-usb, that adds a layer of complication (I'm not sure any of my usb keys do ps2, or how else to check)... maybe current mister's can do better, but that went deeper into sv and/or vhdl iirc.
    Anyhow, I can see it is going to be Work™. I might or not allocate some time to trying to get the port built with yosys as a starting point (as I can't do anything otherwise... I refuse to get dependent on proprietary toolchain).
    emard
    @emard
    @rvalles:matrix.org the pmod with 2 USB's should work. If it doesn't work, you don't have keyboard that can provide PS/2 protocol. PS/2 should be provided when both D+ and D- lines are pulled up, Normal USB either pulls up D+ or D- but not both for a long time, so that's how keyboard "knows". Read at the bootom of keyboard if it supports PS/2 or in manual there's known keyboard that can currently be obtained and users reported it working. We have USB host core but it is long and heavy, already complex design like amiga will not like it, fmax reduction and long compile times...
    For amiga I had working USB core for joystick, but for kbd you would need additional one, but PS/2 protocol is much lighter and a better choice in this situation. Minimig has linux host that accepts USB kbd and probably converts to PS2 when going to core
    rvalles
    @rvalles:matrix.org
    [m]
    By minimig you mean mister there, I guess? That's my least favorite part about mister.
    The other annoyances are no support for 1MB (AROS...) rom, and Amiga serial port is wired... who knows where. I'd have to look into that too.
    Ultimately, for what I need to do, it'll likely be better to try and get AROS working on my A1200 instead, and do my work against that.
    emard
    @emard
    By minimig I also mean https://github.com/emard/Minimig_ECS for ULX3S. I'm not expert in amiga emuation field, I just ported it without understanding how ROM etc things are loaded. I know it has additional 68k core handling OSD and loading. There is more fresh activity https://github.com/rkrajnc/Minimig-AGA_MiSTer this one has some risc cpu instead of 68k to handle OSD and loading
    Irvise
    @irvise:matrix.org
    [m]
    Hello. I want to follow this blog to write a barebones Ada program on top of the SaxonSOC CPU.
    The title says arm, but startup-gen also works with RISC-V.
    In principle, I just need to declare the memory regions (rom, ram).
    Irvise
    @irvise:matrix.org
    [m]
    From what I have read of SaxonSOC (using prebuilt binaries: https://github.com/lawrie/saxonsoc-ulx3s-bin/tree/master/Smp ) once the cpu bitstream is loaded, the cpu jumps to 0x340000 which should contain fw_jump.bin and it then jumps to 0x380000 for u-boot.
    Correct me if I am wrong, but in principle, if I generate a program that load to the address 0x380000 it should "just work", isn't it? Without loading u-boot of course.
    And where can I find more info on what memory addresses are being used for MMIO? The VexRisc documentation (code) is not very clear on that.
    In the end I want to get a blinking led without having to go trough the use of Linux (barebones).
    Dolu1990
    @Dolu1990

    @irvise:matrix.org

    0x340000

    That's the flash address. the CPU copy that part of the flash to the SDRAM at 0x80F80000 (global address). See :

    Then it does similar things with uboot but with that set of addresses : https://github.com/SpinalHDL/SaxonSoc/blob/dev-0.3/bsp/radiona/ulx3s/smp/app/bootloaderConfig.h#L22

    if I generate a program that load to the address 0x380000 it should "just work"

    Yes, as long you programe is complied to sit at 0x80F00000 in the global memory space

    And where can I find more info on what memory addresses are being used for MMIO

    This autogenerated header file contains all the peripheral addresses :

    https://github.com/SpinalHDL/SaxonSoc/blob/dev-0.3/bsp/radiona/ulx3s/smp/include/soc.h#L64

    blink

    See https://github.com/SpinalHDL/SaxonSoc/blob/dev-0.3/software/standalone/blinkAndEcho/src/main.c
    used with https://github.com/SpinalHDL/SaxonSoc/blob/dev-0.3/bsp/radiona/ulx3s/smp/include/bsp.h#L15

    you can compile it using the command "saxon_standalone_compile blinkAndEcho" It will sit where uboot sit (see https://github.com/SpinalHDL/SaxonSoc/blob/dev-0.3/bsp/radiona/ulx3s/smp/linker/default.ld#L1)

    1 reply
    Radu Stoichita
    @radu_stoichita_gitlab
    Or you can leave the bootloader as is uboot as is and change the bootcmd to load from mmc 0:1 the standalone firmware and run it
    1 reply
    This avoids resynthetize all fpga bitstream for program change
    I left bootloader. Hex and uboot
    Just use a helper to update standalone firmware to SD card
    Irvise
    @irvise:matrix.org
    [m]
    And one generic question. Can SaxonSOC be built? (https://github.com/SpinalHDL/SaxonSoc/tree/dev-0.3/bsp/radiona/ulx3s/smp)
    I have been having constant errors with sbt not being able to download dependencies.
    I have been fighting and struggling to get Litex-VexRISC to build and decided to go back to SaxonSOC, but that one has the exact same dependencies issues.
    See:
            Server access error at url http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt.ivy/ivy/2.3.0-sbt-839fad1cdc07cf6fc81364d74c323867230432ad/ivys/ivy.xml (java.net.ConnectException: Connection refused (Connection refused))
    
            Server access error at url http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt.ivy/ivy/2.3.0-sbt-839fad1cdc07cf6fc81364d74c323867230432ad/jars/ivy.jar (java.net.ConnectException: Connection refused (Connection refused))
    Those URLs do not exist. How does one then go about building SaxonSOC? Is it a temporary network issue?
    Radu Stoichita
    @radu_stoichita_gitlab
    I have built the Ulx3sSmp on the 0.3 branch without issues
    Maybe check your connectivity or remove the sbt cache directories / reinitialize project
    Best woyld be to follow the readme for a clean clone
    Sorry I struggled myself very much for the builds
    Dolu1990
    @Dolu1990
    Yes that's likely some server down online
    Seems like there may be some solution to have backups
    I'm locking that right now
    Now worries, about the struggle, different workflow are most of the time a mess to pick up ^^
    I tried to reproduce the same issue, can't. Can you PM me the whole logs ?
    Irvise
    @irvise:matrix.org
    [m]
    I tried building the 0.3 branch too following the step by step README. To no avail due to the error above.
    And I indeed tried to force rebuilds by deleting ~/.sbt and ~/.ivy2 but the error persisted.
    I will try it again later, if the error persists, I will send you the logs @Dolu1990 .
    Irvise
    @irvise:matrix.org
    [m]
    Question: is there a way to generate a CMSIS-SVD descriptor of the VexRiscv CPU / SaxonSOC platform?
    I would suspect that it should be created (by default or behind a flag) during synthesis.
    That would greatly help me with my project (https://github.com/AdaCore/svd2ada also works with RISC-V).
    Dolu1990
    @Dolu1990

    @irvise:matrix.org

    Question: is there a way to generate a CMSIS-SVD descriptor of the VexRiscv CPU / SaxonSOC platform?

    There is nothing in place actualy. It would be cool to have, but actualy, the dev was focused on other aspects (linux, more peripherals, mooore power, ..)