01:02
<
rqou >
friggin' comcast
01:02
<
rqou >
anybody have recommendations for an ethernet-controllable ac power switch?
01:02
<
rqou >
for automated power-cycling, of course
01:03
<
azonenberg >
Buy a not-shitty modem?
01:03
<
azonenberg >
comcast's business grade modems seem to not suck too hard
01:03
<
rqou >
not my comcast account
01:12
digshadow has joined ##openfpga
01:19
<
pie_ >
well, im no tsure
01:26
pie_ has quit [Ping timeout: 240 seconds]
01:48
pie_ has joined ##openfpga
03:17
_whitelogger has joined ##openfpga
03:46
Bike has quit [Quit: Lost terminal]
05:19
indy has quit [Ping timeout: 248 seconds]
05:26
openfpga-bb has quit [Ping timeout: 240 seconds]
05:28
indy has joined ##openfpga
05:29
azonenberg has quit [Ping timeout: 246 seconds]
05:58
Hootch has joined ##openfpga
06:35
teepee has quit [Ping timeout: 240 seconds]
06:41
teepee has joined ##openfpga
07:33
pie_ has quit [Ping timeout: 255 seconds]
07:51
<
openfpga-github >
[openfpga] rqou opened pull request #119: xbpar: Add DumpAsDot debug helper method (master...debug-dump-xbpar)
https://git.io/vFnf9
07:52
<
openfpga-github >
[openfpga] rqou closed pull request #115: xc2par: What on earth are we going to do about this mess of a PR? (master...xc2par)
https://git.io/v5F9X
08:16
nrossi has joined ##openfpga
08:47
teepee has quit [Ping timeout: 258 seconds]
08:49
teepee has joined ##openfpga
09:17
<
openfpga-github >
[openfpga] rqou opened pull request #120: Import new new new xc2par implementation (master...x-x-x-ng-xc2par)
https://git.io/vFntF
09:18
<
openfpga-github >
[openfpga] rqou commented on issue #120: Note that I declared bankruptcy on trying to cleanly sort out the early commits since there were around two other partial attempts embedded in it, so those were turned into a single giant merge.
https://git.io/vFnqe
09:18
<
openfpga-github >
[openfpga] rqou commented on issue #120: Note that I declared bankruptcy on trying to cleanly sort out the early commits since there were around two other partial attempts embedded in it, so those were turned into a single giant squashed commit.
https://git.io/vFnqe
09:21
<
rqou >
hey azonenberg_work, unlike the last pile of crap, i actually want to merge this WIP code into master
09:21
<
azonenberg_work >
poke me tomorrow
09:21
<
azonenberg_work >
Will look
09:21
<
rqou >
it no longer touches your code at all since it's using a coolrunner-ii specific algo
09:44
m_t has joined ##openfpga
10:20
teepee has quit [Ping timeout: 248 seconds]
10:21
teepee has joined ##openfpga
11:43
teepee has quit [Ping timeout: 252 seconds]
11:45
teepee has joined ##openfpga
11:57
enriq has joined ##openfpga
12:00
pie_ has joined ##openfpga
12:05
xdeller__ has quit [Quit: Leaving]
12:37
teepee has quit [Ping timeout: 240 seconds]
12:40
teepee has joined ##openfpga
13:42
teepee has quit [Ping timeout: 258 seconds]
13:43
teepee has joined ##openfpga
14:17
pie_ has quit [Ping timeout: 252 seconds]
14:22
eduardo_ has joined ##openfpga
14:26
eduardo__ has quit [Ping timeout: 240 seconds]
14:48
pie_ has joined ##openfpga
15:01
azonenberg_work has quit [Ping timeout: 258 seconds]
15:15
jhol has joined ##openfpga
15:29
pie_ has quit [Ping timeout: 240 seconds]
15:58
teepee has quit [Ping timeout: 248 seconds]
16:00
teepee has joined ##openfpga
16:43
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
16:45
digshadow has quit [Ping timeout: 240 seconds]
16:46
Hootch has quit [Quit: Leaving]
17:07
moho1 has quit [Quit: WeeChat 1.7.1]
17:20
digshadow has joined ##openfpga
17:21
azonenberg_work has joined ##openfpga
17:25
<
rqou >
azonenberg_work: any objections to my xc2par code?
17:33
<
azonenberg_work >
Not yet but havent reviewed
17:34
enriq has joined ##openfpga
17:42
moho1 has joined ##openfpga
17:45
moho1 has quit [Client Quit]
17:46
moho1 has joined ##openfpga
18:28
gnufan has joined ##openfpga
18:37
gnufan has left ##openfpga [##openfpga]
18:38
<
rqou >
whitequark: you're familiar with clang+llvm, right?
18:38
<
rqou >
have you ever tried building libunwind for ppc?
19:03
gnufan1 has joined ##openfpga
19:16
nrossi has quit [Quit: Connection closed for inactivity]
20:10
<
rqou >
hey azonenberg_work you should merge my code :P
20:27
<
azonenberg_work >
^^ _work
20:27
<
azonenberg_work >
after i get back :p
20:28
<
rqou >
oh, you're actually at work
20:28
<
rqou >
it's so weird since you seem to be wfh half the time
20:35
<
azonenberg_work >
lol
20:35
<
azonenberg_work >
Yeah i generally actually go to the office ~2 days a week and the rest of the time i'm IDAing at my desk at home
20:35
<
azonenberg_work >
but it varies by gig
20:36
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
20:37
<
awygle >
"IDA-ing"?
20:40
<
azonenberg_work >
Firmware RE
20:42
<
awygle >
Innovative Device Attack
20:47
enriq has joined ##openfpga
20:47
<
awygle >
Oh it's a program, I see
20:48
clifford has joined ##openfpga
20:49
<
azonenberg_work >
rqou: re your PR, where do you think it stands?
20:49
<
azonenberg_work >
as far as feature completeness
20:49
<
rqou >
it's a rather-complete skeleton
20:49
<
rqou >
if that makes any sense :P
20:50
<
rqou >
there's plumbing or "unimplemented" asserts in quite a few places, but they exist for all the major features
20:51
<
rqou >
i wanted to merge now because it's no longer a huge mess with a language sandwich
20:51
<
azonenberg_work >
so is it still rust? but saner structure?
20:52
<
azonenberg_work >
or C++
20:52
<
rqou >
it's all Rust
20:52
<
rqou >
not sandwiches with C++/xbpar anymore
20:52
<
azonenberg_work >
ok
20:52
<
azonenberg_work >
oh so 100% standalone?
20:52
<
azonenberg_work >
i really wanted to make more shared code but if you have to do rust this is probably better than a sandwich
20:52
<
rqou >
although exposing a c abi is planned for the future
20:53
<
azonenberg_work >
So can you actually run basic state machines etc?
20:53
<
azonenberg_work >
all the way from verilog to bitstream?
20:54
<
rqou >
a single and gate works though :P
20:54
<
azonenberg_work >
Lol
20:54
<
azonenberg_work >
well thats a start...
20:55
<
rqou >
i want to merge now because it's now standalone
20:55
<
azonenberg_work >
i'll test tonight
20:55
<
rqou >
the sandwich would have been pretty unmergable :P
20:55
<
azonenberg_work >
lol yes
21:01
<
azonenberg_work >
Just saw this
21:01
<
azonenberg_work >
have not had time to look at it yet
21:01
<
azonenberg_work >
but might be worth looking at for RE
21:02
<
azonenberg_work >
ideally i would want a native port that scales better, i doubt the JS would handle huge netlists well
21:02
<
azonenberg_work >
But it looks way better than graphviz as far as rendering of circuits
21:07
<
rqou >
um... i'm not sure how well this will work either
21:07
<
rqou >
svg rendering is waaay slower than i expect
21:08
<
rqou >
hmm azonenberg_work dumb question: on slg46140v can you get away with a greedy PAR?
21:09
<
rqou >
it seems it only has one big fully-connected crossbar?
21:09
<
azonenberg_work >
No, because most of the primitives are mutually exclusiev with another
21:09
<
azonenberg_work >
i.e. a counter may block out a LUT
21:10
<
azonenberg_work >
So you cant place all the luts then all the counters because you may not have any counter sites free
21:10
<
azonenberg_work >
Also, once we get to timing driven PAR i will want to fine tune lut locations etc to optimize performanec
21:10
<
rqou >
wait so the counter and lut are sharing a site?
21:11
<
rqou >
that seems pretty insane
21:11
<
azonenberg_work >
in 46140 almost all of the fun hard IP blocks are dual with a lut or ff site
21:11
<
azonenberg_work >
This applies to most of the gp5 parts too
21:11
<
azonenberg_work >
in fact, better handling of such is one of the things holding back gp5 support
21:11
<
azonenberg_work >
the 4662x is one of the few that does NOT have extreme resource sharing
21:17
<
rqou >
huh azonenberg_work if you have a slg46140v it is exhaustively searchable
21:18
<
rqou >
(slg46620v isn't)
21:19
<
rqou >
hmm maybe not
21:20
<
azonenberg_work >
Pretty sure there's N! possible placements exhaustively :p
21:21
<
rqou >
yeah, but 16! (because there are 16 lut sites) is only on the order of 2^44
21:21
<
rqou >
that's very near exhaustively explorable
21:21
<
azonenberg_work >
not efficiently
21:22
<
rqou >
yeah, hence the "maybe not"
21:22
<
rqou >
i originally thought there were only 8 lut sites because i misread the "Combination Function Macrocells" section
21:23
<
azonenberg_work >
So there's 8 combined sites
21:23
<
azonenberg_work >
then two non-combined DFFs, two non-combined counters, and eight non-combined LUTs
21:23
<
azonenberg_work >
plus a bunch of other hard IP
21:23
<
azonenberg_work >
Some sites are trivial to place, like the shreg is either at LUT3_6 or unused
21:24
<
rqou >
yeah, luts will always dominate
21:25
<
rqou >
also, wtf is up with "Combination Function Macrocells?"
21:25
<
rqou >
super confusing
21:25
<
azonenberg_work >
Thats just what they call two separate logic blocks sharing one routing location
21:26
<
azonenberg_work >
and one set of bitstream bits
21:27
<
azonenberg_work >
anyway i think we should just improve the existing placer i have for greenpak
21:27
<
rqou >
the way the diagram was drawn i initially assumed that it was a totally different type of site
21:28
<
azonenberg_work >
yeah
21:29
<
azonenberg_work >
In greenapk i call this a Greenpak4PairedEntity
21:33
<
whitequark >
rqou: yeah I ported libunwind to a new platform
21:33
<
whitequark >
let me see your thing
21:34
<
whitequark >
libunwind
*definitely* should build with clang -intergrated-as
21:34
<
whitequark >
which errors are you getting?
21:35
<
rqou >
"/home/rqou/code/libunwind/src/UnwindRegistersRestore.S:100:17: error: unexpected token" and similar
21:35
<
rqou >
built using: cmake .. -DLLVM_CONFIG=`which llvm-config-6.0` -DLIBUNWIND_ENABLE_SHARED=0 -DCMAKE_TOOLCHAIN_FILE=../test.toolchain
21:41
<
awygle >
azonenberg_work: picked a bad day to go to the office. Is it snowing in the city too?
21:45
<
azonenberg_work >
It was snowing during my bike ride in, and pretty heavily around ulnchtime
21:45
<
azonenberg_work >
seems to have lightened up a bit
21:45
<
azonenberg_work >
i dont see anything right now
21:45
<
azonenberg_work >
But i've biked to/from work in worse
21:45
<
azonenberg_work >
i'll take snow over 33-degree rain any day
21:48
<
awygle >
It's coming down pretty good over here. Glad I decided not to bike today.
21:53
<
rqou >
hmm, apparently my connection dropped
21:53
<
rqou >
anyways, the .toolchain file:
21:53
<
rqou >
set(CMAKE_C_COMPILER clang-6.0)
21:53
<
rqou >
set(CMAKE_CXX_COMPILER clang-6.0)
21:53
<
rqou >
set(CMAKE_C_FLAGS "-target powerpc-linux-gnu -integrated-as" CACHE STRING "" FORCE)
21:53
<
rqou >
set(CMAKE_CXX_FLAGS "-target powerpc-linux-gnu -integrated-as" CACHE STRING "" FORCE)
21:53
<
rqou >
set(CMAKE_SYSROOT /usr/powerpc-linux-gnu)
21:53
<
rqou >
also using packages gcc-powerpc-linux-gnu and libstdc++-7-dev-powerpc-cross (on debian sid)
22:02
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
22:03
<
whitequark >
the integrated asm is just fucked
22:03
<
whitequark >
that's SNAFU
22:03
<
whitequark >
you have an LLVM checkout that you build, right?
22:04
<
whitequark >
(well you will need one)
22:04
<
rqou >
wait, why? i just wanted libunwind
22:04
<
whitequark >
because you'll need to fix clang's integrated ass
22:04
<
whitequark >
what wtf? rust doesn't use binutils for assembling
22:05
<
rqou >
but rust can work with ppc-glibc already
22:05
<
rqou >
i thought ppc-musl would be easy
22:05
<
whitequark >
glibc provides its own unwinder because it has C++, IIRC
22:05
<
whitequark >
or maybe gcc in glibc builds does
22:05
<
whitequark >
I'm not 100% sure
22:06
<
rqou >
so how did this libunwind code ever work?
22:06
<
rqou >
what is it supposed to assemble with?
22:06
<
whitequark >
it was evidently never built with clang -integrated-as
22:06
<
whitequark >
just binutils
22:06
<
rqou >
but binutils doesn't accept that code either
22:06
<
rqou >
which was the original problem
22:06
<
rqou >
that's in the failed travis build on the rust PR
22:07
<
whitequark >
correction
22:07
<
whitequark >
binutils
*on Mac OS X*
22:07
<
rqou >
binutils changes its syntax depending on host os?
22:07
<
whitequark >
The naked 'r*' and 'f*' register designations are a Darwinism.
22:07
<
whitequark >
SysV notation requires '%r*' and '%f*', or naked numbers.
22:07
<
whitequark >
actually, yes
22:07
<
whitequark >
there's an Apple as dialect
22:07
<
whitequark >
and SysV as dialect'
22:08
<
rqou >
but unlike x86 it doesn't have .apple_syntax/.sysv_syntax?
22:08
<
whitequark >
I haven't a faintest clue
22:08
<
whitequark >
if (isDarwin())
22:08
<
whitequark >
return ParseDarwinExpression(EVal);
22:08
<
whitequark >
no it just looksat the triple
22:09
<
rqou >
so does libunwind even work on ppc linux? or only on darwin?
22:09
<
whitequark >
the latter
22:09
<
whitequark >
it does work on ppc linux if you manage to build it
22:09
<
rqou >
does mach-o use dwarf unwinding?
22:09
<
whitequark >
because UnwindRegistersSave.S is not OS-dependent
22:09
<
whitequark >
Mach-O uses DWARF everywhere
22:10
<
rqou >
er, wasn't there something about ios using sjlj instead?
22:10
<
whitequark >
iOS, yes, macOS, no
22:11
<
whitequark >
it's probably a single-line patch to PPCAsmParser.cpp
22:11
<
rqou >
hmm for the rust PR it seems the easiest way is to just convert the .S files to sysv syntax
22:11
<
whitequark >
do it properly
22:12
<
whitequark >
teach LLVM's as to parse UnwindRegisters*?
22:12
<
rqou >
but that can break other things
22:12
<
whitequark >
that is?
22:13
<
rqou >
hmm actually no, it shouldn't
22:13
<
rqou >
rich felker (who does musl) told me that there is a convention on ppc to do "#define r0 0" and similar
22:13
<
rqou >
but that gets preprocessed before as runs, so there should be no problem in theory
22:15
<
rqou >
hmm, but just patching libunwind gets the code out faster and potentially with less bikeshedding
22:16
<
whitequark >
you need to, hmm
22:16
<
rqou >
also, "If handwritten asm includes an identifier like lo16 then all bets are off - but no-one would do that, right?"
22:16
<
rqou >
why do i need to patch llvm?
22:16
<
rqou >
as long as libunwind builds, i should be able to continue?
22:17
<
whitequark >
check if binutils treats # on ppc as a start of a comment
22:17
<
whitequark >
then just replace ; with #
22:17
<
whitequark >
or even better
22:17
<
whitequark >
use //
22:17
<
whitequark >
since it's preprocessed
22:20
<
rqou >
anyways, isDarwin feels like a giant hack
22:20
<
rqou >
there must be some historical reason for this?
22:20
<
whitequark >
probably
22:22
Zorix has quit [Quit: Leaving]
22:24
Zorix has joined ##openfpga
22:25
m_t has quit [Quit: Leaving]
22:35
Bike has joined ##openfpga
22:46
gnufan1 has quit [Quit: Leaving.]
22:50
<
rqou >
powerpc libunwind restores the "ctr" loop count register
22:50
<
rqou >
and then immediately trashes it
23:47
azonenberg_work has quit [Ping timeout: 258 seconds]