Loading Documentation/arm/Samsung-S3C24XX/Overview.txt +40 −1 Original line number Original line Diff line number Diff line Loading @@ -81,7 +81,8 @@ Adding New Machines Any large scale modifications, or new drivers should be discussed Any large scale modifications, or new drivers should be discussed on the ARM kernel mailing list (linux-arm-kernel) before being on the ARM kernel mailing list (linux-arm-kernel) before being attempted. attempted. See http://www.arm.linux.org.uk/mailinglists/ for the mailing list information. NAND NAND Loading Loading @@ -120,6 +121,43 @@ Clock Management various clock units various clock units Platform Data ------------- Whenever a device has platform specific data that is specified on a per-machine basis, care should be taken to ensure the following: 1) that default data is not left in the device to confuse the driver if a machine does not set it at startup 2) the data should (if possible) be marked as __initdata, to ensure that the data is thrown away if the machine is not the one currently in use. The best way of doing this is to make a function that kmalloc()s an area of memory, and copies the __initdata and then sets the relevant device's platform data. Making the function `__init` takes care of ensuring it is discarded with the rest of the initialisation code static __init void s3c24xx_xxx_set_platdata(struct xxx_data *pd) { struct s3c2410_xxx_mach_info *npd; npd = kmalloc(sizeof(struct s3c2410_xxx_mach_info), GFP_KERNEL); if (npd) { memcpy(npd, pd, sizeof(struct s3c2410_xxx_mach_info)); s3c_device_xxx.dev.platform_data = npd; } else { printk(KERN_ERR "no memory for xxx platform data\n"); } } Note, since the code is marked as __init, it should not be exported outside arch/arm/mach-s3c2410/, or exported to modules via EXPORT_SYMBOL() and related functions. Port Contributors Port Contributors ----------------- ----------------- Loading Loading @@ -149,6 +187,7 @@ Document Changes 06 Mar 2005 - BJD - Added Christer Weinigel 06 Mar 2005 - BJD - Added Christer Weinigel 08 Mar 2005 - BJD - Added LCVR to list of people, updated introduction 08 Mar 2005 - BJD - Added LCVR to list of people, updated introduction 08 Mar 2005 - BJD - Added section on adding machines 08 Mar 2005 - BJD - Added section on adding machines 09 Sep 2005 - BJD - Added section on platform data Document Author Document Author --------------- --------------- Loading arch/arm/Kconfig +9 −0 Original line number Original line Diff line number Diff line Loading @@ -194,6 +194,13 @@ config ARCH_VERSATILE help help This enables support for ARM Ltd Versatile board. This enables support for ARM Ltd Versatile board. config ARCH_REALVIEW bool "RealView" select ARM_AMBA select ICST307 help This enables support for ARM Ltd RealView boards. config ARCH_IMX config ARCH_IMX bool "IMX" bool "IMX" Loading Loading @@ -244,6 +251,8 @@ source "arch/arm/mach-versatile/Kconfig" source "arch/arm/mach-aaec2000/Kconfig" source "arch/arm/mach-aaec2000/Kconfig" source "arch/arm/mach-realview/Kconfig" # Definitions to make life easier # Definitions to make life easier config ARCH_ACORN config ARCH_ACORN bool bool Loading arch/arm/Makefile +1 −0 Original line number Original line Diff line number Diff line Loading @@ -99,6 +99,7 @@ textaddr-$(CONFIG_ARCH_FORTUNET) := 0xc0008000 machine-$(CONFIG_ARCH_IMX) := imx machine-$(CONFIG_ARCH_IMX) := imx machine-$(CONFIG_ARCH_H720X) := h720x machine-$(CONFIG_ARCH_H720X) := h720x machine-$(CONFIG_ARCH_AAEC2000) := aaec2000 machine-$(CONFIG_ARCH_AAEC2000) := aaec2000 machine-$(CONFIG_ARCH_REALVIEW) := realview ifeq ($(CONFIG_ARCH_EBSA110),y) ifeq ($(CONFIG_ARCH_EBSA110),y) # This is what happens if you forget the IOCS16 line. # This is what happens if you forget the IOCS16 line. Loading arch/arm/configs/ixp4xx_defconfig +1 −1 Original line number Original line Diff line number Diff line Loading @@ -104,7 +104,7 @@ CONFIG_ARCH_IXCDP1100=y CONFIG_ARCH_PRPMC1100=y CONFIG_ARCH_PRPMC1100=y CONFIG_ARCH_IXDP4XX=y CONFIG_ARCH_IXDP4XX=y CONFIG_CPU_IXP46X=y CONFIG_CPU_IXP46X=y CONFIG_MACH_GTWX5715=y # CONFIG_MACH_GTWX5715 is not set # # # IXP4xx Options # IXP4xx Options Loading arch/arm/lib/Makefile +18 −4 Original line number Original line Diff line number Diff line Loading @@ -7,13 +7,27 @@ lib-y := backtrace.o changebit.o csumipv6.o csumpartial.o \ lib-y := backtrace.o changebit.o csumipv6.o csumpartial.o \ csumpartialcopy.o csumpartialcopyuser.o clearbit.o \ csumpartialcopy.o csumpartialcopyuser.o clearbit.o \ copy_page.o delay.o findbit.o memchr.o memcpy.o \ copy_page.o delay.o findbit.o memchr.o memcpy.o \ memset.o memzero.o setbit.o strncpy_from_user.o \ memmove.o memset.o memzero.o setbit.o \ strnlen_user.o strchr.o strrchr.o testchangebit.o \ strncpy_from_user.o strnlen_user.o \ testclearbit.o testsetbit.o uaccess.o getuser.o \ strchr.o strrchr.o \ putuser.o ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \ testchangebit.o testclearbit.o testsetbit.o \ getuser.o putuser.o clear_user.o \ ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \ ucmpdi2.o lib1funcs.o div64.o sha1.o \ ucmpdi2.o lib1funcs.o div64.o sha1.o \ io-readsb.o io-writesb.o io-readsl.o io-writesl.o io-readsb.o io-writesb.o io-readsl.o io-writesl.o # the code in uaccess.S is not preemption safe and # probably faster on ARMv3 only ifeq ($CONFIG_PREEMPT,y) lib-y += copy_from_user.o copy_to_user.o else ifneq ($(CONFIG_CPU_32v3),y) lib-y += copy_from_user.o copy_to_user.o else lib-y += uaccess.o endif endif ifeq ($(CONFIG_CPU_32v3),y) ifeq ($(CONFIG_CPU_32v3),y) lib-y += io-readsw-armv3.o io-writesw-armv3.o lib-y += io-readsw-armv3.o io-writesw-armv3.o else else Loading Loading
Documentation/arm/Samsung-S3C24XX/Overview.txt +40 −1 Original line number Original line Diff line number Diff line Loading @@ -81,7 +81,8 @@ Adding New Machines Any large scale modifications, or new drivers should be discussed Any large scale modifications, or new drivers should be discussed on the ARM kernel mailing list (linux-arm-kernel) before being on the ARM kernel mailing list (linux-arm-kernel) before being attempted. attempted. See http://www.arm.linux.org.uk/mailinglists/ for the mailing list information. NAND NAND Loading Loading @@ -120,6 +121,43 @@ Clock Management various clock units various clock units Platform Data ------------- Whenever a device has platform specific data that is specified on a per-machine basis, care should be taken to ensure the following: 1) that default data is not left in the device to confuse the driver if a machine does not set it at startup 2) the data should (if possible) be marked as __initdata, to ensure that the data is thrown away if the machine is not the one currently in use. The best way of doing this is to make a function that kmalloc()s an area of memory, and copies the __initdata and then sets the relevant device's platform data. Making the function `__init` takes care of ensuring it is discarded with the rest of the initialisation code static __init void s3c24xx_xxx_set_platdata(struct xxx_data *pd) { struct s3c2410_xxx_mach_info *npd; npd = kmalloc(sizeof(struct s3c2410_xxx_mach_info), GFP_KERNEL); if (npd) { memcpy(npd, pd, sizeof(struct s3c2410_xxx_mach_info)); s3c_device_xxx.dev.platform_data = npd; } else { printk(KERN_ERR "no memory for xxx platform data\n"); } } Note, since the code is marked as __init, it should not be exported outside arch/arm/mach-s3c2410/, or exported to modules via EXPORT_SYMBOL() and related functions. Port Contributors Port Contributors ----------------- ----------------- Loading Loading @@ -149,6 +187,7 @@ Document Changes 06 Mar 2005 - BJD - Added Christer Weinigel 06 Mar 2005 - BJD - Added Christer Weinigel 08 Mar 2005 - BJD - Added LCVR to list of people, updated introduction 08 Mar 2005 - BJD - Added LCVR to list of people, updated introduction 08 Mar 2005 - BJD - Added section on adding machines 08 Mar 2005 - BJD - Added section on adding machines 09 Sep 2005 - BJD - Added section on platform data Document Author Document Author --------------- --------------- Loading
arch/arm/Kconfig +9 −0 Original line number Original line Diff line number Diff line Loading @@ -194,6 +194,13 @@ config ARCH_VERSATILE help help This enables support for ARM Ltd Versatile board. This enables support for ARM Ltd Versatile board. config ARCH_REALVIEW bool "RealView" select ARM_AMBA select ICST307 help This enables support for ARM Ltd RealView boards. config ARCH_IMX config ARCH_IMX bool "IMX" bool "IMX" Loading Loading @@ -244,6 +251,8 @@ source "arch/arm/mach-versatile/Kconfig" source "arch/arm/mach-aaec2000/Kconfig" source "arch/arm/mach-aaec2000/Kconfig" source "arch/arm/mach-realview/Kconfig" # Definitions to make life easier # Definitions to make life easier config ARCH_ACORN config ARCH_ACORN bool bool Loading
arch/arm/Makefile +1 −0 Original line number Original line Diff line number Diff line Loading @@ -99,6 +99,7 @@ textaddr-$(CONFIG_ARCH_FORTUNET) := 0xc0008000 machine-$(CONFIG_ARCH_IMX) := imx machine-$(CONFIG_ARCH_IMX) := imx machine-$(CONFIG_ARCH_H720X) := h720x machine-$(CONFIG_ARCH_H720X) := h720x machine-$(CONFIG_ARCH_AAEC2000) := aaec2000 machine-$(CONFIG_ARCH_AAEC2000) := aaec2000 machine-$(CONFIG_ARCH_REALVIEW) := realview ifeq ($(CONFIG_ARCH_EBSA110),y) ifeq ($(CONFIG_ARCH_EBSA110),y) # This is what happens if you forget the IOCS16 line. # This is what happens if you forget the IOCS16 line. Loading
arch/arm/configs/ixp4xx_defconfig +1 −1 Original line number Original line Diff line number Diff line Loading @@ -104,7 +104,7 @@ CONFIG_ARCH_IXCDP1100=y CONFIG_ARCH_PRPMC1100=y CONFIG_ARCH_PRPMC1100=y CONFIG_ARCH_IXDP4XX=y CONFIG_ARCH_IXDP4XX=y CONFIG_CPU_IXP46X=y CONFIG_CPU_IXP46X=y CONFIG_MACH_GTWX5715=y # CONFIG_MACH_GTWX5715 is not set # # # IXP4xx Options # IXP4xx Options Loading
arch/arm/lib/Makefile +18 −4 Original line number Original line Diff line number Diff line Loading @@ -7,13 +7,27 @@ lib-y := backtrace.o changebit.o csumipv6.o csumpartial.o \ lib-y := backtrace.o changebit.o csumipv6.o csumpartial.o \ csumpartialcopy.o csumpartialcopyuser.o clearbit.o \ csumpartialcopy.o csumpartialcopyuser.o clearbit.o \ copy_page.o delay.o findbit.o memchr.o memcpy.o \ copy_page.o delay.o findbit.o memchr.o memcpy.o \ memset.o memzero.o setbit.o strncpy_from_user.o \ memmove.o memset.o memzero.o setbit.o \ strnlen_user.o strchr.o strrchr.o testchangebit.o \ strncpy_from_user.o strnlen_user.o \ testclearbit.o testsetbit.o uaccess.o getuser.o \ strchr.o strrchr.o \ putuser.o ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \ testchangebit.o testclearbit.o testsetbit.o \ getuser.o putuser.o clear_user.o \ ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \ ucmpdi2.o lib1funcs.o div64.o sha1.o \ ucmpdi2.o lib1funcs.o div64.o sha1.o \ io-readsb.o io-writesb.o io-readsl.o io-writesl.o io-readsb.o io-writesb.o io-readsl.o io-writesl.o # the code in uaccess.S is not preemption safe and # probably faster on ARMv3 only ifeq ($CONFIG_PREEMPT,y) lib-y += copy_from_user.o copy_to_user.o else ifneq ($(CONFIG_CPU_32v3),y) lib-y += copy_from_user.o copy_to_user.o else lib-y += uaccess.o endif endif ifeq ($(CONFIG_CPU_32v3),y) ifeq ($(CONFIG_CPU_32v3),y) lib-y += io-readsw-armv3.o io-writesw-armv3.o lib-y += io-readsw-armv3.o io-writesw-armv3.o else else Loading