Re: [PATCH v5 0/3] Exynos 5410 support
Tarek Dakhran writes: > On 12/10/2013 08:40 PM, Kevin Hilman wrote: >> Vyacheslav Tyrtov writes: >> >>> The series of patches represent support of Exynos 5410 SoC >>> >>> The Exynos 5410 is the first Samsung SoC based on bigLITTLE architecture >>> >>> Patches add new platform description, support of clock controller and device >>> tree for Exynos 5410. >>> >>> Dual cluster support for Exynos 5410 (EDCS) has been removed from this >>> series >>> This patches is activating only the big cluster (all A15 cores) >> Testing this series on top of v3.13-rc3, plus a couple of other >> necessary changes (which should've probably been noted in the changelog): >> >> 1) change CONFIG_NR_CPUS=8 in .config >> 2) add the exynos combiner patch from Chander: >> [PATCH v2] irqchip: exynos-combiner: remove hard-coded irq_base value >> >> I'm still only seeing 2 out of 4 cores come up on my odroid-xu: >> >> [0.045000] CPU: Testing write buffer coherency: ok >> [0.045000] CPU0: update cpu_power 1024 >> [0.045000] CPU0: thread -1, cpu 0, socket 0, mpidr 8000 >> [0.045000] Setting up static identity map for 0x403717d8 - 0x40371830 >> [0.045000] CPU1: Booted secondary processor >> [0.065000] CPU1: update cpu_power 1024 >> [0.065000] CPU1: thread -1, cpu 1, socket 0, mpidr 8001 >> [1.075000] CPU2: failed to boot: -38 >> [2.075000] CPU3: failed to boot: -38 >> [2.075000] Brought up 2 CPUs >> [2.075000] SMP: Total of 2 processors activated. >> [2.075000] CPU: All CPU(s) started in SVC mode. >> > Hi Kevin, > > EDCS(exynos dual cluster support) moved to separate patch now. > This patches introduce only base SoC support (2xA15). Thanks for the clarification I thought there were 4 A15s, and the changelog mentioned this patch enabled "all A15s". Kevin > Patches tested on samsung smdk5410 board. > > Next version of EDCS patches will be available soon. > They allow power on and boot all 8 cores. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 0/3] Exynos 5410 support
On 12/10/13 23:26, Vyacheslav Tyrtov wrote: The series of patches represent support of Exynos 5410 SoC The Exynos 5410 is the first Samsung SoC based on bigLITTLE architecture Patches add new platform description, support of clock controller and device tree for Exynos 5410. Dual cluster support for Exynos 5410 (EDCS) has been removed from this series This patches is activating only the big cluster (all A15 cores) EDCS patch, which allows all 8 CPU cores (4 x A7 and 4 x A15) to run at the same time, will be released separately Has been build on v3.13-rc3 Has been tested on Exynos 5410 reference board (exynos_defconfig) Thanks for all your comments to Tomasz Figa, Dave Martin and Nicolas Pitre. I hope, this is enough clean and hasn't any dependencies to go through Samsung tree. Kukjin, what do you think about it? OK, looks good and I've applied. Thanks, Kukjin Vyacheslav. Changelog: v5: EDCS removed to separate patch. In arch/arm/mach-exynos/Kconfig 1. Removed select ARM_CCI and MCPM. In arch/arm/mach-exynos/platsmp.c 1. Added correct boot_reg for exynos5410. In arch/arm/boot/dts/exynos5410.dtsi 1. Removed cortex-a7 cpu nodes and cci node. v4: In arch/arm/mach-exynos/edcs.c 1. Renamed all exynos_ prefixes to edcs_. 2. Reworked edcs_core_power_up/down functions. 3. Removed exynos_core_power_control function. 4. Added this_core_to_pcpu function. 5. Added core_power_state function which detects if cpu is being reset. 6. Replaced cache flush sequences with v7_exit_coherency_flush(). 7. exynos_core_power_down moved to lock protected area. 8. edcs_power_down_finish implemented. In Documentation/devicetree/bindings/clock/exynos5410-clock.txt 1. External clocks documented. In arch/arm/boot/dts/exynos5410-smdk5410.dts 1. oscclk node corrected according to ePAPR recommendation. In arch/arm/boot/dts/exynos5410.dtsi 1. mct@101C node renamed to timer@101C. 2. "interrupt-controller" line removed from mct node. 3. mct_map renamed to interrupt_map. In arch/arm/mach-exynos/Kconfig 1. some cosmetic corrections. In include/dt-bindings/clock/exynos5410.h 1. Unnecessary defines removed. v3: In drivers/clk/samsung/clk-exynos5410.c 1. Fixed rate clock "samsung,clock-oscclk" removed. In arch/arm/boot/dts/exynos5410.dtsi 1. In mct node clock CLK_FIN_PLL replaced with generic fixed rate oscclk. In arch/arm/boot/dts/exynos5410-smdk5410.dts 1. Fixed rate oscclk clock added. In arch/arm/mach-exynos/edcs.c 1. Added write memory barrier in exynos_core_power_control function. 2. __raw_readl/__raw_writel replaced with readl_relaxed/writel_relaxed. 3. #define added for some magic constants. 4. Disabled the GIC CPU interface in exynos_power_down function. v2: In drivers/clk/samsung/clk-exynos5410.c 1. Clock driver converted to use preprocessor macros instead of enums. Clock IDs now defined in include/dt-bindings/clock/exynos5410.h. 2. Unused spinlock removed. 3. Function exynos5410_clk_init defined as static. Struct exynos5410_fixed_rate_ext_clks defined as static. Struct exynos5410_mux_clks defined as static. Struct exynos5410_div_clks defined as static. Struct exynos5410_gate_clks defined as static. 4. Removed aliases. 5. Pll's magic register offsets defined as preprocessor macros. 6. Redundant check of device_node pointer removed. In arch/arm/boot/dts/exynos5410.dtsi 1. dwmmcX nodes renamed to mmc. dwmmc_X renamed to mmc_X. dwmmc status="disabled" field added. fifo-depth field moved from arch/arm/boot/dts/exynos5410-smdk5410.dts 2. Blank lines added where necessary. 3. cpu@ suffixes corrected. 4. edcs node removed. 5. Hexadecimal characters case corrected. 6. Clock IDs replaced with preprocessor macros. In arch/arm/boot/dts/exynos5410-smdk5410.dts 1. status = "okay" field added to mmc nodes. In arch/arm/mach-exynos/edcs.c 1. "kfs_" prefix replaced with "edcs_" 2. EDCS_CPUS_PER_CLUSTER and EDCS_CLUSTERS defined instead of MCPM's values. 3. Cache handling sequence borrowed from arch/arm/mach-vexpress/tc2_pm.c 4. mcpm_sync_init() call added. 5. power management functions reworked. Other 1. Documentation/devicetree/bindings/clock/exynos5410-clock.txt corrected. 2. Removed smdk5410_defconfig. Instead SOC_EXYNOS5410 now selects MCPM and ARM_CCI in arch/arm/mach-exynos/Kconfig. 3. edcs_status driver removed. Tarek Dakhran (3): ARM: EXYNOS: Add support for EXYNOS5410 SoC clk: exynos5410: register clocks using common clock framework ARM: dts: Add initial device tree support for EXYNOS5410 .../devicetree/bindings/clock/exynos5410-clock.txt | 54 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/exynos5410-smdk5410.dts | 72 +++ arch/arm/boot/dts/exynos5410.dtsi | 145 + arch/arm/mach-exynos/Kconfig
Re: [PATCH v5 0/3] Exynos 5410 support
On 12/10/2013 08:40 PM, Kevin Hilman wrote: Vyacheslav Tyrtov writes: The series of patches represent support of Exynos 5410 SoC The Exynos 5410 is the first Samsung SoC based on bigLITTLE architecture Patches add new platform description, support of clock controller and device tree for Exynos 5410. Dual cluster support for Exynos 5410 (EDCS) has been removed from this series This patches is activating only the big cluster (all A15 cores) Testing this series on top of v3.13-rc3, plus a couple of other necessary changes (which should've probably been noted in the changelog): 1) change CONFIG_NR_CPUS=8 in .config 2) add the exynos combiner patch from Chander: [PATCH v2] irqchip: exynos-combiner: remove hard-coded irq_base value I'm still only seeing 2 out of 4 cores come up on my odroid-xu: [0.045000] CPU: Testing write buffer coherency: ok [0.045000] CPU0: update cpu_power 1024 [0.045000] CPU0: thread -1, cpu 0, socket 0, mpidr 8000 [0.045000] Setting up static identity map for 0x403717d8 - 0x40371830 [0.045000] CPU1: Booted secondary processor [0.065000] CPU1: update cpu_power 1024 [0.065000] CPU1: thread -1, cpu 1, socket 0, mpidr 8001 [1.075000] CPU2: failed to boot: -38 [2.075000] CPU3: failed to boot: -38 [2.075000] Brought up 2 CPUs [2.075000] SMP: Total of 2 processors activated. [2.075000] CPU: All CPU(s) started in SVC mode. Hi Kevin, EDCS(exynos dual cluster support) moved to separate patch now. This patches introduce only base SoC support (2xA15). Patches tested on samsung smdk5410 board. Next version of EDCS patches will be available soon. They allow power on and boot all 8 cores. Best regards, Tarek Dakhran. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 0/3] Exynos 5410 support
Vyacheslav Tyrtov writes: > The series of patches represent support of Exynos 5410 SoC > > The Exynos 5410 is the first Samsung SoC based on bigLITTLE architecture > > Patches add new platform description, support of clock controller and device > tree for Exynos 5410. > > Dual cluster support for Exynos 5410 (EDCS) has been removed from this series > This patches is activating only the big cluster (all A15 cores) Testing this series on top of v3.13-rc3, plus a couple of other necessary changes (which should've probably been noted in the changelog): 1) change CONFIG_NR_CPUS=8 in .config 2) add the exynos combiner patch from Chander: [PATCH v2] irqchip: exynos-combiner: remove hard-coded irq_base value I'm still only seeing 2 out of 4 cores come up on my odroid-xu: [0.045000] CPU: Testing write buffer coherency: ok [0.045000] CPU0: update cpu_power 1024 [0.045000] CPU0: thread -1, cpu 0, socket 0, mpidr 8000 [0.045000] Setting up static identity map for 0x403717d8 - 0x40371830 [0.045000] CPU1: Booted secondary processor [0.065000] CPU1: update cpu_power 1024 [0.065000] CPU1: thread -1, cpu 1, socket 0, mpidr 8001 [1.075000] CPU2: failed to boot: -38 [2.075000] CPU3: failed to boot: -38 [2.075000] Brought up 2 CPUs [2.075000] SMP: Total of 2 processors activated. [2.075000] CPU: All CPU(s) started in SVC mode. Full boot log below. Kevin Connected to odroid-xu console [channel connected] (~$quit to exit) (user:khilman) is already connected (user:khilman) is already connected ~$hardreset / # Command(odroid-xu console)> hardreset (user:khilman) Reboot odroid-xu .~;+wQt. t.. . . . . . . .~.Reboot: odroid-xu ; phidget 1 3 : off, sleep, on U-Boot 2012.07-g3de3ad26283f (Nov 19 2013 - 13:47:04) for Exynos5410 CPU: Exynos5410 Rev2.3 [Samsung SOC on SMP Platform Base on ARM CortexA15] APLL = 900MHz, KPLL = 600MHz MPLL = 532MHz, BPLL = 800MHz DRAM: 2 GiB WARNING: Caches not enabled TrustZone Enabled BSP BL1 version: PMIC VER : 0, CHIP REV : 6 VDD MIF : 1.0V VDD ARM : 1.0V VDD INT : 1.0V VDD G3D : 1.0V VDD KFC : 1.0V Checking Boot Mode ... SDMMC MMC: S5P_MSHC2: 0, S5P_MSHC0: 1 MMC Device 0: 7.4 GiB MMC Device 1: [ERROR] response error : 0006 cmd 8 [ERROR] response error : 0006 cmd 55 [ERROR] response error : 0006 cmd 2 In:serial Out: serial Err: serial Net: No ethernet found. Press 'Enter' or 'Space' to stop autoboot: 3 0 ODROID-XU # ODROID-XU # version version U-Boot 2012.07-g3de3ad26283f (Nov 19 2013 - 13:47:04) for Exynos5410 arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.7.2-1ubuntu1) 4.7.2 GNU ld (GNU Binutils for Ubuntu) 2.22.90.20120919 ODROID-XU # setenv preboot usb start setenv preboot usb start ODROID-XU # setenv bootargs console=ttySAC2,115200n8 debug earlyprintk setenv bootargs console=ttySAC2,115200n8 debug earlyprintk ODROID-XU # if test -n ${initenv}; then run initenv; fi if test -n ${initenv}; then run initenv; fi ODROID-XU # if test -n ${preboot}; then run preboot; fi if test -n ${preboot}; then run preboot; fi (Re)start USB... USB0: USB EHCI 1.00 scanning bus 0 for devices... 3 USB Device(s) found scanning bus for storage devices... 0 Storage Device(s) found scanning usb for ethernet devices... 1 Ethernet Device(s) found ODROID-XU # setenv autoload no; setenv autoboot no setenv autoload no; setenv autoboot no ODROID-XU # dhcp dhcp Waiting for Ethernet connection... done. BOOTP broadcast 1 DHCP client bound to address 192.168.1.187 ODROID-XU # setenv serverip 192.168.1.2 setenv serverip 192.168.1.2 ODROID-XU # if test -n ${netargs}; then run netargs; fi if test -n ${netargs}; then run netargs; fi ODROID-XU # tftp 0x4080 tmp/odroid-xu-erdIn8/tmp9D1Cmd-uImage tftp 0x4080 tmp/odroid-xu-erdIn8/tmp9D1Cmd-uImage Waiting for Ethernet connection... done. Using sms0 device TFTP from server 192.168.1.2; our IP address is 192.168.1.187 Filename 'tmp/odroid-xu-erdIn8/tmp9D1Cmd-uImage'. Load address: 0x4080 Loading: *# # ## done Bytes transferred = 2745780 (29e5b4 hex) ODROID-XU # tftp 0x4200 buildroot.cpio.gz.uboot tftp 0x4200 buildroot.cpio.gz.uboot Waiting for Ethernet connection... done. Using sms0 device TFTP from server 192.168.1.2; our IP address is 192.168.1.187 Filename 'buildroot.cpio.gz.uboot'. Load address: 0x4200 Loading: * done Bytes transferred = 639808 (9c340 hex) ODROID-XU # printenv bootargs printenv bootargs bootargs=console=ttySAC2,115200n8 debug earlyprintk ODROID-XU # bootm 0x4080 0x4200 bootm 0x4080 0x4200 ## Booting kernel from Legacy Image at 4080 ... Image Name: Linux Image Type: ARM Linux Kernel Image (uncompressed) Data Size:2745716 Bytes = 2
[PATCH v5 0/3] Exynos 5410 support
The series of patches represent support of Exynos 5410 SoC The Exynos 5410 is the first Samsung SoC based on bigLITTLE architecture Patches add new platform description, support of clock controller and device tree for Exynos 5410. Dual cluster support for Exynos 5410 (EDCS) has been removed from this series This patches is activating only the big cluster (all A15 cores) EDCS patch, which allows all 8 CPU cores (4 x A7 and 4 x A15) to run at the same time, will be released separately Has been build on v3.13-rc3 Has been tested on Exynos 5410 reference board (exynos_defconfig) Thanks for all your comments to Tomasz Figa, Dave Martin and Nicolas Pitre. I hope, this is enough clean and hasn't any dependencies to go through Samsung tree. Kukjin, what do you think about it? Vyacheslav. Changelog: v5: EDCS removed to separate patch. In arch/arm/mach-exynos/Kconfig 1. Removed select ARM_CCI and MCPM. In arch/arm/mach-exynos/platsmp.c 1. Added correct boot_reg for exynos5410. In arch/arm/boot/dts/exynos5410.dtsi 1. Removed cortex-a7 cpu nodes and cci node. v4: In arch/arm/mach-exynos/edcs.c 1. Renamed all exynos_ prefixes to edcs_. 2. Reworked edcs_core_power_up/down functions. 3. Removed exynos_core_power_control function. 4. Added this_core_to_pcpu function. 5. Added core_power_state function which detects if cpu is being reset. 6. Replaced cache flush sequences with v7_exit_coherency_flush(). 7. exynos_core_power_down moved to lock protected area. 8. edcs_power_down_finish implemented. In Documentation/devicetree/bindings/clock/exynos5410-clock.txt 1. External clocks documented. In arch/arm/boot/dts/exynos5410-smdk5410.dts 1. oscclk node corrected according to ePAPR recommendation. In arch/arm/boot/dts/exynos5410.dtsi 1. mct@101C node renamed to timer@101C. 2. "interrupt-controller" line removed from mct node. 3. mct_map renamed to interrupt_map. In arch/arm/mach-exynos/Kconfig 1. some cosmetic corrections. In include/dt-bindings/clock/exynos5410.h 1. Unnecessary defines removed. v3: In drivers/clk/samsung/clk-exynos5410.c 1. Fixed rate clock "samsung,clock-oscclk" removed. In arch/arm/boot/dts/exynos5410.dtsi 1. In mct node clock CLK_FIN_PLL replaced with generic fixed rate oscclk. In arch/arm/boot/dts/exynos5410-smdk5410.dts 1. Fixed rate oscclk clock added. In arch/arm/mach-exynos/edcs.c 1. Added write memory barrier in exynos_core_power_control function. 2. __raw_readl/__raw_writel replaced with readl_relaxed/writel_relaxed. 3. #define added for some magic constants. 4. Disabled the GIC CPU interface in exynos_power_down function. v2: In drivers/clk/samsung/clk-exynos5410.c 1. Clock driver converted to use preprocessor macros instead of enums. Clock IDs now defined in include/dt-bindings/clock/exynos5410.h. 2. Unused spinlock removed. 3. Function exynos5410_clk_init defined as static. Struct exynos5410_fixed_rate_ext_clks defined as static. Struct exynos5410_mux_clks defined as static. Struct exynos5410_div_clks defined as static. Struct exynos5410_gate_clks defined as static. 4. Removed aliases. 5. Pll's magic register offsets defined as preprocessor macros. 6. Redundant check of device_node pointer removed. In arch/arm/boot/dts/exynos5410.dtsi 1. dwmmcX nodes renamed to mmc. dwmmc_X renamed to mmc_X. dwmmc status="disabled" field added. fifo-depth field moved from arch/arm/boot/dts/exynos5410-smdk5410.dts 2. Blank lines added where necessary. 3. cpu@ suffixes corrected. 4. edcs node removed. 5. Hexadecimal characters case corrected. 6. Clock IDs replaced with preprocessor macros. In arch/arm/boot/dts/exynos5410-smdk5410.dts 1. status = "okay" field added to mmc nodes. In arch/arm/mach-exynos/edcs.c 1. "kfs_" prefix replaced with "edcs_" 2. EDCS_CPUS_PER_CLUSTER and EDCS_CLUSTERS defined instead of MCPM's values. 3. Cache handling sequence borrowed from arch/arm/mach-vexpress/tc2_pm.c 4. mcpm_sync_init() call added. 5. power management functions reworked. Other 1. Documentation/devicetree/bindings/clock/exynos5410-clock.txt corrected. 2. Removed smdk5410_defconfig. Instead SOC_EXYNOS5410 now selects MCPM and ARM_CCI in arch/arm/mach-exynos/Kconfig. 3. edcs_status driver removed. Tarek Dakhran (3): ARM: EXYNOS: Add support for EXYNOS5410 SoC clk: exynos5410: register clocks using common clock framework ARM: dts: Add initial device tree support for EXYNOS5410 .../devicetree/bindings/clock/exynos5410-clock.txt | 54 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/exynos5410-smdk5410.dts | 72 +++ arch/arm/boot/dts/exynos5410.dtsi | 145 + arch/arm/mach-exynos/Kconfig | 10 + arch/arm/mach-exynos/common.c | 18 ++ arch/arm/mach-exynos/include/