* [PATCH v2 0/2] ARM: SAMSUNG: remove the rest of local uncompress.h files @ 2014-02-25 19:36 ` Heiko Stübner 0 siblings, 0 replies; 8+ messages in thread From: Heiko Stübner @ 2014-02-25 19:36 UTC (permalink / raw) To: Kukjin Kim Cc: linux-arm-kernel, linux-samsung-soc, tomasz.figa, Sachin Kamat, Arnd Bergmann Two patches from Sachin Kamat already removed the Exynos-uncompress.h . But in fact all Samsung platforms can use the generic uncompress code without needing local implementation. Therefore this two-part series removes the rest of the uncompress.h files from all Samsung platforms. Tested on a s3c2416 and s3c2442 based machine. The patches should be applied on top of the patches from Sachin Kamat in the v3.15-next/cleanup-samsung branch in the linux-samsung.git Heiko Stuebner (2): ARM: SAMSUNG: use generic uncompress.h ARM: SAMSUNG: remove all custom uncompress.h arch/arm/Kconfig.debug | 4 +- arch/arm/mach-s3c24xx/include/mach/uncompress.h | 57 -------- arch/arm/mach-s3c64xx/include/mach/uncompress.h | 31 ----- arch/arm/mach-s5p64x0/include/mach/uncompress.h | 34 ----- arch/arm/mach-s5pc100/include/mach/uncompress.h | 30 ---- arch/arm/mach-s5pv210/include/mach/uncompress.h | 28 ---- arch/arm/plat-samsung/include/plat/uncompress.h | 175 ------------------------ 7 files changed, 2 insertions(+), 357 deletions(-) delete mode 100644 arch/arm/mach-s3c24xx/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s3c64xx/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s5p64x0/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s5pc100/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s5pv210/include/mach/uncompress.h delete mode 100644 arch/arm/plat-samsung/include/plat/uncompress.h -- 1.8.5.3 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 0/2] ARM: SAMSUNG: remove the rest of local uncompress.h files @ 2014-02-25 19:36 ` Heiko Stübner 0 siblings, 0 replies; 8+ messages in thread From: Heiko Stübner @ 2014-02-25 19:36 UTC (permalink / raw) To: linux-arm-kernel Two patches from Sachin Kamat already removed the Exynos-uncompress.h . But in fact all Samsung platforms can use the generic uncompress code without needing local implementation. Therefore this two-part series removes the rest of the uncompress.h files from all Samsung platforms. Tested on a s3c2416 and s3c2442 based machine. The patches should be applied on top of the patches from Sachin Kamat in the v3.15-next/cleanup-samsung branch in the linux-samsung.git Heiko Stuebner (2): ARM: SAMSUNG: use generic uncompress.h ARM: SAMSUNG: remove all custom uncompress.h arch/arm/Kconfig.debug | 4 +- arch/arm/mach-s3c24xx/include/mach/uncompress.h | 57 -------- arch/arm/mach-s3c64xx/include/mach/uncompress.h | 31 ----- arch/arm/mach-s5p64x0/include/mach/uncompress.h | 34 ----- arch/arm/mach-s5pc100/include/mach/uncompress.h | 30 ---- arch/arm/mach-s5pv210/include/mach/uncompress.h | 28 ---- arch/arm/plat-samsung/include/plat/uncompress.h | 175 ------------------------ 7 files changed, 2 insertions(+), 357 deletions(-) delete mode 100644 arch/arm/mach-s3c24xx/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s3c64xx/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s5p64x0/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s5pc100/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s5pv210/include/mach/uncompress.h delete mode 100644 arch/arm/plat-samsung/include/plat/uncompress.h -- 1.8.5.3 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/2] ARM: SAMSUNG: use generic uncompress.h 2014-02-25 19:36 ` Heiko Stübner @ 2014-02-25 19:38 ` Heiko Stübner -1 siblings, 0 replies; 8+ messages in thread From: Heiko Stübner @ 2014-02-25 19:38 UTC (permalink / raw) To: Kukjin Kim Cc: linux-arm-kernel, linux-samsung-soc, tomasz.figa, Sachin Kamat, Arnd Bergmann All Samsung platforms, not only Exynos, use the custom uncompress.h simply to setup the uart for the initial debug output. This can also be done using the generic uncompress.h. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- arch/arm/Kconfig.debug | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 3e988f6..a160744 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -1145,7 +1145,7 @@ config DEBUG_UART_8250_FLOW_CONTROL config DEBUG_UNCOMPRESS bool - depends on ARCH_MULTIPLATFORM || ARCH_MSM || ARCH_EXYNOS + depends on ARCH_MULTIPLATFORM || ARCH_MSM || PLAT_SAMSUNG default y if DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \ (!DEBUG_TEGRA_UART || !ZBOOT_ROM) help @@ -1162,7 +1162,7 @@ config DEBUG_UNCOMPRESS config UNCOMPRESS_INCLUDE string default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \ - ARCH_EXYNOS + PLAT_SAMSUNG default "mach/uncompress.h" config EARLY_PRINTK -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 1/2] ARM: SAMSUNG: use generic uncompress.h @ 2014-02-25 19:38 ` Heiko Stübner 0 siblings, 0 replies; 8+ messages in thread From: Heiko Stübner @ 2014-02-25 19:38 UTC (permalink / raw) To: linux-arm-kernel All Samsung platforms, not only Exynos, use the custom uncompress.h simply to setup the uart for the initial debug output. This can also be done using the generic uncompress.h. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- arch/arm/Kconfig.debug | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 3e988f6..a160744 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -1145,7 +1145,7 @@ config DEBUG_UART_8250_FLOW_CONTROL config DEBUG_UNCOMPRESS bool - depends on ARCH_MULTIPLATFORM || ARCH_MSM || ARCH_EXYNOS + depends on ARCH_MULTIPLATFORM || ARCH_MSM || PLAT_SAMSUNG default y if DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \ (!DEBUG_TEGRA_UART || !ZBOOT_ROM) help @@ -1162,7 +1162,7 @@ config DEBUG_UNCOMPRESS config UNCOMPRESS_INCLUDE string default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \ - ARCH_EXYNOS + PLAT_SAMSUNG default "mach/uncompress.h" config EARLY_PRINTK -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/2] ARM: SAMSUNG: remove all custom uncompress.h 2014-02-25 19:36 ` Heiko Stübner @ 2014-02-25 19:39 ` Heiko Stübner -1 siblings, 0 replies; 8+ messages in thread From: Heiko Stübner @ 2014-02-25 19:39 UTC (permalink / raw) To: Kukjin Kim Cc: linux-arm-kernel, linux-samsung-soc, tomasz.figa, Sachin Kamat, Arnd Bergmann All Samsung platforms now use the generic uncompress.h so all the custom ones can be removed. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- arch/arm/mach-s3c24xx/include/mach/uncompress.h | 57 -------- arch/arm/mach-s3c64xx/include/mach/uncompress.h | 31 ----- arch/arm/mach-s5p64x0/include/mach/uncompress.h | 34 ----- arch/arm/mach-s5pc100/include/mach/uncompress.h | 30 ---- arch/arm/mach-s5pv210/include/mach/uncompress.h | 28 ---- arch/arm/plat-samsung/include/plat/uncompress.h | 175 ------------------------ 6 files changed, 355 deletions(-) delete mode 100644 arch/arm/mach-s3c24xx/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s3c64xx/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s5p64x0/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s5pc100/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s5pv210/include/mach/uncompress.h delete mode 100644 arch/arm/plat-samsung/include/plat/uncompress.h diff --git a/arch/arm/mach-s3c24xx/include/mach/uncompress.h b/arch/arm/mach-s3c24xx/include/mach/uncompress.h deleted file mode 100644 index 7d2ce20..0000000 --- a/arch/arm/mach-s3c24xx/include/mach/uncompress.h +++ /dev/null @@ -1,57 +0,0 @@ -/* arch/arm/mach-s3c2410/include/mach/uncompress.h - * - * Copyright (c) 2003-2007 Simtec Electronics - * http://armlinux.simtec.co.uk/ - * Ben Dooks <ben@simtec.co.uk> - * - * S3C2410 - uncompress code - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_UNCOMPRESS_H -#define __ASM_ARCH_UNCOMPRESS_H - -#include <mach/regs-gpio.h> -#include <mach/map.h> - -/* working in physical space... */ -#undef S3C2410_GPIOREG -#define S3C2410_GPIOREG(x) ((S3C24XX_PA_GPIO + (x))) - -#include <plat/uncompress.h> - -static inline int is_arm926(void) -{ - unsigned int cpuid; - - asm volatile ("mrc p15, 0, %0, c1, c0, 0" : "=r" (cpuid)); - - return ((cpuid & 0xff0) == 0x260); -} - -static void arch_detect_cpu(void) -{ - unsigned int cpuid; - - cpuid = *((volatile unsigned int *)S3C2410_GSTATUS1); - cpuid &= S3C2410_GSTATUS1_IDMASK; - - if (is_arm926() || cpuid == S3C2410_GSTATUS1_2440 || - cpuid == S3C2410_GSTATUS1_2442 || - cpuid == S3C2410_GSTATUS1_2416 || - cpuid == S3C2410_GSTATUS1_2450) { - fifo_mask = S3C2440_UFSTAT_TXMASK; - fifo_max = 63 << S3C2440_UFSTAT_TXSHIFT; - } else { - fifo_mask = S3C2410_UFSTAT_TXMASK; - fifo_max = 15 << S3C2410_UFSTAT_TXSHIFT; - } - - uart_base = (volatile u8 *) S3C_PA_UART + - (S3C_UART_OFFSET * CONFIG_S3C_LOWLEVEL_UART_PORT); -} - -#endif /* __ASM_ARCH_UNCOMPRESS_H */ diff --git a/arch/arm/mach-s3c64xx/include/mach/uncompress.h b/arch/arm/mach-s3c64xx/include/mach/uncompress.h deleted file mode 100644 index 1c95673..0000000 --- a/arch/arm/mach-s3c64xx/include/mach/uncompress.h +++ /dev/null @@ -1,31 +0,0 @@ -/* arch/arm/mach-s3c6400/include/mach/uncompress.h - * - * Copyright 2008 Openmoko, Inc. - * Copyright 2008 Simtec Electronics - * http://armlinux.simtec.co.uk/ - * Ben Dooks <ben@simtec.co.uk> - * - * S3C6400 - uncompress code - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_UNCOMPRESS_H -#define __ASM_ARCH_UNCOMPRESS_H - -#include <mach/map.h> -#include <plat/uncompress.h> - -static void arch_detect_cpu(void) -{ - /* we do not need to do any cpu detection here at the moment. */ - fifo_mask = S3C2440_UFSTAT_TXMASK; - fifo_max = 63 << S3C2440_UFSTAT_TXSHIFT; - - uart_base = (volatile u8 *)S3C_PA_UART + - (S3C_UART_OFFSET * CONFIG_S3C_LOWLEVEL_UART_PORT); -} - -#endif /* __ASM_ARCH_UNCOMPRESS_H */ diff --git a/arch/arm/mach-s5p64x0/include/mach/uncompress.h b/arch/arm/mach-s5p64x0/include/mach/uncompress.h deleted file mode 100644 index bbcc3f6..0000000 --- a/arch/arm/mach-s5p64x0/include/mach/uncompress.h +++ /dev/null @@ -1,34 +0,0 @@ -/* linux/arch/arm/mach-s5p64x0/include/mach/uncompress.h - * - * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. - * http://www.samsung.com - * - * S5P64X0 - uncompress code - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_UNCOMPRESS_H -#define __ASM_ARCH_UNCOMPRESS_H - -#include <mach/map.h> -#include <plat/uncompress.h> - -static void arch_detect_cpu(void) -{ - unsigned int chipid; - - chipid = *(const volatile unsigned int __force *) 0xE0100118; - - if ((chipid & 0xff000) == 0x50000) - uart_base = (volatile u8 *)S5P6450_PA_UART(CONFIG_S3C_LOWLEVEL_UART_PORT); - else - uart_base = (volatile u8 *)S5P6440_PA_UART(CONFIG_S3C_LOWLEVEL_UART_PORT); - - fifo_mask = S3C2440_UFSTAT_TXMASK; - fifo_max = 63 << S3C2440_UFSTAT_TXSHIFT; -} - -#endif /* __ASM_ARCH_UNCOMPRESS_H */ diff --git a/arch/arm/mach-s5pc100/include/mach/uncompress.h b/arch/arm/mach-s5pc100/include/mach/uncompress.h deleted file mode 100644 index 720e133..0000000 --- a/arch/arm/mach-s5pc100/include/mach/uncompress.h +++ /dev/null @@ -1,30 +0,0 @@ -/* arch/arm/mach-s5pc100/include/mach/uncompress.h - * - * Copyright 2009 Samsung Electronics Co. - * Byungho Min <bhmin@samsung.com> - * - * S5PC100 - uncompress code - * - * Based on mach-s3c6400/include/mach/uncompress.h - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_UNCOMPRESS_H -#define __ASM_ARCH_UNCOMPRESS_H - -#include <mach/map.h> -#include <plat/uncompress.h> - -static void arch_detect_cpu(void) -{ - /* we do not need to do any cpu detection here at the moment. */ - fifo_mask = S3C2440_UFSTAT_TXMASK; - fifo_max = 63 << S3C2440_UFSTAT_TXSHIFT; - - uart_base = (volatile u8 *)S5P_PA_UART(CONFIG_S3C_LOWLEVEL_UART_PORT); -} - -#endif /* __ASM_ARCH_UNCOMPRESS_H */ diff --git a/arch/arm/mach-s5pv210/include/mach/uncompress.h b/arch/arm/mach-s5pv210/include/mach/uncompress.h deleted file mode 100644 index 231cb07..0000000 --- a/arch/arm/mach-s5pv210/include/mach/uncompress.h +++ /dev/null @@ -1,28 +0,0 @@ -/* linux/arch/arm/mach-s5pv210/include/mach/uncompress.h - * - * Copyright (c) 2010 Samsung Electronics Co., Ltd. - * http://www.samsung.com/ - * - * S5PV210 - uncompress code - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_UNCOMPRESS_H -#define __ASM_ARCH_UNCOMPRESS_H - -#include <mach/map.h> -#include <plat/uncompress.h> - -static void arch_detect_cpu(void) -{ - /* we do not need to do any cpu detection here at the moment. */ - fifo_mask = S5PV210_UFSTAT_TXMASK; - fifo_max = 63 << S5PV210_UFSTAT_TXSHIFT; - - uart_base = (volatile u8 *)S5P_PA_UART(CONFIG_S3C_LOWLEVEL_UART_PORT); -} - -#endif /* __ASM_ARCH_UNCOMPRESS_H */ diff --git a/arch/arm/plat-samsung/include/plat/uncompress.h b/arch/arm/plat-samsung/include/plat/uncompress.h deleted file mode 100644 index 61054fd..0000000 --- a/arch/arm/plat-samsung/include/plat/uncompress.h +++ /dev/null @@ -1,175 +0,0 @@ -/* arch/arm/plat-samsung/include/plat/uncompress.h - * - * Copyright 2003, 2007 Simtec Electronics - * http://armlinux.simtec.co.uk/ - * Ben Dooks <ben@simtec.co.uk> - * - * S3C - uncompress code - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_PLAT_UNCOMPRESS_H -#define __ASM_PLAT_UNCOMPRESS_H - -typedef unsigned int upf_t; /* cannot include linux/serial_core.h */ - -/* uart setup */ - -unsigned int fifo_mask; -unsigned int fifo_max; - -volatile u8 *uart_base; - -/* forward declerations */ - -static void arch_detect_cpu(void); - -/* defines for UART registers */ - -#include <linux/serial_s3c.h> - -/* working in physical space... */ -#define S3C_WDOGREG(x) ((S3C_PA_WDT + (x))) - -#define S3C2410_WTCON S3C_WDOGREG(0x00) -#define S3C2410_WTDAT S3C_WDOGREG(0x04) -#define S3C2410_WTCNT S3C_WDOGREG(0x08) - -#define S3C2410_WTCON_RSTEN (1 << 0) -#define S3C2410_WTCON_ENABLE (1 << 5) - -#define S3C2410_WTCON_DIV128 (3 << 3) - -#define S3C2410_WTCON_PRESCALE(x) ((x) << 8) - -/* how many bytes we allow into the FIFO at a time in FIFO mode */ -#define FIFO_MAX (14) - -static __inline__ void -uart_wr(unsigned int reg, unsigned int val) -{ - volatile unsigned int *ptr; - - ptr = (volatile unsigned int *)(reg + uart_base); - *ptr = val; -} - -static __inline__ unsigned int -uart_rd(unsigned int reg) -{ - volatile unsigned int *ptr; - - ptr = (volatile unsigned int *)(reg + uart_base); - return *ptr; -} - -/* we can deal with the case the UARTs are being run - * in FIFO mode, so that we don't hold up our execution - * waiting for tx to happen... -*/ - -static void putc(int ch) -{ - if (!config_enabled(CONFIG_DEBUG_LL)) - return; - - if (uart_rd(S3C2410_UFCON) & S3C2410_UFCON_FIFOMODE) { - int level; - - while (1) { - level = uart_rd(S3C2410_UFSTAT); - level &= fifo_mask; - - if (level < fifo_max) - break; - } - - } else { - /* not using fifos */ - - while ((uart_rd(S3C2410_UTRSTAT) & S3C2410_UTRSTAT_TXE) != S3C2410_UTRSTAT_TXE) - barrier(); - } - - /* write byte to transmission register */ - uart_wr(S3C2410_UTXH, ch); -} - -static inline void flush(void) -{ -} - -#define __raw_writel(d, ad) \ - do { \ - *((volatile unsigned int __force *)(ad)) = (d); \ - } while (0) - -#ifdef CONFIG_S3C_BOOT_ERROR_RESET - -static void arch_decomp_error(const char *x) -{ - putstr("\n\n"); - putstr(x); - putstr("\n\n -- System resetting\n"); - - __raw_writel(0x4000, S3C2410_WTDAT); - __raw_writel(0x4000, S3C2410_WTCNT); - __raw_writel(S3C2410_WTCON_ENABLE | S3C2410_WTCON_DIV128 | S3C2410_WTCON_RSTEN | S3C2410_WTCON_PRESCALE(0x40), S3C2410_WTCON); - - while(1); -} - -#define arch_error arch_decomp_error -#endif - -#ifdef CONFIG_S3C_BOOT_UART_FORCE_FIFO -static inline void arch_enable_uart_fifo(void) -{ - u32 fifocon; - - if (!config_enabled(CONFIG_DEBUG_LL)) - return; - - fifocon = uart_rd(S3C2410_UFCON); - - if (!(fifocon & S3C2410_UFCON_FIFOMODE)) { - fifocon |= S3C2410_UFCON_RESETBOTH; - uart_wr(S3C2410_UFCON, fifocon); - - /* wait for fifo reset to complete */ - while (1) { - fifocon = uart_rd(S3C2410_UFCON); - if (!(fifocon & S3C2410_UFCON_RESETBOTH)) - break; - } - - uart_wr(S3C2410_UFCON, S3C2410_UFCON_FIFOMODE); - } -} -#else -#define arch_enable_uart_fifo() do { } while(0) -#endif - - -static void -arch_decomp_setup(void) -{ - /* we may need to setup the uart(s) here if we are not running - * on an BAST... the BAST will have left the uarts configured - * after calling linux. - */ - - arch_detect_cpu(); - - /* Enable the UART FIFOs if they where not enabled and our - * configuration says we should turn them on. - */ - - arch_enable_uart_fifo(); -} - - -#endif /* __ASM_PLAT_UNCOMPRESS_H */ -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/2] ARM: SAMSUNG: remove all custom uncompress.h @ 2014-02-25 19:39 ` Heiko Stübner 0 siblings, 0 replies; 8+ messages in thread From: Heiko Stübner @ 2014-02-25 19:39 UTC (permalink / raw) To: linux-arm-kernel All Samsung platforms now use the generic uncompress.h so all the custom ones can be removed. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- arch/arm/mach-s3c24xx/include/mach/uncompress.h | 57 -------- arch/arm/mach-s3c64xx/include/mach/uncompress.h | 31 ----- arch/arm/mach-s5p64x0/include/mach/uncompress.h | 34 ----- arch/arm/mach-s5pc100/include/mach/uncompress.h | 30 ---- arch/arm/mach-s5pv210/include/mach/uncompress.h | 28 ---- arch/arm/plat-samsung/include/plat/uncompress.h | 175 ------------------------ 6 files changed, 355 deletions(-) delete mode 100644 arch/arm/mach-s3c24xx/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s3c64xx/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s5p64x0/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s5pc100/include/mach/uncompress.h delete mode 100644 arch/arm/mach-s5pv210/include/mach/uncompress.h delete mode 100644 arch/arm/plat-samsung/include/plat/uncompress.h diff --git a/arch/arm/mach-s3c24xx/include/mach/uncompress.h b/arch/arm/mach-s3c24xx/include/mach/uncompress.h deleted file mode 100644 index 7d2ce20..0000000 --- a/arch/arm/mach-s3c24xx/include/mach/uncompress.h +++ /dev/null @@ -1,57 +0,0 @@ -/* arch/arm/mach-s3c2410/include/mach/uncompress.h - * - * Copyright (c) 2003-2007 Simtec Electronics - * http://armlinux.simtec.co.uk/ - * Ben Dooks <ben@simtec.co.uk> - * - * S3C2410 - uncompress code - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_UNCOMPRESS_H -#define __ASM_ARCH_UNCOMPRESS_H - -#include <mach/regs-gpio.h> -#include <mach/map.h> - -/* working in physical space... */ -#undef S3C2410_GPIOREG -#define S3C2410_GPIOREG(x) ((S3C24XX_PA_GPIO + (x))) - -#include <plat/uncompress.h> - -static inline int is_arm926(void) -{ - unsigned int cpuid; - - asm volatile ("mrc p15, 0, %0, c1, c0, 0" : "=r" (cpuid)); - - return ((cpuid & 0xff0) == 0x260); -} - -static void arch_detect_cpu(void) -{ - unsigned int cpuid; - - cpuid = *((volatile unsigned int *)S3C2410_GSTATUS1); - cpuid &= S3C2410_GSTATUS1_IDMASK; - - if (is_arm926() || cpuid == S3C2410_GSTATUS1_2440 || - cpuid == S3C2410_GSTATUS1_2442 || - cpuid == S3C2410_GSTATUS1_2416 || - cpuid == S3C2410_GSTATUS1_2450) { - fifo_mask = S3C2440_UFSTAT_TXMASK; - fifo_max = 63 << S3C2440_UFSTAT_TXSHIFT; - } else { - fifo_mask = S3C2410_UFSTAT_TXMASK; - fifo_max = 15 << S3C2410_UFSTAT_TXSHIFT; - } - - uart_base = (volatile u8 *) S3C_PA_UART + - (S3C_UART_OFFSET * CONFIG_S3C_LOWLEVEL_UART_PORT); -} - -#endif /* __ASM_ARCH_UNCOMPRESS_H */ diff --git a/arch/arm/mach-s3c64xx/include/mach/uncompress.h b/arch/arm/mach-s3c64xx/include/mach/uncompress.h deleted file mode 100644 index 1c95673..0000000 --- a/arch/arm/mach-s3c64xx/include/mach/uncompress.h +++ /dev/null @@ -1,31 +0,0 @@ -/* arch/arm/mach-s3c6400/include/mach/uncompress.h - * - * Copyright 2008 Openmoko, Inc. - * Copyright 2008 Simtec Electronics - * http://armlinux.simtec.co.uk/ - * Ben Dooks <ben@simtec.co.uk> - * - * S3C6400 - uncompress code - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_UNCOMPRESS_H -#define __ASM_ARCH_UNCOMPRESS_H - -#include <mach/map.h> -#include <plat/uncompress.h> - -static void arch_detect_cpu(void) -{ - /* we do not need to do any cpu detection here at the moment. */ - fifo_mask = S3C2440_UFSTAT_TXMASK; - fifo_max = 63 << S3C2440_UFSTAT_TXSHIFT; - - uart_base = (volatile u8 *)S3C_PA_UART + - (S3C_UART_OFFSET * CONFIG_S3C_LOWLEVEL_UART_PORT); -} - -#endif /* __ASM_ARCH_UNCOMPRESS_H */ diff --git a/arch/arm/mach-s5p64x0/include/mach/uncompress.h b/arch/arm/mach-s5p64x0/include/mach/uncompress.h deleted file mode 100644 index bbcc3f6..0000000 --- a/arch/arm/mach-s5p64x0/include/mach/uncompress.h +++ /dev/null @@ -1,34 +0,0 @@ -/* linux/arch/arm/mach-s5p64x0/include/mach/uncompress.h - * - * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. - * http://www.samsung.com - * - * S5P64X0 - uncompress code - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_UNCOMPRESS_H -#define __ASM_ARCH_UNCOMPRESS_H - -#include <mach/map.h> -#include <plat/uncompress.h> - -static void arch_detect_cpu(void) -{ - unsigned int chipid; - - chipid = *(const volatile unsigned int __force *) 0xE0100118; - - if ((chipid & 0xff000) == 0x50000) - uart_base = (volatile u8 *)S5P6450_PA_UART(CONFIG_S3C_LOWLEVEL_UART_PORT); - else - uart_base = (volatile u8 *)S5P6440_PA_UART(CONFIG_S3C_LOWLEVEL_UART_PORT); - - fifo_mask = S3C2440_UFSTAT_TXMASK; - fifo_max = 63 << S3C2440_UFSTAT_TXSHIFT; -} - -#endif /* __ASM_ARCH_UNCOMPRESS_H */ diff --git a/arch/arm/mach-s5pc100/include/mach/uncompress.h b/arch/arm/mach-s5pc100/include/mach/uncompress.h deleted file mode 100644 index 720e133..0000000 --- a/arch/arm/mach-s5pc100/include/mach/uncompress.h +++ /dev/null @@ -1,30 +0,0 @@ -/* arch/arm/mach-s5pc100/include/mach/uncompress.h - * - * Copyright 2009 Samsung Electronics Co. - * Byungho Min <bhmin@samsung.com> - * - * S5PC100 - uncompress code - * - * Based on mach-s3c6400/include/mach/uncompress.h - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_UNCOMPRESS_H -#define __ASM_ARCH_UNCOMPRESS_H - -#include <mach/map.h> -#include <plat/uncompress.h> - -static void arch_detect_cpu(void) -{ - /* we do not need to do any cpu detection here at the moment. */ - fifo_mask = S3C2440_UFSTAT_TXMASK; - fifo_max = 63 << S3C2440_UFSTAT_TXSHIFT; - - uart_base = (volatile u8 *)S5P_PA_UART(CONFIG_S3C_LOWLEVEL_UART_PORT); -} - -#endif /* __ASM_ARCH_UNCOMPRESS_H */ diff --git a/arch/arm/mach-s5pv210/include/mach/uncompress.h b/arch/arm/mach-s5pv210/include/mach/uncompress.h deleted file mode 100644 index 231cb07..0000000 --- a/arch/arm/mach-s5pv210/include/mach/uncompress.h +++ /dev/null @@ -1,28 +0,0 @@ -/* linux/arch/arm/mach-s5pv210/include/mach/uncompress.h - * - * Copyright (c) 2010 Samsung Electronics Co., Ltd. - * http://www.samsung.com/ - * - * S5PV210 - uncompress code - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_UNCOMPRESS_H -#define __ASM_ARCH_UNCOMPRESS_H - -#include <mach/map.h> -#include <plat/uncompress.h> - -static void arch_detect_cpu(void) -{ - /* we do not need to do any cpu detection here at the moment. */ - fifo_mask = S5PV210_UFSTAT_TXMASK; - fifo_max = 63 << S5PV210_UFSTAT_TXSHIFT; - - uart_base = (volatile u8 *)S5P_PA_UART(CONFIG_S3C_LOWLEVEL_UART_PORT); -} - -#endif /* __ASM_ARCH_UNCOMPRESS_H */ diff --git a/arch/arm/plat-samsung/include/plat/uncompress.h b/arch/arm/plat-samsung/include/plat/uncompress.h deleted file mode 100644 index 61054fd..0000000 --- a/arch/arm/plat-samsung/include/plat/uncompress.h +++ /dev/null @@ -1,175 +0,0 @@ -/* arch/arm/plat-samsung/include/plat/uncompress.h - * - * Copyright 2003, 2007 Simtec Electronics - * http://armlinux.simtec.co.uk/ - * Ben Dooks <ben@simtec.co.uk> - * - * S3C - uncompress code - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_PLAT_UNCOMPRESS_H -#define __ASM_PLAT_UNCOMPRESS_H - -typedef unsigned int upf_t; /* cannot include linux/serial_core.h */ - -/* uart setup */ - -unsigned int fifo_mask; -unsigned int fifo_max; - -volatile u8 *uart_base; - -/* forward declerations */ - -static void arch_detect_cpu(void); - -/* defines for UART registers */ - -#include <linux/serial_s3c.h> - -/* working in physical space... */ -#define S3C_WDOGREG(x) ((S3C_PA_WDT + (x))) - -#define S3C2410_WTCON S3C_WDOGREG(0x00) -#define S3C2410_WTDAT S3C_WDOGREG(0x04) -#define S3C2410_WTCNT S3C_WDOGREG(0x08) - -#define S3C2410_WTCON_RSTEN (1 << 0) -#define S3C2410_WTCON_ENABLE (1 << 5) - -#define S3C2410_WTCON_DIV128 (3 << 3) - -#define S3C2410_WTCON_PRESCALE(x) ((x) << 8) - -/* how many bytes we allow into the FIFO@a time in FIFO mode */ -#define FIFO_MAX (14) - -static __inline__ void -uart_wr(unsigned int reg, unsigned int val) -{ - volatile unsigned int *ptr; - - ptr = (volatile unsigned int *)(reg + uart_base); - *ptr = val; -} - -static __inline__ unsigned int -uart_rd(unsigned int reg) -{ - volatile unsigned int *ptr; - - ptr = (volatile unsigned int *)(reg + uart_base); - return *ptr; -} - -/* we can deal with the case the UARTs are being run - * in FIFO mode, so that we don't hold up our execution - * waiting for tx to happen... -*/ - -static void putc(int ch) -{ - if (!config_enabled(CONFIG_DEBUG_LL)) - return; - - if (uart_rd(S3C2410_UFCON) & S3C2410_UFCON_FIFOMODE) { - int level; - - while (1) { - level = uart_rd(S3C2410_UFSTAT); - level &= fifo_mask; - - if (level < fifo_max) - break; - } - - } else { - /* not using fifos */ - - while ((uart_rd(S3C2410_UTRSTAT) & S3C2410_UTRSTAT_TXE) != S3C2410_UTRSTAT_TXE) - barrier(); - } - - /* write byte to transmission register */ - uart_wr(S3C2410_UTXH, ch); -} - -static inline void flush(void) -{ -} - -#define __raw_writel(d, ad) \ - do { \ - *((volatile unsigned int __force *)(ad)) = (d); \ - } while (0) - -#ifdef CONFIG_S3C_BOOT_ERROR_RESET - -static void arch_decomp_error(const char *x) -{ - putstr("\n\n"); - putstr(x); - putstr("\n\n -- System resetting\n"); - - __raw_writel(0x4000, S3C2410_WTDAT); - __raw_writel(0x4000, S3C2410_WTCNT); - __raw_writel(S3C2410_WTCON_ENABLE | S3C2410_WTCON_DIV128 | S3C2410_WTCON_RSTEN | S3C2410_WTCON_PRESCALE(0x40), S3C2410_WTCON); - - while(1); -} - -#define arch_error arch_decomp_error -#endif - -#ifdef CONFIG_S3C_BOOT_UART_FORCE_FIFO -static inline void arch_enable_uart_fifo(void) -{ - u32 fifocon; - - if (!config_enabled(CONFIG_DEBUG_LL)) - return; - - fifocon = uart_rd(S3C2410_UFCON); - - if (!(fifocon & S3C2410_UFCON_FIFOMODE)) { - fifocon |= S3C2410_UFCON_RESETBOTH; - uart_wr(S3C2410_UFCON, fifocon); - - /* wait for fifo reset to complete */ - while (1) { - fifocon = uart_rd(S3C2410_UFCON); - if (!(fifocon & S3C2410_UFCON_RESETBOTH)) - break; - } - - uart_wr(S3C2410_UFCON, S3C2410_UFCON_FIFOMODE); - } -} -#else -#define arch_enable_uart_fifo() do { } while(0) -#endif - - -static void -arch_decomp_setup(void) -{ - /* we may need to setup the uart(s) here if we are not running - * on an BAST... the BAST will have left the uarts configured - * after calling linux. - */ - - arch_detect_cpu(); - - /* Enable the UART FIFOs if they where not enabled and our - * configuration says we should turn them on. - */ - - arch_enable_uart_fifo(); -} - - -#endif /* __ASM_PLAT_UNCOMPRESS_H */ -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* RE: [PATCH v2 0/2] ARM: SAMSUNG: remove the rest of local uncompress.h files 2014-02-25 19:36 ` Heiko Stübner @ 2014-03-11 1:56 ` Kukjin Kim -1 siblings, 0 replies; 8+ messages in thread From: Kukjin Kim @ 2014-03-11 1:56 UTC (permalink / raw) To: 'Heiko Stübner' Cc: linux-arm-kernel, linux-samsung-soc, tomasz.figa, 'Sachin Kamat', 'Arnd Bergmann' Heiko Stübner wrote: > > Two patches from Sachin Kamat already removed the Exynos-uncompress.h . > But in fact all Samsung platforms can use the generic uncompress code > without needing local implementation. > > Therefore this two-part series removes the rest of the uncompress.h files > from all Samsung platforms. > > Tested on a s3c2416 and s3c2442 based machine. > > The patches should be applied on top of the patches from Sachin Kamat in > the v3.15-next/cleanup-samsung branch in the linux-samsung.git > > > Heiko Stuebner (2): > ARM: SAMSUNG: use generic uncompress.h > ARM: SAMSUNG: remove all custom uncompress.h > > arch/arm/Kconfig.debug | 4 +- > arch/arm/mach-s3c24xx/include/mach/uncompress.h | 57 -------- > arch/arm/mach-s3c64xx/include/mach/uncompress.h | 31 ----- > arch/arm/mach-s5p64x0/include/mach/uncompress.h | 34 ----- > arch/arm/mach-s5pc100/include/mach/uncompress.h | 30 ---- > arch/arm/mach-s5pv210/include/mach/uncompress.h | 28 ---- > arch/arm/plat-samsung/include/plat/uncompress.h | 175 ------------------- > ----- > 7 files changed, 2 insertions(+), 357 deletions(-) > delete mode 100644 arch/arm/mach-s3c24xx/include/mach/uncompress.h > delete mode 100644 arch/arm/mach-s3c64xx/include/mach/uncompress.h > delete mode 100644 arch/arm/mach-s5p64x0/include/mach/uncompress.h > delete mode 100644 arch/arm/mach-s5pc100/include/mach/uncompress.h > delete mode 100644 arch/arm/mach-s5pv210/include/mach/uncompress.h > delete mode 100644 arch/arm/plat-samsung/include/plat/uncompress.h > > -- > 1.8.5.3 Looks good to me, will apply. Thanks, Kukjin ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 0/2] ARM: SAMSUNG: remove the rest of local uncompress.h files @ 2014-03-11 1:56 ` Kukjin Kim 0 siblings, 0 replies; 8+ messages in thread From: Kukjin Kim @ 2014-03-11 1:56 UTC (permalink / raw) To: linux-arm-kernel Heiko St?bner wrote: > > Two patches from Sachin Kamat already removed the Exynos-uncompress.h . > But in fact all Samsung platforms can use the generic uncompress code > without needing local implementation. > > Therefore this two-part series removes the rest of the uncompress.h files > from all Samsung platforms. > > Tested on a s3c2416 and s3c2442 based machine. > > The patches should be applied on top of the patches from Sachin Kamat in > the v3.15-next/cleanup-samsung branch in the linux-samsung.git > > > Heiko Stuebner (2): > ARM: SAMSUNG: use generic uncompress.h > ARM: SAMSUNG: remove all custom uncompress.h > > arch/arm/Kconfig.debug | 4 +- > arch/arm/mach-s3c24xx/include/mach/uncompress.h | 57 -------- > arch/arm/mach-s3c64xx/include/mach/uncompress.h | 31 ----- > arch/arm/mach-s5p64x0/include/mach/uncompress.h | 34 ----- > arch/arm/mach-s5pc100/include/mach/uncompress.h | 30 ---- > arch/arm/mach-s5pv210/include/mach/uncompress.h | 28 ---- > arch/arm/plat-samsung/include/plat/uncompress.h | 175 ------------------- > ----- > 7 files changed, 2 insertions(+), 357 deletions(-) > delete mode 100644 arch/arm/mach-s3c24xx/include/mach/uncompress.h > delete mode 100644 arch/arm/mach-s3c64xx/include/mach/uncompress.h > delete mode 100644 arch/arm/mach-s5p64x0/include/mach/uncompress.h > delete mode 100644 arch/arm/mach-s5pc100/include/mach/uncompress.h > delete mode 100644 arch/arm/mach-s5pv210/include/mach/uncompress.h > delete mode 100644 arch/arm/plat-samsung/include/plat/uncompress.h > > -- > 1.8.5.3 Looks good to me, will apply. Thanks, Kukjin ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-03-11 1:56 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-02-25 19:36 [PATCH v2 0/2] ARM: SAMSUNG: remove the rest of local uncompress.h files Heiko Stübner 2014-02-25 19:36 ` Heiko Stübner 2014-02-25 19:38 ` [PATCH v2 1/2] ARM: SAMSUNG: use generic uncompress.h Heiko Stübner 2014-02-25 19:38 ` Heiko Stübner 2014-02-25 19:39 ` [PATCH v2 2/2] ARM: SAMSUNG: remove all custom uncompress.h Heiko Stübner 2014-02-25 19:39 ` Heiko Stübner 2014-03-11 1:56 ` [PATCH v2 0/2] ARM: SAMSUNG: remove the rest of local uncompress.h files Kukjin Kim 2014-03-11 1:56 ` Kukjin Kim
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.