Re: Is Pandaboard cpuhotplug working stably?
+ Peter Z On Wed, Dec 21, 2011 at 3:37 PM, Russell King - ARM Linux wrote: > On Wed, Dec 21, 2011 at 05:59:07PM +0800, Barry Song wrote: >> 2011/12/21 Russell King - ARM Linux : >> > cpu hotplug is basically totally buggered - the preconditions placed >> > upon the bringup code path are basically impossible to satisfy in any >> > shape or form at the moment. >> > >> > There's the requirement that the secondary CPU is marked online and >> > active before interrupts are enabled for the thread migration stuff >> > to behave correctly. However, this is incompatible with >> > smp_call_function() >> > which will wait for online CPUs to respond to an IPI - which this one >> > won't because interrupts are disabled. >> > >> > I think there was some discussion about how to fix this but I don't >> > recall the details. >> >> thanks, Russell. then could i think this is an ARM-kernel-specific bug >> which exists on all ARM SMP chips for the moment? >> and that bug doesn't happen on x86: > > I don't think so. There's nothing ARM specific about it. There are few patches floating around for this issue. I posted one version long back [1] and then there was one more form Thomas G. The most recent is from one is from Peter Z [2] which is moving the fix for the cup online race to core code. Can you try Peter's patch with your test-case ? Regards, Santosh [1] https://lkml.org/lkml/2011/6/20/79 [2] https://lkml.org/lkml/2011/12/15/255 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: Is Pandaboard cpuhotplug working stably?
On Thu, Dec 22, 2011 at 02:19:23PM +0530, Shilimkar, Santosh wrote: > + Peter Z > > On Wed, Dec 21, 2011 at 3:37 PM, Russell King - ARM Linux > wrote: > > On Wed, Dec 21, 2011 at 05:59:07PM +0800, Barry Song wrote: > >> 2011/12/21 Russell King - ARM Linux : > >> > cpu hotplug is basically totally buggered - the preconditions placed > >> > upon the bringup code path are basically impossible to satisfy in any > >> > shape or form at the moment. > >> > > >> > There's the requirement that the secondary CPU is marked online and > >> > active before interrupts are enabled for the thread migration stuff > >> > to behave correctly. However, this is incompatible with > >> > smp_call_function() > >> > which will wait for online CPUs to respond to an IPI - which this one > >> > won't because interrupts are disabled. > >> > > >> > I think there was some discussion about how to fix this but I don't > >> > recall the details. > >> > >> thanks, Russell. then could i think this is an ARM-kernel-specific bug > >> which exists on all ARM SMP chips for the moment? > >> and that bug doesn't happen on x86: > > > > I don't think so. There's nothing ARM specific about it. > > There are few patches floating around for this issue. I posted one version > long back [1] and then there was one more form Thomas G. > The most recent is from one is from Peter Z [2] which is moving the > fix for the cup online race to core code. > > Can you try Peter's patch with your test-case ? > > Regards, > Santosh > > [1] https://lkml.org/lkml/2011/6/20/79 > [2] https://lkml.org/lkml/2011/12/15/255 [1] is already fixed - and is not the latest "problem" with this code. Fixing the problem in [1] actually itself created the latest problem with smp_call_function() which wasn't there before this change. Patch [2] refers to this problem and proposes a fix for it. ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: Is Pandaboard cpuhotplug working stably?
On Thu, Dec 22, 2011 at 3:54 PM, Russell King - ARM Linux wrote: > On Thu, Dec 22, 2011 at 02:19:23PM +0530, Shilimkar, Santosh wrote: >> + Peter Z >> >> On Wed, Dec 21, 2011 at 3:37 PM, Russell King - ARM Linux >> wrote: >> > On Wed, Dec 21, 2011 at 05:59:07PM +0800, Barry Song wrote: >> >> 2011/12/21 Russell King - ARM Linux : >> >> > cpu hotplug is basically totally buggered - the preconditions placed >> >> > upon the bringup code path are basically impossible to satisfy in any >> >> > shape or form at the moment. >> >> > >> >> > There's the requirement that the secondary CPU is marked online and >> >> > active before interrupts are enabled for the thread migration stuff >> >> > to behave correctly. However, this is incompatible with >> >> > smp_call_function() >> >> > which will wait for online CPUs to respond to an IPI - which this one >> >> > won't because interrupts are disabled. >> >> > >> >> > I think there was some discussion about how to fix this but I don't >> >> > recall the details. >> >> >> >> thanks, Russell. then could i think this is an ARM-kernel-specific bug >> >> which exists on all ARM SMP chips for the moment? >> >> and that bug doesn't happen on x86: >> > >> > I don't think so. There's nothing ARM specific about it. >> >> There are few patches floating around for this issue. I posted one version >> long back [1] and then there was one more form Thomas G. >> The most recent is from one is from Peter Z [2] which is moving the >> fix for the cup online race to core code. >> >> Can you try Peter's patch with your test-case ? >> >> Regards, >> Santosh >> >> [1] https://lkml.org/lkml/2011/6/20/79 >> [2] https://lkml.org/lkml/2011/12/15/255 > > [1] is already fixed - and is not the latest "problem" with this code. > Fixing the problem in [1] actually itself created the latest problem > with smp_call_function() which wasn't there before this change. Patch > [2] refers to this problem and proposes a fix for it. Thanks Russell for information. Looks like I missed in between thread. Regards Santosh ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH 2/6] Exynos: Clock.c: Use CONFIG_SYS_CLK_FREQ macro
CONFIG_SYS_CLK_FREQ_C210 macro giving notion of S5PC2XX (EXYNOS4) architecture. Replace CONFIG_SYS_CLK_FREQ_C210 with CONFIG_SYS_CLK_FREQ to make it generic for exynos architecture. Signed-off-by: Chander Kashyap --- arch/arm/cpu/armv7/exynos/clock.c |6 +- include/configs/s5pc210_universal.h |1 + 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/arch/arm/cpu/armv7/exynos/clock.c b/arch/arm/cpu/armv7/exynos/clock.c index 0c199cd..4d92c53 100644 --- a/arch/arm/cpu/armv7/exynos/clock.c +++ b/arch/arm/cpu/armv7/exynos/clock.c @@ -26,10 +26,6 @@ #include #include -#ifndef CONFIG_SYS_CLK_FREQ_C210 -#define CONFIG_SYS_CLK_FREQ_C210 2400 -#endif - /* exynos4: return pll clock frequency */ static unsigned long exynos4_get_pll_clk(int pllreg) { @@ -76,7 +72,7 @@ static unsigned long exynos4_get_pll_clk(int pllreg) /* SDIV [2:0] */ s = r & 0x7; - freq = CONFIG_SYS_CLK_FREQ_C210; + freq = CONFIG_SYS_CLK_FREQ; if (pllreg == EPLL) { k = k & 0x; diff --git a/include/configs/s5pc210_universal.h b/include/configs/s5pc210_universal.h index 33c4600..18de956 100644 --- a/include/configs/s5pc210_universal.h +++ b/include/configs/s5pc210_universal.h @@ -50,6 +50,7 @@ /* input clock of PLL: Universal has 24MHz input clock at EXYNOS4210 */ #define CONFIG_SYS_CLK_FREQ_C210 2400 +#define CONFIG_SYS_CLK_FREQCONFIG_SYS_CLK_FREQ_C210 #define CONFIG_SETUP_MEMORY_TAGS #define CONFIG_CMDLINE_TAG -- 1.7.5.4 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH 1/6] Exynos: Add CONFIG_EXYNOS4 Macro to EXYNOS4 based boards
Exynos architecture has varients like exynos4 and exynos5. In order to identify the exynos4 architecture, add CONFIG_EXYNOS4 macro to exynos4 based boards i.e. Origen, smdkv310 and s5pc210_universal. Signed-off-by: Chander Kashyap --- include/configs/origen.h|1 + include/configs/s5pc210_universal.h |1 + include/configs/smdkv310.h |1 + 3 files changed, 3 insertions(+), 0 deletions(-) diff --git a/include/configs/origen.h b/include/configs/origen.h index cd502d1..53bd5fc 100644 --- a/include/configs/origen.h +++ b/include/configs/origen.h @@ -28,6 +28,7 @@ /* High Level Configuration Options */ #define CONFIG_SAMSUNG 1 /* SAMSUNG core */ #define CONFIG_S5P 1 /* S5P Family */ +#define CONFIG_EXYNOS4 1 /* EXYNOS4 Family */ #define CONFIG_EXYNOS4210 1 /* which is a EXYNOS4210 SoC */ #define CONFIG_ORIGEN 1 /* working with ORIGEN*/ diff --git a/include/configs/s5pc210_universal.h b/include/configs/s5pc210_universal.h index be000cb..33c4600 100644 --- a/include/configs/s5pc210_universal.h +++ b/include/configs/s5pc210_universal.h @@ -32,6 +32,7 @@ */ #define CONFIG_SAMSUNG 1 /* in a SAMSUNG core */ #define CONFIG_S5P 1 /* which is in a S5P Family */ +#define CONFIG_EXYNOS4 1 /* EXYNOS4 Family */ #define CONFIG_EXYNOS4210 1 /* which is in a EXYNOS4210 */ #define CONFIG_UNIVERSAL 1 /* working with Universal */ diff --git a/include/configs/smdkv310.h b/include/configs/smdkv310.h index 93c25da..24fbac0 100644 --- a/include/configs/smdkv310.h +++ b/include/configs/smdkv310.h @@ -28,6 +28,7 @@ /* High Level Configuration Options */ #define CONFIG_SAMSUNG 1 /* in a SAMSUNG core */ #define CONFIG_S5P 1 /* S5P Family */ +#define CONFIG_EXYNOS4 1 /* EXYNOS4 Family */ #define CONFIG_EXYNOS4210 1 /* which is a EXYNOS4210 SoC */ #define CONFIG_SMDKV3101 /* working with SMDKV310*/ -- 1.7.5.4 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH 0/6] Add SMDK5250 board support
This patchset add support for Samsung's SMDK5250 board based on EXYNOS5250 based SoC. It also adds support for MMC SPL booting. The porting is done by Samsung engineers at HQ in System LSI Team. I am contributing in upstreaming the code for the board. These patches are made on top of on the following patchset: "[PATCH 0/2] Exynos Related fixes" Chander Kashyap (6): Exynos: Add CONFIG_EXYNOS4 Macro to EXYNOS4 based boards Exynos: Clock.c: Use CONFIG_SYS_CLK_FREQ macro Exynos: Clock.c: Replace exynos4 prefix with exynos EEYNOS: Add SMDK5250 board support EXYNOS: SMDK5250: Add MMC SPL support SMDK5250: enable device tree support MAINTAINERS |1 + arch/arm/cpu/armv7/exynos/clock.c| 80 ++-- arch/arm/include/asm/arch-exynos/clock.h | 232 + arch/arm/include/asm/arch-exynos/clock_exynos4.h | 255 + arch/arm/include/asm/arch-exynos/clock_exynos5.h | 352 + arch/arm/include/asm/arch-exynos/cpu.h | 71 ++-- arch/arm/include/asm/arch-exynos/cpu_exynos4.h | 51 ++ arch/arm/include/asm/arch-exynos/cpu_exynos5.h | 39 ++ arch/arm/include/asm/arch-exynos/gpio.h | 51 ++- board/samsung/smdk5250/Makefile | 64 +++ board/samsung/smdk5250/lowlevel_init.S | 524 +++ board/samsung/smdk5250/mem_setup.S | 600 ++ board/samsung/smdk5250/mmc_boot.c| 58 ++ board/samsung/smdk5250/smdk5250.c| 125 + board/samsung/smdk5250/smdk5250_setup.h | 583 + board/samsung/smdk5250/tools/mkexynos_image.c| 117 + boards.cfg |1 + include/configs/origen.h |1 + include/configs/s5pc210_universal.h |2 + include/configs/smdk5250.h | 188 +++ include/configs/smdkv310.h |1 + 21 files changed, 3094 insertions(+), 302 deletions(-) create mode 100644 arch/arm/include/asm/arch-exynos/clock_exynos4.h create mode 100644 arch/arm/include/asm/arch-exynos/clock_exynos5.h create mode 100644 arch/arm/include/asm/arch-exynos/cpu_exynos4.h create mode 100644 arch/arm/include/asm/arch-exynos/cpu_exynos5.h create mode 100644 board/samsung/smdk5250/Makefile create mode 100644 board/samsung/smdk5250/lowlevel_init.S create mode 100644 board/samsung/smdk5250/mem_setup.S create mode 100644 board/samsung/smdk5250/mmc_boot.c create mode 100644 board/samsung/smdk5250/smdk5250.c create mode 100644 board/samsung/smdk5250/smdk5250_setup.h create mode 100644 board/samsung/smdk5250/tools/mkexynos_image.c create mode 100644 include/configs/smdk5250.h -- 1.7.5.4 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH 6/6] SMDK5250: enable device tree support
Enable passing a flattened device tree to the kernel. Signed-off-by: Chander Kashyap --- include/configs/smdk5250.h |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/include/configs/smdk5250.h b/include/configs/smdk5250.h index d99dfd0..31f56fd 100644 --- a/include/configs/smdk5250.h +++ b/include/configs/smdk5250.h @@ -182,4 +182,7 @@ #define CONFIG_SYS_INIT_SP_ADDR(CONFIG_SYS_LOAD_ADDR - 0x100) #define MMC_MAX_CHANNEL5 +/* Enable devicetree support */ +#define CONFIG_OF_LIBFDT + #endif /* __CONFIG_H */ -- 1.7.5.4 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[PATCH 5/6] EXYNOS: SMDK5250: Add MMC SPL support
This patch adds support for mmc spl booting. Signed-off-by: Chander Kashyap --- board/samsung/smdk5250/Makefile | 16 board/samsung/smdk5250/mmc_boot.c | 58 board/samsung/smdk5250/tools/mkexynos_image.c | 117 + include/configs/smdk5250.h|3 + 4 files changed, 194 insertions(+), 0 deletions(-) create mode 100644 board/samsung/smdk5250/mmc_boot.c create mode 100644 board/samsung/smdk5250/tools/mkexynos_image.c diff --git a/board/samsung/smdk5250/Makefile b/board/samsung/smdk5250/Makefile index a26f896..0e8c05a 100644 --- a/board/samsung/smdk5250/Makefile +++ b/board/samsung/smdk5250/Makefile @@ -26,18 +26,34 @@ LIB = $(obj)lib$(BOARD).o SOBJS := lowlevel_init.o SOBJS += mem_setup.o + +ifndef CONFIG_SPL_BUILD COBJS += smdk5250.o +endif + +ifdef CONFIG_SPL_BUILD +COBJS += mmc_boot.o +endif SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) ALL:= $(obj).depend $(LIB) +ifdef CONFIG_SPL_BUILD +ALL+= $(OBJTREE)/tools/mk$(BOARD)spl +endif + all: $(ALL) $(LIB):$(OBJS) $(call cmd_link_o_target, $(OBJS)) +ifdef CONFIG_SPL_BUILD +$(OBJTREE)/tools/mk$(BOARD)spl:tools/mkexynos_image.c + $(HOSTCC) tools/mkexynos_image.c -o $(OBJTREE)/tools/mk$(BOARD)spl +endif + # # defines $(obj).depend target diff --git a/board/samsung/smdk5250/mmc_boot.c b/board/samsung/smdk5250/mmc_boot.c new file mode 100644 index 000..669c1a3 --- /dev/null +++ b/board/samsung/smdk5250/mmc_boot.c @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2011 Samsung Electronics + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include +#include + +/* +* Copy U-boot from mmc to RAM: +* COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains +* Pointer to API (Data transfer from mmc to ram) +*/ +void copy_uboot_to_ram(void) +{ + u32 (*copy_bl2)(u32, u32, u32) = (void *) *(u32 *)COPY_BL2_FNPTR_ADDR; + + copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT, CONFIG_SYS_TEXT_BASE); +} + +void board_init_f(unsigned long bootflag) +{ + __attribute__((noreturn)) void (*uboot)(void); + copy_uboot_to_ram(); + + /* Jump to U-Boot image */ + uboot = (void *)CONFIG_SYS_TEXT_BASE; + (*uboot)(); + /* Never returns Here */ +} + +/* Place Holders */ +void board_init_r(gd_t *id, ulong dest_addr) +{ + /* Function attribute is no-return */ + /* This Function never executes */ + while (1) + ; +} + +void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3) {} diff --git a/board/samsung/smdk5250/tools/mkexynos_image.c b/board/samsung/smdk5250/tools/mkexynos_image.c new file mode 100644 index 000..e2b7805 --- /dev/null +++ b/board/samsung/smdk5250/tools/mkexynos_image.c @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2011 Samsung Electronics + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include + +#define CHECKSUM_OFFSET(14*1024-4) +#define BUFSIZE(16*1024) +#define FILE_PERM (S_IRUSR | S_IWUSR | S_IRGRP \ + | S_IWGRP | S_IROTH | S_IWOTH) +/* +* Requirement: +* IROM code reads first 14K bytes from boot device. +* It then calculates the checksum of 14K-4 bytes and compare with da
[PATCH 3/6] Exynos: Clock.c: Replace exynos4 prefix with exynos
Replace exynos4 prefix with exynos in arch/arm/cpu/armv7/exynos/clock.c as clock.c is common for exynos architecture. By doing so automatic selection of appropriate clock structure can be done. As per above reason replace exynos4_clock to exynos_clock in clock.h header file. Signed-off-by: Chander Kashyap --- arch/arm/cpu/armv7/exynos/clock.c| 50 +++--- arch/arm/include/asm/arch-exynos/clock.h |2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/arch/arm/cpu/armv7/exynos/clock.c b/arch/arm/cpu/armv7/exynos/clock.c index 4d92c53..b101f96 100644 --- a/arch/arm/cpu/armv7/exynos/clock.c +++ b/arch/arm/cpu/armv7/exynos/clock.c @@ -26,11 +26,11 @@ #include #include -/* exynos4: return pll clock frequency */ -static unsigned long exynos4_get_pll_clk(int pllreg) +/* exynos: return pll clock frequency */ +static unsigned long exynos_get_pll_clk(int pllreg) { - struct exynos4_clock *clk = - (struct exynos4_clock *)samsung_get_base_clock(); + struct exynos_clock *clk = + (struct exynos_clock *)samsung_get_base_clock(); unsigned long r, m, p, s, k = 0, mask, fout; unsigned int freq; @@ -92,11 +92,11 @@ static unsigned long exynos4_get_pll_clk(int pllreg) return fout; } -/* exynos4: return ARM clock frequency */ -static unsigned long exynos4_get_arm_clk(void) +/* exynos: return ARM clock frequency */ +static unsigned long exynos_get_arm_clk(void) { - struct exynos4_clock *clk = - (struct exynos4_clock *)samsung_get_base_clock(); + struct exynos_clock *clk = + (struct exynos_clock *)samsung_get_base_clock(); unsigned long div; unsigned long armclk; unsigned int core_ratio; @@ -114,11 +114,11 @@ static unsigned long exynos4_get_arm_clk(void) return armclk; } -/* exynos4: return pwm clock frequency */ -static unsigned long exynos4_get_pwm_clk(void) +/* exynos: return pwm clock frequency */ +static unsigned long exynos_get_pwm_clk(void) { - struct exynos4_clock *clk = - (struct exynos4_clock *)samsung_get_base_clock(); + struct exynos_clock *clk = + (struct exynos_clock *)samsung_get_base_clock(); unsigned long pclk, sclk; unsigned int sel; unsigned int ratio; @@ -157,11 +157,11 @@ static unsigned long exynos4_get_pwm_clk(void) return pclk; } -/* exynos4: return uart clock frequency */ -static unsigned long exynos4_get_uart_clk(int dev_index) +/* exynos: return uart clock frequency */ +static unsigned long exynos_get_uart_clk(int dev_index) { - struct exynos4_clock *clk = - (struct exynos4_clock *)samsung_get_base_clock(); + struct exynos_clock *clk = + (struct exynos_clock *)samsung_get_base_clock(); unsigned long uclk, sclk; unsigned int sel; unsigned int ratio; @@ -204,11 +204,11 @@ static unsigned long exynos4_get_uart_clk(int dev_index) return uclk; } -/* exynos4: set the mmc clock */ -static void exynos4_set_mmc_clk(int dev_index, unsigned int div) +/* exynos: set the mmc clock */ +static void exynos_set_mmc_clk(int dev_index, unsigned int div) { - struct exynos4_clock *clk = - (struct exynos4_clock *)samsung_get_base_clock(); + struct exynos_clock *clk = + (struct exynos_clock *)samsung_get_base_clock(); unsigned int addr; unsigned int val; @@ -233,25 +233,25 @@ static void exynos4_set_mmc_clk(int dev_index, unsigned int div) unsigned long get_pll_clk(int pllreg) { - return exynos4_get_pll_clk(pllreg); + return exynos_get_pll_clk(pllreg); } unsigned long get_arm_clk(void) { - return exynos4_get_arm_clk(); + return exynos_get_arm_clk(); } unsigned long get_pwm_clk(void) { - return exynos4_get_pwm_clk(); + return exynos_get_pwm_clk(); } unsigned long get_uart_clk(int dev_index) { - return exynos4_get_uart_clk(dev_index); + return exynos_get_uart_clk(dev_index); } void set_mmc_clk(int dev_index, unsigned int div) { - exynos4_set_mmc_clk(dev_index, div); + exynos_set_mmc_clk(dev_index, div); } diff --git a/arch/arm/include/asm/arch-exynos/clock.h b/arch/arm/include/asm/arch-exynos/clock.h index 483c911..ecd0cb1 100644 --- a/arch/arm/include/asm/arch-exynos/clock.h +++ b/arch/arm/include/asm/arch-exynos/clock.h @@ -23,7 +23,7 @@ #define __ASM_ARM_ARCH_CLOCK_H_ #ifndef __ASSEMBLY__ -struct exynos4_clock { +struct exynos_clock { unsigned char res1[0x4200]; unsigned intsrc_leftbus; unsigned char res2[0x1fc]; -- 1.7.5.4 ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [PATCHv2] Regulator: Add Anatop regulator driver
On Wed, Dec 21, 2011 at 05:03:31PM +0800, Ying-Chun Liu (PaulLiu) wrote: > From: "Ying-Chun Liu (PaulLiu)" > > Anatop regulator driver is used by i.MX6 SoC. The regulator provides > controlling the voltage of PU, CORE, SOC, and some devices. This patch > adds the Anatop regulator driver. It's still not at all clear to me what an "Anatop" regulator is or why everything is being done as platform data. > +config REGULATOR_ANATOP > + tristate "ANATOP LDO regulators" > + depends on SOC_IMX6 > + default y if SOC_IMX6 This isn't great, it might be on your reference design but people are going to change that. > +#include > +#include Why does your regulator driver need this? That suggests a layering violation. > +static int anatop_set_voltage(struct regulator_dev *reg, int min_uV, > + int max_uV, unsigned *selector) > +{ > + struct anatop_regulator *anatop_reg = rdev_get_drvdata(reg); > + u32 val, rega; > + int uv; > + > + uv = max_uV; This looks wrong, you should be aiming to get as close as possible to the minimum not the maximum. > + if (anatop_reg->rdata->control_reg) { > + val = anatop_reg->rdata->min_bit_val + > + (uv - reg->constraints->min_uV) / 25000; You're not checking that the resulting voltage matches the constraints or updating selector. > + } else { > + pr_debug("Regulator not supported.\n"); Why are you logging an error as a debug message? You should also use dev_ logging. > +static int anatop_get_voltage(struct regulator_dev *reg) > +{ Implement this as get_voltage_sel() > +static int anatop_enable(struct regulator_dev *reg) > +{ > + return 0; > +} > + > +static int anatop_disable(struct regulator_dev *reg) > +{ > + return 0; > +} > + > +static int anatop_is_enabled(struct regulator_dev *reg) > +{ > + return 1; > +} The regulator clearly doesn't have enable or disable support at all, it shouldn't have these operations. > +static struct regulator_ops anatop_rops = { > + .set_voltage= anatop_set_voltage, > + .get_voltage= anatop_get_voltage, You should implement list_voltage() as well. > +static struct regulator_desc anatop_reg_desc[] = { > + { > + .name = "vddpu", > + .id = ANATOP_VDDPU, > + .ops = &anatop_rops, > + .irq = 0, No need to set zero fields. It's also *very* odd to see a table explicitly listing regulators by name in a driver that doesn't know which registers it's working with. > +int anatop_regulator_probe(struct platform_device *pdev) > +{ > + struct regulator_desc *rdesc; > + struct regulator_dev *rdev; > + struct anatop_regulator *sreg; > + struct regulator_init_data *initdata; > + > + sreg = platform_get_drvdata(pdev); > + initdata = pdev->dev.platform_data; > + sreg->cur_current = 0; > + sreg->next_current = 0; > + sreg->cur_voltage = 0; You're trying to read the driver data but you haven't set any. This is going to crash. > + init_waitqueue_head(&sreg->wait_q); This waitqueue appears to never be referenced. > + if (pdev->id > ANATOP_SUPPLY_NUM) { > + rdesc = kzalloc(sizeof(struct regulator_desc), GFP_KERNEL); devm_kzalloc() and check the return value. > + memcpy(rdesc, &anatop_reg_desc[ANATOP_SUPPLY_NUM], > + sizeof(struct regulator_desc)); > + rdesc->name = kstrdup(sreg->rdata->name, GFP_KERNEL); This looks really confused, you've got some regulators embedded into the driver and some with things passed in as platform data. Either approach should be fine but mixing both complicates things needlessly. > + } else > + rdesc = &anatop_reg_desc[pdev->id]; Use braces on both sides of the if. > + pr_debug("probing regulator %s %s %d\n", > + sreg->rdata->name, > + rdesc->name, > + pdev->id); A lot of this logging looks like it's just replicating logging from the core. > + /* register regulator */ > + rdev = regulator_register(rdesc, &pdev->dev, > + initdata, sreg); The driver isn't doing anything to for example map the register bank it's using. > +int anatop_register_regulator( > + struct anatop_regulator *reg_data, int reg, > + struct regulator_init_data *initdata) > +{ Eew, no. Just register the platform device normally. > + int mode; > + int cur_voltage; > + int cur_current; > + int next_current; These appear to be unused and are rather obscure. > +struct anatop_regulator_data { > + char name[80]; const char *. > + char *parent_name; What's this? ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[ANN] Automated upstream syncing for Linaro Android tree
Hello, This should have gone more than a week ago, but was "lost" in click-thru work. Anyway, we now finally have automatic syncing with upstreams for our tree - that includes AOSP and other components we mirror. It runs for more than 2 weeks now and works pretty well. For AOSP, some components may be missing with upstream version upgrades, then just please submit a ticket to have them picked up (manual op), like this one: https://bugs.launchpad.net/linaro-android-infrastructure/+bug/905664 to ensure timely processing. Thanks, and Merry Christmas! Paul Linaro.org | Open source software for ARM SoCs Follow Linaro: http://www.facebook.com/pages/Linaro http://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[ACTIVITY] Status of memory management closing 11.12
Hi folks, I went ahead and checked what is the status of the UMM effort as 2011 is closing to an end. What follows is my attempt to summarise the status, collating the pieces from the latest announcements and changelogs and having discussed it briefly with Jesse and Rob. Feel free to comment if there is something missing or not correct: A. CMA - Contiguous memory allocator. This is in its v17 incarnation at the moment (a v18 is in preparation but not released yet). v17 shares the code with memory compaction subsystem, not the hotplug like it was before (change has been suggested by Mel Gorman) and there are also a few fixes here and there, like addressing most of the comments from Andrew Morton and Mel Gorman in the rest of the CMA code, fixing broken initialization on ARM systems with DMA zone enabled and rebasing the code on v3.2-rc2 kernel. An issue has been noted in linaro-dev from the TI landing team : without any highmem the code is working great, but with HIGHMEM inclusion of the CMA v17 consistently causes failure during DMA init. This is expected to be fixed soon (perhaps in v18?). In meantime it is suggested using 2G/2G memory split as a workaround (Kernel Features -> Memory split -> 2G/2G user/kernel split). B. dma mapping API - DMA-mapping framework redesign for ARM architecture: this is in the v4 now. It includes a few minor changes since last version. The changes are mainly on the IOMMU mapper, keeping the DMA-mapping redesign patches almost unchanged. The code is rebased onto v3.2-rc4 kernel + IOMMU/next branch to include latest changes from IOMMU kernel tree. This series also contains support for mapping with pages larger than 4KiB using new, extended IOMMU API, and did a general cleanup of the DMA mapping implementation. However it seems that this patchset "attempts to fix everyone at once". It has been suggested that instead of trying to do that the implementation should give sufficient transition period - for example just adding the new methods now and only removing them in the following merge window when all the architectures have had a chance to migrate. C. dmabuf - a DMA-buf object sharing framework: this is now in its 3rd version. The newest version incorporates changes as requested during the review, such as - replacing BUG_ON with WARN_ON at various places, removing mmap() fop and dma_buf_op, also the sg_sync* operations, and documenting that mmap is not allowed for exported buffer, adding error checks, replacing EXPORT_SYMBOL with EXPORT_SYMBOL_GPL and fixing some cosmetic/documentation items. There are still some items under discusion such as userspace mmap support, more advanced (and more strictly specified) coherency models and shared infrastructure for implementing exporters. However, there is a suggestion that these items will become much clearer once we have a few example drivers at hand and a better understanding of what cases need to be handled better. D. Finally some repositories - where can you find the code to try it out: * git://git.linaro.org/people/jessebarker/linaro-mm-sig/linux.git contains (for the moment) 6 branches: + cma-v17 == unadulterated v3.2-rc4 + cma v17 patchset + dma-mapping-v4 == unadulterated v3.2-rc4 + dma-mapping v4 patchset + android-cma-v17 == john stultz's androidization tree based upon unadulterated v3.2-rc4 + cma v17 patchset + android-dma-mapping-v4 == john stultz's androidization tree based upon unadulterated v3.2-rc4 + dma-mapping v4 patchset Also note these repos: - https://github.com/robclark/kernel-omap4/commits/drmplane-dmabuf contains patches to enable sharing of buffers between drm and v4l2, Rob commented that it isn't really identified yet which tree to push dmabuf through.. airlied has volunteered to push via drm tree, which is ok - git://git.linaro.org/people/bgaignard/linux-snowball-cma-test.git contains a first version of the CMA testing scripts for LAVA (snowball specific at least for now) Best regards, -- Ilias Biris ilias.bi...@linaro.org Project Manager, Linaro M: +358504839608, IRC: ibiris Skype: ilias_biris Linaro.org│ Open source software for ARM SoCs ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Linaro Android testing for Pandaboard
Hi All: Since Panda board is now officially supported by Google, I decided to do a quick testing between Linaro build (release 11.11 - v2.3.7), Linaro ICS preview (v4.0.1) and Google's ICS build for Panda-board (v4.0.1). Here are what I found: 1. Google's ICS build detects the resolution to be 672(H)x1280(W) on my monitor while Linaro builds default to 480x640. I manually changed the screen resolution in boot.scr to be omapfb.mode=dvi:1280x672MR-24@60. The linaro ICS preview can now come up with 672x1280 resolution, but I encountered graph driver crash in 11.11 release (v2.3.7). The video output came out on HDMI port for 11.11 release instead of DVI port as in Linaro ICS previous & Google's ICS build. This seems to tell me that there is a problem with graphic driver in 11.11 official release and EDID detection is not working for Linaro builds. 2. I ran Sunspider & 0xbench in Linaro ICS preview (in 480x640 resolution) & Google's ICS build for Panda-board (in 1280x672 resolution). Linaro ICS preview has slightly better result in Sunspider testing, but falls significantly behind in 0xbench. Changing the resolution to 1280x672 on the Linaro ICS preview build shows noticeable lag in UI performance. This seems to suggest that Linaro ICS preview doesn't enable GPU. I simply followed the instructions in the release note to populate SD cards with proper images for testing. Has anyone done similar testing? Is the above observation consistent with your result? Thanks, Alan Chuang -- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [PATCH] ohci-hcd: ohci-hcd: use usleep_range() instead of mdelay()
On Wed, 21 Dec 2011, Dmitry Antipov wrote: > From ac60fe289eef3d81009f2b14a12acbac3e71878b Mon Sep 17 00:00:00 2001 > From: Dmitry Antipov > Date: Wed, 21 Dec 2011 11:05:27 +0400 > Subject: [PATCH] ohci-hcd: use usleep_range() instead of mdelay() > > --- > drivers/usb/host/ohci-hcd.c |4 +++- > 1 files changed, 3 insertions(+), 1 deletions(-) > > diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c > index b263919..a6d58da 100644 > --- a/drivers/usb/host/ohci-hcd.c > +++ b/drivers/usb/host/ohci-hcd.c > @@ -574,6 +574,7 @@ static int ohci_run (struct ohci_hcd *ohci) > u32 mask, val; > int first = ohci->fminterval == 0; > struct usb_hcd *hcd = ohci_to_hcd(ohci); > + unsigned long usecs; > > disable (ohci); > > @@ -724,7 +725,8 @@ retry: > spin_unlock_irq (&ohci->lock); > > // POTPGT delay is bits 24-31, in 2 ms units. > - mdelay ((val >> 23) & 0x1fe); > + usecs = ((val >> 23) & 0x1fe) * USEC_PER_MSEC; > + usleep_range(usecs, usecs + 1000); > hcd->state = HC_STATE_RUNNING; > > if (quirk_zfmicro(ohci)) { Why not simply use msleep()? Alan Stern ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Patches to compile ICS with the 4.6 toolchain
Hi, Bero's patches to compile ICS with the 4.6 toolchain are available in an easy to use package. They are released to http://releases.linaro.org/11.12/components/android/ics-gcc-patches/ /Tony ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
RE: Linaro Android testing for Pandaboard
It looks like I should have waited one more day for the 11.12 release. Good work on 11.12. Cheers, Alan Chuang From: linaro-dev-boun...@lists.linaro.org [mailto:linaro-dev-boun...@lists.linaro.org] On Behalf Of Alan Chuang Sent: Thursday, December 22, 2011 9:57 PM To: linaro-dev@lists.linaro.org Subject: Linaro Android testing for Pandaboard Hi All: Since Panda board is now officially supported by Google, I decided to do a quick testing between Linaro build (release 11.11 - v2.3.7), Linaro ICS preview (v4.0.1) and Google's ICS build for Panda-board (v4.0.1). Here are what I found: 1. Google's ICS build detects the resolution to be 672(H)x1280(W) on my monitor while Linaro builds default to 480x640. I manually changed the screen resolution in boot.scr to be omapfb.mode=dvi:1280x672MR-24@60. The linaro ICS preview can now come up with 672x1280 resolution, but I encountered graph driver crash in 11.11 release (v2.3.7). The video output came out on HDMI port for 11.11 release instead of DVI port as in Linaro ICS previous & Google's ICS build. This seems to tell me that there is a problem with graphic driver in 11.11 official release and EDID detection is not working for Linaro builds. 2. I ran Sunspider & 0xbench in Linaro ICS preview (in 480x640 resolution) & Google's ICS build for Panda-board (in 1280x672 resolution). Linaro ICS preview has slightly better result in Sunspider testing, but falls significantly behind in 0xbench. Changing the resolution to 1280x672 on the Linaro ICS preview build shows noticeable lag in UI performance. This seems to suggest that Linaro ICS preview doesn't enable GPU. I simply followed the instructions in the release note to populate SD cards with proper images for testing. Has anyone done similar testing? Is the above observation consistent with your result? Thanks, Alan Chuang -- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. -- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [U-Boot] [PATCH 6/6] SMDK5250: enable device tree support
Dear Chander Kashyap, On 22 December 2011 19:52, Chander Kashyap wrote: > Enable passing a flattened device tree to the kernel. > > Signed-off-by: Chander Kashyap > --- > include/configs/smdk5250.h | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/include/configs/smdk5250.h b/include/configs/smdk5250.h > index d99dfd0..31f56fd 100644 > --- a/include/configs/smdk5250.h > +++ b/include/configs/smdk5250.h > @@ -182,4 +182,7 @@ > #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - 0x100) > #define MMC_MAX_CHANNEL 5 > > +/* Enable devicetree support */ > +#define CONFIG_OF_LIBFDT > + Why you separate this patch? Thanks. Minkyu Kang. -- from. prom. www.promsoft.net ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [U-Boot] [PATCH 4/6] EEYNOS: Add SMDK5250 board support
Dear Chander Kashyap, On 22 December 2011 19:52, Chander Kashyap wrote: > SMDK5250 board is based on Samsungs EXYNOS5250 SoC. > > Signed-off-by: Chander Kashyap > --- > MAINTAINERS | 1 + > arch/arm/cpu/armv7/exynos/clock.c | 24 +- > arch/arm/include/asm/arch-exynos/clock.h | 232 + > arch/arm/include/asm/arch-exynos/clock_exynos4.h | 255 + > arch/arm/include/asm/arch-exynos/clock_exynos5.h | 352 + > arch/arm/include/asm/arch-exynos/cpu.h | 71 ++-- > arch/arm/include/asm/arch-exynos/cpu_exynos4.h | 51 ++ > arch/arm/include/asm/arch-exynos/cpu_exynos5.h | 39 ++ > arch/arm/include/asm/arch-exynos/gpio.h | 51 ++- > board/samsung/smdk5250/Makefile | 48 ++ > board/samsung/smdk5250/lowlevel_init.S | 524 +++ > board/samsung/smdk5250/mem_setup.S | 600 > ++ > board/samsung/smdk5250/smdk5250.c | 125 + > board/samsung/smdk5250/smdk5250_setup.h | 583 + > boards.cfg | 1 + > include/configs/smdk5250.h | 182 +++ > 16 files changed, 2867 insertions(+), 272 deletions(-) > create mode 100644 arch/arm/include/asm/arch-exynos/clock_exynos4.h > create mode 100644 arch/arm/include/asm/arch-exynos/clock_exynos5.h > create mode 100644 arch/arm/include/asm/arch-exynos/cpu_exynos4.h > create mode 100644 arch/arm/include/asm/arch-exynos/cpu_exynos5.h > create mode 100644 board/samsung/smdk5250/Makefile > create mode 100644 board/samsung/smdk5250/lowlevel_init.S > create mode 100644 board/samsung/smdk5250/mem_setup.S > create mode 100644 board/samsung/smdk5250/smdk5250.c > create mode 100644 board/samsung/smdk5250/smdk5250_setup.h > create mode 100644 include/configs/smdk5250.h Please split this patch for board and SoC. > > diff --git a/MAINTAINERS b/MAINTAINERS > index a56ca10..abf88be 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -704,6 +704,7 @@ Chander Kashyap > > origen ARM ARMV7 (EXYNOS4210 SoC) > SMDKV310 ARM ARMV7 (EXYNOS4210 SoC) > + SMDK5250 ARM ARMV7 (EXYNOS5250 SoC) > > Torsten Koschorrek > scb9328 ARM920T (i.MXL) > diff --git a/arch/arm/cpu/armv7/exynos/clock.c > b/arch/arm/cpu/armv7/exynos/clock.c > index b101f96..88e2fc0 100644 > --- a/arch/arm/cpu/armv7/exynos/clock.c > +++ b/arch/arm/cpu/armv7/exynos/clock.c > @@ -125,10 +125,14 @@ static unsigned long exynos_get_pwm_clk(void) > > if (s5p_get_cpu_rev() == 0) { > /* > - * CLK_SRC_PERIL0 > + * CLK_SRC_{PERIL0 | PERIC0} > * PWM_SEL [27:24] > */ > +#ifdef CONFIG_EXYNOS5 > + sel = readl(&clk->src_peric0); > +#else > sel = readl(&clk->src_peril0); > +#endif NAK. We don't allow to using ifdef for separating SoCs. Please refer s5pc1xx case for solve it. This comment apply to this patch globally. Please remove '#ifdef CONFIG_EXYNOS5'. Thanks. Minkyu Kang. -- from. prom. www.promsoft.net ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [U-Boot] [PATCH 1/6] Exynos: Add CONFIG_EXYNOS4 Macro to EXYNOS4 based boards
Dear Chander Kashyap, On 22 December 2011 19:52, Chander Kashyap wrote: > Exynos architecture has varients like exynos4 and exynos5. In order to > identify the exynos4 architecture, add CONFIG_EXYNOS4 macro to exynos4 > based boards i.e. Origen, smdkv310 and s5pc210_universal. > > Signed-off-by: Chander Kashyap > --- > include/configs/origen.h | 1 + > include/configs/s5pc210_universal.h | 1 + > include/configs/smdkv310.h | 1 + > 3 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/include/configs/origen.h b/include/configs/origen.h > index cd502d1..53bd5fc 100644 > --- a/include/configs/origen.h > +++ b/include/configs/origen.h > @@ -28,6 +28,7 @@ > /* High Level Configuration Options */ > #define CONFIG_SAMSUNG 1 /* SAMSUNG core */ > #define CONFIG_S5P 1 /* S5P Family */ > +#define CONFIG_EXYNOS4 1 /* EXYNOS4 Family */ Why need this define? > #define CONFIG_EXYNOS4210 1 /* which is a EXYNOS4210 SoC > */ > #define CONFIG_ORIGEN 1 /* working with ORIGEN*/ > > diff --git a/include/configs/s5pc210_universal.h > b/include/configs/s5pc210_universal.h > index be000cb..33c4600 100644 > --- a/include/configs/s5pc210_universal.h > +++ b/include/configs/s5pc210_universal.h > @@ -32,6 +32,7 @@ > */ > #define CONFIG_SAMSUNG 1 /* in a SAMSUNG core */ > #define CONFIG_S5P 1 /* which is in a S5P Family */ > +#define CONFIG_EXYNOS4 1 /* EXYNOS4 Family */ > #define CONFIG_EXYNOS4210 1 /* which is in a EXYNOS4210 */ > #define CONFIG_UNIVERSAL 1 /* working with Universal */ > > diff --git a/include/configs/smdkv310.h b/include/configs/smdkv310.h > index 93c25da..24fbac0 100644 > --- a/include/configs/smdkv310.h > +++ b/include/configs/smdkv310.h > @@ -28,6 +28,7 @@ > /* High Level Configuration Options */ > #define CONFIG_SAMSUNG 1 /* in a SAMSUNG core */ > #define CONFIG_S5P 1 /* S5P Family */ > +#define CONFIG_EXYNOS4 1 /* EXYNOS4 Family */ > #define CONFIG_EXYNOS4210 1 /* which is a EXYNOS4210 SoC > */ > #define CONFIG_SMDKV310 1 /* working with > SMDKV310*/ > Thanks. Minkyu Kang. -- from. prom. www.promsoft.net ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: Announce: Panda ICS SGX 1.8 on tilt-android-tracking
On 12/22/2011 12:06 PM, Somebody in the thread at some point said: Hi Vishal - Thanks for all the effort you guys put in to get it working. I will try to get a 4.0.1 accelerated build working. Thanks for looking at it! Build 4 is based on 4.0.3 in which the dss/dsscomp headers in userspace have been updated to the latest aosp kernel.There are few patches from Lajos molnar which are missing I guess. Upgrading SGX 1.8 driver to v55175 version we can get 4.0.3 running again. Here is the kernel tip: http://android.git.linaro.org/gitweb?p=kernel/omap.git;a=shortlog;h=refs/heads/linaro-android-omap-panda-3.0 Okay, I will pick the updated patch and test. I guess this will be an ongoing thing to keep on top of. I forgot to mention two things 3) HDMI Audio is broken atm, Jassi is working on fixing that. Onboard audio should be fine. 4) One of the advantages of running off tracking basis is we inherit all the goodies from vanilla. In this kernel for Android same as in vanilla you'll find working Panda onboard camera driver and Unified Memory Allocator series among other improvements. In this way we can leverage the work we're doing on vanilla twice, by having it appear automatically at the Android kernel too. Current tilt-android-tracking / android_omap4_defconfig ... http://git.linaro.org/gitweb?p=landing-teams/working/ti/kernel.git;a=shortlog;h=refs/heads/tilt-android-tracking ... is working now at 1080p HDMI accelerated on Build 4. I found two quirks, I think they're related to rootfs status or sdcard prep somehow - got a lot of "unfortunately xyz has stopped" messages until I changed the wallpaper, which seemed to be "no wallpaper" by default in my case. I changed it to "magic smoke" and all those issues went away. Example crash from logcat below if it means anything E/AndroidRuntime( 1872): FATAL EXCEPTION: main E/AndroidRuntime( 1872): java.lang.RuntimeException: createWindowSurface failed EGL_BAD_ALLOC E/AndroidRuntime( 1872): at com.android.systemui.ImageWallpaper$DrawableEngine.initGL(ImageWallpaper.java:586) E/AndroidRuntime( 1872): at com.android.systemui.ImageWallpaper$DrawableEngine.drawWallpaperWithOpenGL(ImageWallpaper.java:384) E/AndroidRuntime( 1872): at com.android.systemui.ImageWallpaper$DrawableEngine.drawFrameLocked(ImageWallpaper.java:314) E/AndroidRuntime( 1872): at com.android.systemui.ImageWallpaper$DrawableEngine.onSurfaceChanged(ImageWallpaper.java:260) E/AndroidRuntime( 1872): at android.service.wallpaper.WallpaperService$Engine.updateSurface(WallpaperService.java:673) E/AndroidRuntime( 1872): at android.service.wallpaper.WallpaperService$Engine.attach(WallpaperService.java:760) E/AndroidRuntime( 1872): at android.service.wallpaper.WallpaperService$IWallpaperEngineWrapper.executeMessage(WallpaperService.java:1000) E/AndroidRuntime( 1872): at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:61) E/AndroidRuntime( 1872): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime( 1872):at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime( 1872): at android.app.ActivityThread.main(ActivityThread.java:4424) E/AndroidRuntime( 1872): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime( 1872): at java.lang.reflect.Method.invoke(Method.java:511) E/AndroidRuntime( 1872): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) E/AndroidRuntime( 1872): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) E/AndroidRuntime( 1872):at dalvik.system.NativeStart.main(Native Method) W/ActivityManager( 1401): Process com.android.systemui has crashed too many times: killing! - in 1080p, the wallpaper / desktop is vertically misaligned, it appears as if it's drawing from a vertical origin of -300 pixels or something. It's otherwise perfect, and the system tray / clock / navigation buttons appear correctly aligned at the bottom. - similarly in settings, it does not fill the whole vertical space but stops at the same point the desktop ended, about 300 pixels vertically before it could have. Otherwise, everything basic seems working fine. Lot of things seem broken atm in the rootfs like wifi but that's understandable given the big change. -Andy -- Andy Green | TI Landing Team Leader Linaro.org │ Open source software for ARM SoCs | Follow Linaro http://facebook.com/pages/Linaro/155974581091106 - http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [U-Boot] [PATCH 4/6] EEYNOS: Add SMDK5250 board support
Dear Minkyu Kang, On 23 December 2011 09:51, Minkyu Kang wrote: > > Dear Chander Kashyap, > > On 22 December 2011 19:52, Chander Kashyap wrote: > > SMDK5250 board is based on Samsungs EXYNOS5250 SoC. > > > > Signed-off-by: Chander Kashyap > > --- > > MAINTAINERS | 1 + > > arch/arm/cpu/armv7/exynos/clock.c | 24 +- > > arch/arm/include/asm/arch-exynos/clock.h | 232 + > > arch/arm/include/asm/arch-exynos/clock_exynos4.h | 255 + > > arch/arm/include/asm/arch-exynos/clock_exynos5.h | 352 + > > arch/arm/include/asm/arch-exynos/cpu.h | 71 ++-- > > arch/arm/include/asm/arch-exynos/cpu_exynos4.h | 51 ++ > > arch/arm/include/asm/arch-exynos/cpu_exynos5.h | 39 ++ > > arch/arm/include/asm/arch-exynos/gpio.h | 51 ++- > > board/samsung/smdk5250/Makefile | 48 ++ > > board/samsung/smdk5250/lowlevel_init.S | 524 +++ > > board/samsung/smdk5250/mem_setup.S | 600 > > ++ > > board/samsung/smdk5250/smdk5250.c | 125 + > > board/samsung/smdk5250/smdk5250_setup.h | 583 > > + > > boards.cfg | 1 + > > include/configs/smdk5250.h | 182 +++ > > 16 files changed, 2867 insertions(+), 272 deletions(-) > > create mode 100644 arch/arm/include/asm/arch-exynos/clock_exynos4.h > > create mode 100644 arch/arm/include/asm/arch-exynos/clock_exynos5.h > > create mode 100644 arch/arm/include/asm/arch-exynos/cpu_exynos4.h > > create mode 100644 arch/arm/include/asm/arch-exynos/cpu_exynos5.h > > create mode 100644 board/samsung/smdk5250/Makefile > > create mode 100644 board/samsung/smdk5250/lowlevel_init.S > > create mode 100644 board/samsung/smdk5250/mem_setup.S > > create mode 100644 board/samsung/smdk5250/smdk5250.c > > create mode 100644 board/samsung/smdk5250/smdk5250_setup.h > > create mode 100644 include/configs/smdk5250.h > > Please split this patch for board and SoC. Ok > > > > > > diff --git a/MAINTAINERS b/MAINTAINERS > > index a56ca10..abf88be 100644 > > --- a/MAINTAINERS > > +++ b/MAINTAINERS > > @@ -704,6 +704,7 @@ Chander Kashyap > > > > origen ARM ARMV7 (EXYNOS4210 SoC) > > SMDKV310 ARM ARMV7 (EXYNOS4210 SoC) > > + SMDK5250 ARM ARMV7 (EXYNOS5250 SoC) > > > > Torsten Koschorrek > > scb9328 ARM920T (i.MXL) > > diff --git a/arch/arm/cpu/armv7/exynos/clock.c > > b/arch/arm/cpu/armv7/exynos/clock.c > > index b101f96..88e2fc0 100644 > > --- a/arch/arm/cpu/armv7/exynos/clock.c > > +++ b/arch/arm/cpu/armv7/exynos/clock.c > > @@ -125,10 +125,14 @@ static unsigned long exynos_get_pwm_clk(void) > > > > if (s5p_get_cpu_rev() == 0) { > > /* > > - * CLK_SRC_PERIL0 > > + * CLK_SRC_{PERIL0 | PERIC0} > > * PWM_SEL [27:24] > > */ > > +#ifdef CONFIG_EXYNOS5 > > + sel = readl(&clk->src_peric0); > > +#else > > sel = readl(&clk->src_peril0); > > +#endif > > NAK. > We don't allow to using ifdef for separating SoCs. > Please refer s5pc1xx case for solve it. > This comment apply to this patch globally. > Please remove '#ifdef CONFIG_EXYNOS5'. > I have tried to reuse the code. It is possible to remove #ifdef CONFIG_EXYNOS5' in clock.c with cpu_is_s5pcXXX check. Is it a acceptable solution? Or is it necessary to write SoC specific function in clock.c as done in case of s5pc1xx/clock.c. Please Advice > > Thanks. > Minkyu Kang. > -- > from. prom. > www.promsoft.net -- with warm regards, Chander Kashyap ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [Samsung] [U-Boot] [PATCH 4/6] EEYNOS: Add SMDK5250 board support
Hi Chander, Subject line of patch: s/EEYNOS/EXYNOS On 23 December 2011 11:21, Chander Kashyap wrote: > Dear Minkyu Kang, > > On 23 December 2011 09:51, Minkyu Kang wrote: > > > > Dear Chander Kashyap, > > > > On 22 December 2011 19:52, Chander Kashyap > wrote: > > > SMDK5250 board is based on Samsungs EXYNOS5250 SoC. > > > > > > Signed-off-by: Chander Kashyap > > > --- > > > MAINTAINERS |1 + > > > arch/arm/cpu/armv7/exynos/clock.c| 24 +- > > > arch/arm/include/asm/arch-exynos/clock.h | 232 + > > > arch/arm/include/asm/arch-exynos/clock_exynos4.h | 255 + > > > arch/arm/include/asm/arch-exynos/clock_exynos5.h | 352 + > > > arch/arm/include/asm/arch-exynos/cpu.h | 71 ++-- > > > arch/arm/include/asm/arch-exynos/cpu_exynos4.h | 51 ++ > > > arch/arm/include/asm/arch-exynos/cpu_exynos5.h | 39 ++ > > > arch/arm/include/asm/arch-exynos/gpio.h | 51 ++- > > > board/samsung/smdk5250/Makefile | 48 ++ > > > board/samsung/smdk5250/lowlevel_init.S | 524 > +++ > > > board/samsung/smdk5250/mem_setup.S | 600 > ++ > > > board/samsung/smdk5250/smdk5250.c| 125 + > > > board/samsung/smdk5250/smdk5250_setup.h | 583 > + > > > boards.cfg |1 + > > > include/configs/smdk5250.h | 182 +++ > > > 16 files changed, 2867 insertions(+), 272 deletions(-) > > > create mode 100644 arch/arm/include/asm/arch-exynos/clock_exynos4.h > > > create mode 100644 arch/arm/include/asm/arch-exynos/clock_exynos5.h > > > create mode 100644 arch/arm/include/asm/arch-exynos/cpu_exynos4.h > > > create mode 100644 arch/arm/include/asm/arch-exynos/cpu_exynos5.h > > > create mode 100644 board/samsung/smdk5250/Makefile > > > create mode 100644 board/samsung/smdk5250/lowlevel_init.S > > > create mode 100644 board/samsung/smdk5250/mem_setup.S > > > create mode 100644 board/samsung/smdk5250/smdk5250.c > > > create mode 100644 board/samsung/smdk5250/smdk5250_setup.h > > > create mode 100644 include/configs/smdk5250.h > > > > Please split this patch for board and SoC. > > Ok > > > > > > > > > > diff --git a/MAINTAINERS b/MAINTAINERS > > > index a56ca10..abf88be 100644 > > > --- a/MAINTAINERS > > > +++ b/MAINTAINERS > > > @@ -704,6 +704,7 @@ Chander Kashyap > > > > > >origen ARM ARMV7 (EXYNOS4210 SoC) > > >SMDKV310ARM ARMV7 (EXYNOS4210 SoC) > > > + SMDK5250ARM ARMV7 (EXYNOS5250 SoC) > > > > > > Torsten Koschorrek > > >scb9328 ARM920T (i.MXL) > > > diff --git a/arch/arm/cpu/armv7/exynos/clock.c > b/arch/arm/cpu/armv7/exynos/clock.c > > > index b101f96..88e2fc0 100644 > > > --- a/arch/arm/cpu/armv7/exynos/clock.c > > > +++ b/arch/arm/cpu/armv7/exynos/clock.c > > > @@ -125,10 +125,14 @@ static unsigned long exynos_get_pwm_clk(void) > > > > > >if (s5p_get_cpu_rev() == 0) { > > >/* > > > -* CLK_SRC_PERIL0 > > > +* CLK_SRC_{PERIL0 | PERIC0} > > > * PWM_SEL [27:24] > > > */ > > > +#ifdef CONFIG_EXYNOS5 > > > + sel = readl(&clk->src_peric0); > > > +#else > > >sel = readl(&clk->src_peril0); > > > +#endif > > > > NAK. > > We don't allow to using ifdef for separating SoCs. > > Please refer s5pc1xx case for solve it. > > This comment apply to this patch globally. > > Please remove '#ifdef CONFIG_EXYNOS5'. > > > I have tried to reuse the code. It is possible to remove > #ifdef CONFIG_EXYNOS5' in clock.c with cpu_is_s5pcXXX check. > Is it a acceptable solution? Or is it necessary to write SoC specific > function > in clock.c as done in case of s5pc1xx/clock.c. > > Please Advice > > > > Thanks. > > Minkyu Kang. > > -- > > from. prom. > > www.promsoft.net > > > > > -- > with warm regards, > Chander Kashyap > > ___ > Samsung mailing list > sams...@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/samsung > -- With warm regards, Sachin ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: Updated Pulse Audio + alsa-lib for 11.12
On 12/19/2011 03:20 PM, Somebody in the thread at some point said: On 12/19/2011 01:16 PM, Somebody in the thread at some point said: About Panda UCM, last week I noticed though that there is different wiring on input side between 4430 Panda (line in goes to analogue headset mic inputs on twl6040) and 4460 Panda (line in goes to FM analogue inputs). So this week I plan to make changes to the onboard audio driver to change its alsa card name based on what board it's on, with a view to elaborating out the UCM directories so the recording case is handled correctly depending on the board. That's my concern too. The first thing is we need directories under /usr/share/alsa/ucm with the same audio card names on both panda boards. The second thing is to have correct configurations for both boards. I don't have a 4460 board, Andy, can you help on giving the ucm configurations for it? Yes I'm hoping to sort it out. I'll give you the patches on UCM when they're done. Okay thanks to Seb for sending the udev and 4430 changes, adapted a bit by me, along with my changes to ucm settings and a kernel patch to create a different audio device name for PandaES ('PandaES'), pulse is kind of working mostly here. The attached files need going into the rootfs at: /lib/udev/rules.d/90-pulseaudio-omap.rules /usr/share/pulseaudio/alsa-mixer/profile-sets/4430.conf and unpack the tarball in /usr/share/alsa/ucm. It's able to dynamically switch between audio outputs here using pulse interface, but it crashes (recoverably) sometimes doing that. I wasn't able to convince the pulse UI to do anything with the 'record' UCM setting, although I adapted it for Panda / PandaES routing. The matching kernel patch you need is now in tilt-3.1 and tilt-linux-linaro-3.1 which Linaro packages. -Andy -- Andy Green | TI Landing Team Leader Linaro.org │ Open source software for ARM SoCs | Follow Linaro http://facebook.com/pages/Linaro/155974581091106 - http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog # do not edit this file, it will be overwritten on update # This file is part of PulseAudio. # # PulseAudio is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2.1 of the # License, or (at your option) any later version. # # PulseAudio is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with PulseAudio; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. SUBSYSTEM!="sound", GOTO="pulseaudio_end" ACTION!="change", GOTO="pulseaudio_end" KERNEL!="card*", GOTO="pulseaudio_end" # WA: Specific config for TI board - waiting for driver to be fixed and support pulse probing properly ATTRS{id}=="SDP4430", ENV{PULSE_PROFILE_SET}="4430.conf" ATTRS{id}=="Panda", ENV{PULSE_PROFILE_SET}="4430.conf" ATTRS{id}=="PandaES", ENV{PULSE_PROFILE_SET}="4430.conf" LABEL="pulseaudio_end" # This file is part of PulseAudio. # # PulseAudio is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2.1 of the # License, or (at your option) any later version. # # PulseAudio is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with PulseAudio; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ; TI based board generic static setup ; ; See default.conf for an explanation on the directives used here. [General] auto-profiles = no [Mapping default-mapping-output] description = Default headset testing TI 4430 based board device-strings = plughw:%f,0 channel-map = front-left,front-right direction = output [Mapping mapping-output-6] description = TI 4430 based - output 6 device-strings = plughw:%f,6 channel-map = front-left,front-right direction = output [Mapping mapping-output-8] description = TI 4430 based - output 8 device-strings = plughw:%f,8 channel-map = front-left,front-right direction = output [Mapping default-mapping-input] description = Default headset testing TI 4430 based board device-strings = plughw:%f,0 channel-map = front-left,front-right direction = input [Profile output:default-mapping-output+input:default-mapping-input] description = Default profile 0 output-mappings = default-mapping-output input-mappings = default-mapping-input priority = 50 skip-probe
Re: [U-Boot] [PATCH 6/6] SMDK5250: enable device tree support
Dear Minkyu Kang, On 23 December 2011 09:52, Minkyu Kang wrote: > Dear Chander Kashyap, > > On 22 December 2011 19:52, Chander Kashyap wrote: >> Enable passing a flattened device tree to the kernel. >> >> Signed-off-by: Chander Kashyap >> --- >> include/configs/smdk5250.h | 3 +++ >> 1 files changed, 3 insertions(+), 0 deletions(-) >> >> diff --git a/include/configs/smdk5250.h b/include/configs/smdk5250.h >> index d99dfd0..31f56fd 100644 >> --- a/include/configs/smdk5250.h >> +++ b/include/configs/smdk5250.h >> @@ -182,4 +182,7 @@ >> #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - 0x100) >> #define MMC_MAX_CHANNEL 5 >> >> +/* Enable devicetree support */ >> +#define CONFIG_OF_LIBFDT >> + > > Why you separate this patch? I will squash this patch. > > Thanks. > Minkyu Kang. > -- > from. prom. > www.promsoft.net -- with warm regards, Chander Kashyap ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Re: [U-Boot] [PATCH 1/6] Exynos: Add CONFIG_EXYNOS4 Macro to EXYNOS4 based boards
Dear Minkyu Kang, On 23 December 2011 09:52, Minkyu Kang wrote: > Dear Chander Kashyap, > > On 22 December 2011 19:52, Chander Kashyap wrote: >> Exynos architecture has varients like exynos4 and exynos5. In order to >> identify the exynos4 architecture, add CONFIG_EXYNOS4 macro to exynos4 >> based boards i.e. Origen, smdkv310 and s5pc210_universal. >> >> Signed-off-by: Chander Kashyap >> --- >> include/configs/origen.h | 1 + >> include/configs/s5pc210_universal.h | 1 + >> include/configs/smdkv310.h | 1 + >> 3 files changed, 3 insertions(+), 0 deletions(-) >> >> diff --git a/include/configs/origen.h b/include/configs/origen.h >> index cd502d1..53bd5fc 100644 >> --- a/include/configs/origen.h >> +++ b/include/configs/origen.h >> @@ -28,6 +28,7 @@ >> /* High Level Configuration Options */ >> #define CONFIG_SAMSUNG 1 /* SAMSUNG core */ >> #define CONFIG_S5P 1 /* S5P Family */ >> +#define CONFIG_EXYNOS4 1 /* EXYNOS4 Family */ > > Why need this define? This is required for conditional inclusion of SoC specific header file. > >> #define CONFIG_EXYNOS4210 1 /* which is a EXYNOS4210 SoC >> */ >> #define CONFIG_ORIGEN 1 /* working with ORIGEN*/ >> >> diff --git a/include/configs/s5pc210_universal.h >> b/include/configs/s5pc210_universal.h >> index be000cb..33c4600 100644 >> --- a/include/configs/s5pc210_universal.h >> +++ b/include/configs/s5pc210_universal.h >> @@ -32,6 +32,7 @@ >> */ >> #define CONFIG_SAMSUNG 1 /* in a SAMSUNG core */ >> #define CONFIG_S5P 1 /* which is in a S5P Family */ >> +#define CONFIG_EXYNOS4 1 /* EXYNOS4 Family */ >> #define CONFIG_EXYNOS4210 1 /* which is in a EXYNOS4210 */ >> #define CONFIG_UNIVERSAL 1 /* working with Universal */ >> >> diff --git a/include/configs/smdkv310.h b/include/configs/smdkv310.h >> index 93c25da..24fbac0 100644 >> --- a/include/configs/smdkv310.h >> +++ b/include/configs/smdkv310.h >> @@ -28,6 +28,7 @@ >> /* High Level Configuration Options */ >> #define CONFIG_SAMSUNG 1 /* in a SAMSUNG core */ >> #define CONFIG_S5P 1 /* S5P Family */ >> +#define CONFIG_EXYNOS4 1 /* EXYNOS4 Family */ >> #define CONFIG_EXYNOS4210 1 /* which is a EXYNOS4210 SoC >> */ >> #define CONFIG_SMDKV310 1 /* working with >> SMDKV310*/ >> > > Thanks. > Minkyu Kang. > -- > from. prom. > www.promsoft.net -- with warm regards, Chander Kashyap ___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev