[PATCH 2/2] Utilize inotify to detect debugfs changes
From: Yong Shen Signed-off-by: Yong Shen --- clocks.c | 54 +- powerdebug.c |3 +++ powerdebug.h |3 +++ 3 files changed, 59 insertions(+), 1 deletions(-) diff --git a/clocks.c b/clocks.c index 47881c5..a4c54b0 100644 --- a/clocks.c +++ b/clocks.c @@ -16,12 +16,18 @@ #include #include #include +#include +#include #include "powerdebug.h" #include "clocks.h" #define MAX_LINES 120 +int inotify_fd; +int inotify_wd; +static struct pollfd fds; + static char clk_dir_path[PATH_MAX]; static int bold[MAX_LINES]; static char clock_lines[MAX_LINES][128]; @@ -58,11 +64,56 @@ int clock_init(void) if (locate_debugfs(clk_dir_path)) return -1; + inotify_fd = inotify_init(); + if ( inotify_fd < 0 ) { + fprintf(stderr, "inotify_init error.\n" ); + return -1; + } + + inotify_wd = inotify_add_watch(inotify_fd, clk_dir_path, + IN_ALL_EVENTS ); + + fds.fd = inotify_fd; + fds.events = POLLIN; + sprintf(clk_dir_path, "%s/clock", clk_dir_path); return access(clk_dir_path, F_OK); } +#define EVENT_SIZE ( sizeof (struct inotify_event) ) +#define BUF_LEN ( 10 * ( EVENT_SIZE + 16 ) ) + +int debugfs_changed(void) +{ + int length, i = 0; + char buffer[BUF_LEN]; + + if (inotify_fd <= 0) { + return 1; + } + + poll(&fds, 1, 1); + if (fds.revents != POLLIN) { + return 0; + } + + length = read(inotify_fd, buffer, BUF_LEN); + + if (length < 0) + return 0; + + while (i < length) { + struct inotify_event *event = (struct inotify_event *) &buffer[i]; + if (event->mask & IN_ALL_EVENTS) + return 1; + + i += EVENT_SIZE + event->len; + } + + return 0; +} + static int file_read_from_format(char *file, int *value, const char *format) { FILE *f; @@ -379,7 +430,8 @@ static int clk_number_recursive(char *clk_path) static int get_clk_number(char *clk_path) { - if ((max_clk_num != 0)) /* no nodes have been added */ + /* no nodes have been added */ + if ((max_clk_num != 0) && (!debugfs_changed())) return max_clk_num; else { max_clk_num = 0; diff --git a/powerdebug.c b/powerdebug.c index a26d16f..621052f 100644 --- a/powerdebug.c +++ b/powerdebug.c @@ -14,6 +14,7 @@ ***/ #include +#include #include #include "regulator.h" #include "display.h" @@ -390,6 +391,8 @@ int main(int argc, char **argv) powerdebug_display(options, regulators_info, numregulators); release_all_clk_info_mem(); + inotify_rm_watch(inotify_fd, inotify_wd); + close(inotify_fd); return ret < 0; } diff --git a/powerdebug.h b/powerdebug.h index f97e3b9..4071eaa 100644 --- a/powerdebug.h +++ b/powerdebug.h @@ -54,3 +54,6 @@ extern void create_selectedwindow(int selectedwindow); struct regulator_info; extern void show_regulator_info(struct regulator_info *reg_info, int nr_reg, int verbose); +extern int inotify_fd; +extern int inotify_wd; +extern int need_refresh(void); -- 1.7.1 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH 1/2] resolve clock_info reallocationg issue
From: Yong Shen everytime when screen refresh, the clock_info data stucture will be reacclocated, which does not make sence. This patch addresses this issue. Signed-off-by: Yong Shen --- clocks.c | 198 +++-- clocks.h |3 +- powerdebug.c |2 + powerdebug.h |2 +- 4 files changed, 126 insertions(+), 79 deletions(-) diff --git a/clocks.c b/clocks.c index b556644..47881c5 100644 --- a/clocks.c +++ b/clocks.c @@ -133,18 +133,18 @@ static void dump_parent(struct clock_info *clk, int line, bool dump) static struct clock_info *find_clock(struct clock_info *clk, char *clkarg) { int i; - struct clock_info *ret = clk; + struct clock_info *ret = clk, *tmp; if (!strcmp(clk->name, clkarg)) return ret; if (clk->children) { - for (i = 0; i < clk->num_children; i++) { - if (!strcmp(clk->children[i]->name, clkarg)) - return clk->children[i]; + for (tmp = clk->children, i = 0; i < clk->num_children; i++, tmp = tmp->buddy) { + if (!strcmp(tmp->name, clkarg)) + return tmp; } - for (i = 0; i < clk->num_children; i++) { - ret = find_clock(clk->children[i], clkarg); + for (tmp = clk->children, i = 0; i < clk->num_children; i++, tmp = tmp->buddy) { + ret = find_clock(tmp, clkarg); if (ret) return ret; } @@ -194,51 +194,11 @@ void find_parents_for_clock(char *clkname, int complete) dump_all_parents(clkname, false); } -static void destroy_clocks_info_recur(struct clock_info *clock) -{ - int i; - - if (clock && clock->num_children) { - for (i = (clock->num_children - 1); i >= 0; i--) { - fflush(stdin); - destroy_clocks_info_recur(clock->children[i]); - if (!i) { - free(clock->children); - clock->children = NULL; - clock->num_children = 0; - } - } - } -} - -static void destroy_clocks_info(void) -{ - int i; - - if (!clocks_info) - return; - - if (clocks_info->num_children) { - for (i = (clocks_info->num_children - 1); i >= 0 ; i--) { - destroy_clocks_info_recur(clocks_info->children[i]); - if (!i) { - free(clocks_info->children); - clocks_info->children = NULL; - } - } - } - clocks_info->num_children = 0; - free(clocks_info); - clocks_info = NULL; -} - - int read_and_print_clock_info(int verbose, int hrow, int selected) { print_one_clock(0, "Reading Clock Tree ...", 1, 1); if (!old_clock_line_no || selected == REFRESH_WINDOW) { - destroy_clocks_info(); read_clock_info(clk_dir_path); } @@ -280,11 +240,12 @@ static void prepare_name_str(char *namestr, struct clock_info *clock) static void collapse_all_subclocks(struct clock_info *clock) { int i; + struct clock_info *tmp; clock->expanded = 0; if (clock->num_children) - for (i = 0; i < clock->num_children; i++) - collapse_all_subclocks(clock->children[i]); + for (tmp = clock->children, i = 0; i < clock->num_children; i++, tmp = tmp->buddy) + collapse_all_subclocks(tmp); } static void add_clock_details_recur(struct clock_info *clock, @@ -295,6 +256,7 @@ static void add_clock_details_recur(struct clock_info *clock, char rate_str[64]; char name_str[256]; double drate = (double)clock->rate; + struct clock_info *tmp; if (drate > 1000 && drate < 100) { unit = "KHz"; @@ -324,23 +286,23 @@ static void add_clock_details_recur(struct clock_info *clock, } if (clock->expanded && clock->num_children) - for (i = 0; i < clock->num_children; i++) - add_clock_details_recur(clock->children[i], - hrow, selected); + for (tmp = clock->children, i = 0; i < clock->num_children; i++, tmp = tmp->buddy) + add_clock_details_recur(tmp, hrow, selected); + strcpy(clock_lines[clock_line_no], ""); } void print_clock_info(int verbose, int hrow, int selected) { int i, count = 0, delta; + struct clock_info *tmp; (void)verbose; print_clock_header(); - for (i = 0; i < clocks_info->num_children; i++) - add_clock_details_recur(clocks_i
Bug: SMDKV310: System hang during reboot
Hi, While executing reboot call on SMDKV310, the system hangs during cpu_proc_fin() call. Commenting out this line of code, the reboot works properly. --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S @@ -46,7 +46,6 @@ ENTRY(cpu_v7_proc_fin) mrc p15, 0, r0, c1, c0, 0 @ ctrl register bic r0, r0, #0x1000 @ ...i bic r0, r0, #0x0006 @ .ca. - mcr p15, 0, r0, c1, c0, 0 @ disable caches mov pc, lr ENDPROC(cpu_v7_proc_fin) Are we missing something in the Exynos4 machine code or is it a CPU_V7 specific issue? Regards, Tushar ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [PATCH 2/2] Utilize inotify to detect debugfs changes
On 04/05/2011 10:28 AM, yong.s...@linaro.org wrote: From: Yong Shen Signed-off-by: Yong Shen --- clocks.c | 54 +- powerdebug.c |3 +++ powerdebug.h |3 +++ 3 files changed, 59 insertions(+), 1 deletions(-) diff --git a/clocks.c b/clocks.c index 47881c5..a4c54b0 100644 --- a/clocks.c +++ b/clocks.c @@ -16,12 +16,18 @@ #include #include #include +#include +#include #include "powerdebug.h" #include "clocks.h" #define MAX_LINES 120 +int inotify_fd; +int inotify_wd; +static struct pollfd fds; + static char clk_dir_path[PATH_MAX]; static int bold[MAX_LINES]; static char clock_lines[MAX_LINES][128]; @@ -58,11 +64,56 @@ int clock_init(void) if (locate_debugfs(clk_dir_path)) return -1; + inotify_fd = inotify_init(); + if ( inotify_fd< 0 ) { + fprintf(stderr, "inotify_init error.\n" ); + return -1; + } + + inotify_wd = inotify_add_watch(inotify_fd, clk_dir_path, + IN_ALL_EVENTS ); + + fds.fd = inotify_fd; + fds.events = POLLIN; + sprintf(clk_dir_path, "%s/clock", clk_dir_path); return access(clk_dir_path, F_OK); } +#define EVENT_SIZE ( sizeof (struct inotify_event) ) +#define BUF_LEN ( 10 * ( EVENT_SIZE + 16 ) ) + +int debugfs_changed(void) +{ + int length, i = 0; + char buffer[BUF_LEN]; + + if (inotify_fd<= 0) { + return 1; + } + + poll(&fds, 1, 1); + if (fds.revents != POLLIN) { + return 0; + } + + length = read(inotify_fd, buffer, BUF_LEN); + + if (length< 0) + return 0; + + while (i< length) { + struct inotify_event *event = (struct inotify_event *)&buffer[i]; + if (event->mask& IN_ALL_EVENTS) + return 1; + + i += EVENT_SIZE + event->len; + } + + return 0; +} + static int file_read_from_format(char *file, int *value, const char *format) { FILE *f; @@ -379,7 +430,8 @@ static int clk_number_recursive(char *clk_path) static int get_clk_number(char *clk_path) { - if ((max_clk_num != 0)) /* no nodes have been added */ + /* no nodes have been added */ + if ((max_clk_num != 0)&& (!debugfs_changed())) return max_clk_num; Thats wrong, you have to add the inotify_wd to the mainloop code. Index: dlezcano/work/src/powerdebug/powerdebug.c === --- dlezcano.orig/work/src/powerdebug/powerdebug.c2011-04-05 14:38:40.437379003 +0200 +++ dlezcano/work/src/powerdebug/powerdebug.c2011-04-05 14:42:48.397379003 +0200 @@ -291,16 +291,21 @@ int mainloop(struct powerdebug_options * FD_ZERO(&readfds); FD_SET(0, &readfds); +FD_SET(inotify_fd, &readfds); tval.tv_sec = options->ticktime; tval.tv_usec = (options->ticktime - tval.tv_sec) * 100; -key = select(1, &readfds, NULL, NULL, &tval); +key = select(inotify_fd + 1, &readfds, NULL, NULL, &tval); if (!key) continue; -if (keystroke_callback(&enter_hit, &findparent_ncurses, - clkname_str, &refreshwin, options)) -break; +if (FD_ISSET(0, &readfds)) +if (keystroke_callback(&enter_hit, &findparent_ncurses, + clkname_str, &refreshwin, options)) +break; + +if (FD_ISSET(inotify_fd, &readfds)) +thecallback(); } else { max_clk_num = 0; diff --git a/powerdebug.c b/powerdebug.c index a26d16f..621052f 100644 --- a/powerdebug.c +++ b/powerdebug.c @@ -14,6 +14,7 @@ ***/ #include +#include #include #include "regulator.h" #include "display.h" @@ -390,6 +391,8 @@ int main(int argc, char **argv) powerdebug_display(options, regulators_info, numregulators); release_all_clk_info_mem(); + inotify_rm_watch(inotify_fd, inotify_wd); + close(inotify_fd); return ret< 0; } diff --git a/powerdebug.h b/powerdebug.h index f97e3b9..4071eaa 100644 --- a/powerdebug.h +++ b/powerdebug.h @@ -54,3 +54,6 @@ extern void create_selectedwindow(int selectedwindow); struct regulator_info; extern void show_regulator_info(struct regulator_info *reg_info, int nr_reg, int verbose); +extern int inotify_fd; +extern int inotify_wd; +extern int need_refresh(void); I would suggest you create a clock_info structure where you store the inotify_fd and inotify_wd and you use a clock_fini function. struct clock_info *clock_info; ... clock_info = clock_init(); ... clock_fini(clock_info); ... That will prevent to add more global variables and extern definitions.
Pathes for "Produce boottarball that includes rootfs, kernel and bootloader" for Android
Hi, I will push some patches for review. They are all for Android. For the blueprint https://blueprints.launchpad.net/linaro-android/+spec/linaro-android-platform-kernel-boottarball . I have had problems setting the subject correctly, but they are for the android manifest, linaro/device/common, linaro/device/beagleboard and build gits. BR, Patrik ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH] Added kernel and u-boot
--- default.xml | 17 ++--- 1 files changed, 10 insertions(+), 7 deletions(-) diff --git a/default.xml b/default.xml index dc6411d..09fca60 100644 --- a/default.xml +++ b/default.xml @@ -7,21 +7,24 @@ remote="korg" /> + fetch="git://git.linaro.org/" /> - - - - - - + + + + + + + + + -- 1.7.1 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH 2/2] Enable u-boot
Use u-boot as the 2NDBOOTLOADER. --- BoardConfig.mk |5 - 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/BoardConfig.mk b/BoardConfig.mk index 11b49a8..54d3675 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -4,9 +4,12 @@ # TARGET_BOARD_PLATFORM := omap3 -TARGET_NO_BOOTLOADER := true +TARGET_NO_BOOTLOADER := false TARGET_NO_KERNEL := false KERNEL_CONFIG := android_omap3_defconfig +UBOOT_CONFIG := omap3_beagle_config +INSTALLED_2NDBOOTLOADER_TARGET := u-boot.bin +TARGET_NO_RECOVERY := true TARGET_NO_RADIOIMAGE := true TARGET_PROVIDES_INIT_RC := true BOARD_USES_GENERIC_AUDIO := false -- 1.7.1 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH 1/2] Enable kernel
Set TARGET_NO_KERNEL to false in BoardConfig --- BoardConfig.mk |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/BoardConfig.mk b/BoardConfig.mk index f0703c7..11b49a8 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -5,7 +5,8 @@ TARGET_BOARD_PLATFORM := omap3 TARGET_NO_BOOTLOADER := true -TARGET_NO_KERNEL := true +TARGET_NO_KERNEL := false +KERNEL_CONFIG := android_omap3_defconfig TARGET_NO_RADIOIMAGE := true TARGET_PROVIDES_INIT_RC := true BOARD_USES_GENERIC_AUDIO := false -- 1.7.1 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH 1/2] kernel in root tar
--- tasks/kernel.mk |8 tasks/tarballs.mk |9 + 2 files changed, 17 insertions(+), 0 deletions(-) create mode 100644 tasks/kernel.mk diff --git a/tasks/kernel.mk b/tasks/kernel.mk new file mode 100644 index 000..513bafa --- /dev/null +++ b/tasks/kernel.mk @@ -0,0 +1,8 @@ +android_kernel: + cd $(TOP)/kernel &&\ + make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig $(KERNEL_CONFIG) &&\ + make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage + +$(PRODUCT_OUT)/kernel: android_kernel + echo HUPP : $(PRODUCT_OUT) : $(TOP) : $(KERNEL_CONFIG) : $(PRODUCT_OUT)/kernel + ln -sf ../../../../kernel/arch/arm/boot/uImage $(PRODUCT_OUT)/kernel \ No newline at end of file diff --git a/tasks/tarballs.mk b/tasks/tarballs.mk index e6354fc..6547230 100644 --- a/tasks/tarballs.mk +++ b/tasks/tarballs.mk @@ -21,7 +21,16 @@ root_tar := $(PRODUCT_OUT)/root.tar INSTALLED_ROOTTARBALL_TARGET := $(root_tar).$(ROOT_TARBALL_FORMAT) $(INSTALLED_ROOTTARBALL_TARGET): PRIVATE_ROOT_TAR := $(root_tar) + +ifneq ($(strip $(TARGET_NO_KERNEL)),true) +$(INSTALLED_ROOTTARBALL_TARGET): $(FS_GET_STATS) $(INTERNAL_RAMDISK_FILES) $(PRODUCT_OUT)/kernel + cp $(PRODUCT_OUT)/kernel $(PRODUCT_OUT)/root/kernel + $(build-roottarball-target) + +else $(INSTALLED_ROOTTARBALL_TARGET): $(FS_GET_STATS) $(INTERNAL_RAMDISK_FILES) $(build-roottarball-target) +endif + roottarball: $(INSTALLED_ROOTTARBALL_TARGET) \ No newline at end of file -- 1.7.1 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH 2/2] Rules for building u-boot
--- tasks/uboot.mk | 10 ++ 1 files changed, 10 insertions(+), 0 deletions(-) create mode 100644 tasks/uboot.mk diff --git a/tasks/uboot.mk b/tasks/uboot.mk new file mode 100644 index 000..3d297c0 --- /dev/null +++ b/tasks/uboot.mk @@ -0,0 +1,10 @@ +android_uboot: + rm -fr $(PRODUCT_OUT)/obj/u-boot + mkdir $(PRODUCT_OUT)/obj/u-boot + cd $(TOP)/u-boot &&\ + make O=../$(PRODUCT_OUT)/obj/u-boot CROSS_COMPILE=arm-linux-gnueabi- $(UBOOT_CONFIG) &&\ + make O=../$(PRODUCT_OUT)/obj/u-boot CROSS_COMPILE=arm-linux-gnueabi- + +$(PRODUCT_OUT)/u-boot.bin: android_uboot + ln -sf obj/u-boot/u-boot.bin $(PRODUCT_OUT)/u-boot.bin + -- 1.7.1 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH] Added missing " in build-boottarball-target
--- core/Makefile |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index 8b7d6de..857dd20 100644 --- a/core/Makefile +++ b/core/Makefile @@ -794,7 +794,7 @@ stnod: systemtarball-nodeps ### ## boot tarball define build-boottarball-target -$(hide) echo "Target boot fs tarball: $(INSTALLED_BOOTTARBALL_TARGET) +$(hide) echo "Target boot fs tarball: $(INSTALLED_BOOTTARBALL_TARGET)" $(hide) mkdir -p $(PRODUCT_OUT)/boot $(hide) cp -f $(INTERNAL_BOOTIMAGE_FILES) $(PRODUCT_OUT)/boot/. $(hide) echo $(BOARD_KERNEL_CMDLINE) > $(PRODUCT_OUT)/boot/cmdline @@ -809,7 +809,7 @@ endif boot_tar := $(PRODUCT_OUT)/boot.tar INSTALLED_BOOTTARBALL_TARGET := $(boot_tar).$(BOOT_TARBALL_FORMAT) -$(INSTALLED_BOOTTARBALL_TARGET): PRIVATE_BOOT_TAR := $(boot_tar) +PRIVATE_BOOT_TAR := $(boot_tar) $(INSTALLED_BOOTTARBALL_TARGET): $(FS_GET_STATS) $(INTERNAL_BOOTIMAGE_FILES) $(build-boottarball-target) -- 1.7.1 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: Pathes for "Produce boottarball that includes rootfs, kernel and bootloader" for Android
On 6 April 2011 01:08, Patrik Ryd wrote: > Hi, > I will push some patches for review. They are all for Android. hi Patrik, Great work! > For the blueprint > https://blueprints.launchpad.net/linaro-android/+spec/linaro-android-platform-kernel-boottarball. > I have had problems setting the subject correctly, but they are for the > android manifest, linaro/device/common, linaro/device/beagleboard and build > gits. As far as I know, you can use parameter "--subject-prefix=Subject-Prefix" (such as "PATCH android/device/common") to 'git format-patch' when you are going to send patches. Please check 'git format-patch --help' for details. Regards, -jserv ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [powerdebug 01/35] change regulator init function
On 04/04/2011 11:53 AM, Amit Kucheria wrote: Daniel, I've now reviewed, tested and merged this entire series. Some minor changes were made to a handful of commit messages. Thanks for taking the time to make the changes self-contained, easily bisectable and making sure they don't break builds (I checked with git test-sequence). One quick note: I still see the segmentation fault with your patch in dump mode. Hi Amit, I was not able to reproduce the segfault. That does not mean there isn't a bug but possibly it appears on a different hardware, I am using a igep-v2. ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[NOTES] Minutes & Actions: Kernel Working Group meetings of April 04, 2011
Enclosed you'll find a link to the agenda, minutes, actions and IRC logs from the Linaro kernel working group weekly meetings of April 04, 2011. https://wiki.linaro.org/WorkingGroups/KernelConsolidation/Meetings/2011-04-04 == Summary == * Starting up the planning for next cycle * Six high-level TRs: - (1) device tree, (2) Android, (3) kernel/uboot support for new SoCs/boards (including standard architecture), - (4) get to a monthly cadence for John Rigby, (5) improve performance of kernel/uboot for upcoming boards/SoCs, and (6) improve RAS for same. * For 4) we need to get a monthly cadence for John Rigby, we need to help John Rigby to put together a monthly image for testing/evaluation. * There are a lot of not upstream-headed patches, Andy will try to separate them out into a good bad and ugly pile. * Discussion whether networking should be a new focus area for the group. Paull will bring this topic to the TSC to see whether they will be in support of handling Network device Drivers fix-ups and improvement. * Device Tree * All of the u-boot patches are in jcrigby's tree that covers omap3/4, samsung, freescale * On the kernel side efika, panda, overo, samsung and beagle support has been patched in and jcrigby will be pulling them into his stable tree * For Android - After alarmtimers is finished, John thinks lowmemorykiller would be a good area to look into. * Some of the kconfig Work Items will be POSTPONED to next cycle, as Jason will test kexec and John has to concentrate on Android kernel tree. Regards, Mounir ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [PATCH 2/2] Rules for building u-boot
On Tue, Apr 5, 2011 at 7:09 PM, Patrik Ryd wrote: > --- > tasks/uboot.mk | 10 ++ > 1 files changed, 10 insertions(+), 0 deletions(-) > create mode 100644 tasks/uboot.mk > > diff --git a/tasks/uboot.mk b/tasks/uboot.mk > new file mode 100644 > index 000..3d297c0 > --- /dev/null > +++ b/tasks/uboot.mk > @@ -0,0 +1,10 @@ > +android_uboot: > + rm -fr $(PRODUCT_OUT)/obj/u-boot > + mkdir $(PRODUCT_OUT)/obj/u-boot > + cd $(TOP)/u-boot &&\ > + make O=../$(PRODUCT_OUT)/obj/u-boot CROSS_COMPILE=arm-linux-gnueabi- > $(UBOOT_CONFIG) &&\ > + make O=../$(PRODUCT_OUT)/obj/u-boot CROSS_COMPILE=arm-linux-gnueabi- do we have to use the host "gnueabi" cross compiler? or could we use the TARGET_TOOLS_PREFIX arm-eabi- one instead for u-boot here? -- - Alexander ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [PATCH 1/2] kernel in root tar
On Tue, Apr 5, 2011 at 7:09 PM, Patrik Ryd wrote: > --- > tasks/kernel.mk | 8 > tasks/tarballs.mk | 9 + > 2 files changed, 17 insertions(+), 0 deletions(-) > create mode 100644 tasks/kernel.mk > > diff --git a/tasks/kernel.mk b/tasks/kernel.mk > new file mode 100644 > index 000..513bafa > --- /dev/null > +++ b/tasks/kernel.mk > @@ -0,0 +1,8 @@ > +android_kernel: > + cd $(TOP)/kernel &&\ > + make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig > $(KERNEL_CONFIG) &&\ > + make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage here TARGET_TOOLS_PREFIX arm-eabi- toolchain could be used as well I guess. Maybe give this a try together with the u-boot one. -- - Alexander ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: OMAP4 MPU DVFS patches
On Tue, Apr 5, 2011 at 12:26 AM, Vishwanath Sripathy wrote: > Yes, Following options have to be enabled in the defconfig to enable cpufreq. > > CONFIG_CPU_FREQ=y > CONFIG_CPU_FREQ_GOV_USERSPACE=y > CONFIG_OMAP_SMARTREFLEX=y > CONFIG_OMAP_SMARTREFLEX_CLASS3=y Done > > Vishwa > > On Mon, Apr 4, 2011 at 1:52 PM, Amit Kucheria > wrote: >> On Sat, Apr 2, 2011 at 6:21 AM, Nicolas Pitre >> wrote: >>> On Fri, 1 Apr 2011, Vishwanath Sripathy wrote: >>> Hi Nicolas, Pls find rebased OMAP DVFS patches attached. Apologies for the delay as I had to rework some of the patches because of kernel migration. >>> >>> No problem. >>> >>> Merged, thanks. >>> >> >> Vishwa, >> >> Could you also make sure that that DVFS config options are enabled in >> the Linaro configs? If you could state the config options, John >> (cc'ed) could help you with enabling them. >> Linaro does not use the omap2plug_defconfig >> >> /Amit >> > ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [PATCH android/toolchain/build] Add --enable-graphite option to build script
On 29 March 2011 06:34, Jim Huang wrote: > GCC 4.5 and up supports graphite optimization, and cloog and ppl > are required. This change attempts to support some combinations > of ppl and cloog/cloog-ppl libraries. Since cloog and ppl are > written in C++, it implies we might suffer from C++ ABI breakage > problems when host environment changes, that is a well-known issue > in GNU/Linux distributions. Thus, we have to drop runtime libstdc++ > dependency by statically linking libstdc++. Code Review: https://review.source.android.com//#change,22157 Merged in linaro tree. ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH android/frameworks/base] audioflinger: Enable ARMv5TE optimized resampler
Previously, the optimized asm option is only enabled when __ARM_ARCH_5E__ is defined, which is assigned in armv5te.mk rather than armv7-a series targets. This patch checks the ARM CPU feature about half-word multiply instructions to enable ARMv5TE resampler optimization routines properly. Code Review: https://review.source.android.com/#change,22158 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev