irclog2html for #openjtag on 20051218

01:03.59*** join/#openjtag vmaster_ (i=vmaster@p549B5FCA.dip.t-dialin.net)
14:19.50*** join/#openjtag bullet (n=bullet@143.29.78.83.cust.bluewin.ch)
14:25.39lennertthere's no way to have xst infer a DDR MUX, right?
14:25.46lennertat least, i can't seem to get it to do that
14:30.14vmaster_heh, guess you're the only one in this channel who would know what to do with a DDR MUX ;)
14:32.24lennerthmm :)
15:08.31*** join/#openjtag ulf_k (n=ulf_kypk@p54BDA9C8.dip0.t-ipconnect.de)
15:38.32*** join/#openjtag prpplague (n=billybob@72.22.141.111)
15:57.31lennertbtw, in case anyone reads the hoplite JBits tutorial, the diagrams are wrong in places
15:57.57lennertcaveat lector
16:05.05[g2]lennert R0X0Rz
16:05.12[g2]congrats btw
16:05.49[g2]lennert so you're looking to do IP routing witn FPGAs for speed ?
16:22.10lennerthehe
16:22.22lennertwell, that's one thing i would eventually like to look into
16:22.36lennertnot for speed but just for fun
16:23.11lennertit's quick enough on the ixp
16:24.45[g2]the routing is not quick enough on the ixp ?  don't the 2350s run faster ?
16:25.15[g2]A CAM chip is the answer for routing table lookups right ?
16:25.30lennertthe routing _is_ quick enough on the ixps
16:25.48lennertyou can pipeline memory references so you can do pretty crazy stuff and still get wire speed performance
16:25.48[g2]ah
16:26.23lennerti don't see the point of doing it in an fpga (which just complicates things) apart from making things hard on yourself (and at times i like to make things hard on myself)
16:27.30[g2]we did ingress and partial egress in FPGA several years ago
16:28.03[g2]we had about a dozen high-end FPGA guys and I was the lone NP guys with the Vitesse
16:28.42lennertthere's an fpga between the gige interfaces and the ixp2400 on the radisys enp2611 board, and you can use it for some processing, but to do everything in the fpga seems a bit of a bad idea especially since the ixps are relatively cheap
16:29.08[g2]well this was 5+ years ago
16:29.26lennertadmittedly, xilinx's high-end fpgas (the ones that cost $12k) have a bit more high-speed transceivers than the ixps do
16:29.38[g2]We had multipel GigE in the chassis and supported 1Million subs
16:32.02lennertat what company was that?
16:32.33[g2]a startup they spend 60M over several years
16:32.44lennertany product? :)
16:32.51[g2]product was all done and ready
16:32.58[g2]no market :(
16:33.06lennertah
16:33.14[g2]3G never really arrived
16:33.16lennert"it's the market's fault!" :)
16:33.22lennert"3G" ?
16:33.31lennertyou mean, as in UMTS/W-CDMA 3G?
16:33.31[g2]3G wireless
16:33.34[g2]nod
16:33.34lennertright
16:33.38lennertwell
16:33.41lennertit's slowly arriving now :)
16:33.56[g2]it's been slowly arriving for years :)
16:34.42lennertGSM protocols are really baroque
16:34.48[g2]heh
16:35.36lennertanother project i've been thinking about is a GSM jammer :)
16:36.13[g2]I think ppl already sell them.. for theaters etc.
16:36.23lennertyeah, i mean, not as a commercial product
16:36.33lennertas a kind of hobby thing
16:36.37[g2]Ah....
16:36.47[g2]I'd go for the SDR
16:36.56[g2]then you could handle it all :)
16:37.07[g2]the _soft_ BTS or whatever
16:37.08lennertyeah
16:37.15lennertsoftware defined radio
16:37.24lennertbase transceiver station? :)
16:37.29[g2]that's something the FPGA would be helpful with
16:37.34[g2]yeah
16:37.37lennertjust generate white noise and mix it with the appropriate carrier
16:37.41lennertindeed
16:37.59lennertand surprise surprise, my virtex board has a triple 150MSPS 8bit D/A converter
16:38.21lennertit's really a VGA DAC, but you don't have to use it for VGA, eh? :)
16:38.32lennert3x75MHz of bandwidth is plenty
16:39.11lennertthe problem is only that i'm generating ideas faster than i can implement them.. :)
16:39.22[g2]welcome to the club :)
16:39.58[g2]so is the DDR interface on the Big Vertex board or can the S3 do that too ?
16:40.20[g2]S3e maybe ?
16:41.37lennertthe s3 also has ddr
16:42.02lennerti need the ddr mux for accessing the dual set of flipflops in every IOB
16:42.18lennert(each iob has two {input,output,tristate} flipflops, where the second set is only used for ddr)
16:42.42[g2]is that the on chip Block RAM ?
16:42.49lennertnope
16:42.50[g2]not off chip DDR memory
16:42.53lennertIOB = input/output block
16:43.05lennertthe bits of logic that connect the pins to the logic inside the chip
16:43.16[g2]right
16:43.27lennertcheck out the sp3 datasheet (ds099.pdf) page 9
16:43.40lennertthat sort-of shows the IOB structure (but is incomplete)
16:45.23lennertthe hoplite JBits tutorial has a floorplan on p18 but that one's incorrect, even
16:50.09[g2]so one can actually to DDR memory terminations with S3 ?
16:50.31[g2]I guess the DCI help with terminations
16:50.53lennertyou can hook an s3 up to ddr ram, yeah
16:51.01lennertwhat signaling do they use again.. sstl?
16:51.21[g2]dunno
16:51.44[g2]so many signalling types (and so many protocols) and so little time :)
16:51.49lennertyeah :)
16:52.31lennertthe way the signaling standards are mapped into bits makes no sense at all
16:53.27lennertsome signaling standard choices produce identical .bit files, too
16:53.37[g2]I think it's half history from the evolution of product lines and half Enlightenment
16:54.00lennertLVTTL 2mA and LVCMOS33 2mA produce the exact same bit pattern, by the way
16:54.05lennerts/by the way/for example/
16:54.17lennertso if you have a .bit file, you can't be 100% sure what signaling standards have been used
16:54.28lennertLVCMOS25 6mA is identical to LVCMOS33 8mA
16:54.52lennertLVTTL 4mA and LVCMOS33 4mA are identical
16:54.52lennertetc
16:55.18lennerti think the bit patterns control individual transistors
16:55.41lennertbut i can't really guess how they are connected just from the bit patterns
16:56.10lennertdci is another mystery for now
16:57.11[g2]yeah I've got tons to learn in the EE dept. too
16:57.21lennerthttp://svn.wantstofly.org/vhdl/utils/decode_bit.c dumps .bit files in hex format, frame-by-frame
16:57.26lennert[g2]: yeah... :-/
16:59.56[g2]lennert the other day you suggested just writing to the GPIO register in a big loop to measure the timing right ?
17:00.01lennertyeah
17:00.09lennerti found the datasheet for the southbridge on my via epia board
17:00.13lennert(which has 8 exposed GPIOs)
17:00.27lennerti still have to look into that though
17:00.39[g2]I wanted to try the same thing on the Loft
17:00.54lennertokay
17:01.00[g2]I'll have to dig up the assembler instructions
17:01.03lennertso you want me to write the loop so that you can run it? :)
17:01.12lennertyou don't really have to do it in assembler
17:01.33lennertlet me hack that up
17:02.22[g2]C8004000  is the address of the GPIOs
17:02.44lennertyeah
17:02.50lennertIXP4XX_GPIO_GPOUTR is at offset 0x00 from that
17:03.08[g2]page 395 in the ixp42x Dev manual
17:03.22lennertor include/asm/arch-ixp4xx/ixp4xx-regs.h :D
17:05.55lennertok, this should work
17:07.19lennerthttp://www.wantstofly.org/~buytenh/ixp4xx_gpio_twiddle.c
17:07.49lennerti've commented out the for-loop
17:08.19lennertcan you run that to see if it gives sane results?
17:09.13[g2]sure
17:10.24[g2]we really want to be reading from 0xc8004008 though
17:10.33[g2]0 offset is for the config
17:11.22[g2]gpio[2]
17:11.33lennertoffset 0x00 is IXP4XX_GPIO_GPOUTR
17:11.38lennertand gpio_line_set writes to IXP4XX_GPIO_GPOUTR
17:12.06lennertoffset 0x08 is the input register, it says here
17:12.07[g2]right and that sets up whether the pins are Input/Tristate or Output
17:12.25[g2]right and 0x8 are the input values
17:12.28lennertno, that's gpio_line_config
17:12.44lennertinput/output is set by IXP4XX_GPIO_GPOER, which is at offset 0x04
17:12.52lennerteither that or the linux defines are all wrong :)
17:13.31[g2]right
17:13.38[g2]0x0 is the output
17:13.47[g2]0x4 is the output enbale
17:13.53[g2]0x8 is the input values
17:13.56lennertyeah
17:14.11[g2]so your code is correct for writing output
17:14.12lennertconfusing intel docs, i bet
17:14.17lennertyeah
17:14.23[g2]but you are reading
17:14.29lennerti read it once
17:14.34[g2]nod
17:14.39lennertand then write it a million times
17:14.47lennerti read it because i want to make sure i don't fsck up the machine :)
17:15.01lennertit's allowed to read from the output register, no?
17:15.11[g2]nod
17:15.14lennert(it doesn't say in the header file)
17:15.25lennertokay
17:15.27lennertso so so
17:15.31lennerthow fast is it? :)
17:15.39[g2]but we want to just write a value that drives the lower pins
17:15.54lennertwell, for a timing test it doesn't matter what you write, does it?
17:16.12lennertif you have a 'scope you can toggle a gpio and check the frequency
17:16.15[g2]yeah as it will drive some of those lines
17:16.32lennertbut how many cycles the gpio write takes doesn't depend on what you write
17:16.48[g2]no but I'm saying the hw may be unhappy
17:16.50lennertthe bulk (99.999%) of the overhead is getting the write to the other side of the chip
17:16.56lennertwell
17:17.09lennertwe're only writing what was already there, don't we?
17:17.21lennertand if a gpio if configured as input, writing to the output register shouldn't change that?
17:17.42[g2]Ok... that's fair....
17:17.56lennertthe ixp4xx doesn't have a "write a 1 to clear" or "write 1 to set" register.. else i would have used that and written just zeroes to it
17:20.33lennertso so so
17:20.35lennerthow fast is it? :)
17:20.52lennert(or did it blow up?)
17:22.01[g2]setting up now
17:31.30[g2]booting almost there :)
17:31.47lennert:)
17:32.36[g2]I've been playing with bootp
17:32.44[g2]and the current setup is for that
17:33.36[g2]Ok it runs
17:34.12*** join/#openjtag Trou (n=trou@tor/session/x-6bfc7b60de639896)
17:35.53[g2]Ok
17:36.52lennertso so so
17:36.52[g2].05s for the 1M version
17:36.54lennerthow fast is it? :)
17:37.06lennerthow fast is the CPU?
17:37.11[g2]533
17:37.24lennertthat's kind of impossibly fast
17:37.28lennertcan you make it 16M ?
17:37.29[g2]it takes .01 for the program
17:37.35[g2]sure
17:37.56lennertyou're sure you uncommented the for-loop? :)
17:37.58lennerttry 16777216
17:38.34[g2]I did 16* that number
17:38.38[g2]literally 16*
17:38.40lennertthat'll work
17:38.43lennert16*1048576 = 16777216
17:39.06[g2]I'm sure the compiler optimized it out :) preprocessor anyway
17:39.12lennertwell, no
17:39.16lennertcause it's a volatile pointer
17:39.21lennertit's not allowed to optimise it away
17:39.31[g2]I meant the 16*
17:39.36lennertoooh, yeah
17:39.37lennertyeah, sure :)
17:39.51[g2].760s
17:39.54lennertcompiler will do that for you
17:40.08lennerthmmm
17:40.21lennertcan you try 1024M loops?
17:40.33[g2]easy peasy :)
17:40.35lennert(1024*1048576 = 1073741824)
17:41.04lennertif the 0.760s figure is accurate, you can bitbang the gpios at 10MHz
17:41.15Trouhi guys, i'm looking for EJTAG v2.0 spec, does anyone have them ?
17:41.29lennertafter that, try doing 16M reads in a loop (instead of writes)
17:41.32lennertTrou: sorry, nope
17:41.51[g2]I don't have one but the #openwrt guys play with EJTAG
17:42.04Trouyup, already asked there
17:42.19Troulooks like noone has them :(
17:42.39[g2]there were a couple guys doing EJTAG
17:42.45[g2]I'm not sure who
17:42.51Trouyeah, lightbulb mainly
17:43.09[g2]and some software are written up on the sveasoft forum
17:43.09Troubut he wasn't seen there since almost a month and doesn't answer to mails :x
17:43.26[g2]yeah lightbulb was doing that a year+ ago
17:43.30vmasterkey2 talked a lot about ejtag
17:43.31Trouah ?
17:43.40Troui'm going to check the sveasoft forum
17:43.47vmasterisn't the ejtag specs available from mips?
17:43.57[g2]48.390s for 1024M
17:43.59Trouit is, but only v 3.10
17:44.06Troui found 2.60 on google but no 2.0
17:44.33lennert[g2]: ok, so you can bitbang at about 11MHz
17:44.45lennert[g2]: can you try reads now?
17:44.59vmastertry two writes and one read
17:45.10[g2]sure x = gpio[2] ?
17:45.22lennert[g2]: for example
17:47.03Trouno luck on sveasoft, thanks anyway :)
17:47.07*** part/#openjtag Trou (n=trou@tor/session/x-6bfc7b60de639896)
17:48.11[g2]reads appear to be way slower or there's an error
17:48.18lennertreads _are_ way slower
17:48.25lennert20x, easily
17:48.37lennertsince the chip stalls on them
17:49.08[g2]so then the writes problaby don't really run at that rate then
17:49.32lennertthey do..
17:49.55lennerti'm pretty sure you'll see a 11MHz square wave if you toggle one of the gpios
17:49.56[g2]2m25.160s
17:50.12lennert[g2]: for 16M reads?  or 16M (write+write+read)s ?
17:50.19[g2]1024M
17:50.30lennert1024M reads or 1024M (write+write+reads)s ?
17:50.43[g2]just read
17:50.50[g2]x = gpio[2]
17:50.56lennertok
17:51.02lennert7396953 per second
17:51.22lennertso reads are 72 cycles each and writes are 26 cycles each
17:51.31lennertstill pretty good
17:51.50lennertso write+write+read is 124 cycles
17:51.55[g2]well if we can really drive at 11M that's ok for programming :)
17:52.03lennert4.2MHz if you are shifting something out
17:52.13lennertand 10.25MHz if you're not shifting anything out
17:52.23lennertgive or take
17:52.27lennertnot bad at all
17:54.51[g2]THX
17:54.58[g2]for the program
17:55.05[g2]and the help :)
17:55.07lennertnp
17:55.20[g2]I've got 5 GPIOs on the Loft
17:55.25lennertnow it's up to you to hack up a jtag daughterboard :)
17:55.42[g2]I don't need one
17:55.52[g2]It's 5  or 6 wires
17:56.00lennertyeah
17:56.07[g2]plus tying the ground together
17:56.15lennertare they at the right level though?
17:56.21lennert(what level is jtag, anyway?)
17:56.25lennert(3.3?  2.5?)
17:56.31[g2]I think it's 3.3
17:56.35[g2]I'll have to check
17:56.54[g2]but I should be able to have one Loft JTAG another
17:57.09[g2]if I've got enogh pins with 5
17:58.12lennertTCK, TMS, IN, OUT and maybe TRST
17:58.48lennerts/IN/TDI/;s/OUT/TDO/ of course
17:58.58[g2]of course :)
17:59.39[g2]I could probably cut the SCL line for the I2C chips and pick up 2 more (SDA and SCL) if need bot
17:59.41[g2]s/bot/be/
18:00.01lennert5 should be enough
18:00.14[g2]that's sweet
18:01.01[g2]I've to a 6 pin flying lead from DigilentInc that plugs onto the board header for $4.95
18:01.20[g2]all 5 pins are GPIO 0-4
18:01.56[g2]well wonderful news and great work
18:02.12[g2]I've got to get lunch (the family is eating)
18:02.18[g2]THX again
18:02.23lennerthave a nice meal
18:02.27lennerttalk to you when you get back :)
18:12.02vmasterusing a 533mhz cpu to do jtag bitbanging is _cruel_ ;)
18:13.24vmastera 60mhz lpc (arm7) is faster - 2 cycles per read or write
18:14.34lennertGPIOs are integrated into the main datapath?
18:18.05lennertyeah, it's a bit of a rude solution :)
18:19.29[g2]vmaster the lpc (Philips) run @ 60Mhz and can do GPIO in 2 instructions ?
18:20.14vmasteryes, the lpcs run at 60mhz and do one gpio access every two cycles
18:20.29vmasteri measured 15mhz when toggling one bit
18:20.32[g2]how many GPIOs are there
18:20.36vmasterdozens
18:20.50vmasterdepending on the chip and package
18:20.51[g2]what do they cost ?
18:20.57[g2]any URLs ?
18:21.07vmasterolimex has a lot of lpc boards
18:21.11vmasterolimex.com
18:21.29vmasterthere's even one with a usb 2.0 device port, iirc
18:23.43vmasterwhat i don't know is how much help the usb device port requires from the processor, like servicing interrupts and so on
18:24.08[g2]thx
18:24.11[g2]bbiab
18:24.27*** join/#openjtag ulf_k (n=ulf_kypk@p54BD9E97.dip0.t-ipconnect.de)
18:30.22vmasterA device with a very versatile synchronous serial interface would be nice - something that would allow you offload the serializing - it's just 'expensive' doing that in software
18:30.29vmaster*to
18:30.59vmastermotorola/freescale have SSIs capable of what JTAG needs, iirc
18:31.07vmasterthe bdi uses one of these
18:31.25lennertthe Abba-tron? :)
18:31.36vmasteryep
18:52.24vmastermhh... the SSC on Atmel's SAM chips should work, but they have no high-speed peripherals, only full-speed
19:56.16*** join/#openjtag ByronT (n=byron-po@nslu2-linux/ByronT)
20:42.47*** join/#openjtag ByronT (n=byron-po@nslu2-linux/ByronT)
22:07.37*** join/#openjtag DaKa (n=david@193.13.58.211)
23:34.35*** join/#openjtag ulf_k_ (n=ulf_kypk@p54BDAA25.dip0.t-ipconnect.de)
23:39.23*** join/#openjtag ulf_k__ (n=ulf_kypk@p54BDADB9.dip0.t-ipconnect.de)
23:43.49*** join/#openjtag ulf_k___ (n=ulf_kypk@p54BDA7E7.dip0.t-ipconnect.de)

Generated by irclog2html.pl by Jeff Waugh - find it at freshmeat.net! Modified by Tim Riker to work with blootbot logs, split per channel, etc.