Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Lawrie Griffiths
    @lawrie
    @emard The 2-core 12F did build. It look a very long time as it uses 95% of the slices. It is in Smp/bitstreams/ulx3s_12f_2core_saxonsoc.bit. It works for me with dtb.green85f as that has 2 cores and 32MB of memory defined.
    Dolu1990
    @Dolu1990
    @daveshah1 Ok thanks :)
    Lawrie Griffiths
    @lawrie
    The 2-core 12F passed the timing by the biggest margin I have seen: Info: Max frequency for clock '$glbnet$clocking_pll_clkout2': 56.98 MHz (PASS at 52.08 MHz).
    @pnru_gitlab I tried defining tv_nsec as two longs, but the second one was always 0.
    Dolu1990
    @Dolu1990
    @daveshah1 I think that was the issue, so far it seem fine ^^
    thanks
    David Shah
    @daveshah1
    Great!
    Paul Ruiz
    @pnru_gitlab
    @lawrie I don't think tv_nsec is the problem: it is 32 bits and always in the range 0 to 1000 million. It is tv_sec that is a 64 bit amount - but it will only overflow into the 33rd bit in 2038. So, if time_t is 64 bit on RV32 linux I would expect the kernel to write a word with the low half of tv_sec, a word with the high half (always zero this decade) and a word with the nano second fraction, always between 0 and 999,999,999 - words listed in increasing memory address order.
    Unix time today is around 1,300 million: https://time.is/Unix_time_now
    Paul Ruiz
    @pnru_gitlab
    1600 million
    Lawrie Griffiths
    @lawrie
    I think Linux is writing time_t as 32-bits, because when I had the structure defined as 3 longs, the first long got the seconds, the second the nanoseconds and the third zero. It is now two longs and the seconds and nanoseconds are correct.
    emard
    @emard
    @lawrie 2-core 12F boots up to printing this and stops. Do I need differrent dtb.12F ?
    [    4.343508] VFS: Mounted root (ext2 filesystem) readonly on device 179:2.
    [    4.379776] devtmpfs: mounted
    [    4.386410] Freeing unused kernel memory: 160K
    [    4.389858] This architecture does not have kernel memory protection.
    [    4.394635] Run /sbin/init as init process
    Lawrie Griffiths
    @lawrie
    Yes, you need to use dtb.green85f
    emard
    @emard
    :) will try
    Lawrie Griffiths
    @lawrie
    dtb.12f has one cpu defined. dtb.green85f has 32MB of memory and two CPUs.
    Building your own dtbs is easy. You only need dtc installed.
    emard
    @emard
    wow it booted and works!!!
    Lawrie Griffiths
    @lawrie
    I was surprised that 2 CPUS + VGA and HDMI fitted on a 12F.
    emard
    @emard
    Im suprised at 95% usage it works at normal clock freq!
    Lawrie Griffiths
    @lawrie
    As I said above, it passes the timing better than any other build I have seen.
    emard
    @emard
    Not only this but "htop" itself is 17% cpu usage while at 85F 2-core it is 20% cpu usage :)
    Market often underestimates how good is 12F, everybody wants to buy 85F
    Lawrie Griffiths
    @lawrie
    I ordered a 45F on crowdsupply, so I have a complete set :)
    (But not as many variants as you).
    emard
    @emard
    today the boxes got out of customs custody and are heading to mouser
    It will have ISSI 32MB SDRAM, 16MB FLASH winbond (i think), and ESP32 with 16MB FLASH
    I'm near completing the prototype PCB design that can accept ESP32-WROVER-E as well as standard ESP32. Still I'm rethinking about routing to ESP32. Goran will make few prototypes to test so there will be soon new collectionaire items released :)
    emard
    @emard
    Currently Im literally squeezeng each byte from uftpd/ecp5 (in the "new/" directory) fighting against out of memory
    ESP32-WROVER will have plenty of free RAM
    Paul Ruiz
    @pnru_gitlab
    Ah, another developer who still obsesses over byte counts :^)
    Lawrie Griffiths
    @lawrie
    @pnru_gitlab I have updated the issue on the riscv32_lcc repository to suggest which of our changes the author might like to integrate into his repository. Could you check I have it correct.
    emard
    @emard
    @pnru_gitlab it's really critical at esp32. First I start wifiman.py and then starting uftpd.py aborts with out of memory. Currently I fixed it by not importing ecp5, sdraw immiediately but later on-demand when ftp command for ecp5 arrives
    Lawrie Griffiths
    @lawrie
    I think I have probably done all I want to do on lcc for the moment and get back to other projects. There is at least one bug to track down. The C library needs a lot of work on it, particularly on wrappers for the system calls and updates to the include files. It needs updates to the build system to build the SaxonSoc Linux distribution, which I have been doing manually. If more people use it than just myself and @emard, I will probably do some more work on it.
    I wonder if, when the crowdsupply board are sent out, the number of users of the Ulx3s is going to increase substantially.
    Lawrie Griffiths
    @lawrie
    I think SaxonSoc Linux is a big plus for Ulx3s. I believe it is the only open source board it is supported on. We need to add support for more peripherals. @Dolu1990 has just added sound support to it. We need to see why the SPI ethernet board stopped working. I would like to get support for the RTC and SPI Oled/LCD displays. We could potentially support an RMII Ethernet board. The pppd networking could be improved. The GPIO mapping could be improved. It might be possible to increase the SDRAM clock speed. I would like to bring back keyboard support. If we get an X11 graphics display, we will probably need mouse support. So there is a lot to do on that. I would like to see more people building it from source.
    Dolu1990
    @Dolu1990

    We could potentially support an RMII Ethernet board

    That would be a nice thing :D

    What is the status of having internet in linux using the ESP ?
    emard
    @emard
    You have really done a lot! I will have some fun with it for i2c and similar. Of course RMII board would be great. LAN8720 for 2$@ebay is directly pluggable to ulx3s. I have currently the module plugged
    PPP link is possible over ESP32 serial. @pnru_gitlab had a patch for 1.11 that enables ESP32 router. Still its only a router but not a NAT. KOST proposed some simple solution to tunnel outside somehow
    emard
    @emard
    here are some of my experiments on PPP: https://github.com/emard/esp32ppp btw in recent linux saxonsoc distribution pppd is missing, also e.g. screen would be nice to have too. Recent distribution had them
    For more vivid X11 experience I guess we should have some 2D acceleration. I had some c2 solution for f32c, I don't know is it applicable to linux, it could be ported but it needs CPU collaboraration and that's about some black magic inside of X server
    Lawrie Griffiths
    @lawrie
    I think in the previous version I ran menuconfig for buildroot and busybox manually to include some extra things. Not sure if there is a way to automate that.
    emard
    @emard
    I'm missing screen the most as logged over the terminal. Also there was some suggestions to use linux serial ports instead of something from bios which has buffering issues
    emard
    @emard
    I think saxonsoc is the most suitable linux for small riscv soc hardware and supports all open source tools. linux It is light, boots fast and the prompt is reponsive. editors work. Small native C compiler makes exe in few seconds.
    While designing the board I never considered possible to run linux on it :)
    Lawrie Griffiths
    @lawrie
    I am currently building the SaxonSoc version that supports sound, but it will probably only support one cpu on a 12F. Also @Dolu1990 reports that there is currently a bug in the DMA code so that when audio is playing the HDMI is not updated.
    emard
    @emard
    That is OK for 12F. It can demonstrate SMP linux, that a mirracle by itself. It's understood that all features can't be packed to this small FPGA
    emard
    @emard
    about RTC conversion, is there some lcc supported function that converts date to seconds-epoch integer, like mktime() or similar
    Paul Ruiz
    @pnru_gitlab
    @emard is there some lcc supported function that converts date to seconds-epoch integer, like mktime() or similar? A simple one is here: https://gitlab.com/pnru/ulx3s-misc/-/blob/master/tmp/hwclock.c#L113