Prev: problems of using the 2.6.26 Linux Kernel Debugger (KGDB) with VMware
Next: Patches for mpc52xx_spi
From: Steven King on 10 Nov 2009 04:00 On Sunday 18 October 2009 04:55:40 Steven King wrote: > This is a script and patch to merge the m68knommu arch into m68k. Ping. > > The script was inspired by the script Sam Ravnborg used to merge the > includes from m68knommu. For those files common to both arches but > differing in content, the m68k version of the file is renamed to > <file>_mm.<ext> and the m68knommu version of the file is moved into the > corresponding m68k directory and renamed <file>_no.<ext> and a small > wrapper file <file>.<ext> is used to select between the two version. > Files that are common to both but don't differ are removed from the > m68knommu tree and files and directories that are unique to the > m68knommu tree are moved to the m68k tree. Finally, the arch/m68knommu > tree is removed. > > To select between the the versions of the files, the wrapper uses > > #ifdef CONFIG_MMU > #include <file>_mm.<ext> > #else > #include <file>_no.<ext> > #endif > > The patch modifies the toplevel Makefile so that ARCH=m68knommu still > works (by setting SRCARCH=m68k) and adds the m68knommu Kconfig and > Makefile to the m68k Kconfig and Makefile, using the definition of ARCH > to select which values to use. > > Thus when building for either a m68k or an m68knommu target, one still > specifies either ARCH=m68k or ARCH=m68knommu and everything should > build EXACTLY as it did pre-merge. (I think). > > > Signed-off-by: Steven King <sfking(a)fdwdc.com> > > ------------------------------------------------------------------------ >------- > > #!/bin/sh > > > mergefile() { > BASE=${1%.?} > EXT=${1#${BASE}} > git mv ${TARGET}/$1 ${TARGET}/${BASE}_mm${EXT} > git mv ${SOURCE}/$1 ${TARGET}/${BASE}_no${EXT} > cat <<-EOF > ${TARGET}/$1 > #ifdef CONFIG_MMU > #include "${BASE}_mm${EXT}" > #else > #include "${BASE}_no${EXT}" > #endif > EOF > git add ${TARGET}/$1 > } > > mergedir() { > TARGET=arch/m68k/$1 > SOURCE=arch/m68knommu/$1 > files=${1}_MERGE_FILES > MERGE_FILES=${!files} > > echo "merging files in $1" > for F in $MERGE_FILES ; do > mergefile $F > done > > files=${1}_NOMERGE_FILES > NOMERGE_FILES=${!files} > > echo "moving files in $1" > for F in $NOMERGE_FILES ; do > git mv ${SOURCE}/$F ${TARGET}/$F > done > > files=${1}_REMOVE_FILES > REMOVE_FILES=${!files} > > echo "removing common files in $1" > for F in $REMOVE_FILES ; do > git rm ${SOURCE}/$F > done > > if [ -e ${SOURCE}/Makefile ]; then > git mv ${TARGET}/Makefile ${TARGET}/Makefile_mm > git mv ${SOURCE}/Makefile ${TARGET}/Makefile_no > cat <<-EOF > ${TARGET}/Makefile > ifdef CONFIG_MMU > include ${TARGET}/Makefile_mm > else > include ${TARGET}/Makefile_no > endif > EOF > git add ${TARGET}/Makefile > fi > } > > configs_MERGE_FILES="" > configs_NOMERGE_FILES="m5208evb_defconfig \ > m5272c3_defconfig \ > m5307c3_defconfig \ > m5249evb_defconfig \ > m5275evb_defconfig \ > m5407c3_defconfig" > configs_REMOVE_FILES="" > kernel_MERGE_FILES="asm-offsets.c \ > dma.c entry.S \ > m68k_ksyms.c \ > module.c \ > process.c \ > ptrace.c \ > setup.c \ > signal.c \ > sys_m68k.c \ > time.c \ > traps.c \ > vmlinux.lds.S" > kernel_NOMERGE_FILES="init_task.c \ > irq.c \ > syscalltable.S" > kernel_REMOVE_FILES="" > lib_MERGE_FILES="checksum.c \ > muldi3.c" > lib_NOMERGE_FILES="delay.c \ > divsi3.S \ > memcpy.c \ > memset.c \ > modsi3.S \ > mulsi3.S \ > udivsi3.S \ > umodsi3.S" > lib_REMOVE_FILES="ashldi3.c \ > ashrdi3.c \ > lshrdi3.c" > mm_MERGE_FILES="fault.c \ > init.c \ > kmap.c \ > memory.c" > mm_NOMERGE_FILES="" > mm_REMOVE_FILES="" > > DIRS="configs kernel lib mm" > > for dir in $DIRS ; do > mergedir $dir > done > echo "moving platform" > git mv arch/m68knommu/platform arch/m68k/ > echo "removing remaining m68knommu dirs" > git rm -r arch/m68knommu > rm -r arch/m68knommu > exit 0 > > ------------------------------------------------------------------------ >------- > > diff --git a/Makefile b/Makefile > index 9425d1d..1de4c0f 100644 > --- a/Makefile > +++ b/Makefile > @@ -205,13 +205,14 @@ ifeq ($(ARCH),sh64) > SRCARCH := sh > endif > > -# Where to locate arch specific headers > -hdr-arch := $(SRCARCH) > - > +# Additional ARCH settings for m68k > ifeq ($(ARCH),m68knommu) > - hdr-arch := m68k > + SRCARCH := m68k > endif > > +# Where to locate arch specific headers > +hdr-arch := $(SRCARCH) > + > KCONFIG_CONFIG ?= .config > > # SHELL used by kbuild > diff --git a/arch/m68k/Kconfig.debug b/arch/m68k/Kconfig.debug > index f53b6d5..cec668b 100644 > --- a/arch/m68k/Kconfig.debug > +++ b/arch/m68k/Kconfig.debug > @@ -2,4 +2,37 @@ menu "Kernel hacking" > > source "lib/Kconfig.debug" > > +if ARCH = "m68knommu" > + > +config FULLDEBUG > + bool "Full Symbolic/Source Debugging support" > + help > + Enable debugging symbols on kernel build. > + > +config HIGHPROFILE > + bool "Use fast second timer for profiling" > + depends on COLDFIRE > + help > + Use a fast secondary clock to produce profiling information. > + > +config BOOTPARAM > + bool 'Compiled-in Kernel Boot Parameter' > + > +config BOOTPARAM_STRING > + string 'Kernel Boot Parameter' > + default 'console=ttyS0,19200' > + depends on BOOTPARAM > + > +config NO_KERNEL_MSG > + bool "Suppress Kernel BUG Messages" > + help > + Do not output any debug BUG messages within the kernel. > + > +config BDM_DISABLE > + bool "Disable BDM signals" > + depends on (EXPERIMENTAL && COLDFIRE) > + help > + Disable the ColdFire CPU's BDM signals. > + > +endif > endmenu > diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig > index 29dd848..7a27ca7 100644 > --- a/arch/m68k/Kconfig > +++ b/arch/m68k/Kconfig > @@ -2,6 +2,8 @@ > # For a description of the syntax of this configuration file, > # see Documentation/kbuild/kconfig-language.txt. > # > +if ARCH != "m68knommu" > + > config M68K > bool > default y > @@ -64,6 +66,89 @@ config GENERIC_TIME > config ARCH_USES_GETTIMEOFFSET > def_bool y > > +endif > + > +if ARCH = "m68knommu" > + > +config M68K > + bool > + default y > + select HAVE_IDE > + > +config MMU > + bool > + default n > + > +config NO_DMA > + bool > + depends on !COLDFIRE > + default y > + > +config FPU > + bool > + default n > + > +config ZONE_DMA > + bool > + default y > + > +config RWSEM_GENERIC_SPINLOCK > + bool > + default y > + > +config RWSEM_XCHGADD_ALGORITHM > + bool > + default n > + > +config ARCH_HAS_ILOG2_U32 > + bool > + default n > + > +config ARCH_HAS_ILOG2_U64 > + bool > + default n > + > +config GENERIC_FIND_NEXT_BIT > + bool > + default y > + > +config GENERIC_GPIO > + bool > + default n > + > +config GENERIC_HWEIGHT > + bool > + default y > + > +config GENERIC_HARDIRQS > + bool > + default y > + > +config GENERIC_CALIBRATE_DELAY > + bool > + default y > + > +config GENERIC_TIME > + bool > + default y > + > +config GENERIC_CMOS_UPDATE > + bool > + default y > + > +config TIME_LOW_RES > + bool > + default y > + > +config GENERIC_CLOCKEVENTS > + bool > + default n > + > +config NO_IOPORT > + def_bool y > + > +endif > + > mainmenu "Linux/68k Kernel Configuration" > > source "init/Kconfig" > @@ -72,6 +157,7 @@ source "kernel/Kconfig.freezer" > > menu "Platform dependent setup" > > +if ARCH != "m68knommu" > config EISA > bool > ---help--- > @@ -384,15 +470,638 @@ config NODES_SHIFT > int > default "3" > depends on !SINGLE_MEMORY_CHUNK > +endif > + > + > +if ARCH = "m68knommu" > +choice > + prompt "CPU" > + default M68EZ328 > + > +config M68328 > + bool "MC68328" > + help > + Motorola 68328 processor support. > + > +config M68EZ328 > + bool "MC68EZ328" > + help > + Motorola 68EX328 processor support. > + > +config M68VZ328 > + bool "MC68VZ328" > + help > + Motorola 68VZ328 processor support. > + > +config M68360 > + bool "MC68360" > + help > + Motorola 68360 processor support. > + > +config M5206 > + bool "MCF5206" > + help > + Motorola ColdFire 5206 processor support. > + > +config M5206e > + bool "MCF5206e" > + help > + Motorola ColdFire 5206e processor support. > + > +config M520x > + bool "MCF520x" > + select GENERIC_CLOCKEVENTS > + help > + Freescale Coldfire 5207/5208 processor support. > + > +config M523x > + bool "MCF523x" > + select GENERIC_CLOCKEVENTS > + help > + Freescale Coldfire 5230/1/2/4/5 processor support > + > +config M5249 > + bool "MCF5249" > + help > + Motorola ColdFire 5249 processor support. > + > +config M5271 > + bool "MCF5271" > + help > + Freescale (Motorola) ColdFire 5270/5271 processor support. > + > +config M5272 > + bool "MCF5272" > + help > + Motorola ColdFire 5272 processor support. > + > +config M5275 > + bool "MCF5275" > + help > + Freescale (Motorola) ColdFire 5274/5275 processor support. > + > +config M528x > + bool "MCF528x" > + select GENERIC_CLOCKEVENTS > + help > + Motorola ColdFire 5280/5282 processor support. > + > +config M5307 > + bool "MCF5307" > + help > + Motorola ColdFire 5307 processor support. > + > +config M532x > + bool "MCF532x" > + help > + Freescale (Motorola) ColdFire 532x processor support. > + > +config M5407 > + bool "MCF5407" > + help > + Motorola ColdFire 5407 processor support. > + > +endchoice > + > +config M527x > + bool > + depends on (M5271 || M5275) > + select GENERIC_CLOCKEVENTS > + default y > + > +config COLDFIRE > + bool > + depends on (M5206 || M5206e || M520x || M523x || M5249 || M527x || > M5272 || M528x || M5307 || M532x || M5407) + select GENERIC_GPIO > + select ARCH_REQUIRE_GPIOLIB > + default y > + > +config CLOCK_SET > + bool "Enable setting the CPU clock frequency" > + default n > + help > + On some CPU's you do not need to know what the core CPU clock > + frequency is. On these you can disable clock setting. On some > + traditional 68K parts, and on all ColdFire parts you need to set > + the appropriate CPU clock frequency. On these devices many of the > + onboard peripherals derive their timing from the master CPU clock > + frequency. > + > +config CLOCK_FREQ > + int "Set the core clock frequency" > + default "66666666" > + depends on CLOCK_SET > + help > + Define the CPU clock frequency in use. This is the core clock > + frequency, it may or may not be the same as the external clock > + crystal fitted to your board. Some processors have an internal > + PLL and can have their frequency programmed at run time, others > + use internal dividers. In general the kernel won't setup a PLL > + if it is fitted (there are some exceptions). This value will be > + specific to the exact CPU that you are using. > + > +config CLOCK_DIV > + int "Set the core/bus clock divide ratio" > + default "1" > + depends on CLOCK_SET > + help > + On many SoC style CPUs the master CPU clock is also used to drive > + on-chip peripherals. The clock that is distributed to these > + peripherals is sometimes a fixed ratio of the master clock > + frequency. If so then set this to the divider ratio of the > + master clock to the peripheral clock. If not sure then select 1. > + > +config OLDMASK > + bool "Old mask 5307 (1H55J) silicon" > + depends on M5307 > + help > + Build support for the older revision ColdFire 5307 silicon. > + Specifically this is the 1H55J mask revision. > + > +comment "Platform" > + > +config PILOT3 > + bool "Pilot 1000/5000, PalmPilot Personal/Pro, or PalmIII support" > + depends on M68328 > + help > + Support for the Palm Pilot 1000/5000, Personal/Pro and PalmIII. > + > +config XCOPILOT_BUGS > + bool "(X)Copilot support" > + depends on PILOT3 > + help > + Support the bugs of Xcopilot. > + > +config UC5272 > + bool 'Arcturus Networks uC5272 dimm board support' > + depends on M5272 > + help > + Support for the Arcturus Networks uC5272 dimm board. > + > +config UC5282 > + bool "Arcturus Networks uC5282 board support" > + depends on M528x > + help > + Support for the Arcturus Networks uC5282 dimm board. > + > +config UCSIMM > + bool "uCsimm module support" > + depends on M68EZ328 > + help > + Support for the Arcturus Networks uCsimm module. > + > +config UCDIMM > + bool "uDsimm module support" > + depends on M68VZ328 > + help > + Support for the Arcturus Networks uDsimm module. > + > +config DRAGEN2 > + bool "DragenEngine II board support" > + depends on M68VZ328 > + help > + Support for the DragenEngine II board. > + > +config DIRECT_IO_ACCESS > + bool "Allow user to access IO directly" > + depends on (UCSIMM || UCDIMM || DRAGEN2) > + help > + Disable the CPU internal registers protection in user mode, > + to allow a user application to read/write them. > + > +config INIT_LCD > + bool "Initialize LCD" > + depends on (UCSIMM || UCDIMM || DRAGEN2) > + help > + Initialize the LCD controller of the 68x328 processor. > + > +config MEMORY_RESERVE > + int "Memory reservation (MiB)" > + depends on (UCSIMM || UCDIMM) > + help > + Reserve certain memory regions on 68x328 based boards. > + > +config UCQUICC > + bool "Lineo uCquicc board support" > + depends on M68360 > + help > + Support for the Lineo uCquicc board. > + > +config ARN5206 > + bool "Arnewsh 5206 board support" > + depends on M5206 > + help > + Support for the Arnewsh 5206 board. > + > +config M5206eC3 > + bool "Motorola M5206eC3 board support" > + depends on M5206e > + help > + Support for the Motorola M5206eC3 board. > + > +config ELITE > + bool "Motorola M5206eLITE board support" > + depends on M5206e > + help > + Support for the Motorola M5206eLITE board. > + > +config M5208EVB > + bool "Freescale M5208EVB board support" > + depends on M520x > + help > + Support for the Freescale Coldfire M5208EVB. > + > +config M5235EVB > + bool "Freescale M5235EVB support" > + depends on M523x > + help > + Support for the Freescale M5235EVB board. > + > +config M5249C3 > + bool "Motorola M5249C3 board support" > + depends on M5249 > + help > + Support for the Motorola M5249C3 board. > + > +config M5271EVB > + bool "Freescale (Motorola) M5271EVB board support" > + depends on M5271 > + help > + Support for the Freescale (Motorola) M5271EVB board. > + > +config M5275EVB > + bool "Freescale (Motorola) M5275EVB board support" > + depends on M5275 > + help > + Support for the Freescale (Motorola) M5275EVB board. > + > +config M5272C3 > + bool "Motorola M5272C3 board support" > + depends on M5272 > + help > + Support for the Motorola M5272C3 board. > + > +config COBRA5272 > + bool "senTec COBRA5272 board support" > + depends on M5272 > + help > + Support for the senTec COBRA5272 board. > + > +config AVNET5282 > + bool "Avnet 5282 board support" > + depends on M528x > + help > + Support for the Avnet 5282 board. > + > +config M5282EVB > + bool "Motorola M5282EVB board support" > + depends on M528x > + help > + Support for the Motorola M5282EVB board. > + > +config COBRA5282 > + bool "senTec COBRA5282 board support" > + depends on M528x > + help > + Support for the senTec COBRA5282 board. > + > +config SOM5282EM > + bool "EMAC.Inc SOM5282EM board support" > + depends on M528x > + help > + Support for the EMAC.Inc SOM5282EM module. > + > +config WILDFIRE > + bool "Intec Automation Inc. WildFire board support" > + depends on M528x > + help > + Support for the Intec Automation Inc. WildFire. > + > +config WILDFIREMOD > + bool "Intec Automation Inc. WildFire module support" > + depends on M528x > + help > + Support for the Intec Automation Inc. WildFire module. > + > +config ARN5307 > + bool "Arnewsh 5307 board support" > + depends on M5307 > + help > + Support for the Arnewsh 5307 board. > + > +config M5307C3 > + bool "Motorola M5307C3 board support" > + depends on M5307 > + help > + Support for the Motorola M5307C3 board. > + > +config SECUREEDGEMP3 > + bool "SnapGear SecureEdge/MP3 platform support" > + depends on M5307 > + help > + Support for the SnapGear SecureEdge/MP3 platform. > + > +config M5329EVB > + bool "Freescale (Motorola) M5329EVB board support" > + depends on M532x > + help > + Support for the Freescale (Motorola) M5329EVB board. > + > +config COBRA5329 > + bool "senTec COBRA5329 board support" > + depends on M532x > + help > + Support for the senTec COBRA5329 board. > + > +config M5407C3 > + bool "Motorola M5407C3 board support" > + depends on M5407 > + help > + Support for the Motorola M5407C3 board. > + > +config CLEOPATRA > + bool "Feith CLEOPATRA board support" > + depends on (M5307 || M5407) > + help > + Support for the Feith Cleopatra boards. > + > +config CANCam > + bool "Feith CANCam board support" > + depends on M5272 > + help > + Support for the Feith CANCam board. > + > +config SCALES > + bool "Feith SCALES board support" > + depends on M5272 > + help > + Support for the Feith SCALES board. > + > +config NETtel > + bool "SecureEdge/NETtel board support" > + depends on (M5206e || M5272 || M5307) > + help > + Support for the SnapGear NETtel/SecureEdge/SnapGear boards. > + > +config SNAPGEAR > + bool "SnapGear router board support" > + depends on NETtel > + help > + Special additional support for SnapGear router boards. > + > +config CPU16B > + bool "Sneha Technologies S.L. Sarasvati board support" > + depends on M5272 > + help > + Support for the SNEHA CPU16B board. > + > +config MOD5272 > + bool "Netburner MOD-5272 board support" > + depends on M5272 > + help > + Support for the Netburner MOD-5272 board. > + > +config SAVANTrosie1 > + bool "Savant Rosie1 board support" > + depends on M523x > + help > + Support for the Savant Rosie1 board. > + > +config ROMFS_FROM_ROM > + bool "ROMFS image not RAM resident" > + depends on (NETtel || SNAPGEAR) > + help > + The ROMfs filesystem will stay resident in the FLASH/ROM, not be > + moved into RAM. > + > +config PILOT > + bool > + default y > + depends on (PILOT3 || PILOT5) > + > +config ARNEWSH > + bool > + default y > + depends on (ARN5206 || ARN5307) > + > +config FREESCALE > + bool > + default y > + depends on (M5206eC3 || M5208EVB || M5235EVB || M5249C3 || M5271EVB || > M5272C3 || M5275EVB || M5282EVB || M5307C3 || M5329EVB || M5407C3) + > +config HW_FEITH > + bool > + default y > + depends on (CLEOPATRA || CANCam || SCALES) > + > +config senTec > + bool > + default y > + depends on (COBRA5272 || COBRA5282) > + > +config EMAC_INC > + bool > + default y > + depends on (SOM5282EM) > + > +config SNEHA > + bool > + default y > + depends on CPU16B > + > +config SAVANT > + bool > + default y > + depends on SAVANTrosie1 > + > +config AVNET > + bool > + default y > + depends on (AVNET5282) > + > +config 4KSTACKS > + bool "Use 4Kb for kernel stacks instead of 8Kb" > + default y > + help > + If you say Y here the kernel will use a 4Kb stacksize for the > + kernel stack attached to each process/thread. This facilitates > + running more threads on a system and also reduces the pressure > + on the VM subsystem for higher order allocations. > + > +config HZ > + int > + default 1000 if CLEOPATRA > + default 100 > + > +comment "RAM configuration" > + > +config RAMBASE > + hex "Address of the base of RAM" > + default "0" > + help > + Define the address that RAM starts at. On many platforms this is > + 0, the base of the address space. And this is the default. Some > + platforms choose to setup their RAM at other addresses within the > + processor address space. > + > +config RAMSIZE > + hex "Size of RAM (in bytes)" > + default "0x400000" > + help > + Define the size of the system RAM. If you select 0 then the > + kernel will try to probe the RAM size at runtime. This is not > + supported on all CPU types. > + > +config VECTORBASE > + hex "Address of the base of system vectors" > + default "0" > + help > + Define the address of the system vectors. Commonly this is > + put at the start of RAM, but it doesn't have to be. On ColdFire > + platforms this address is programmed into the VBR register, thus > + actually setting the address to use. > + > +config KERNELBASE > + hex "Address of the base of kernel code" > + default "0x400" > + help > + Typically on m68k systems the kernel will not start at the base > + of RAM, but usually some small offset from it. Define the start > + address of the kernel here. The most common setup will have the > + processor vectors at the base of RAM and then the start of the > + kernel. On some platforms some RAM is reserved for boot loaders > + and the kernel starts after that. The 0x400 default was based on > + a system with the RAM based at address 0, and leaving enough room > + for the theoretical maximum number of 256 vectors. > + > +choice > + prompt "RAM bus width" > + default RAMAUTOBIT > + > +config RAMAUTOBIT > + bool "AUTO" > + help > + Select the physical RAM data bus size. Not needed on most platforms, > + so you can generally choose AUTO. > + > +config RAM8BIT > + bool "8bit" > + help > + Configure RAM bus to be 8 bits wide. > + > +config RAM16BIT > + bool "16bit" > + help > + Configure RAM bus to be 16 bits wide. > + > +config RAM32BIT > + bool "32bit" > + help > + Configure RAM bus to be 32 bits wide. > + > +endchoice > + > +comment "ROM configuration" > + > +config ROM > + bool "Specify ROM linker regions" > + default n > + help > + Define a ROM region for the linker script. This creates a kernel > + that can be stored in flash, with possibly the text, and data > + regions being copied out to RAM at startup. > + > +config ROMBASE > + hex "Address of the base of ROM device" > + default "0" > + depends on ROM > + help > + Define the address that the ROM region starts at. Some platforms > + use this to set their chip select region accordingly for the boot > + device. > + > +config ROMVEC > + hex "Address of the base of the ROM vectors" > + default "0" > + depends on ROM > + help > + This is almost always the same as the base of the ROM. Since on all > + 68000 type variants the vectors are at the base of the boot device > + on system startup. > + > +config ROMVECSIZE > + hex "Size of ROM vector region (in bytes)" > + default "0x400" > + depends on ROM > + help > + Define the size of the vector region in ROM. For most 68000 > + variants this would be 0x400 bytes in size. Set to 0 if you do > + not want a vector region at the start of the ROM. > + > +config ROMSTART > + hex "Address of the base of system image in ROM" > + default "0x400" > + depends on ROM > + help > + Define the start address of the system image in ROM. Commonly this > + is strait after the ROM vectors. > + > +config ROMSIZE > + hex "Size of the ROM device" > + default "0x100000" > + depends on ROM > + help > + Size of the ROM device. On some platforms this is used to setup > + the chip select that controls the boot ROM device. > + > +choice > + prompt "Kernel executes from" > + ---help--- > + Choose the memory type that the kernel will be running in. > + > +config RAMKERNEL > + bool "RAM" > + help > + The kernel will be resident in RAM when running. > + > +config ROMKERNEL > + bool "ROM" > + help > + The kernel will be resident in FLASH/ROM when running. This is > + often referred to as Execute-in-Place (XIP), since the kernel > + code executes from the position it is stored in the FLASH/ROM. > + > +endchoice > + > +if COLDFIRE > +source "kernel/Kconfig.preempt" > +endif > + > +source "kernel/time/Kconfig" > + > +endif > > source "mm/Kconfig" > > endmenu > > + > +if ARCH = "m68knommu" > + > +config ISA_DMA_API > + bool > + depends on !M5272 > + default y > + > +source "drivers/pcmcia/Kconfig" > +endif > + > menu "General setup" > > source "fs/Kconfig.binfmt" > > +if ARCH != "m68knommu" > + > config ZORRO > bool "Amiga Zorro (AutoConfig) bus support" > depends on AMIGA > @@ -458,12 +1167,29 @@ source "drivers/pci/Kconfig" > > source "drivers/zorro/Kconfig" > > +endif > + > endmenu > > +if ARCH = "m68knommu" > + > +menu "Power management options" > + > +config PM > + bool "Power Management support" > + help > + Support processor power management modes > + > +endmenu > + > +endif > + > source "net/Kconfig" > > source "drivers/Kconfig" > > +if ARCH != "m68knommu" > + > menu "Character devices" > > config ATARI_MFPSER > @@ -618,6 +1344,8 @@ config SERIAL_CONSOLE > > endmenu > > +endif > + > source "fs/Kconfig" > > source "arch/m68k/Kconfig.debug" > diff --git a/arch/m68k/Makefile b/arch/m68k/Makefile > index 570d85c..3910b46 100644 > --- a/arch/m68k/Makefile > +++ b/arch/m68k/Makefile > @@ -1,3 +1,5 @@ > +ifeq ($(ARCH),m68k) > + > # > # m68k/Makefile > # > @@ -120,3 +122,130 @@ archclean: > > install: > sh $(srctree)/arch/m68k/install.sh $(KERNELRELEASE) vmlinux.gz > System.map "$(INSTALL_PATH)" + > +else > + > +# > +# m68knommu Makefile > +# > +# This file is subject to the terms and conditions of the GNU General > Public +# License. See the file "COPYING" in the main directory of this > archive +# for more details. > +# > +# (C) Copyright 2002, Greg Ungerer <gerg(a)snapgear.com> > +# > + > +KBUILD_DEFCONFIG := m5208evb_defconfig > + > +platform-$(CONFIG_M68328) := 68328 > +platform-$(CONFIG_M68EZ328) := 68EZ328 > +platform-$(CONFIG_M68VZ328) := 68VZ328 > +platform-$(CONFIG_M68360) := 68360 > +platform-$(CONFIG_M5206) := 5206 > +platform-$(CONFIG_M5206e) := 5206e > +platform-$(CONFIG_M520x) := 520x > +platform-$(CONFIG_M523x) := 523x > +platform-$(CONFIG_M5249) := 5249 > +platform-$(CONFIG_M527x) := 527x > +platform-$(CONFIG_M5272) := 5272 > +platform-$(CONFIG_M528x) := 528x > +platform-$(CONFIG_M5307) := 5307 > +platform-$(CONFIG_M532x) := 532x > +platform-$(CONFIG_M5407) := 5407 > +PLATFORM := $(platform-y) > + > +board-$(CONFIG_PILOT) := pilot > +board-$(CONFIG_UC5272) := UC5272 > +board-$(CONFIG_UC5282) := UC5282 > +board-$(CONFIG_UCSIMM) := ucsimm > +board-$(CONFIG_UCDIMM) := ucdimm > +board-$(CONFIG_UCQUICC) := uCquicc > +board-$(CONFIG_DRAGEN2) := de2 > +board-$(CONFIG_ARNEWSH) := ARNEWSH > +board-$(CONFIG_FREESCALE) := FREESCALE > +board-$(CONFIG_M5235EVB) := M5235EVB > +board-$(CONFIG_M5271EVB) := M5271EVB > +board-$(CONFIG_M5275EVB) := M5275EVB > +board-$(CONFIG_M5282EVB) := M5282EVB > +board-$(CONFIG_ELITE) := eLITE > +board-$(CONFIG_NETtel) := NETtel > +board-$(CONFIG_SECUREEDGEMP3) := MP3 > +board-$(CONFIG_CLEOPATRA) := CLEOPATRA > +board-$(CONFIG_senTec) := senTec > +board-$(CONFIG_SNEHA) := SNEHA > +board-$(CONFIG_M5208EVB) := M5208EVB > +board-$(CONFIG_MOD5272) := MOD5272 > +board-$(CONFIG_AVNET) := AVNET > +board-$(CONFIG_SAVANT) := SAVANT > +BOARD := $(board-y) > + > +model-$(CONFIG_RAMKERNEL) := ram > +model-$(CONFIG_ROMKERNEL) := rom > +MODEL := $(model-y) > + > +# > +# Some code support is grouped together for a common cpu-subclass (for > +# example all ColdFire cpu's are very similar). Determine the sub-class > +# for the selected cpu. ONLY need to define this for the non-base > member +# of the family. > +# > +cpuclass-$(CONFIG_M5206) := coldfire > +cpuclass-$(CONFIG_M5206e) := coldfire > +cpuclass-$(CONFIG_M520x) := coldfire > +cpuclass-$(CONFIG_M523x) := coldfire > +cpuclass-$(CONFIG_M5249) := coldfire > +cpuclass-$(CONFIG_M527x) := coldfire > +cpuclass-$(CONFIG_M5272) := coldfire > +cpuclass-$(CONFIG_M528x) := coldfire > +cpuclass-$(CONFIG_M5307) := coldfire > +cpuclass-$(CONFIG_M532x) := coldfire > +cpuclass-$(CONFIG_M5407) := coldfire > +cpuclass-$(CONFIG_M68328) := 68328 > +cpuclass-$(CONFIG_M68EZ328) := 68328 > +cpuclass-$(CONFIG_M68VZ328) := 68328 > +cpuclass-$(CONFIG_M68360) := 68360 > +CPUCLASS := $(cpuclass-y) > + > +ifneq ($(CPUCLASS),$(PLATFORM)) > +CLASSDIR := arch/m68k/platform/$(cpuclass-y)/ > +endif > + > +export PLATFORM BOARD MODEL CPUCLASS > + > +# > +# Some CFLAG additions based on specific CPU type. > +# > +cflags-$(CONFIG_M5206) := $(call cc-option,-mcpu=5206,-m5200) > +cflags-$(CONFIG_M5206e) := $(call cc-option,-m5206e,-m5200) > +cflags-$(CONFIG_M520x) := $(call cc-option,-mcpu=5208,-m5200) > +cflags-$(CONFIG_M523x) := $(call cc-option,-mcpu=523x,-m5307) > +cflags-$(CONFIG_M5249) := $(call cc-option,-mcpu=5249,-m5200) > +cflags-$(CONFIG_M5271) := $(call cc-option,-mcpu=5271,-m5307) > +cflags-$(CONFIG_M5272) := $(call cc-option,-mcpu=5271,-m5200) > +cflags-$(CONFIG_M5275) := $(call cc-option,-mcpu=5275,-m5307) > +cflags-$(CONFIG_M528x) := $(call cc-option,-m528x,-m5307) > +cflags-$(CONFIG_M5307) := $(call cc-option,-m5307,-m5200) > +cflags-$(CONFIG_M532x) := $(call cc-option,-mcpu=532x,-m5307) > +cflags-$(CONFIG_M5407) := $(call cc-option,-m5407,-m5200) > +cflags-$(CONFIG_M68328) := -m68000 > +cflags-$(CONFIG_M68EZ328) := -m68000 > +cflags-$(CONFIG_M68VZ328) := -m68000 > +cflags-$(CONFIG_M68360) := -m68332 > + > +KBUILD_AFLAGS += $(cflags-y) > + > +KBUILD_CFLAGS += $(cflags-y) > +KBUILD_CFLAGS += -D__linux__ > +KBUILD_CFLAGS += -DUTS_SYSNAME=\"uClinux\" > + > +head-y := arch/m68k/platform/$(cpuclass-y)/head.o > + > +core-y += arch/m68k/kernel/ \ > + arch/m68k/mm/ \ > + $(CLASSDIR) \ > + arch/m68k/platform/$(PLATFORM)/ > +libs-y += arch/m68k/lib/ > + > +archclean: > + > +endif -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Geert Uytterhoeven on 18 Nov 2009 16:40 On Mon, Oct 19, 2009 at 00:55, Steven King <sfking00(a)yahoo.com> wrote: > This is a script and patch to merge the m68knommu arch into m68k. Thanks, nice! > The script was inspired by the script Sam Ravnborg used to merge the > includes from m68knommu. For those files common to both arches but > differing in content, the m68k version of the file is renamed to > <file>_mm.<ext> and the m68knommu version of the file is moved into the > corresponding m68k directory and renamed <file>_no.<ext> and a small > wrapper file <file>.<ext> is used to select between the two version. Files > that are common to both but don't differ are removed from the m68knommu > tree and files and directories that are unique to the m68knommu tree are > moved to the m68k tree. Finally, the arch/m68knommu tree is removed. > > To select between the the versions of the files, the wrapper uses > > #ifdef CONFIG_MMU > #include <file>_mm.<ext> > #else > #include <file>_no.<ext> > #endif > > The patch modifies the toplevel Makefile so that ARCH=m68knommu still works > (by setting SRCARCH=m68k) and adds the m68knommu Kconfig and Makefile > to the m68k Kconfig and Makefile, using the definition of ARCH to select > which values to use. (still dreaming of my pet Amiga-nommu project) I prefer to use CONFIG_MMU as the selector... > Thus when building for either a m68k or an m68knommu target, one still > specifies either ARCH=m68k or ARCH=m68knommu and everything should > build EXACTLY as it did pre-merge. (I think). .... using CONFIG_MMU would change this? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert(a)linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Steven King on 19 Nov 2009 09:00 On Wednesday 18 November 2009 01:32:25 Geert Uytterhoeven wrote: > > The patch modifies the toplevel Makefile so that ARCH=m68knommu still > > works (by setting SRCARCH=m68k) and adds the m68knommu Kconfig and > > Makefile to the m68k Kconfig and Makefile, using the definition of ARCH > > to select which values to use. > > (still dreaming of my pet Amiga-nommu project) I prefer to use > CONFIG_MMU as the selector... CONFIG_MMU is used as the selector elsewhere, but for Kconfig and the Makefiles something else was needed. > > > Thus when building for either a m68k or an m68knommu target, one still > > specifies either ARCH=m68k or ARCH=m68knommu and everything should > > build EXACTLY as it did pre-merge. (I think). > > ... using CONFIG_MMU would change this? Yes; originally I tried using CONFIG_MMU to choose between the mmu and nommu portions of the Kconfig and Makefile, but that broke the defconfigs. Rather than patch the defconfigs or make a more elaborate patch for the Kconfig, for this initial patch I wanted to keep it as simple and as un-invasive as possible so that it would be trivial (?) to verify the merged kernel tree produces a kernel that is the same as the pre-merged kernel tree, thus providing a baseline for bisecting any problems with the subsequent patches that do the real merging of the individual files. A later patch will do a better job of merging the Kconfigs and Makefiles. Then you'd be able to have your Amiga-nommu and I can have my Coldfire 5484 either as mmu or nommu... -- Steven King -- sfking at fdwdc dot com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Greg Ungerer on 3 Dec 2009 23:50 Hi Steven, Steven King wrote: > On Sunday 18 October 2009 04:55:40 Steven King wrote: >> This is a script and patch to merge the m68knommu arch into m68k. > > Ping. Sorry, I have just not had time to look at this yet. Promise to find some time soon to have a closer look soon :-) Regards Greg >> The script was inspired by the script Sam Ravnborg used to merge the >> includes from m68knommu. For those files common to both arches but >> differing in content, the m68k version of the file is renamed to >> <file>_mm.<ext> and the m68knommu version of the file is moved into the >> corresponding m68k directory and renamed <file>_no.<ext> and a small >> wrapper file <file>.<ext> is used to select between the two version. >> Files that are common to both but don't differ are removed from the >> m68knommu tree and files and directories that are unique to the >> m68knommu tree are moved to the m68k tree. Finally, the arch/m68knommu >> tree is removed. >> >> To select between the the versions of the files, the wrapper uses >> >> #ifdef CONFIG_MMU >> #include <file>_mm.<ext> >> #else >> #include <file>_no.<ext> >> #endif >> >> The patch modifies the toplevel Makefile so that ARCH=m68knommu still >> works (by setting SRCARCH=m68k) and adds the m68knommu Kconfig and >> Makefile to the m68k Kconfig and Makefile, using the definition of ARCH >> to select which values to use. >> >> Thus when building for either a m68k or an m68knommu target, one still >> specifies either ARCH=m68k or ARCH=m68knommu and everything should >> build EXACTLY as it did pre-merge. (I think). >> >> >> Signed-off-by: Steven King <sfking(a)fdwdc.com> -- ------------------------------------------------------------------------ Greg Ungerer -- Principal Engineer EMAIL: gerg(a)snapgear.com SnapGear Group, McAfee PHONE: +61 7 3435 2888 8 Gardner Close FAX: +61 7 3217 5323 Milton, QLD, 4064, Australia WEB: http://www.SnapGear.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Steven King on 5 Dec 2009 16:30 On Thursday 03 December 2009 8:47:56 Greg Ungerer wrote: > Hi Steven, > > Steven King wrote: > > On Sunday 18 October 2009 04:55:40 Steven King wrote: > >> This is a script and patch to merge the m68knommu arch into m68k. > > > > Ping. > > Sorry, I have just not had time to look at this yet. > Promise to find some time soon to have a closer look soon :-) Cool, I should have some more patches to post soon ;-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: problems of using the 2.6.26 Linux Kernel Debugger (KGDB) with VMware Next: Patches for mpc52xx_spi |