<azonenberg>
Gonna have dinner then work on HiL stuff
<azonenberg>
later on, once i have HiL working, i'll play with cosimulation with iverilog or something
<azonenberg>
but for the short term i want to get HiL on some of my existing test cases
digshadow1 has joined ##openfpga
digshadow has quit [Ping timeout: 256 seconds]
<azonenberg>
whitequark: around?
DocScrutinizer05 has quit [Disconnected by services]
DocScrutinizer05 has joined ##openfpga
LeelooMinai has joined ##openfpga
<openfpga-github>
[openfpga] azonenberg pushed 4 new commits to master: https://git.io/vP5C2
<openfpga-github>
openfpga/master 893f3bb Andrew Zonenberg: tests: Initial skeleton of HIL_PGA test
<openfpga-github>
openfpga/master af8a9f3 Andrew Zonenberg: doc: silenced latex so it doesn't hide errors/warnings from other compile steps with all the spam
<openfpga-github>
openfpga/master 293817f Andrew Zonenberg: tests: refactored build a bit so that we can have GP4 bitstreams as targets, not tests
<openfpga-github>
[openfpga] azonenberg force-pushed gh-pages from 0127be8 to 58cc3c6: https://git.io/v6vmV
<openfpga-github>
openfpga/gh-pages 58cc3c6 Travis CI User: Update documentation
<travis-ci>
azonenberg/openfpga#129 (master - d067600 : Andrew Zonenberg): The build passed.
<azonenberg>
whitequark: wanna try out my HiL test on your box?
<azonenberg>
and take a look at how the code looks?
<azonenberg>
this is right now manually run, does not integrate with ctest
<azonenberg>
(this is intentional, i didn't want to break the travis setup)
<whitequark>
azonenberg: hmm later, i need to go to the post office
<azonenberg>
Ok
<azonenberg>
i'm about to go to bed
<azonenberg>
but first going to write up a quick email to my contacts at silego
<azonenberg>
just to let them know how the project is going
<whitequark>
lol azonenberg
<whitequark>
typhoon warning 8
<rqou>
welcome to HK
<rqou>
that's basically a constant
<whitequark>
the post office is closed
<whitequark>
rqou: yeah this is some bullshit! this is just a little rain
<rqou>
I don't think there's been a time where I visited HK and there wasn't a typhoon warning 8+
<whitequark>
this is the first time for me
<whitequark>
in like a year
<rqou>
at least once per summer it seems
<rqou>
my father and I even got stuck in SZ once
<rqou>
we noticed that a storm was coming in and tried to get back to HK before it hit
<rqou>
when we were at the crossing (Shenzhen Bay) the china side announces over the PA system that "according to the HK side, there is a typhoon warning and no public transit"
<rqou>
guess what, when there's no public transit there's basically no other way to leave the HK side
<rqou>
(nothing was shut down on the SZ side btw)
<whitequark>
i don't recall there ever being bad weather in RU that mandated shutdown, except (in Moscow) temperature under -25°C, after which schools supposedly got closed
<whitequark>
but i still had to go to school even at -27°C
<whitequark>
so dunno
<rqou>
in my experience HK loves to shut down
<whitequark>
maybe at -30°C that would hvae actually worked
<rqou>
SZ doesn't really give a damn
<whitequark>
it's really quite funny, because i go out and realized that, for once, it's chill and my brain works properly
<whitequark>
then i realize that there's a typhoon warning and nothing fucking works
<whitequark>
so annoying
<rqou>
anyways, continuing that previous story
<rqou>
guess what happens when you make such an announcement over the PA system?
<rqou>
the SZ side taxistand completely empties out
<rqou>
and the rest of the transit congests as well
<rqou>
so eventually my father and I ended up taking an illegal taxi to a hotel that my father stayed in before
<rqou>
in general the shenzhen bay crossing is actually not that well connected on either side
<rqou>
the only advantage is that it isn't as congested as Lo Wu
<whitequark>
illegal taxi?
<rqou>
a private car with no taxi license
<rqou>
so no meter or monitored rates
<whitequark>
oh. CN has taxi licenses, I didn't know
<rqou>
most places do?
<whitequark>
well RU doesn't
<whitequark>
actually before Yandex decided to go the path of Uber or w/e and go with a taxi app, I haven't seen a single meter ever
<whitequark>
which is hilarious, because effectively it resulted in *more* compliance
<cr1901_modern>
more compliance?
<rqou>
isn't this part of why eastern europe is known for scams? :P
<whitequark>
I mean, before you had some sketchy guy who'd pull a number out of thin air
<whitequark>
but after you have an actual meter in the Yandex app that's ticking on a large tablet
<rqou>
so Yandex developed a better system than the RU government?
<whitequark>
the RU government doesn't develop anything except oil wells
<whitequark>
sorry. oil *and gas* wells
<whitequark>
but yeah, the yandex app is pretty cool
<whitequark>
yandex doesn't stream payments through itself, for a host of reasons but basically no viable processing option
<whitequark>
so you still pay cash to the taxi driver and I imagine yandex's pay cut is far less
<whitequark>
actually not sure how they generate revenue with that
<whitequark>
щр
<whitequark>
*oh
<whitequark>
they take 2% of the fare
<whitequark>
rqou: amazing.
tecepe has quit [Ping timeout: 265 seconds]
tecepe has joined ##openfpga
<DocScrutinizer05>
>>China’s clever solution is to make every fapiao a lottery ticket<< HAHA they did something very similar in Taiwan, there every receipt you get in shop when paying your dairies or whatever is a lottery ticket, plus there are heavy penalties on the shop owner when a customer leaves the shop without their ticket, so they insist in me taking it with me
<DocScrutinizer05>
given the skills of chinese copy cats, I however wonder how many restaurants hand out fake or fraud "recycled" fapiao with selfmade metallized rub-it area patches sticked to used ones
<rqou>
when my father and i were in SZ a few years ago there were a bunch of old ladies selling blatantly fake fapiao near huaqiangbei
<DocScrutinizer05>
thought as much :-)
<whitequark>
DocScrutinizer05: if you read the comments over there on the blog entry, one commenter says the PRC system derives from TW
<whitequark>
not sure how true it is though...
<DocScrutinizer05>
sounds legit
<DocScrutinizer05>
just in TW they use simple paper prints from their electronic tills and the lottery is much like a "draw the winnder number" type, in TV
<DocScrutinizer05>
I think each shop has a unique nimeric ID and probably a serial number per day or per month on all receipts
<DocScrutinizer05>
numeric*
<DocScrutinizer05>
and once every $period the lottery is taking place in TV
<DocScrutinizer05>
and a few dozen winners are drawn
<DocScrutinizer05>
apart from that I seem to recall that sometimes authorities check customers leaving a shop if they got a receipe, and when not, the shop is in touble
<DocScrutinizer05>
china's fapiao system seems overly complicated comapred to that
<rqou>
china would need far more inspectors than taiwan
<DocScrutinizer05>
particularly the fraudster can control that the unsuspecting customer will never approach authorities with their fapiao, since they are all voids (no win)
<DocScrutinizer05>
rqou: well, probably depends on penalty versus risk happiness in fraudsters
<DocScrutinizer05>
possibly being way higher in mainland china than in TW
<rqou>
according to my father some of this is dealt with by checking for proper fapiao when people submit expenses to their employers
<rqou>
e.g. for a business meal
<DocScrutinizer05>
in TW you can get penalty of like USD10000 for littering
<rqou>
but yes, cheating the system is still quite possible
<rqou>
my father and I also got offered a small discount instead of fapiao because we're obviously not locals
<DocScrutinizer05>
*alegedly* the Taiwanese people are very honest, a leged is that you could leave your purse or laptop on a bank in the park and pick it up a week later
<rqou>
yeah, mainland really isn't
<DocScrutinizer05>
you might receive a 10000$ penalty for littering when you try ;-P
<rqou>
is TW copying Singapore now? :P
Bike has quit [Quit: EATEN]
<DocScrutinizer05>
the 10000 is iirc, it's been like 8 years since I last been there
<rqou>
heh, my father an I also had a "great" story about not visiting taiwan for a while
<DocScrutinizer05>
mybe it was 40000TW$
<DocScrutinizer05>
but anyway was a steep penalty
<rqou>
when we visited taiwan a few years ago, my father discovered that taiwan had reissued a new series of banknotes
<DocScrutinizer05>
written on signs all around perimeter of the parks
<rqou>
and the old ones that we had around needed to be exchanged
<rqou>
oops :P
<DocScrutinizer05>
hehe
<rqou>
the old banknotes we had around were from when my family visited taiwan when I was a kid, so probably at least 10 years ago
<DocScrutinizer05>
actually I'm not even sure you're allowed to take much banknotes with you when entering or leaving TW
<rqou>
iirc it was around $2000 USD worth
<rqou>
so not actually a lot
<DocScrutinizer05>
yep
<DocScrutinizer05>
that might fit
<DocScrutinizer05>
I never bothered since they have ATM literally everywhere there
<DocScrutinizer05>
which also made me wonder... here they crack ATM even in banks, at night
<DocScrutinizer05>
flood with explosive gas and blow up half the street
<rqou>
here is ?
<DocScrutinizer05>
Germany
<rqou>
oh really?
<DocScrutinizer05>
eastern europe organized criminality
<rqou>
didn't see any of that in my previous ~3 day visit to Hamburg
<rqou>
(for CCC of course)
<DocScrutinizer05>
well, it happens maybe 5 times a year
<DocScrutinizer05>
and usually not in towns, preferred locations are small banks in villages
diamondm1n has quit [Ping timeout: 248 seconds]
<rqou>
ah
<DocScrutinizer05>
but then, we don't have ATM literally on every corner here
<DocScrutinizer05>
otherwise they would find convenient calm dark corners in towns as well
<DocScrutinizer05>
for blasting the ATM there
<rqou>
afaik in the US the most popular ATMs to target are the small standalone ones not in banks
<rqou>
we have tons of those
<DocScrutinizer05>
:nod:
<DocScrutinizer05>
we only have them in banks (in the vestibule, open at night) and possibly in huge supermarkets and gas stations
<rqou>
as for skimmers, here skimmers seem to be most often installed in gas stations and PoS terminals
<DocScrutinizer05>
in TPE they are in every second little shop
<rqou>
our EMV/chip credit card rollout has gone amazingly (/s) in case you aren't aware
<rqou>
some big chain stores still don't have their systems ready
<rqou>
and some tiny shops aren't even going to switch despite the liability shift
<rqou>
at least all of my cards actually have chips now
<rqou>
as in, the bank preemptively expired the old non-chip card
<DocScrutinizer05>
the infra is expensive, and payments by card are still expensive
<DocScrutinizer05>
for the shop
<rqou>
cards are much more popular in the US for some reason
<rqou>
despite the cost to the merchant
<DocScrutinizer05>
amex etc take a robbery share of several percent and shop isn't allowed to charge that to customer, EC payments still cost a maybe 50ct per payment or somesuch
<rqou>
oh amex isn't accepted everywhere here
<rqou>
visa/master are almost everywhere, amex is rarer, and discover is even more rare
<DocScrutinizer05>
well, credit cards at large. Dunno if they have large differneces
<rqou>
afaik amex does have higher fees
<DocScrutinizer05>
back in the 70s when we still had fixed prices here in Germany (sellers had to announce prices beforehand and must not negotiate, often even obey to price decided by manuf of goods) my father used to tell sellers "you give me 2% skonto or I pay by credit card instead of cash"
<DocScrutinizer05>
worked every time
<rqou>
heh one time when I really needed a 7805 my father and I got one from radioshack and paid by credit card
<rqou>
they probably weren't too happy :P
<DocScrutinizer05>
they made a loss on that sale I guess
<rqou>
they make up for it by selling a shitty radio or something :P
<rqou>
(or they don't, and go bankrupt :P)
<whitequark>
DocScrutinizer05: west germany had fixed prices? wow
<DocScrutinizer05>
yep
<whitequark>
oh right, was that during the hyperinflation?
<DocScrutinizer05>
a) seller must announce sales price and not re-negotiate it later b) product manufs could determine sales prices
<whitequark>
wait no, that was off by fifty years
<DocScrutinizer05>
b) still applies for a few particular goods
<DocScrutinizer05>
and implies a) obviously. But for the vast majority it got canceled long time ago
<DocScrutinizer05>
it's just that Die Zeit has online archives making articles as old as 1964 available, and this particular article is showing that price fixing was a subject even back in that time already
<DocScrutinizer05>
also the reference to British Lower House makes you aware what was the situation back when
<DocScrutinizer05>
we lived in the american or french or british sector
<DocScrutinizer05>
some poor sods lived in the soviet sector
<DocScrutinizer05>
whitequark: books and newspapers etc are to protect authors and poor readers alike (educational), tobacco is about nanny state which also make them charge like prolly >70% taxes on tobacco
<DocScrutinizer05>
prohibition
<DocScrutinizer05>
during last ~10 years the tobacco sales prices almost doubled, just because of prohibition taxing
<rqou>
i actually have no idea what the tobacco pricing is here
<rqou>
i'm pretty sure it varies by state here
<rqou>
don't all the "cool kids" use vaporizers now? :P
eightdot has quit [Ping timeout: 245 seconds]
<cr1901_modern>
All the cool kids use vaporwave now
<DocScrutinizer05>
here we are at ~30€ct per cig
<whitequark>
eurocents?
<DocScrutinizer05>
yep
<DocScrutinizer05>
and since government _says_ they don't want that market to flourish (in fact they wouldn't want it to vanish either since they make billions from it, by taxes), they forbid competition via prices
<rqou>
re eurocents: currency units in chinese are pretty convenient: 元 = $1, 角 = $0.10, 分 = $0.01 (in Mandarin)
<rqou>
蚊/毫/仙 in Cantonese
<rqou>
(and yes, they're different)
<whitequark>
why are the cantonese ones so complex >_>
<rqou>
i actually don't know :P
eightdot has joined ##openfpga
<rqou>
i don't think I actually see these particular written characters used though
<rqou>
these are the characters that represent the colloquial spoken terms
<rqou>
but I think I've always seen prices written in decimal
<whitequark>
mandarin and cantonese use two completely separate systems for encoding tones?!
<rqou>
yes, because they don't have the same number
<whitequark>
>linear projections (light rays 亮光, etc.), orders given by an authority figure 命令, courses (of food) 點心/点心, walls and doors 門/门, questions 題/题, number of times (for certain procedures) 工序
<whitequark>
whaaat
<rqou>
i mean, 道 by itself means "path, road"
<whitequark>
suddenly i'm reminded of "the analytical language of john wilkins"
<rqou>
tbh I didn't even know that 道 was used as the classifier for "courses of food"
<DocScrutinizer05>
was it genuine taiwanese where you got different number words for "N long tin objects" vs "N round objects" vs "N heavy objects" etc pp?
<rqou>
yeah, that's right
<whitequark>
this classification is simultaneously disturbing and appealing to me, for some reason
<whitequark>
it's so incredibly arbitrary
<whitequark>
"storey" of building, "layer" (of cakes, DVD-RW, etc.)
<rqou>
some of my favorite ones on the list are the cantonese-only ones like "坺 pet6 (Cantonese only) puddle of shapeless mass"
<whitequark>
lol
<rqou>
"𠹻 jam6 (Cantonese only) odor"
<rqou>
if you're stuck, just do this: "個/个 ge (gè) go3 individual things, people — general, catch-all measure word (usage of this classifier in conjunction with any noun is generally accepted if the person does not know the proper classifier)"
<whitequark>
>"array" — trains 火車/火车
<whitequark>
ok this is amazing
<whitequark>
it's simultaneously extremely abstract and extremely concrete
<whitequark>
can I use 列 when talking about std::vector<int> ? :p
<DocScrutinizer05>
considering reality as a multidimensional system, it's pretty funny to see al the different "coordinate systems" describing a point in that multidimensional room. Obviously some thing having a dedicated word for X=3.5,Y=4,Z=[0..100]... is a good idea :-D
<DocScrutinizer05>
plastic bottles make for fine crackers
<whitequark>
it's quite interesting actually, plastic soda bottles are really pressure vessels
<rqou>
yup
<whitequark>
and they're designed to withstand quite large pressures, up to 10 bar iirc?
<rqou>
my high school chemistry teacher actually tried to do a high pressure experiment in a non-expanded soda bottle preform
<whitequark>
ooooh ooh
<whitequark>
speaking of preforms
<rqou>
unfortunately it didn't work because the cap doesn't seal very well
<whitequark>
take a bottle and gently heat it, for example i used a toaster running without bread
<whitequark>
it will squish back into a preform
<rqou>
we tried to do a liquid co2 extraction of essential oils
<whitequark>
if you do it carefully
<rqou>
yeah, my chemistry teacher demoed that too
<whitequark>
neat. I discovered it by accident
<DocScrutinizer05>
haha
<DocScrutinizer05>
what still puzzles me is sort of coating on bottle glass that is responsible for the relative strength of the glass. On the inside any glass bottle is very scratch sensitive, seems even a penny rotating a few times inside can already break the glass
<rqou>
isn't it done by tempering?
<whitequark>
^
<whitequark>
or rather the opposite
<whitequark>
I would think it is tempered and then annealed, and the inside doesn't get cooled quite right
<DocScrutinizer05>
I heard there's a coating they apply on the outside
<rqou>
put on some sunglasses and look at the bottle with a lcd monitor behind it :P
<DocScrutinizer05>
nfc what this coating consists of
ylm has joined ##openfpga
qu1j0t3 has quit [Quit: WeeChat 0.4.3]
<azonenberg>
yeah it makes more sense that it'd just be heat treatment
qu1j0t3 has joined ##openfpga
<whitequark>
azonenberg: ERROR: Module `\GP_PGEN' referenced in module `\Ethernet' in cell `\pgen' is not part of the design.
<whitequark>
oh, yosys
rqou has quit [Ping timeout: 250 seconds]
<cr1901_modern>
azonenberg: Does Kicad just totally lack 4-pin oscillator parts?
* cr1901_modern
makes his own I guess
digshadow has quit [Ping timeout: 250 seconds]
rqou has joined ##openfpga
ylm has quit [Ping timeout: 256 seconds]
<balrog>
cr1901_modern: I'm pretty sure they're in the default libraries
<cr1901_modern>
I don't see any 4-pin oscillators. Just 2 pin crystals (which aren't useful to me)
<felix_>
when you create a 4-pin oscillator device beware that some datasheets show the pinout seen from the top and some the pinout seen from the bottom /me nearly made a pcb with the oscillator footprint mirrored...
<whitequark>
azonenberg: ran the tests
<whitequark>
neat
amclain has joined ##openfpga
digshadow has joined ##openfpga
Bike has joined ##openfpga
doomlord has joined ##openfpga
massi has quit [Quit: Leaving]
azonenberg_work has joined ##openfpga
m_w has joined ##openfpga
bibor has quit [Ping timeout: 244 seconds]
ylm has joined ##openfpga
bibor has joined ##openfpga
ylm has quit [Ping timeout: 252 seconds]
tecepe has quit [Remote host closed the connection]
diamondman has joined ##openfpga
<cr1901_modern>
felix_: wtaf?!
<whitequark>
felix_: I hate that so mch
<whitequark>
who the fuck thinks it's a good idea to show the footprint from the bottom
<felix_>
i don't know
<felix_>
but probably the vendor of the oscillator i used in a project
<rqou>
imho looks like a case of "mechanical engineer didn't talk to electrical engineer"
diamondman has quit [Ping timeout: 252 seconds]
diamondman has joined ##openfpga
tecepe has joined ##openfpga
diamondman has quit [Ping timeout: 250 seconds]
diamondman has joined ##openfpga
diamondman has quit [Read error: Connection reset by peer]
<azonenberg_work>
lol
<azonenberg_work>
yes
diamondman has joined ##openfpga
diamondman has quit [Ping timeout: 265 seconds]
m_w has quit [Quit: leaving]
diamondman has joined ##openfpga
<diamondman>
Hello everybody. I have been working on a tool for configuring FPGAs and microcontrollers through JTAG. Since my ReCON presentation on it, I have made a lot of progress. I am fixing up the remaining two bugs in the next few days and will then push up a new version to the repositories. For anyone interested, here are the relevant links.
<diamondman>
The point of this tool is to abstract away your jtag programmer so you can use them interchangeably, and to automatically optimize whatever payload you want to send for the programmer you are using.
<diamondman>
So we can have an open programmer without lockin to any vendors that goes as fast or faster than the tools provided by those vendors.
digshadow has quit [Ping timeout: 252 seconds]
<dalias>
diamondman, sounds nice. any chance you support the avnet lx9 microboard? :)
m_w has joined ##openfpga
<diamondman>
dalias: Can you send me a link? I am not sure I have the right thing up.
<diamondman>
The immediate answer is no, but I do support the Xilinx platform cables, and drivers are easy to add.
<diamondman>
If the board has a built in JTAG controller, and the specs for the USB protocol are available, we can add it pretty easy
<diamondman>
If not, I have gained a particular set of skills, skills from several years of ripping these controllers apart (sorry, had to paraphrase Taken). They are all pretty easy to RE.
<diamondman>
The final option for interfacint with a dev board quickly is if it has a JTAG header that is exposed. Then you have more options of additional controllers to use instead, but ofc I want to eventually support anything and everything that I or my users want (since as I said drivers are pretty easy to make)
<dalias>
it has some kind of usb jtag interface that's programmed with digilent adept
<dalias>
and another windows-only tool you need to actually write to the flash rather than just one-off programming the fpga
<diamondman>
If you have time this weekend I would be happy to get debugging information from it to see if I can get that controller running.
<diamondman>
I had a set of scripts for identifying Adept compatible boards, and I want to expand the boards I support.
<diamondman>
Note that the initial wupport is the ability to talk to their onboard controllers and run boundary scan. Drivers for the actual chips to program them have to be built. Luckily I am working on drivers for the Spartan 3 and 6 series that should be pretty light weight and portable
<diamondman>
Looks like the controller on here is an Atmel AVR, https://www.xilinx.com/content/dam/xilinx/imgs/prime/Avnet%20LX9.jpg meaning they are using the basic digilent protocol. However, I have never got to use one of their third party controllers, so I do not know what the USB id would be.
<dalias>
btw you have to hack in an additional id in adept's txt file to make it work :-p
<diamondman>
Do you have the USB Vendor/Prod id?
<diamondman>
I want to compare it to my notes
<dalias>
[22526.348053] usb 1-1: New USB device found, idVendor=1443, idProduct=0007
<whitequark>
dalias: can't you do that on like... most fpgas?
<diamondman>
There is a debian package available that will install this script automatically if you want. The details on how to install it are in the README or in the website I sent earlier. However youcan run the script directly
<diamondman>
just use python3 and install bitarray with pip3
<diamondman>
oh and pip install libusb1
<dalias>
whitequark, not on the other dev boards we have targets for right now
<dalias>
or if it is possible, we don't have software to do it
<dalias>
i would guess the mimas_v2 can also be programmed over the usb serial directly rather than just flashing it over that
<dalias>
but there's no documentation for how to do it
<diamondman>
dalias: I am not super sure the process you are describing. FPGAs can receive their configuration in many different ways. The Sparten6 can get it by reading the data over SPI as master or slave, several weird parallel loading techniques, and be configured directly with JTAG. All configurations are volatile unless you are writing to an external flash source that is used to configure the target by one
<diamondman>
of the ways listed earlier on bootup.
<diamondman>
So when you say that you can directly program the chip without flashing it, it makes me think you mean JTAG can configure the chip without writing to a flash prom
<diamondman>
which is the normal JTAG configuration
<diamondman>
I know that many spartan models have a pin configuration that make them require being configured via JTAG, so they will not start up or try to read any source until you program them directly.... But your description is a little vague to me
<diamondman>
Anyway, when you get a change, please pastebin me the results of running that script with your controller plugged in.
<dalias>
right
<diamondman>
chance. I will pm you my email if you get around to it in a bit and I am not available
<dalias>
just a sec
<rqou>
i'm pretty sure dalias is either asking about programming through JTAG or alternately via slave serial
<rqou>
i don't know if slave serial falls under what you're doing though
<diamondman>
rqou: I do not believe the digilent controller on that board supports SPI. I mean... it sayd it does but I have never seen it ever be used. Would be cool to have some new messages to add to my protocol description if it is actually using non JTAG.
<diamondman>
rqou: Currently I support only JTAG, but the purpost of my project it to add both physical connections (like Ethernet and even PCIe) but also multiple electrical protocols like SPI. Anything that these types of controllers need or can do should be supported at some point.
<diamondman>
rqou: I have seen a lot of azonenberg's work, and have discussed design decisions with him on several occasions. I am simply making a version that more adequately addresses my needs, and that I hope others find useful. For now it is in Python3, which makes it easy for anyone to add a driver to it.
<diamondman>
And it can be used in ipython to probe, debug, or reverse engineer hardware interactively
<diamondman>
dalias: If we find out that your interaction with that Spartan6 chip is actually done with SPI, I might have to ask you to send me a wireshark capture of the USB data so I can reverse the messages I have not got to see yet :).
<diamondman>
Or I would have to purchase that board and explore it myself :)
doomlord has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
diamondman has quit [*.net *.split]
DocScrutinizer05 has quit [*.net *.split]
reportingsjr has quit [*.net *.split]
SpaceCoaster has quit [*.net *.split]
LeelooMinai has quit [*.net *.split]
whitequark has quit [*.net *.split]
dingbat has quit [*.net *.split]
azonenberg_work has quit [*.net *.split]
bibor has quit [*.net *.split]
kuldeep has quit [*.net *.split]
bpye has quit [*.net *.split]
mithro has quit [*.net *.split]
cblam has quit [*.net *.split]
nickjohnson has quit [*.net *.split]
jn__ has quit [*.net *.split]
specing has quit [*.net *.split]
rah has quit [*.net *.split]
wareya has quit [*.net *.split]
qu1j0t3 has quit [*.net *.split]
maaku has quit [*.net *.split]
felix_ has quit [*.net *.split]
rvense has quit [*.net *.split]
cr1901_modern has quit [*.net *.split]
nmz787 has quit [*.net *.split]
JvD_ has quit [*.net *.split]
amclain has quit [*.net *.split]
dalias has quit [*.net *.split]
tecepe has quit [*.net *.split]
Marex has quit [*.net *.split]
magulo has quit [*.net *.split]
pointfree has quit [*.net *.split]
marex-cloud has quit [*.net *.split]
azonenberg has quit [*.net *.split]
forrestv has quit [*.net *.split]
rqou has quit [*.net *.split]
X-Scale has quit [*.net *.split]
f1r3 has quit [*.net *.split]
Bike has quit [*.net *.split]
balrog has quit [*.net *.split]
lain has quit [*.net *.split]
m_w has quit [Quit: leaving]
rqou has joined ##openfpga
reportingsjr has joined ##openfpga
f1r3 has joined ##openfpga
LeelooMinai has joined ##openfpga
whitequark has joined ##openfpga
qu1j0t3 has joined ##openfpga
cr1901_modern has joined ##openfpga
maaku has joined ##openfpga
nmz787 has joined ##openfpga
felix_ has joined ##openfpga
JvD_ has joined ##openfpga
rvense has joined ##openfpga
azonenberg_work has joined ##openfpga
balrog has joined ##openfpga
lain has joined ##openfpga
diamondman has joined ##openfpga
SpaceCoaster has joined ##openfpga
Bike has joined ##openfpga
specing has joined ##openfpga
X-Scale has joined ##openfpga
dalias has joined ##openfpga
amclain has joined ##openfpga
X-Scale is now known as Guest96135
DocScrutinizer05 has joined ##openfpga
doomlord has joined ##openfpga
m_w has joined ##openfpga
<dalias>
diamondman, had trouble getting the script to run at first but here it is: http://sprunge.us/NSHH
<diamondman>
dalias: What was up with the script. Let me know if I should fix it
<diamondman>
Cool. I will add this information to my board listings.
<rqou>
i assume you're aware of the existing openocd/urjtag projects, right?
<rqou>
(although imho they're both not that great)
<diamondman>
rqou: Yes I am, and in fact I mentioned openocd in my recon talk. OpenOCD has 3 things going for it: It supports a ton of different flash devices, it exposes GDP ports (the advertised use, but many people I know use it simply to flash chips), and it has a very wide selection of supported programmers/controllers.
dingbat has joined ##openfpga
<rqou>
i've never used it to flash chips
<rqou>
only for the debug server
<rqou>
iirc it's jtag abstraction isn't super great
<diamondman>
rqou: Interesting. I personally used it to flash my ARM chips and debug them.
<rqou>
i use it to flash chips indirectly while debugging
<rqou>
via a "monitor" command
<rqou>
not for programming many chips
<diamondman>
And looking through the code there are drivers for dozens of types of NOR/NAND flash
<diamondman>
hmm, fair
<rqou>
btw there's also (non-JTAG) flashrom
<diamondman>
ofc, SPI, etc
<rqou>
yeah, it's mostly SPI/LPC flash
<dalias>
diamondman, just didnt know where to get the right usb modules
<dalias>
since the pip names don't match the import names
marex-cloud has joined ##openfpga
<rqou>
you need a requirements.txt
<diamondman>
dalias: Sorry, I thought I gave you the import name in IRC :)
<diamondman>
rqou: Actually, this script is part of a debian package, and it pulls in the python modules using the debian names. Those are stored in the debian folder of the repo. A requirements.txt file did not make sense to me for such an install, but I will consider adding it to ease confusion of running it directly
<dalias>
it wouldnt have helped here since i didnt checkout the repo just saved one file
<diamondman>
:) I am glad it ran well
<diamondman>
dalias, The issues with OpenOCD are pretty glaring. I think one of the biggest up front issues is the need for TCL everything
<diamondman>
The whole core of the system was built before Plug and Play became a thing, so even if you are programming auto discoverable devices (like over USB), you have to provide the command line special TCL files for your controller, dev board, and target device.
<diamondman>
But my personal biggest issue wit it is what I call the driver model of the controllers it uses internally. I have mostly looked at their JTAG implementation, but what else I saw of their SPI implementation looked like it suffered from the same problem...
<diamondman>
Their abstractions for creating a JTAG controller driver are way too basic
<rqou>
i never got the feeling it really had abstractions at all :P
<diamondman>
you have to implement functions for things like change tap state, write register, etc
<diamondman>
haha
mithro has joined ##openfpga
<diamondman>
well, like, when you use different controllers, they have many different APIs. Some will expose instructions for 'change TAP state' or 'load register', while others will just be 'write tms data' or 'write tdi data'. But some of the most high power controllers just have an arbitrary 'send a shit load of data on all pins' command
<diamondman>
openOCD will take a complex JTAG instruction and internally split is up (through hard coded function calls) into calls to methods like set_tms_state
<diamondman>
which will be implemented in the controller driver to do only what that function says. But for most controllers that are not built with this api, there are problems
<diamondman>
For controllers that take 'send tdi bits' you lose the ability to group several calls to send_tdi_bits that would have increased performance
<diamondman>
and this gets even worse for the high speed controllers since each message sent contains like, 12 bits, as opposed to the (for example in the Xilinx Platform Cable 1) 0xFFFFFF+1 bits it supports at a time
<diamondman>
It is basically impossible to make openOCD have a high JTAG transfer rate
<rqou>
yeah, this was the impression I got
<diamondman>
without completely rewriting a ton of the internals and rebuilding the drivers
<diamondman>
So I did that :)
f1r3 has quit [Quit: keeping my cows]
<diamondman>
And my hopes are that one day I could either supplant or power projects like openocd so tool developers do not have to screw around with writing controller abstraction libraries
<dalias>
:)
<dalias>
why do these boards always have such awful interfaces
<dalias>
rather than something trivial to program like spi over usb-serial?
<rqou>
electrical engineer didn't talk to software engineer?
<dalias>
:)
<diamondman>
I built a compiler that takes your requested actions and expands them out into more simple messages until it finds messages your controller supports. It then optimizes the messages into groups, and slices them up to improve execution time. I even support loading multiple devices in parallel, and am working on multithreading so while a packet of data is being sent to a controller, the CPU can process
<diamondman>
the next encoded packet to send your controller
<diamondman>
Hehe, honestly JTAG is pretty kick ass. It was just muddled up by vendor lock in crap. I hope to solve it :)
<rqou>
hey, maybe those FTDI based JTAG adapters will get faster now
<rqou>
too bad it won't get less buggy :p
<dalias>
i dont know if jtag is awesome or not (not enough experience) but it's an unneeded layer for the 2 applications i have in mind:
<rqou>
ask azonenberg about the FTDI asic :p
<diamondman>
I have yet to add those drivers yet, but I have a few I just got in for testing. I do not know how fast I can make a bit bang controller, but I will try :). But now there will be a reason to pick up say, a pirated $30 Xilinx Platform Cable 1 that can program at 12 mhz
<dalias>
either flashing an spi flash chip or booting an fpga as spi-slave
<rqou>
not all FPGAs can boot as spi slave
<rqou>
(although you probably aren't using one that can't)
<dalias>
right
<rqou>
most of them are ancient
<diamondman>
dalias: you are right both of those are unrelated :). But after JTAG supports works, I will expand to support SPI, and even SPI running off a FPGA flashed with a SPI programmer firmware over jtag :)
<diamondman>
unrelated to JTAG*
<rqou>
^ is much needed
<rqou>
(programming a flash ROM attached to an FPGA)
<dalias>
btw i think the way the tool to flash this board works is by booting the fpga with a bitstream that erases/writes the flash :-p
<diamondman>
rqou: Yep, but I got to get the JTAG layer solid and fast first
<diamondman>
dalias: yep that is standard
<rqou>
really? I thought most abused boundary scan
<diamondman>
Though I find some digilent boards use Xilinx Flash chips that have jtag built in. Many people make fun of using them in designs, but it makes my job easier until I get SPI support
<rqou>
platform flash? yeah that's pointless
<diamondman>
rqou: Nah from what I see, it is so cheap to get a random SPI Flash chip and hard wire it to the FPGA... but then you can not access the Flash except through the fpga so you have to bootstrap the load
<diamondman>
rqou: I am well aware, and would never use it in my designs, but I notice a lot of digilent starter boards use it
<dalias>
one wishlist item for me: fpga module with an sd slot and something tiny (maybe greenpak) setup to boot the fpga as spi-slave using a file on the sd card as the bitstream :)
<rqou>
blargh you've asked for this so many times I have to try and do it now
<rqou>
:p
<rqou>
(although imho I hate the SDIO interface)
Guest96135 has quit [Quit: Want to be different? Try HydraIRC -> http://www.hydrairc.com <-]
<diamondman>
does not sound too hard to do. Since it would be running as slave, you get to control the clockrate as you read the file