-
Notifications
You must be signed in to change notification settings - Fork 40
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
SAXON_CPU_COUNT >4 woes #64
Comments
You're the man! [ 0.117988] smp: Bringing up secondary CPUs ... root@buildroot:~# cat /proc/cpuinfo processor : 1 processor : 2 processor : 3 processor : 4 processor : 5 Overall, 6 hearts or 4 hearts plus fpu seems to be about the maximum that's doable with this tiny board. (with 32bit) with 6 hearts I get 95% TRELLIS_SLICE utilization. Still some LUTs left though - at 74%. How hard are the clocks configured? would a smaller setup - say 2 cores plus fpu - work with a higher clock rate? the fpga should be able to handle higher rates according to the specs. Thanks again for your help. |
Cool ^^
About 52 Mhz, are the timing passing with 6 cores ?
Which spec ? |
Re timing - with 6 hearts I get this: Re spec https://www.latticesemi.com/view_document?document_id=50461 - chapter 3.19 as far as I understand, it all starts with a 25MHz input oscillator. The cores are currently configured to run at 52MHz and memory at around 100MHz. Where are these ratios configured? could we try to double up? i.e run a single core at 100MHz and memory around 200MHz? |
Can you tell me how the clock domains are being used? I assume Memory needs to run 2x faster than main Heart from previous posts, clkout0 and 3 are presumably fix at these levels. how does this setting in Ulx3sSmp.scala play into all of this? Thanks |
You will have to update https://github.com/SpinalHDL/SaxonSoc/blob/dev-0.3/hardware/scala/saxon/board/radiona/ulx3s/Ulx3sSmp.scala#L227 And also https://github.com/SpinalHDL/SaxonSoc/blob/dev-0.3/hardware/synthesis/radiona/ulx3s/smp/pll_linux.v
You can't overclock things for ever, already the synthesis tool isn't happy right now : 39.93 MHz (FAIL at 52.08 MHz) Going higher is asking for troubles XD
Right
Yes you only need to update that one. |
update Next I'm going to try playing with the frequency - will start small and build up until things start to break. FUN stuff! |
Freedoom ^^ |
This I can understand. |
Hi,
Great update to the readme - thanks.
Out of curiosity, I've been playing with the latest version and wanted to find the max I can do with an 85k Ulx3s board.
Mainly I wanted to see how many hearts I can fit.
SAXON_CPU_COUNT=6 seems to work to create a bitstream with 6 cores (at least I think it does - in the build log I see references to the additional cores)
Linux is a different story.
I added two more cpu definition blocks to ./buildroot-spinal-saxon/boards/common/dts/linux_cpu.dts.
linux boots but reports cpu 4 and 5 as failed to start
[ 0.117618] smp: Bringing up secondary CPUs ...
[ 0.194216] CPU4: failed to start
[ 0.212434] CPU5: failed to start
[ 0.214449] smp: Brought up 1 node, 4 CPUs
unsure if ./buildroot-spinal-saxon/boards/common/dts/linux_plic_link.dts needs extending too. Please advise
Trying to digg a little deeper I found that u-boot only reports 4 cpus
=> cpu list
0: cpu@0 rv32ima
1: cpu@1 rv32ima
2: cpu@2 rv32ima
3: cpu@3 rv32ima
found uboot.dts and tried adding 2 more cpu definitions (./buildroot-spinal-saxon/boards/spinal-saxon/ulx3s/u-boot/uboot.dts)
but still only 4 cpus in linux and uboot
poking around some more, I found this uboot config file (in ./build/uboot-smp-latest/configs/saxon_bsp_defconfig) with the default of 4 cpus. Changing CONFIG_NR_CPUS from 4 to 6 doesn't seem to stick though. it is overwritten in every run of saxon_buildroot
Performing just saxon_buildroot_compile after the change prevents it from being overwritten but still doesn't solve the problem
Any idea what I'm missing?
Thanks
The text was updated successfully, but these errors were encountered: