<whitequark>
there's the target.register.add calls, these should just live inside the interface
<whitequark>
ie whatever is returned by claim_interface
<whitequark>
similarly you should be setting the registers via the interface returned by demultiplexer.claim_interface
<whitequark>
but i don't know what to use for a register identifier
<whitequark>
the options are:
<whitequark>
1) provide a string to a multiplexer, use a string when poking the demultiplexer
<whitequark>
but this is a problem e.g. in case of the avr applet
<whitequark>
because there's the SPI reset register and the AVR reset register
<whitequark>
2) return an opaque object and require its use afterwards
<whitequark>
then you need to track it around though...
<whitequark>
am i missing something that's possible?
modrobert has quit [Remote host closed the connection]
modrobert has joined #glasgow
futarisIRCcloud has joined #glasgow
ldm has quit [Quit: Bouncer disconnected]
ldm has joined #glasgow
jevinski_ has joined #glasgow
jevinskie has quit [Ping timeout: 258 seconds]
<marcan>
whitequark: should we have revC1.1 tags or something like that for documentation changes? (e.g. that fix for the ATECC partno; other things: messing with BOM keys and such)
<marcan>
or revC1_p1 or some other scheme
<whitequark>
marcan: i think it's fine to just use master for that
<marcan>
the rule would be that these must have zero effect and result in an equivalent device specification-wise and have no software impact, and we would update the production files in-place
<marcan>
well we can use master, but we might still want to tag them?
<marcan>
(in fact for the production files the rule would be that only schematic, BOM, and fab layers can change)
<whitequark>
if you change anything besides BOM it's revC2 imo
<whitequark>
right, BOM, non-electronic parts of schematic, and fab
<marcan>
yes
<whitequark>
i don't see the point of tagging really, it's still revC1
<whitequark>
same device for all intents and purposes
<marcan>
the only problem here is if we start making other changes and then have to branch off a minor fix like that
<marcan>
what's the plan for revD? I think we should have a separate kicad project for that
<marcan>
revA-B-C were superseding changes, revD won't be
<whitequark>
yes, you mentioned forking off kicad projects
<marcan>
I think we should branch off for revD, and keep the current files (possibly renaming the directory) for future revC2... etc
<_whitenotifier-3>
[GlasgowEmbedded/Glasgow] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/fjW4Z
<whitequark>
the .pro file has net classes and via diameters and such
<marcan>
yeah
<marcan>
it stores preferences
<marcan>
that's why I'm slightly concerned
<whitequark>
ok
<whitequark>
i agree, let's do the git mv above
<marcan>
ok
<whitequark>
can you also resurrect kicad files for revA and revB then?
<whitequark>
and rename glasgow/revA to something like glasgow-revA/out
<marcan>
ah, you want to fork those too? I can certainly do that
<marcan>
I thought we were burying them since people shouldn't really be making them
<whitequark>
it seems much nicer to do so
<whitequark>
well people shouldn't make revC0s either
<whitequark>
but the ones that are already around should be documented
<marcan>
yeah
<whitequark>
i think if someone *wants* to grab design files from a random git tag they will do it
<whitequark>
case in point: literally esden
<whitequark>
or git commit even
<marcan>
what I mean is that since our versioning scheme changed, revAB are superseded by revC, so the "trees" logically are revC/D/E and revAB are just old versions of revC
<marcan>
so if someone really wants those they can dig back through history
<marcan>
but they may not make sense as top level directories
<marcan>
we still have the production files of course
<marcan>
but being next to revC makes the fact that they're superseded evident
<whitequark>
revB should've been revA1 but other than that revB and revC are fairly parallel
<whitequark>
well
<marcan>
I could also just resurrect only revB
<whitequark>
i guess that works
<whitequark>
i can write a README explaining what's up with that
<marcan>
yeah, that would help
<marcan>
at $work right now, but I can shuffle things around when I get home
<whitequark>
ack
<marcan>
I wonder if I can get git to represent that "history resurrection"
<marcan>
maybe I can fork off revB with a git cp commit, then merge it back to master
<whitequark>
it doesn't track that
<whitequark>
oh wait
<whitequark>
i see what you mean
<whitequark>
yeah that would work i think
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
<whitequark>
marcan: btw have you seen my question re registers?
m4ssi has joined #glasgow
zoobab has left #glasgow [#glasgow]
<marcan>
whitequark: need to look at the code to get a good idea of what's going on
<marcan>
register numbering is a problem we had with OV too, you can take a look at that code if you're interested
<whitequark>
well there's no persistent register numbering in glasgow
<whitequark>
worse yet there are register *sizes* too
<whitequark>
also i might end up adding an I2C-readable ROM of some kind
<whitequark>
trading one BRAM for being able to plug&play to openocd or something is worthwhile
<whitequark>
marcan: because i don't want people to have to get a file from glasgow.cli and feed it to openocd
<marcan>
you mean like loading the bitstream from glasgow.cli and then running openocd standalone?
<whitequark>
yes
<whitequark>
it might not matter / be a good idea for openocd specifically but there are sure some applications that need it
<marcan>
you'd still need a glasgow-specific backend for any apps that care about register numbers, no?
<marcan>
unless you're emulating a specific USB class
<whitequark>
it'd be glasgow-specific, yes
<whitequark>
but it would not be tied to one specific gateware build
<marcan>
I think if you're distributing gateware binaries you can use a sidecar approach like we do for OV (.fwpkg is a zip file containing gateware and map); if you're putting gateware in the flash you can add the mapfile there without consuming BRAM space and read it off directly; and if you're loading gateware live you can arrange for some software-side approach to pass the mapfile without requiring ...
<marcan>
... actually storing it on-device.
<marcan>
I don't like the idea of spending a BRAM on some metadata ROM
<whitequark>
i don't like the idea of having three different ways to discover gateware capabilities.
<marcan>
is there enough ram on the FX2 to put the map there?
<whitequark>
i *especially* don't like the idea of having different ways to discover this with and without flash
<whitequark>
soooort of
<whitequark>
i guess we could put it on the FX2 instead
<whitequark>
maybe limit it to 1k
<thaytan>
whitequark, I have a mac mini and the ability to build solvespace
<thaytan>
I'm not surprised by OpenGL regressions, since it's officially deprecated
<whitequark>
well i'm not about to port anything to metal
<thaytan>
"just rewrite the world in our platform specific Metal API, mmkkay"
<thaytan>
yeah, exactly
<whitequark>
... or vulkan for that matter
<whitequark>
because it means dropping a lot of opengl devices
<thaytan>
we're using MoltenVK for a project atm
<thaytan>
(instead of adding a Metal specific GStreamer backend)
<thaytan>
it's working out OK
<thaytan>
it's a frustrating position to be in though
<whitequark>
i'd use moltengl if it could be redistributed
<whitequark>
we considered a potential vulkan rewrite
<whitequark>
besides vulkan being a nightmare it'd mean dropping support for thinkpad x220
jevinski_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ali-as has quit [Remote host closed the connection]
ali-as has joined #glasgow
<electronic_eel>
whitequark: re registers for detecting gateware capabilities
<electronic_eel>
why disconnect glasgow cli from external applications like openocd?
<electronic_eel>
i suggest that the openocd (or similar) interface driver either forks the glasgow cli or uses a socket to connect to it
<electronic_eel>
then they use some text protocol to agree on features for the gateware
<electronic_eel>
glasgow cli builds the matching bitstream, uploads it and then uses the socket to tell openocd which usb bus id and so on it can use to directly communicate with the glasgow hw
<electronic_eel>
that way the interface driver and the glasgow cli can communicate in both directions to agree on what to do
<electronic_eel>
makes it more flexible re upgrading one part without affecting the other
<electronic_eel>
you also don't have to care if the bitstream you uploaded is really compatible and does exactly what you want or not
<electronic_eel>
...uploaded manually i mean
<electronic_eel>
it also would also allow to either specify stuff like pins, io voltages, pin-autodetection,... in the openocd board file or just have a socket name there and start the glasgow cli manually with all the wanted options.
_whitelogger_ has joined #glasgow
television has quit [Read error: Connection reset by peer]