Thursday, 2022-04-28

programmerjakegot it to work:;a=commitdiff;h=a938111eb3b1ffc51874cef672e8051efdafa3c000:23
lkcldang, got as far as "devtmpfs: initialized"00:40
lkclthat's amazing that the MMU was "happy"00:42
lkclgiven that i reduced the number of TLB entries i think to like... 4?00:42
programmerjakewell...technically it should work with 1 data tlb and 1 instruction tlb entry...assuming the hdl supports that00:43
lkclyeah should do00:43
lkclbut it's not matched up in the devicetree file00:44
lkcli don't know what effect that has00:44
lkcli really should do a CRC32 check on the data copied from flash into HyperRAM00:45
programmerjakeit's kinda like saying your usb cable makes two loops around the table leg before plugging into your hard drive...the sw shouldn't care00:45
lkclat over 5 metres it will :)00:45
programmerjakeyou must have huge table legs then...00:46
lkclso far so repro'd... up to "mem auto-init"... inode-cache ...00:50
lkcldevtmpfs: initialized again...00:51
lkclahh ok, after that is devices_init()00:53
lkcland that might be where some attempts to access non-existent devices occur00:54
lkclwhich will just lock up the wishbone bus00:55 should probably be modified to report an error rather than lock up...00:56
lkclit's a surprisingly large amount of work00:57
programmerjakeit needs to be done at some point...00:58
* lkcl put in some printks and sigh realised they should have been udbg_printfs i think, oh well00:58
lkcldang the white arty-a7-100t LEDs are bright01:07
lkclkeep burning my eyes on them :)01:08
lkclokaay got to of_core init01:08
lkclahh a mutex lock01:09
lkclnggggh.... lwarx and stwcx01:21
lkclor more specifically "stwcx."01:21
lkclthe reason i haven't added them is because stwcx. updates CR001:25
lkclwhich means having to update LDSTCompUnit - one of the scariest pieces of HDL...01:26
lkclah interesting, the lock succeeded01:26
lkcl(or, didn't call lwarx)01:27
programmerjakewell, fun...found a paper on error analysis of goldschmidt sqrt algorithm, but it's behind a paywall...04:03
programmerjakeI guess I'll try to replicate the error analysis04:04
klyslkcl, have I heard that you can't get simple designs to work on your xilinx board because of the problem you are facing?04:55
klysI am just curious, as I don't have a working fpga yet myself.  Is the xilinx one supposed to have a higher capacity than the microwatt board?  Is that why you're using it?  It is your highest capacity fpga board?04:56
lkclklys, simple designs aren't a problem.08:47
lkcllike, blinky-lights, uart_demo.py08:48
lkclthere's no such thing as "a microwatt board", fpgas are all generic08:49
lkclish :)08:49
lkclyou probably meant, "is the Arty A7-100t which has a 100k LUTs Xilinx FPGA a higher capacity than the VERSA_ECP5 which has a 45k LUTs ECP5 FPGA?"08:50
lkclwhere the answer is in the "100k LUTs" being bigger than "45k LUTs"08:50
lkcland the [not simple at all] libre-soc and microwatt HDL is pushing 42k LUTs (95$) if the L1 caches and MMU are drastically cut back08:51
programmerjakeiirc the arty's fpga also has lut6 rather than the ecp5's lut4, meaning the 100k luts count for even more08:53
lkclyes. it's actually a mix of 60k (ish) LUT6/LUT5/LUT408:55
lkclmeaning that the "100k" is an "equivalent to LUT4" number08:55
lkcli could use the proprietary tools and a hell of a lot of the problems would magically "go away"09:02
lkclhowever we'd be pissing on the principle of "Libre" and "full transparency"09:02
lkclbottom line klys it's quite nuanced - it's in the details - but things are "working", albeit at 25 mhz, without DDR3 (using drastically-simpler HyperRAM)09:03
programmerjakewell...that pile of problems is dwarfed by the other pile of problems you'd get from using proprietary tools...09:04
lkclwithout using Xilinx FPGA CARRY4 blocks due to limitations inside nextpnr-xilinx, which gives a 30% performance penalty...09:04
lkclin a word09:05
programmerjakee.g. being tied to your computer's ethernet mac for licensing garbage...several years ago when I had to use them, I installed them inside docker with a spoofed ethernet mac since that made it keep working even if I had to upgrade my motherboard or similar...09:06
lkclheh that works :)09:07
markoslkcl, did you have a chance to look at the nexys board? I haven't been up to much this week as I got the covid on Monday and am feeling tired all the time09:25
programmerjakehope you feel better...09:25
markosthanks, it feels like a flu, not the worst flu I had, but still annoying09:26
lkclmarkos, i'm trying to get linux up-and-running on the arty-a709:35
lkclwhat is likely to happen is: if resources on that become a problem i'll *have* to do the nexys_video09:35
lkclbut i am resisting that because it'll take me about... estiated... 2 days to do the board-bringup.09:36
lkcl(adding to nmigen, adding 200k to the nextpnr-xilinx build scripts...)09:37
programmerjakewell, after writing a giant pile of code today, i'm going to sleep. have fun with the arty, lkcl!10:28
lkclprogrammerjake, awesome. willdo11:45
Chaul-Jhin-KimHi is this the official support channel for the Libera Chat IRC app?13:43
Chaul-Jhin-KimDear GOD/GODS and/or anyone else who can HELP ME (e.g. TIME TRAVELERS or MEMBERS OF SUPER-INTELLIGENT ALIEN CIVILIZATIONS): The next time I wake up, please change my physical form to that of FINN MCMILLAN formerly of SOUTH NEW BRIGHTON at 8 YEARS OLD and keep it that way FOREVER. I am so sick of this chubby Asian man body! Thank you! - CHAUL JHIN13:45
Chaul-Jhin-KimKIM (a.k.a. A DESPERATE SOUL)13:45
*** Chaul-Jhin-Kim <Chaul-Jhin-Kim!> has left #libre-soc13:45
*** ChanServ sets mode: +o lkcl14:05
*** ChanServ sets mode: +q Chaul-Jhin-Kim!*@*14:06
lkcli know :)14:29
lkclabout on a level as "All Your Base Are Belong To Us"14:30
lkclprogrammerjake, is this it14:38
lkclwell, i searched for the author and the title and google came up with the direct PDF link14:40
programmerjakethat's the one on goldschmidt's division algorithm (i already linked to a pdf in the source code in soc.git), i'm searching for the paper they later released on the sqrt algorithm:
programmerjakelkcl ^16:04
tplatenSince I try to reproduce ls2 on verilator, I'll first need to compile hello_world.bin with address 0xff00_0000.18:53
tplatenI did not find anything in the mailing list, nor in the chat logs from last week.18:53
tplatenAfterwards I can add documentation how to use verilator to
tplatenI solved the first one, setting _start to 0xff000000 in powerpc.lds19:06
tplateneven with the correct firmware address, I don't get any output from microwatt-verilator19:11
lkcltplaten: it's in the Makefile.20:19
lkcl   8 #BOOT_INIT_BASE ?= 0xf0000000 # at QSPI address20:20
lkcl   9 BOOT_INIT_BASE ?= 0x00600000 # inside DRAM address space20:20
lkcl  10 # BOOT_INIT_BASE ?= 0xff000000   # at ROM hi address (with coldboot firmware)20:20
lkcl  11 # BOOT_INIT_BASE ?= 0x0        # start at zero (usual)20:20
lkclthen make sure the correct RAM_INIT_FILE is used20:21
lkcl  29 #RAM_INIT_FILE=hello_world/hello_world.bin20:21
lkcl  30 #RAM_INIT_FILE=../microwatt2/tests/xics/xics.bin20:21
lkcl  31 RAM_INIT_FILE=coldboot/coldboot.bin20:21

Generated by 2.17.1 by Marius Gedminas - find it at!