igil | hello | 01:51 |
---|---|---|
stekern | juliusb: regarding the delay slot exceptions poking, I've kept your "wait for delayslot" logic for tick and pic interrupts (I agree that that speeds things up, and the tests kind of expects it when they are hammering the tick timer) | 06:20 |
stekern | but I changed the delay slot detecting logic to what I spoke about yesterday (branch insn in exec-> execute_delay_slot <= 1) | 06:22 |
stekern | and then, for epcr, I calculate the branch target as I mentioned yesterday (branch not taken => branch target = pc+8) | 06:24 |
stekern | that makes intloop test pass at least (and all other tests as well) | 06:24 |
stekern | ... and has the nice side effect that fmax increased to 83 MHz from 78 MHz on cyclone iv | 06:52 |
@juliusb | stekern: oh cool, interesting | 10:49 |
_franck_ | jeremybennett: how is _initialize_or32_tdep called (gdb) ? | 10:57 |
jeremybennett | That is the magic that gets GDB going. From memory, it looks for a function called _initialized_<arch>_tdep and calls it at startup. | 11:06 |
jeremybennett | I can't recall how it knows that is the function, but it does. That then initializes the architecture, then sets up any extra commands. | 11:07 |
jeremybennett | BTW, I take it you have seen my application note on porting GDB? | 11:07 |
jeremybennett | It's based on GDB 6.x. The main thing that is changed in GDB 7.x is that frame functions use THIS pointer not NEXT pointer. | 11:07 |
jeremybennett | I also started work on using the standard interface for frame analysis, but I hadn't got it working. In my experience, half the effort of any GDB port is getting the frame analysis (used when you don't have DWARF2/STABS) working. | 11:08 |
_franck_ | about this _initialized_<arch>_tdep I would like to know *when* it's called | 11:09 |
jeremybennett | When GDB starts up. | 11:09 |
_franck_ | before the remote connection ? | 11:09 |
_franck_ | ok | 11:09 |
jeremybennett | Yes - that only happens when you do "target remote" | 11:10 |
jeremybennett | You should look at using the XML stuff to specify the architecture. I didn't put it in the OpenRISC port, but we should use it. | 11:10 |
_franck_ | ah ok so before remote_start_remote | 11:11 |
_franck_ | yes that's what I'm doing | 11:11 |
_franck_ | (right now I'm trying to understand :)) | 11:11 |
_franck_ | s/before/after | 11:12 |
LoneTech | openOCD or1k_jtag is little endian specific. that doesn't seem right. | 13:56 |
@juliusb | LoneTech: host little endian you mean? | 15:22 |
LoneTech | yes | 15:24 |
LoneTech | it casts a uint32_t* to uint8_t* expecting it to hold its value | 15:24 |
-!- X-Scale is now known as Guest11641 | 15:24 | |
-!- Guest11641 is now known as X-Scale | 15:25 | |
LoneTech | oh. the jtag state signals from altera's virtual jtag function are "for debugging purposes only". And I suspect it is reliance on those that causes my problem currently. | 15:30 |
@juliusb | :-/ | 15:31 |
LoneTech | because the altera IR size is 10 bits, and the output from the mohor unit arrives 10 bits early | 15:32 |
LoneTech | well, the VIR is also 5 bits and I've sent 2 commands to that, and it uses DR (not VDR) | 15:35 |
LoneTech | it suggests that the debug unit is counting VIR shifts, and fails to reset its counter since those move through IR update, not DR update | 15:35 |
LoneTech | the waveforms shown in ug_virtualjtag suggest that the states are of the jtag, not virtual jtag (it shows shift IR low during VIR shift) | 15:38 |
stekern | juliusb: you've got a little pull request for mor1kx-dev-env in your inbox :) | 15:38 |
stekern | LoneTech: just curious, are you trying to get mohor debug if working over virtual jtag? | 15:42 |
stekern | on ordb2a? | 15:42 |
LoneTech | yes | 15:43 |
stekern | what is different from _franck_s setup? didn't he have that working with some 1-bit shift hack? | 15:44 |
LoneTech | probably the instantiation of the jtag block itself | 15:45 |
LoneTech | possibly the version of altera tools | 15:45 |
LoneTech | I haven't really tracked this down yet | 15:47 |
stekern | isn't the instantiation basically this: http://git.openrisc.net/cgit.cgi/stefan/orpsoc/tree/boards/altera/de0_nano/rtl/verilog/adv_debugsys/altera_virtual_jtag.v | 15:47 |
LoneTech | very much like it, yes | 15:50 |
LoneTech | seems the difference is I have it split in two files (one wrapper, one wizard generated) | 15:50 |
stekern | yeah, I think that instantiation actually is copied from a wizard generated one | 15:51 |
LoneTech | and the docs seem to state jtag_state_{rti,tlr} are "for informational purposes only" | 15:51 |
stekern | from what I remember when I played with it last | 15:52 |
LoneTech | the user guide is flawed in this part, though, as it has that marker over all the virtual jtag state signals too | 15:52 |
_franck_ | LoneTech: the VIR and VDR size are dynamic, it's not 10 | 15:53 |
_franck_ | you have to probe the vjtag to find out how large they are | 15:53 |
LoneTech | _franck_: IR (not VIR) is 10, VIR is in my case 1+4 | 15:53 |
LoneTech | the probing works fine | 15:53 |
_franck_ | ok but how IR and "the output from the mohor unit arrives 10 bits early" would be related ? | 15:54 |
LoneTech | it's an early guess. I'm simply seeing VDR shifted out 10 bits early; and it coincides either with VIR being updated twice (2*5 DR shifts) or IR size. | 15:55 |
_franck_ | ok | 15:55 |
_franck_ | when I was debugging this part, I used the altera TCL console and vjtag API | 15:58 |
_franck_ | device_virtual_ir_shift... | 15:58 |
_franck_ | in combination with signal tap | 15:58 |
LoneTech | I sadly don't have signal tap. which I suspect also uses the SLD hub. | 15:59 |
_franck_ | it uses it but it can work together if yo don't use openOCD | 16:05 |
_franck_ | just signal tap + TCL console | 16:05 |
LoneTech | it's not that. the altera tools don't talk to my jtag. | 16:07 |
LoneTech | and the mohor bit counters reset on update_dr only. perhaps I should connect virtual capture dr to mark start of dr shift? | 16:08 |
@juliusb | stekern: saw that, cheers! the more sw tests the merrier :) | 16:11 |
_franck_ | virtual_state_cdr => capture_dr_o in th wrapper I have | 16:13 |
LoneTech | same here, but dbg_if didn't have that input | 16:14 |
_franck_ | why the hell it works for me ? (marek does use it too) | 16:20 |
LoneTech | I don't know what's really going on. still trying to figure it out. | 16:21 |
_franck_ | your altera tool doesn't talk to your vjtag because you're using an usb blaster ? | 16:21 |
LoneTech | not using usb blaster | 16:21 |
_franck_ | so why using a vjtag ? | 16:21 |
_franck_ | I meant "you're *not* using" | 16:22 |
LoneTech | in order to use the jtag for talking to the debug unit. it could mean for instance a ft2232 instead of ft4232 | 16:22 |
_franck_ | but you should use a gpio tap, wouldn't be easier ? | 16:24 |
LoneTech | it would be much easier. I'm just trying to get more options to work | 16:24 |
_franck_ | ok | 16:24 |
olofk | Finally got my raspberry pi yesterday. Haven't got any ideas for what to do with it :) | 23:02 |
Generated by irclog2html.py 2.15.2 by Marius Gedminas - find it at mg.pov.lt!