Instructions cache flush on ARM (was: N800 Video playback)
On Friday 20 April 2007 19:04, you wrote: I have seen your code in xserver which does the same job for downscaling, but in nonoptimized C and with much higher impact on quality. Using JIT scaler there can improve both image quality and performance a lot. The only my concern is about instruction cache coherency. As ARM requires explicit instructions cache flush for self modyfying or dynamically generated code, I wonder if using just mmap is safe (does it flush cache for allocated region of memory?). Maybe maemo kernel hackers/developers can help with this information? arm linux support flush icache by syscall cacheflush, qemu have this function: static inline void flush_icache_range(unsigned long start, unsigned long stop) { register unsigned long _beg __asm (a1) = start; register unsigned long _end __asm (a2) = stop; register unsigned long _flg __asm (a3) = 0; __asm __volatile__ (swi 0x9f0002 : : r (_beg), r (_end), r (_flg)); } you can reference kernel source arch/arm/kernel/traps.c and include/asm-arm/unistd.h Thanks, it works. But I'm worried about [1]. Looks like EABI has a new syscall interface and this code from qemu uses old ABI. And from reading description at the wiki page, compatibility with old ABI can be disabled (and it makes sense disabling it as this compatibility reduces performance a bit). I wonder if there is a better portable solution (running on any ARM linux or even better on any POSIX compatible system). It would be reasonable to assume that allocating memory with mmap implies that we are going to execute code from that area and instructions cache should be flushed for it: mmap(0, some_buffer_size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); But I wonder if mmap requesting executable block of memory really does instructions cache flush in reality? I just want to submit this ARM optimized scaler to upstream ffmpeg and want to make it as portable as possible. 1. http://wiki.debian.org/ArmEabiPort#head-96054c6cb4209b4a589e645dd50ac0fe133b8ced ___ maemo-developers mailing list maemo-developers@maemo.org https://maemo.org/mailman/listinfo/maemo-developers
Re: IT2007 Hacker Edition - First impression: Onscreen keyboard
Hi, I just couldn't resist and installed the hackeredition (fiasco image) on my n770. It worked well for some time but now I get Systemerror 2. message on start up and I don't have the onscreen keyboard anymore. Anytime I click a textinput field nothing happens. Any ideas? Regards Krischan ___ maemo-developers mailing list maemo-developers@maemo.org https://maemo.org/mailman/listinfo/maemo-developers
Re: Compiling latest kernel (from kernel.org) in n800
Daniel, I finally compiled linux-omap git version. But now, when I flash zImage into n800 the system hangs at Nokia Logo. Any clue? Thank you, Leandro 2007/4/18, Leandro Melo de Sales [EMAIL PROTECTED]: Daniel, still cannot compile linux-omap for n800_defconfig and kernel git. Can you please give me a point to solve this problem? Thank you, Leandro. 2007/4/17, Leandro Melo de Sales [EMAIL PROTECTED]: If I type make n770_defconfig I can compile the kernel, but if I type n800_defconfig I can't, make output is as bellow... any clue? 2007/4/17, Leandro Melo de Sales [EMAIL PROTECTED]: Hi Daniel, I download the git version and then, after some commands I got the following: [sbox-SDK_ARMEL: ~/maemo_kernel_git/linux-omap] make zImage CHK include/linux/version.h make[1]: `include/asm-arm/mach-types.h' is up to date. CHK include/linux/utsrelease.h CHK include/linux/compile.h CC arch/arm/mach-omap2/board-n800.o arch/arm/mach-omap2/board-n800.c:507: error: `MACH_TYPE_NOKIA_N800' undeclared here (not in a function) arch/arm/mach-omap2/board-n800.c:507: error: initializer element is not constant arch/arm/mach-omap2/board-n800.c:507: error: (near initialization for `__mach_desc_NOKIA_N800.nr') make[1]: *** [arch/arm/mach-omap2/board-n800.o] Error 1 make: *** [arch/arm/mach-omap2] Error 2 What is the problem, do you know? I'm using scratchbox. Thank you, Leandro. 2007/4/17, Daniel Stone [EMAIL PROTECTED]: On Tue, Apr 17, 2007 at 05:00:38PM -0300, ext Leandro Melo de Sales wrote: Do you say, linux-omap tree of kernel.org, right? I'm getting the git version of the following tree: http://www.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git Is it right? Yeah, that's the one. Cheers, Daniel -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.3 (GNU/Linux) iD8DBQFGJS2I68xJuWtYYdURAgAjAJ4oA4wZzbHW+zxA40Vt/cQMw52c7wCff0El zil+hl7Cb3jSvDWuAj1Fl8A= =KygY -END PGP SIGNATURE- ___ maemo-developers mailing list maemo-developers@maemo.org https://maemo.org/mailman/listinfo/maemo-developers
Quiver Image Viewer for 770 / N800
Hello: I have been porting my image viewer (quiver) to the maemo platform and I now think it is in a reasonable enough state for others to try. I've created builds for bora and gregale which you can get from one of the following locations: http://downloads.maemo.org/product/quiver/ http://mike.yi.org/projects/quiver/wiki/QuiverForMaemo If you try it out, let me know what you think of it. Mike ___ maemo-developers mailing list maemo-developers@maemo.org https://maemo.org/mailman/listinfo/maemo-developers
How to Run the Cosole based Application in Maemo
Hi, I am new to this platform and i have done some thread programming and socket programming and now i want to run that on maemo. so how can i run it ... is there any console and if there is any console then how to lauch it and how to run my application on it.. plz guide me waiting for ur reply chetan CHETAN NANDA| Junior Software Engineer Mobile:+91 9912075769 (IND)| Office:+91046429 | [EMAIL PROTECTED] QVANTEL SOFTWARE SOLUTIONS LIMITED | PLOT NO 296, ROAD NO 25, JUBILEE HILLS, HYDERABAD-500033, INDIA | www.qvantel.com - Check out what you're missing if you're not on Yahoo! Messenger ___ maemo-developers mailing list maemo-developers@maemo.org https://maemo.org/mailman/listinfo/maemo-developers
Re: init start/stop script won't work when battery is charging
ext wolfg [EMAIL PROTECTED] writes: My init script works fine on 770/N800 when not charging. But if the charger is connected, turn device off then on, it doesn't work. How to solve this problem? When you turn off with charger connected, only the runlevel is changed. Make sure that your init script run when changing to that runlevel. -- Kalle Valo ___ maemo-developers mailing list maemo-developers@maemo.org https://maemo.org/mailman/listinfo/maemo-developers
Re: trouble to disconnect from WiFi AP
Hi, On Fri, 2007-04-20 at 11:04 +0200, ext Jan Vachun wrote: When N800 is already connected to another WiFi AP, calling osso_iap_connect() blocks application until WiFi connection is dropped using Connection manager UI. The blocking thing seems more like a bug to me, but eventually osso_iap_connect should return latest after ~3 minutes due to the D-Bus timeout used. Connectivity works with the following policy in N800: 1) if the requested connection is on, the connect request succeeds 2) if there is no connection on, the requested one is created 3) if there is another connection on, the requested connection is not connected In the majority of cases where applications just ask for any connection, everything works all the time, it's the specific connections that cannot be connected at will. Then there is also the OSSO_IAP_TIMED_CONNECT flag. It must be set if the application triggers a network connection request by itself without user intervention. When this flag is set, case 2) above does not apply, i.e. no application can by itself turn on an (expensive GPRS or CS) network connection. calling osso_iap_disconnect(...) with OSSO_IAP_ANY or with realIAP profile name as parameter returns no error but doesn't disconnect current WiFi connection. Yes. Connectivity policy again. In 770 there was a reference count that disconnected the network connection after the last user exited. As N800 tries to be online as much as possible, the reference count is omitted and the connection does not get disconnected. I have also tried to disconnect through D-BUS using disconnect_iap_async() in following code, but it didn't work either. The library is already using that D-Bus interface, so it will work identically. What is the exact use case where policy 3) above jams your application? HTH, Patrik ___ maemo-developers mailing list maemo-developers@maemo.org https://maemo.org/mailman/listinfo/maemo-developers