Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    emard
    @emard
    Amazing news, I assembled remote RPI3 with ULX3S connected with USB to US1 port and with USB-FT2232 JTAG to GN pins for softcore CPU. RPI3 can remotely power cycle the board. Also LA was used with SOIC-8 clip directly to FLASH chip. And we found crosstalk at WP and HOLD lines that were confusing ISSI flash which didn't respond to 0xAB in this case
    @Dolu1990 had remotely logged to RPI3 and fixed saxonsoc to work :)
    Goran Mahovlic
    @goran-mahovlic
    wow!
    Paul Ruiz
    @pnru_gitlab
    @Dolu1990 @emard Congratulations!! What an excellent display of team work!
    What was the solution? Send the 0xAB command twice? Drive the HOLD and WP pins from the FPGA instead of relying on pull-up? Something else?
    Dolu1990
    @Dolu1990
    Just drive HOLD and WP to '1' strongly from the FPGA
    instead of relying on pull-up, right
    that was the only change required
    Paul Ruiz
    @pnru_gitlab
    So only the ISSI flash chips were problematic, right? So all the boards manufactured after March 2019 were fine even before this fix?
    Paul Ruiz
    @pnru_gitlab
    @lawrie You mentioned yesterday (or Saturday) that currently the --idcode option was no longer necessary when using a 12F with a 25F bitstream. Did I understand that correctly?
    Lawrie Griffiths
    @lawrie
    Yes, nextpnr now supports --12k and ecppack no longer requires the idcode.
    Paul Ruiz
    @pnru_gitlab
    If I use --12k, do I get the 12k capacity or the 25k capacity?
    Lawrie Griffiths
    @lawrie
    The 25k capacity.
    I believe that is all correct, but of course, @daveshah1 is the expert.
    Paul Ruiz
    @pnru_gitlab

    This stuff is moving so fast that it is hard to keep up with all the refinements :^)

    But that also means that for new ULX3S users it can be confusing. Even examples, projects and discussion threads from just 6 months ago can already be out of date. Kinda like Linux around 1997.

    Lawrie Griffiths
    @lawrie
    @emard The version of SaxonSoc with the flash fix is now in Smp/bitstreams/ulx3s_85f_green_2core_saxonsoc.bit
    emard
    @emard
    @lawrie wooow let me try this out of the box :). Now all known boards should boot saxonsoc, and the fix is now more future-proof becausw we know how to crrectly drive FLASH so its more future proof
    Lawrie Griffiths
    @lawrie
    I have not updated the other ones as we did not get problems on 12F or blue 85F, but they will get the fix next time I build them.
    Just noticed my push was rejected, but it is there now.
    emard
    @emard
    @pnru_gitlab yes too much issues so I put on hold cleaning up my ulx3s-examples, outdated. (I'm now even thinking about delete) :)
    Basically this example should demonstrate getting tools and compiling blink, nothing else no WSL, no ESP32 etc
    emard
    @emard
    @lawrie @Dolu1990 I downloaded 85F "green" 2-core bitstream from Smp flashed and it boots! RMII ETH works also! The iperf3 reports about 8 Mbps, the same as on 1-core 12F.
    Dolu1990
    @Dolu1990
    hmmm
    emard
    @emard
    It's probably propery of my eth switch or PC that tests it
    I found a bug in mcpclock, setting it to 1970-01-01 makes garbled year "d0" instead of "70"
    Dolu1990
    @Dolu1990
    I will have to investigate MAC / Sdcard performances, to see where linux is losing time
    Cool anyway ^^
    emard
    @emard
    Yes when it works out_of_the_box it is very comfortable to boot and login
    emard
    @emard
    mcpclock.c epoch years bug fixed and pushed - if in distribution, I recommend update :)
    @pnru_gitlab small bugfix, probaby your hwclock still has it :)
    -  v = tvp->tm_year; v -= 100; v = (((v/10)<<4) + (v%10));
    +  v = tvp->tm_year; v %= 100; v = (((v/10)<<4) + (v%10));
    e2kgh
    @e2kgh
    @lawrie : what is the magics of making the DTB files automatically? So far I get all my stuff to compile here for my green 85F, but the dtb, I stil have to copy from your GIT ...
    emard
    @emard
    @lawrie closing " in README :)
    date -s "2020-10-03 11:23
    Paul Ruiz
    @pnru_gitlab
    @emard thanks for the heads-up. For the Cortex RTC clock there are a bunch of updates that I need to do. By the way, has anybody ever tested the i2c link to the GDPI connector / monitor?
    My focus for the Cortex right now is mostly to make networking comfortable. Some of this stuff will also be needed for connecting it to a Blit.
    Lawrie Griffiths
    @lawrie
    @e2kgh Currently the dts for 2 and 4-core systems have to be edited by hand. You need to move the start of the commented-out code down here and here, and then run saxon_buildroot_dts.
    If you have 64MB od SDRAM, you have to change this line.
    emard
    @emard
    i2c works for monitor, it can read its EDID conent. Probably it can write it back to monitor and brick it :). Parsing or even generating new edid is much longer story of potential hax.
    @pnru_gitlab you can try RMII too, if a packet is buffered to 2K BRAM and read slower by tms99xx, it could work to get you tcpip wired
    But take a look at your board, boards from skriptarnica don''t have PCA9306A i2c levelshifter chip should be below GPDI connector. It can be easily ordered from mouser and soldered
    Paul Ruiz
    @pnru_gitlab

    @emard thanks for i2c info. I think my 12F board is skriptarnica from the early 2019 run, so I will check. My 85F is a blue Wattenrott.

    My current ping time is 600ms, but I think I have a reasonable chance to get that down to 300ms. This is better than the Arpanet backbone from 1980, which had 1 second ping times (although "ping" did not exist yet). However, back then on a LAN ping times of about 50ms were achieved, using dedicated boards, that often had their own buffer memory and DMA circuits.

    I'm thinking about using a ENC28J60 PMOD. This is available in a 28 pin 0.1" pin-through-hole package for a future retro board and the TI990 chips have a "cru" I/O bus that is pretty similar to SPI. Another route could be to run the ESP32 PPP link at 115K2 or something like that and use a sram (bram) buffer. I am too fond of the self-contained aspect of the ESP32 solution to let it go easily.

    emard
    @emard
    @pnru_gitlab aha ok 28J60 would work too :) ESP32 with 115200 PPP is good, we have tried it on saxonsoc. I can normally work with prompt and copy few short files. Blue 85F has i2c chip it could R and on some monitors possibly also W EDID. I recommend backup :). If forgotten, Linux X11 used to write EDID in syslog so there may already be some emergency hex backup
    emard
    @emard
    @lawrie is on lcc tests the example for reading keyboard, remember unfinished tetris and I wanted some select call replacement that reads char and timeouts, I see there's console.c, seems to work
    Lawrie Griffiths
    @lawrie
    Yes console.c was by attempt to do what you need, but I have not looked at it for a while. When I looked at your tetris, it did not seem to be write to the screen correctly, so I thought I would leave it to you to get it working.
    There are now lots of system calls implemented, but they don't currently all have the wrappers that they need. For example, there is pselect6 and ppoll, but not select and poll wrappers.
    Paul Ruiz
    @pnru_gitlab

    Is select/poll necessary? I thought that the original game just placed stdin into raw + nonblocking mode, which I think was tested to work. Output is to an ansi screen and is from a practical point of view not blocking the game's event loop. Is there more work to do other than debugging the game?

    Of course we need the wrappers for select and poll at some time, but for this game I think it is not needed.

    emard
    @emard
    @lawrie tetris must be run from xterm, actually it needs a terminal that supports vt52 mode
    select is not really needed and even it wouldn't allow game to speed up as it progress, but in this case it would consume least CPU. I can get along with console.c, with 20ms usleep it consumes only 10% cpu what is very acceptable
    Paul Ruiz
    @pnru_gitlab
    @emard If you set VMIN to 0 and VTIME to 1 or 2 you get behaviour that is very similar to using select() and hopefully gets the cpu load down to a few percent.
    Paul Ruiz
    @pnru_gitlab
    If you use VTIME, don't use non-blocking at the same time.
    emard
    @emard
    yes yes that could be great, even more if I can dynamically change timeout there