#qi-hardware IRC log for Thursday, 2015-06-25

sloantothebone_Where do I get a ben nanonote?03:49
sloantothebone_Anybody alive?06:31
wpwrak(ben) tricky. there are no new ones but maybe there's some 2nd hand to be had. maybe ask on the list if someone wants to sell theirs08:34
eintopfwpwrak: do you know the pandora? (not the box from the myth, the I suppose was designed to be a gaming console)08:37
eintopfI think it's a little bit bigger than ben, but maybe with some new hardware stuff (?runs little bit faster?)08:37
eintopfbut _maybe_ not open hardware :-)08:38
eintopfoh well, they write that this machine can run PSX emulators. Yea maybe run, but it's more a diashow then08:40
wpwraki "know" it in the sense that i know what it is, yes08:43
wpwrakcould be a ben alternative, yes. not sure if anyone has used it as such. it's considerably larger, though (140.3 x 83.5 x 29.3 mm = 343 ccm vs. 99 x 75 x 17.5 = 130 ccm)08:45
eintopfmuch larger08:48
eintopfthen better gaming on ben nanonote :-)08:51
wpwrakyeah :) alas, the pyra will be the same size08:52
wpwrakbut they're cramming some more features into it08:53
eintopfyea, hdmi out08:54
eintopfwhen I was young, I always want to have some of the gamepark holdings handhelds, because it runs linux.08:58
eintopfso now there are many which runs linux and is mostly open hardware08:58
pcercueihave a look at the gcw zero09:02
pcercueinot really a ben alternative though09:02
pcercuei(no keyboard)09:02
DocScrutinizer05eintopf: pandoras also are not available any longer (though a few will become available shortly since they produced the needed LCD cables for some existing devices with probably broken cables)13:15
eintopfjust because some missing LCD cables?13:16
eintopfmaybe I could also play some games with neo900 :-)13:16
DocScrutinizer05Finally! genuine snakeoil!! \o/  http://www.amazon.de/125ml-Natural-Schlangenöl-Haarwuchs-Haarausfall/dp/B00AFFM1TS14:46
paul_boddieOn the case of the missing jz4740 interrupts, I can enable them, they are pending (I can see #2 occur), but I still cannot clear ERL without a hang.16:39
paul_boddieEven though the handlers are installed in the right locations.16:40
paul_boddieWhich I checked yesterday, as my loyal audience may remember.16:40
paul_boddieI'm suspecting that the CPU wants to load the ErrorEPC location and jump to it.16:41
paul_boddiesloantothebone_: I think IDA Systems were the last ones to have the NanoNote: http://www.idasystems.net/products/nanonote16:44
paul_boddiePulster sold out eventually.16:44
paul_boddieOh well, I guess it's all a mystery. Somehow Rockbox and Linux enable interrupts but I can't figure it out. :-(21:54
paul_boddieQuite how the CI20 bare metal guy gets interrupts working so easily is a mystery, too. Maybe the jz4780 is more sane or something.21:55
DocScrutinizer05nah, your testbed is too complex22:18
paul_boddieMine? Yes, probably. Being able to watch the CPU directly would be useful.22:18
DocScrutinizer05you probably got 5 bugs in it and each single one would break stuff22:18
paul_boddieProbably, yes. It's infuriating: I can run programs without interrupts just fine.22:19
paul_boddieI can even see interrupts pending but not serviced because of the status register state.22:19
DocScrutinizer05start with something absolutely simple: an empty IRQ routine that simply returns. Then see if you can enable IRQs without stuff hanging22:20
paul_boddieI did that. A plain exception handler that is just "return from exception".22:20
paul_boddieNow you're going to ask me if it returned. ;-)22:21
DocScrutinizer05I'm going to ask you if it got called22:21
DocScrutinizer05I gather jz47xx has no embedded trace macrocell?22:26
paul_boddieWell, it is possible because my "foreground" program didn't continue after enabling exceptions/interrupts.22:26
paul_boddieBut that could mean that the CPU jumped into the unknown.22:26
DocScrutinizer05it is also possible that turingknowswhat got called instead22:27
DocScrutinizer05either on invokation of IRQ handler or when returning from it22:27
paul_boddieYes, I suspected the ErrorEPC value to be rogue, which it was, but setting it to a non-rogue value didn't seem to help.22:29
DocScrutinizer05so next step: have some decent tested debug code in your IRQ handler that tells you it got called22:29
paul_boddieI examined the instructions at the location the CPU is supposed to visit to invoke the handler, and they were all consistent with my program's disassembly.22:29
DocScrutinizer05when you know it gets called, try to find out about what it does on exit/return22:29
DocScrutinizer05examining instructions is useless since you don't know if the CPU jumps to them to start with22:30
paul_boddieWell, it rules out them being wrong, at least. ;-)22:31
paul_boddieBut I am intrigued to know what the "bootstrap" handlers actually do.22:32
DocScrutinizer05iirc you have a register pointing to a jump table. An IRQ-N jumps to address $table-register +  N * 4 byte or sth. On that addr there should be an instruction that looks like JMP @irqhandler22:32
DocScrutinizer05these are already 3 things that could go haywire: the initialization of table-register, and the addr and the instructions at that addr, in jump table22:33
paul_boddieMIPS jumps to dedicated regions upon exception/interrupt. Depending on who you ask, having a table wasn't RISC enough.22:34
paul_boddieCan't remember where I read that, but it is the usual RISC-measuring exercise.22:35
paul_boddieIt's possible that the CPU is not even making a decision about jumping to these places at all. That's what worries me.22:35
DocScrutinizer05anyway already setting up the IRQ so it *invokes* your handler is quite intricate22:35
DocScrutinizer05examining code bytes at some (arbitrary) addr doesn't help much22:36
DocScrutinizer05the CPU usually doesn't _stop_ execution, it just continues fetching opcodes and executing them. The question is *where from*22:38
paul_boddieWell, it looks as if it fetches them from a particular address upon reset.22:39
paul_boddieWell, thanks for the hints! May give this a rest, though.23:05
--- Fri Jun 26 201500:00

Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!