kristianpaul | DocScrutinizer05: did you finally get usb host support for N900? | 01:49 |
---|---|---|
DocScrutinizer05 | kristianpaul: ??? | 01:57 |
DocScrutinizer05 | h-e-n hostmode? since ages | 01:57 |
kristianpaul | eww :) | 02:00 |
DocScrutinizer05 | hm? | 02:12 |
Action: DocScrutinizer05 thinks there's something got lost in translation | 02:13 | |
kristianpaul | he, sorry just found a cheap n900 on local ebay | 02:17 |
qi-bot | [commit] Adam Wang: he-2row-dip.fpd: based on Werner Almesberger's he10.fpd (master) http://qi-hw.com/p/kicad-libs/e33374c | 02:20 |
pabs3 | DocScrutinizer05: how many N900 do you need?? | 03:02 |
qi-bot | [commit] Adam Wang: mic-ra-dip.fpd: added package of MIC-RA-DIP-${Dia}x${Height} (master) http://qi-hw.com/p/kicad-libs/3a6c441 | 03:14 |
DocScrutinizer05 | pabs3: one, but dunno for how long | 08:38 |
qi-bot | [commit] Adam Wang: tactile-sw-spst-ra-dip.fpd: added package of TACTIL-SW-${TYPE}-RA-${A}-${B} (master) http://qi-hw.com/p/kicad-libs/c456f08 | 08:47 |
jurting | http://venturebeat.com/2012/06/14/ethiopia-skype-illegal/ "necessary to protect against security threats" ... | 09:03 |
DocScrutinizer05 | yeah, and France forbids pgp-encrypted emails afaik | 09:14 |
DocScrutinizer05 | age old saying: "if guns are outlawed, only outlows will have guns" | 09:14 |
DocScrutinizer05 | outlaws* | 09:14 |
Ayla | never heard about that | 09:15 |
DocScrutinizer05 | applies to security/encryption technology even better than to guns | 09:15 |
Ayla | PGP-encrypted mails are legal here | 09:15 |
Ayla | where did you read that? | 09:15 |
DocScrutinizer05 | Ayla: been a long time ago, maybe they planned it and then decided otherwise? | 09:17 |
Ayla | I doubt it, seriously | 09:18 |
DocScrutinizer05 | must've been around the same time they started to mandate for 40% french songs in radio | 09:18 |
DocScrutinizer05 | honestly loong ago, maybe 10 years or sth. Maybe I lack to recall correctly | 09:21 |
DocScrutinizer05 | anyway regarding skype, since USA forced a backdoor into it, it's actually embarrassing to outlaw it - it shows you got no clue about how to handle security stuff on a level like the "grownups" (=USA= ;-P | 09:26 |
DocScrutinizer05 | or the exact opposite ;-P | 09:27 |
Ayla | yeah. I can totally understand why they don't trust Skype | 09:27 |
DocScrutinizer05 | "since US authorities may crack skype, it's not allowed to use it in Ethiopia" | 09:27 |
DocScrutinizer05 | anyway I feel sad about Nokia and all the new casualities | 09:30 |
DocScrutinizer05 | all hopes on Samsung now, for a true open phone | 09:31 |
xiangfu | wpwrak, the atusb works fine. | 09:37 |
xiangfu | but everytime it receive message through 'izchat'. there is one kernel message come up: | 09:38 |
xiangfu | net wpan0: ACK requested, however AACK not supported. | 09:38 |
xiangfu | do we need fix this? | 09:39 |
xiangfu | another thing is . if I send message too fast. like press a then press enter. again and again. there is be : | 09:39 |
xiangfu | usb 1-1: atusb_timer | 09:39 |
xiangfu | shows up | 09:39 |
qi-bot | [commit] Adam Wang: spacer.fpd: added packages of SPACER-$nominal-$disc-$keepout$type (master) http://qi-hw.com/p/kicad-libs/0f80888 | 10:10 |
wpwrak | xiangfu: (work) congratulations ! | 10:43 |
wpwrak | the ACK requests are not our problem :) the stack doesn't implement then, yet some applications ask for them. and then you get that complaint | 10:44 |
wpwrak | atusb_timer means that a response from the transceiver was lost (the driver then times out and recovers). that's a little odd. | 10:46 |
cladamw | wpwrak, if i want to generate *.mod, all i need is to add necessary fpd filename into MODULES of http://projects.qi-hardware.com/index.php/p/kicad-libs/source/tree/master/modules/Makefile ? | 10:54 |
xiangfu | wpwrak, the izchat works just fine. | 10:55 |
xiangfu | wpwrak,(atben --- atusb) the dirtpan not very stable. compare to my other setup : (atben --- atben) | 10:56 |
xiangfu | wpwrak, a lot of ping lost or DUP. | 10:56 |
xiangfu | the atben --- atusb once 10 cm distance. | 10:56 |
wpwrak | yes, atusb has the 1 ms USB delay issue. this causes some trouble with TCP/IP. atben doesn't have such delays. | 11:17 |
xiangfu | wpwrak, ok. got it. | 11:24 |
wpwrak | the atusb problem is that "still unresolved driver issue" i've been mentioning :) basically needs a complete redesign of the way how atusb and kernel communicate | 11:26 |
xiangfu | wpwrak, the atusb quiet un-stable compare to atBen. | 12:41 |
xiangfu | I can only run 'ping'. but never success on 'ssh'. | 12:42 |
xiangfu | but izchat works just fine. without any problem. | 12:42 |
xiangfu | wpwrak, maybe I try to fix that. but the 'redesign' sound hard to me. :-) | 12:43 |
xiangfu | every time the ar71xx OpenWrt boot. it give a kernel oops : http://pastebin.com/12SYPgEC | 12:45 |
qi-bot | [commit] Xiangfu: nanonote: compile-openwrt-xburst.sh: only send message when success build (master) http://qi-hw.com/p/openwrt-packages/4ae1eb1 | 14:38 |
qi-bot | [commit] Xiangfu: new package: urjtag: initial port (master) http://qi-hw.com/p/openwrt-packages/2cc7f1b | 14:38 |
qi-bot | [commit] Xiangfu: new package: bitcoin: initial port, not finish yet (master) http://qi-hw.com/p/openwrt-packages/7858183 | 14:38 |
kristianpaul | interesting shippenf for HK (Air parcel) took 4 days just to get dispached, and others 5 to arrive, not bad | 16:43 |
kristianpaul | shipment* from* | 16:43 |
wpwrak | by steamboat ? | 16:53 |
kristianpaul | no no | 16:54 |
kristianpaul | air mail | 16:55 |
whitequark | btw, when I look at this: http://www.adafruit.com/products/885 | 18:19 |
whitequark | and read that android fully supports these peripherals from 1.5 on almost all devices | 18:19 |
whitequark | I think that google is awesomely open | 18:19 |
whitequark | not exactly true, but still quite friendly to makers | 18:19 |
GNUtoo-desktop | yes, also note that you can run your own apps, and that is compatible with gplv3, contrarly to iphone | 18:20 |
whitequark | yeah, with iphone you can't even use a single charger for all models of the phone | 18:22 |
whitequark | one of biggest and widest tech WTFs | 18:22 |
whitequark | also, arguably the worst use of resistors, ever | 18:22 |
viric | Do you know if there is UserModeLinux for mips? | 18:25 |
viric | I imagine usermodelinux is platform dependant :) | 18:26 |
whitequark | ew | 18:27 |
whitequark | even if there is (I'll look in a sec), it won't run on nn | 18:27 |
whitequark | too small ram | 18:27 |
viric | I've a fuloong | 18:28 |
viric | btrfs people have misaligned access troubles... | 18:28 |
viric | and I thought maybe I could simply run it with UML | 18:29 |
whitequark | hmm | 18:35 |
whitequark | fuloong? | 18:35 |
whitequark | sounds weird | 18:35 |
whitequark | besides which, uml won't fix your unaligned access | 18:36 |
whitequark | (unless kernel can emulate unaligned access for usermode processes, which I doubt) | 18:36 |
whitequark | ah ok, seems that it does | 18:38 |
whitequark | but I'd expect it to come with a huge perf penalty | 18:38 |
larsc | it does | 18:39 |
larsc | but the kernel should actually also fix misasligned access in the kernel | 18:39 |
whitequark | larsc: and make you spend a lot of time figuring out why the hell doesn't it work any fast? | 18:40 |
whitequark | exceptions shouldn't be used for control flow | 18:41 |
whitequark | especially when there is no explicit control flow at all | 18:41 |
larsc | whitequark: there is a file in proc which tells you how many unaligend access exceptions you have | 18:41 |
whitequark | larsc: but does it give you a backtrace? | 18:42 |
lindi- | whitequark: you can make it log the IP | 18:42 |
lindi- | and use systemtap to get backtrace | 18:42 |
larsc | whitequark: you can disable the emulation in proc | 18:43 |
whitequark | ah, nice then | 18:43 |
whitequark | http://lxr.linux.no/linux+v3.4.2/arch/um/ | 18:44 |
whitequark | no uml for mips | 18:44 |
viric | well, you can tweak if you want the kernel to handle the unaligned accesses, or sigbus | 18:46 |
viric | But the kernel can't handle unaligned accesses *in the kernel*, right? | 18:47 |
viric | whitequark: same for arm I imagine | 18:47 |
larsc | viric: why not? | 18:47 |
viric | larsc: I imagined the kernel will have that only for user mode code | 18:48 |
larsc | unless there is a analigned access in the unaligend access exception handler it will work fine ;) | 18:48 |
viric | :) | 18:48 |
larsc | afaik | 18:48 |
viric | what's the /proc place for that? I Can't find it | 18:49 |
whitequark | well, or if there's something with interrupt priorities | 18:49 |
viric | I remember it, but I fail now | 18:49 |
whitequark | I don't remember mips ISA & exception semantics good enough for that | 18:49 |
larsc | i remember performance issues with openwrt systems where for example ip packets were misaligned, so it should work | 18:51 |
viric | ah | 18:56 |
lindi- | viric: find /proc |grep alignment | 18:56 |
viric | lindi-: that's what I run :) | 18:56 |
viric | nothing | 18:56 |
viric | maybe I miss some kernel feature | 18:56 |
viric | maybe it moved to /sys | 18:58 |
viric | ? | 18:58 |
viric | on ARM I have /sys/module/kernel/parameters/alignment | 18:59 |
viric | ah /proc/cpu/alignment | 18:59 |
viric | (on ARM too, not on mips) | 18:59 |
viric | CONFIG_ALIGNMENT_TRAP=y | 19:01 |
viric | at least on arm. Is it there on mips? | 19:01 |
viric | I fail to find it | 19:02 |
larsc | I think it is always built-in | 19:03 |
viric | arch/mips/kernel/unaligned.c ... but why do I have programs failing with SIGBUS? | 19:03 |
larsc | there should be files in debugfs where you can change the behaviour | 19:04 |
larsc | unaligned_instructions | 19:04 |
viric | aren't those counters? | 19:04 |
larsc | and unaligned_action | 19:04 |
larsc | an action can be | 19:05 |
larsc | UNALIGNED_ACTION_QUIET, | 19:05 |
larsc | UNALIGNED_ACTION_SIGNAL, | 19:05 |
larsc | UNALIGNED_ACTION_SHOW, | 19:05 |
viric | ah, action=0 now... | 19:05 |
larsc | which should be ACTION_QUIET | 19:06 |
viric | but I get sigbus | 19:06 |
viric | :) | 19:06 |
viric | maybe on some instruction not handled by the exception; let's see | 19:06 |
viric | Program received signal SIGBUS, Bus error. | 19:06 |
viric | 0x7741334c in WebCore::TimerBase::stop() () | 19:06 |
viric | 0x77413348 <+16>: lw t9,16496(v0) | 19:06 |
viric | => 0x7741334c <+20>: b 0x77413010 <_ZN7WebCore9TimerBase15setNextFireTimeEd> | 19:06 |
larsc | that's not a unaligned access i guess | 19:08 |
viric | what can it be? | 19:08 |
viric | t9: 0x77413010 | 19:09 |
viric | v0: 0x77f97490 | 19:09 |
viric | 16496+v0 is not aligned... do I understand? | 19:10 |
larsc | if the 16496 is decimal it should be | 19:11 |
viric | hm but I breakpoint there, and it's all fine, until at some point... sigbus there. | 19:11 |
viric | I don't know what else can cause sigbus. | 19:12 |
larsc | i suppose you did not hot-unplug your ram ;) | 19:14 |
viric | ehem | 19:18 |
viric | no :) | 19:18 |
viric | I think in the fuloong world, everyone considers the sigbus an alignment problem | 19:18 |
viric | http://sprunge.us/YeLL | 19:20 |
viric | that's the kernel with _SHOW | 19:20 |
viric | there are lots of unaligned access before this that gets sigbus though | 19:20 |
viric | but $epc is exactly that. | 19:21 |
viric | I've to find out status and cause now... | 19:22 |
viric | [354412.300000] Status: 240044f3 KX SX UX USER EXL IE | 19:22 |
viric | [354412.300000] Cause : 90008014 | 19:22 |
larsc | if it get's to the show part it shouldn't cause a sigbus | 19:26 |
larsc | gets | 19:27 |
viric | The status register says: a) Exception taken in a Branch delay slot. b) Breakpoint exception. | 19:28 |
viric | let's see without gcb | 19:28 |
viric | gdb | 19:28 |
viric | I meant "the cause register", above. | 19:29 |
viric | I tried without gdb, and the cause register is equal. branch delay slot, and breakpoint exception. | 19:29 |
viric | "in a branch delay slot, the EPC register contains the address of the preceding branch instruction" | 19:31 |
viric | I wish I knew what a 'delay slot' is | 19:33 |
larsc | the instruction after the branch | 19:33 |
larsc | so i guess we want to see 0x77413350 | 19:34 |
viric | Aha... | 19:35 |
viric | 0x77413350 <+24>: sdc1 $f13,16(a0) | 19:36 |
viric | a0: 0x730378dc | 19:36 |
viric | that's bad alignment, isn't it? | 19:36 |
larsc | case sdc1_op: | 19:36 |
larsc | /* | 19:36 |
larsc | * I herewith declare: this does not happen. So send SIGBUS. | 19:36 |
larsc | */ | 19:36 |
larsc | goto sigbus; | 19:36 |
viric | Pfa :D | 19:36 |
viric | Time to write a patch I guess. | 19:36 |
viric | nice hehe | 19:36 |
viric | but it takes knowing mips assembly to write a handler for that.. | 19:37 |
larsc | should userspace ever do a sdc? | 19:38 |
viric | it's webkit | 19:38 |
larsc | or is that access to the floatingpoint coprocessor? | 19:38 |
viric | maybe it's invalid code simply? | 19:39 |
viric | it has fpu, yes | 19:39 |
viric | it's listed in the fpu instructions... | 19:40 |
larsc | The effective address must be naturally aligned. If any of the three least-significant bits | 19:40 |
larsc | of the effective address are non-zero, an Address Error exception occurs. | 19:40 |
larsc | MIPS IV: The low-order 3 bits of the offset field must be zero. If they are not, the result | 19:40 |
larsc | of the instruction is undefined. | 19:40 |
viric | clear | 19:40 |
viric | who to blame? gcc? | 19:41 |
larsc | if in doubt webkit ;) | 19:41 |
viric | I'll check if there is any fpu instruction there | 19:41 |
viric | But it would be nice if the kernel could handle those | 19:41 |
viric | larsc: what's that manual you checked? | 19:44 |
larsc | mips-iv.pdf | 19:45 |
viric | http://sprunge.us/VWYi | 19:48 |
viric | m_repeatInterval is a double... | 19:49 |
viric | f13 = 0 | 19:50 |
larsc | so a gcc bug? | 19:50 |
viric | so it looks like running the m_repeatInterval = 0;, but that member being at an unaligned position. Weird! | 19:50 |
larsc | can you do a print ((TimerBase *)(NULL))->m_repeatInterval? | 19:51 |
larsc | aehm | 19:51 |
larsc | can you do a print &((TimerBase *)(NULL))->m_repeatInterval? | 19:52 |
larsc | in gdb | 19:52 |
larsc | should probably be 16 | 19:52 |
alexander | Is it possible to have a SD card hub? So one can have 2 SD cards connected to the nano note. | 19:53 |
viric | I don't have debug symbols | 19:53 |
viric | http://trac.webkit.org/browser/releases/WebKitGTK/webkit-1.4.0/Source/WebCore/platform/Timer.h this is the class | 19:53 |
alexander | \help | 19:54 |
viric | (supper) | 19:54 |
larsc | i suppose for some reason the whole object is not 8bit aligned | 19:55 |
viric | 8byte | 20:06 |
larsc | yes :) | 20:06 |
viric | ok let's try to build it with debug symbols then | 20:07 |
larsc | i would assume that m_repeatInterval is properly aligend inside the object | 20:09 |
larsc | but the object is not | 20:10 |
viric | ah could be | 20:10 |
viric | hm well, 'a0' was not aligned, but the offset was 16. | 20:10 |
larsc | exactly | 20:10 |
viric | interesting | 20:10 |
larsc | do you have a backtrace of the sigbus? | 20:15 |
viric | yes | 20:16 |
viric | well, I reproduce it in 10 seconds | 20:16 |
viric | http://sprunge.us/ZVPR | 20:18 |
viric | umh | 20:23 |
viric | Webkit has its own allocator | 20:23 |
larsc | and there is no timer->stop() in ~RenderTextControlSingleLine | 20:24 |
viric | It's in the destructor of TimerBase | 20:25 |
viric | I look at JavaScriptCore/wtf/FastMalloc.cpp | 20:27 |
viric | static const size_t kAlignShift = 3; | 20:27 |
viric | static const size_t kAlignment = 1 << kAlignShift; | 20:27 |
larsc | I'm wondering a bit. The constructor for TimerBase already accesses m_nextFireTIme | 20:31 |
viric | hm | 20:31 |
viric | mistery | 20:32 |
viric | maybe they move objects. They have their own allocator :) | 20:33 |
larsc | you just found a zero day exploit for webkit ;) | 20:33 |
viric | It is even not the latest webkit... | 20:34 |
viric | and I can't find the 'fastmalloc' thing in the latest. :) | 20:34 |
viric | well, thank you for the help | 20:36 |
viric | I'll try midori (that uses a newer webkit) | 20:36 |
viric | I'll disassemble the timerbase constructor though | 20:42 |
viric | larsc: the constructor does: | 20:48 |
viric | 90ed18: fc800008 sd zero,8(a0) | 20:48 |
viric | 90ed1c: fc800010 sd zero,16(a0) | 20:48 |
viric | And that's handler by the kernel trap | 20:49 |
larsc | ah, so it doesn't use floating point instructions | 20:51 |
viric | it uses floating point instructions | 20:53 |
viric | but does not access the coprocessor registers | 20:53 |
viric | sd vs sdc | 20:54 |
viric | So it's a bit of saying... mips64 coprocessors are not really that much supported, given the lack of kernel traps :) | 20:55 |
larsc | 'sd' is just normal memory access, isn't it? | 20:56 |
viric | ah doubleword, yes | 20:56 |
viric | I thought 'double' :) | 20:57 |
viric | what's that 1:, 2: ... in front of assembly lines? | 20:59 |
larsc | labels | 21:01 |
larsc | you'll see for example 'b 1b' which means jump to the first label called '1' before this instruction | 21:03 |
larsc | there is also b 1f which jumps to the next label called '1' | 21:03 |
viric | ahh | 21:03 |
viric | thank you | 21:04 |
viric | I can't understand the trap though. | 21:06 |
viric | I wanted to understand one of the implemented traps :) | 21:06 |
viric | .section .fixup,"ax" ... | 21:06 |
viric | magic. | 21:06 |
larsc | i don't get it either | 21:08 |
larsc | or maybe i do | 21:12 |
viric | really? | 21:12 |
viric | what's STR(PTR) there? | 21:12 |
viric | ah, it fills the exception table entry | 21:14 |
larsc | yes | 21:15 |
larsc | PTR is either .dword or .word depending whether it is a 32bit or 64bit kernel | 21:15 |
viric | ahh | 21:15 |
viric | all traps have the same code after the first '.section' | 21:20 |
viric | (in load/store) | 21:20 |
larsc | as far as i understand it, it is used to handle an exception in the fixup code | 21:22 |
viric | ah | 21:22 |
larsc | if there is an exception at address 1b or 2b it will jump to 4b instead | 21:22 |
viric | then it will make it res = -EFAULT | 21:22 |
viric | clear | 21:22 |
larsc | i suppose to emulate a sdc1 you could do a sdc1 to the value variable | 21:24 |
larsc | and then store value at the unaligned address with two stores | 21:25 |
viric | larsc: do you want to see my ldwc1 trap? :) | 21:29 |
viric | http://sprunge.us/BXKM | 21:30 |
viric | hm the last line is wrong I think | 21:31 |
viric | should not be '.rt' | 21:32 |
viric | I bet for regs->regs[insn.f_format.rd] = value; | 21:36 |
larsc | it shouldn't be modifying regs at all | 21:38 |
viric | it's ldc1 | 21:38 |
viric | ldwc1 I mean | 21:38 |
larsc | ah right | 21:38 |
larsc | no | 21:38 |
larsc | wait | 21:38 |
viric | maybe I need an exception handler for mtc | 21:39 |
viric | I added one | 21:40 |
larsc | according to the spec it should be rt | 21:40 |
viric | ouch, typo | 21:41 |
viric | I looked at the mtc1 instruction coding :) | 21:42 |
larsc | but we are writing to a floating point register | 21:42 |
viric | ah yes | 21:42 |
viric | then I did it fine | 21:43 |
viric | it's rd... | 21:43 |
viric | rt is the source | 21:43 |
viric | rd (ft in the manual) the destination | 21:43 |
viric | hm no. all wrong. I don't understand regs->regs :) | 21:44 |
larsc | regs are just the normal registers | 21:44 |
viric | where are the floating point then? | 21:44 |
larsc | struct thread_struct | 21:45 |
larsc | there is a function called get_fpu_regs | 21:46 |
viric | and the thread_struct... where can I get it from? a static variable? | 21:48 |
larsc | get_fpu_regs(current) should give you the fpu registers for the process receiving the signal | 21:52 |
viric | ok | 21:52 |
larsc | anyway time to get some sleep | 21:53 |
larsc | good luck | 21:54 |
viric | :) | 21:54 |
viric | thank you a lot | 21:54 |
viric | fpuregs = get_fpu_regs(current); | 21:54 |
viric | fpuregs[insn.f_format.rd] = value; | 21:54 |
whitequark | btw | 22:52 |
whitequark | for building webkit, esp. the debug version, you'll probably need lots of stuff | 22:53 |
whitequark | a recent multicore cpu, at least 8g of RAM, 64-bit OS | 22:53 |
whitequark | and several hours of CPU time | 22:53 |
viric | :) | 22:54 |
whitequark | more precise | 22:54 |
whitequark | several hours of linking time alone | 22:54 |
viric | due to the debug info? | 22:54 |
whitequark | nope | 22:54 |
whitequark | I've seen only the release version to build for this time | 22:54 |
viric | umh my new kernel does not boot. perfect | 22:54 |
whitequark | I've no idea how webkit devs debug it | 22:54 |
whitequark | it has several millions of symbols | 22:55 |
whitequark | you can get reasonable times on a machine with 64g of RAM and full tree on the ramdisk | 22:55 |
whitequark | still it's exceptionally slow | 22:55 |
viric | hm the release version built fine. | 22:56 |
whitequark | oh, and if you turn on lto, it'll link it several hours, then determine that something in webkit prevents it from doing LTO the way it wants to do it | 22:56 |
whitequark | and the linker will START OVER. | 22:56 |
viric | well, turning lto should be hardcore, yes | 22:59 |
viric | let's see the traps! | 22:59 |
viric | ouch. illegal instruction. hell | 22:59 |
viric | ah it's right | 23:00 |
viric | (my first kernel patch :) | 23:01 |
lindi- | whitequark: debian builds webkit on real arm hardware, no cross-compiling | 23:01 |
lindi- | whitequark: for libv8 this actually caught some real bugs too | 23:02 |
viric | I'm also biulding on real mips hw | 23:40 |
viric | took a while, but... what to do. | 23:41 |
alexander | card | 23:55 |
alexander | doh | 23:55 |
--- Sat Jun 16 2012 | 00:00 |
Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!