Commit 790edb61c0d87d1f1daafcaaa8f7c66b7b82bdad

Authored by GuanXuetao
1 parent 7f509a9ef7

unicore32 core architecture: build infrastructure

This patch implements build infrastructure.

Signed-off-by: Guan Xuetao <gxt@mprc.pku.edu.cn>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>

Showing 9 changed files with 758 additions and 0 deletions Side-by-side Diff

arch/unicore32/.gitignore
  1 +#
  2 +# Generated include files
  3 +#
  4 +include/generated
  5 +#
  6 +# Generated ld script file
  7 +#
  8 +kernel/vmlinux.lds
  9 +#
  10 +# Generated images in boot
  11 +#
  12 +boot/Image
  13 +boot/zImage
  14 +boot/uImage
  15 +#
  16 +# Generated files in boot/compressed
  17 +#
  18 +boot/compressed/piggy.S
  19 +boot/compressed/piggy.gzip
  20 +boot/compressed/vmlinux
  21 +boot/compressed/vmlinux.lds
arch/unicore32/Kconfig
  1 +config UNICORE32
  2 + def_bool y
  3 + select HAVE_MEMBLOCK
  4 + select HAVE_GENERIC_DMA_COHERENT
  5 + select HAVE_GENERIC_HARDIRQS
  6 + select HAVE_DMA_ATTRS
  7 + select HAVE_KERNEL_GZIP
  8 + select HAVE_KERNEL_BZIP2
  9 + select HAVE_KERNEL_LZO
  10 + select HAVE_KERNEL_LZMA
  11 + select GENERIC_FIND_FIRST_BIT
  12 + select GENERIC_IRQ_PROBE
  13 + select ARCH_WANT_FRAME_POINTERS
  14 + help
  15 + UniCore-32 is 32-bit Instruction Set Architecture,
  16 + including a series of low-power-consumption RISC chip
  17 + designs licensed by PKUnity Ltd.
  18 + Please see web page at <http://www.pkunity.com/>.
  19 +
  20 +config HAVE_PWM
  21 + bool
  22 +
  23 +config GENERIC_GPIO
  24 + def_bool y
  25 +
  26 +config GENERIC_CLOCKEVENTS
  27 + bool
  28 +
  29 +config GENERIC_CSUM
  30 + def_bool y
  31 +
  32 +config NO_IOPORT
  33 + bool
  34 +
  35 +config STACKTRACE_SUPPORT
  36 + def_bool y
  37 +
  38 +config HAVE_LATENCYTOP_SUPPORT
  39 + def_bool y
  40 +
  41 +config LOCKDEP_SUPPORT
  42 + def_bool y
  43 +
  44 +config RWSEM_GENERIC_SPINLOCK
  45 + def_bool y
  46 +
  47 +config RWSEM_XCHGADD_ALGORITHM
  48 + bool
  49 +
  50 +config ARCH_HAS_ILOG2_U32
  51 + bool
  52 +
  53 +config ARCH_HAS_ILOG2_U64
  54 + bool
  55 +
  56 +config ARCH_HAS_CPUFREQ
  57 + bool
  58 +
  59 +config GENERIC_HWEIGHT
  60 + def_bool y
  61 +
  62 +config GENERIC_CALIBRATE_DELAY
  63 + def_bool y
  64 +
  65 +config ARCH_MAY_HAVE_PC_FDC
  66 + bool
  67 +
  68 +config NEED_DMA_MAP_STATE
  69 + def_bool y
  70 +
  71 +source "init/Kconfig"
  72 +
  73 +source "kernel/Kconfig.freezer"
  74 +
  75 +menu "System Type"
  76 +
  77 +config MMU
  78 + def_bool y
  79 +
  80 +config ARCH_FPGA
  81 + bool
  82 +
  83 +config ARCH_PUV3
  84 + def_bool y
  85 + select CPU_UCV2
  86 + select GENERIC_CLOCKEVENTS
  87 + select HAVE_CLK
  88 + select ARCH_REQUIRE_GPIOLIB
  89 + select ARCH_HAS_CPUFREQ
  90 +
  91 +# CONFIGs for ARCH_PUV3
  92 +
  93 +if ARCH_PUV3
  94 +
  95 +choice
  96 + prompt "Board Selection"
  97 + default PUV3_DB0913
  98 +
  99 +config PUV3_FPGA_DLX200
  100 + select ARCH_FPGA
  101 + bool "FPGA board"
  102 +
  103 +config PUV3_DB0913
  104 + bool "DEBUG board (0913)"
  105 +
  106 +config PUV3_NB0916
  107 + bool "NetBook board (0916)"
  108 + select HAVE_PWM
  109 +
  110 +config PUV3_SMW0919
  111 + bool "Security Mini-Workstation board (0919)"
  112 +
  113 +endchoice
  114 +
  115 +config PUV3_PM
  116 + def_bool y if !ARCH_FPGA
  117 +
  118 +endif
  119 +
  120 +source "arch/unicore32/mm/Kconfig"
  121 +
  122 +comment "Floating poing support"
  123 +
  124 +config UNICORE_FPU_F64
  125 + def_bool y if !ARCH_FPGA
  126 +
  127 +endmenu
  128 +
  129 +menu "Bus support"
  130 +
  131 +config PCI
  132 + bool "PCI Support"
  133 + help
  134 + Find out whether you have a PCI motherboard. PCI is the name of a
  135 + bus system, i.e. the way the CPU talks to the other stuff inside
  136 + your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
  137 + VESA. If you have PCI, say Y, otherwise N.
  138 +
  139 +source "drivers/pci/Kconfig"
  140 +
  141 +source "drivers/pcmcia/Kconfig"
  142 +
  143 +endmenu
  144 +
  145 +menu "Kernel Features"
  146 +
  147 +source "kernel/time/Kconfig"
  148 +
  149 +source "kernel/Kconfig.preempt"
  150 +
  151 +source "kernel/Kconfig.hz"
  152 +
  153 +source "mm/Kconfig"
  154 +
  155 +config LEDS
  156 + def_bool y
  157 + depends on GENERIC_GPIO
  158 +
  159 +config ALIGNMENT_TRAP
  160 + def_bool y
  161 + help
  162 + Unicore processors can not fetch/store information which is not
  163 + naturally aligned on the bus, i.e., a 4 byte fetch must start at an
  164 + address divisible by 4. On 32-bit Unicore processors, these non-aligned
  165 + fetch/store instructions will be emulated in software if you say
  166 + here, which has a severe performance impact. This is necessary for
  167 + correct operation of some network protocols. With an IP-only
  168 + configuration it is safe to say N, otherwise say Y.
  169 +
  170 +endmenu
  171 +
  172 +menu "Boot options"
  173 +
  174 +config CMDLINE
  175 + string "Default kernel command string"
  176 + default ""
  177 +
  178 +config CMDLINE_FORCE
  179 + bool "Always use the default kernel command string"
  180 + depends on CMDLINE != ""
  181 + help
  182 + Always use the default kernel command string, even if the boot
  183 + loader passes other arguments to the kernel.
  184 + This is useful if you cannot or don't want to change the
  185 + command-line options your boot loader passes to the kernel.
  186 +
  187 + If unsure, say N.
  188 +
  189 +endmenu
  190 +
  191 +menu "Userspace binary formats"
  192 +
  193 +source "fs/Kconfig.binfmt"
  194 +
  195 +endmenu
  196 +
  197 +menu "Power management options"
  198 +
  199 +source "kernel/power/Kconfig"
  200 +
  201 +if ARCH_HAS_CPUFREQ
  202 +source "drivers/cpufreq/Kconfig"
  203 +endif
  204 +
  205 +config ARCH_SUSPEND_POSSIBLE
  206 + def_bool y if !ARCH_FPGA
  207 +
  208 +config ARCH_HIBERNATION_POSSIBLE
  209 + def_bool y if !ARCH_FPGA
  210 +
  211 +endmenu
  212 +
  213 +source "net/Kconfig"
  214 +
  215 +if ARCH_PUV3
  216 +
  217 +config PUV3_GPIO
  218 + bool
  219 + depends on !ARCH_FPGA
  220 + select GENERIC_GPIO
  221 + select GPIO_SYSFS if EXPERIMENTAL
  222 + default y
  223 +
  224 +config PUV3_PWM
  225 + tristate
  226 + default BACKLIGHT_PWM
  227 + help
  228 + Enable support for NB0916 PWM controllers
  229 +
  230 +config PUV3_RTC
  231 + tristate "PKUnity v3 RTC Support"
  232 + depends on !ARCH_FPGA
  233 +
  234 +endif
  235 +
  236 +source "drivers/Kconfig"
  237 +
  238 +source "fs/Kconfig"
  239 +
  240 +source "arch/unicore32/Kconfig.debug"
  241 +
  242 +source "security/Kconfig"
  243 +
  244 +source "crypto/Kconfig"
  245 +
  246 +source "lib/Kconfig"
arch/unicore32/Kconfig.debug
  1 +menu "Kernel hacking"
  2 +
  3 +source "lib/Kconfig.debug"
  4 +
  5 +config STRICT_DEVMEM
  6 + bool "Filter access to /dev/mem"
  7 + depends on MMU
  8 + ---help---
  9 + If this option is disabled, you allow userspace (root) access to all
  10 + of memory, including kernel and userspace memory. Accidental
  11 + access to this is obviously disastrous, but specific access can
  12 + be used by people debugging the kernel.
  13 +
  14 + If this option is switched on, the /dev/mem file only allows
  15 + userspace access to memory mapped peripherals.
  16 +
  17 + If in doubt, say Y.
  18 +
  19 +config EARLY_PRINTK
  20 + def_bool DEBUG_OCD
  21 + help
  22 + Write kernel log output directly into the ocd or to a serial port.
  23 +
  24 + This is useful for kernel debugging when your machine crashes very
  25 + early before the console code is initialized. For normal operation
  26 + it is not recommended because it looks ugly and doesn't cooperate
  27 + with klogd/syslogd or the X server. You should normally N here,
  28 + unless you want to debug such a crash.
  29 +
  30 +config DEBUG_STACK_USAGE
  31 + bool "Enable stack utilization instrumentation"
  32 + depends on DEBUG_KERNEL
  33 + help
  34 + Enables the display of the minimum amount of free stack which each
  35 + task has ever had available in the sysrq-T output.
  36 +
  37 +# These options are only for real kernel hackers who want to get their hands dirty.
  38 +config DEBUG_LL
  39 + bool "Kernel low-level debugging functions"
  40 + depends on DEBUG_KERNEL
  41 + help
  42 + Say Y here to include definitions of printascii, printch, printhex
  43 + in the kernel. This is helpful if you are debugging code that
  44 + executes before the console is initialized.
  45 +
  46 +config DEBUG_OCD
  47 + bool "Kernel low-level debugging via On-Chip-Debugger"
  48 + depends on DEBUG_LL
  49 + default y
  50 + help
  51 + Say Y here if you want the debug print routines to direct their
  52 + output to the UniCore On-Chip-Debugger channel using CP #1.
  53 +
  54 +config DEBUG_OCD_BREAKPOINT
  55 + bool "Breakpoint support via On-Chip-Debugger"
  56 + depends on DEBUG_OCD
  57 +
  58 +config DEBUG_UART
  59 + int "Kernel low-level debugging messages via serial port"
  60 + depends on DEBUG_LL
  61 + range 0 1
  62 + default "0"
  63 + help
  64 + Choice for UART for kernel low-level using PKUnity UARTS,
  65 + should be between zero and one. The port must have been
  66 + initialised by the boot-loader before use.
  67 +
  68 +endmenu
arch/unicore32/Makefile
  1 +#
  2 +# arch/unicore32/Makefile
  3 +#
  4 +# This file is included by the global makefile so that you can add your own
  5 +# architecture-specific flags and dependencies.
  6 +#
  7 +# This file is subject to the terms and conditions of the GNU General Public
  8 +# License. See the file "COPYING" in the main directory of this archive
  9 +# for more details.
  10 +#
  11 +# Copyright (C) 2002~2010 by Guan Xue-tao
  12 +#
  13 +ifneq ($(SUBARCH),$(ARCH))
  14 + ifeq ($(CROSS_COMPILE),)
  15 + CROSS_COMPILE := $(call cc-cross-prefix, unicore32-linux-)
  16 + endif
  17 +endif
  18 +
  19 +LDFLAGS_vmlinux := -p --no-undefined -X
  20 +
  21 +OBJCOPYFLAGS := -O binary -R .note -R .note.gnu.build-id -R .comment -S
  22 +
  23 +# Never generate .eh_frame
  24 +KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm)
  25 +
  26 +# Never use hard float in kernel
  27 +KBUILD_CFLAGS += -msoft-float
  28 +
  29 +ifeq ($(CONFIG_FRAME_POINTER),y)
  30 +KBUILD_CFLAGS += -mno-sched-prolog
  31 +endif
  32 +
  33 +CHECKFLAGS += -D__unicore32__
  34 +
  35 +head-y := arch/unicore32/kernel/head.o
  36 +head-y += arch/unicore32/kernel/init_task.o
  37 +
  38 +core-y += arch/unicore32/kernel/
  39 +core-y += arch/unicore32/mm/
  40 +
  41 +libs-y += arch/unicore32/lib/
  42 +
  43 +ASM_GENERATED_DIR := $(srctree)/arch/unicore32/include/generated
  44 +LINUXINCLUDE += -I$(ASM_GENERATED_DIR)
  45 +
  46 +ASM_GENERIC_HEADERS := atomic.h auxvec.h
  47 +ASM_GENERIC_HEADERS += bitsperlong.h bug.h bugs.h
  48 +ASM_GENERIC_HEADERS += cputime.h current.h
  49 +ASM_GENERIC_HEADERS += device.h div64.h
  50 +ASM_GENERIC_HEADERS += emergency-restart.h errno.h
  51 +ASM_GENERIC_HEADERS += fb.h fcntl.h ftrace.h
  52 +ASM_GENERIC_HEADERS += hardirq.h hw_irq.h
  53 +ASM_GENERIC_HEADERS += ioctl.h ioctls.h ipcbuf.h irq_regs.h
  54 +ASM_GENERIC_HEADERS += kdebug.h kmap_types.h
  55 +ASM_GENERIC_HEADERS += local.h
  56 +ASM_GENERIC_HEADERS += mman.h module.h msgbuf.h
  57 +ASM_GENERIC_HEADERS += param.h parport.h percpu.h poll.h posix_types.h
  58 +ASM_GENERIC_HEADERS += resource.h
  59 +ASM_GENERIC_HEADERS += scatterlist.h sections.h segment.h sembuf.h serial.h
  60 +ASM_GENERIC_HEADERS += setup.h shmbuf.h shmparam.h
  61 +ASM_GENERIC_HEADERS += siginfo.h signal.h sizes.h
  62 +ASM_GENERIC_HEADERS += socket.h sockios.h stat.h statfs.h swab.h syscalls.h
  63 +ASM_GENERIC_HEADERS += termbits.h termios.h topology.h types.h
  64 +ASM_GENERIC_HEADERS += ucontext.h unaligned.h user.h
  65 +ASM_GENERIC_HEADERS += vga.h
  66 +ASM_GENERIC_HEADERS += xor.h
  67 +
  68 +archprepare:
  69 +ifneq ($(ASM_GENERATED_DIR), $(wildcard $(ASM_GENERATED_DIR)))
  70 + $(Q)mkdir -p $(ASM_GENERATED_DIR)/asm
  71 + $(Q)$(foreach a, $(ASM_GENERIC_HEADERS), \
  72 + echo '#include <asm-generic/$a>' \
  73 + > $(ASM_GENERATED_DIR)/asm/$a; )
  74 +endif
  75 +
  76 +boot := arch/unicore32/boot
  77 +
  78 +# Default target when executing plain make
  79 +KBUILD_IMAGE := zImage
  80 +
  81 +all: $(KBUILD_IMAGE)
  82 +
  83 +zImage Image uImage: vmlinux
  84 + $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
  85 +
  86 +MRPROPER_DIRS += $(ASM_GENERATED_DIR)
  87 +
  88 +archclean:
  89 + $(Q)$(MAKE) $(clean)=$(boot)
  90 +
  91 +define archhelp
  92 + echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
  93 + echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
  94 + echo ' uImage - U-Boot wrapped zImage'
  95 +endef
arch/unicore32/configs/debug_defconfig
  1 +### General setup
  2 +CONFIG_EXPERIMENTAL=y
  3 +CONFIG_LOCALVERSION="-debug"
  4 +CONFIG_SWAP=y
  5 +CONFIG_SYSVIPC=y
  6 +CONFIG_POSIX_MQUEUE=y
  7 +CONFIG_HOTPLUG=y
  8 +# Initial RAM filesystem and RAM disk (initramfs/initrd) support
  9 +#CONFIG_BLK_DEV_INITRD=y
  10 +#CONFIG_INITRAMFS_SOURCE="arch/unicore/ramfs/ramfs_config"
  11 +
  12 +### Enable loadable module support
  13 +CONFIG_MODULES=n
  14 +CONFIG_MODULE_UNLOAD=y
  15 +
  16 +### System Type
  17 +CONFIG_ARCH_PUV3=y
  18 +# Board Selection
  19 +CONFIG_PUV3_NB0916=y
  20 +# Processor Features
  21 +CONFIG_CPU_DCACHE_LINE_DISABLE=y
  22 +CONFIG_CPU_TLB_SINGLE_ENTRY_DISABLE=n
  23 +
  24 +### Bus support
  25 +CONFIG_PCI=y
  26 +CONFIG_PCI_LEGACY=n
  27 +
  28 +### Boot options
  29 +# for debug, adding: earlyprintk=ocd,keep initcall_debug
  30 +# others support: test_suspend=mem root=/dev/sda
  31 +# hibernate support: resume=/dev/sda3
  32 +CONFIG_CMDLINE="earlyprintk=ocd,keep ignore_loglevel"
  33 +# TODO: mem=512M video=unifb:1024x600-16@75
  34 +# for nfs: root=/dev/nfs rw nfsroot=192.168.10.88:/home/udb/nfs/,rsize=1024,wsize=1024
  35 +# ip=192.168.10.83:192.168.10.88:192.168.10.1:255.255.255.0::eth0:off
  36 +CONFIG_CMDLINE_FORCE=y
  37 +
  38 +### Power management options
  39 +CONFIG_PM=y
  40 +CONFIG_HIBERNATION=y
  41 +CONFIG_PM_STD_PARTITION="/dev/sda3"
  42 +CONFIG_CPU_FREQ=n
  43 +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
  44 +
  45 +### Networking support
  46 +CONFIG_NET=y
  47 +# Networking options
  48 +CONFIG_PACKET=m
  49 +CONFIG_UNIX=m
  50 +# TCP/IP networking
  51 +CONFIG_INET=y
  52 +CONFIG_IP_MULTICAST=y
  53 +CONFIG_IP_PNP=y
  54 +CONFIG_IPV6=n
  55 +# Wireless
  56 +CONFIG_WIRELESS=y
  57 +CONFIG_WIRELESS_EXT=y
  58 +CONFIG_MAC80211=m
  59 +
  60 +### PKUnity SoC Features
  61 +CONFIG_USB_WLAN_HED_AQ3=n
  62 +CONFIG_USB_CMMB_INNOFIDEI=n
  63 +CONFIG_I2C_BATTERY_BQ27200=n
  64 +CONFIG_I2C_EEPROM_AT24=n
  65 +CONFIG_LCD_BACKLIGHT=n
  66 +
  67 +CONFIG_PUV3_RTC=y
  68 +CONFIG_PUV3_UMAL=y
  69 +CONFIG_PUV3_UNIGFX=y
  70 +CONFIG_PUV3_MUSB=n
  71 +CONFIG_PUV3_AC97=n
  72 +CONFIG_PUV3_NAND=n
  73 +CONFIG_PUV3_MMC=n
  74 +CONFIG_PUV3_UART=n
  75 +
  76 +### Device Drivers
  77 +# Memory Technology Device (MTD) support
  78 +CONFIG_MTD=m
  79 +CONFIG_MTD_UBI=m
  80 +CONFIG_MTD_PARTITIONS=y
  81 +CONFIG_MTD_CHAR=m
  82 +CONFIG_MTD_BLKDEVS=m
  83 +# RAM/ROM/Flash chip drivers
  84 +CONFIG_MTD_CFI=m
  85 +CONFIG_MTD_JEDECPROBE=m
  86 +CONFIG_MTD_CFI_AMDSTD=m
  87 +# Mapping drivers for chip access
  88 +CONFIG_MTD_PHYSMAP=m
  89 +
  90 +# Block devices
  91 +CONFIG_BLK_DEV_LOOP=m
  92 +
  93 +# SCSI device support
  94 +CONFIG_SCSI=y
  95 +CONFIG_BLK_DEV_SD=y
  96 +CONFIG_BLK_DEV_SR=m
  97 +CONFIG_CHR_DEV_SG=m
  98 +
  99 +# Serial ATA (prod) and Parallel ATA (experimental) drivers
  100 +CONFIG_ATA=y
  101 +CONFIG_SATA_VIA=y
  102 +
  103 +# Network device support
  104 +CONFIG_NETDEVICES=y
  105 +CONFIG_NET_ETHERNET=y
  106 +CONFIG_NETDEV_1000=y
  107 +# Wireless LAN
  108 +CONFIG_WLAN_80211=n
  109 +CONFIG_RT2X00=n
  110 +CONFIG_RT73USB=n
  111 +
  112 +# Input device support
  113 +CONFIG_INPUT_EVDEV=m
  114 +# Keyboards
  115 +CONFIG_KEYBOARD_GPIO=m
  116 +
  117 +# Hardware Monitoring support
  118 +#CONFIG_SENSORS_LM75=m
  119 +# Generic Thermal sysfs driver
  120 +#CONFIG_THERMAL=m
  121 +#CONFIG_THERMAL_HWMON=y
  122 +
  123 +# Multimedia support
  124 +CONFIG_MEDIA_SUPPORT=n
  125 +CONFIG_VIDEO_DEV=n
  126 +CONFIG_USB_VIDEO_CLASS=n
  127 +
  128 +# Graphics support
  129 +# Console display driver support
  130 +CONFIG_VGA_CONSOLE=n
  131 +CONFIG_FRAMEBUFFER_CONSOLE=y
  132 +CONFIG_FONTS=y
  133 +CONFIG_FONT_8x8=y
  134 +CONFIG_FONT_8x16=y
  135 +# Bootup logo
  136 +CONFIG_LOGO=n
  137 +
  138 +# Sound card support
  139 +CONFIG_SOUND=m
  140 +# Advanced Linux Sound Architecture
  141 +CONFIG_SND=m
  142 +CONFIG_SND_MIXER_OSS=m
  143 +CONFIG_SND_PCM_OSS=m
  144 +
  145 +# USB support
  146 +CONFIG_USB_ARCH_HAS_HCD=n
  147 +CONFIG_USB=n
  148 +CONFIG_USB_DEVICEFS=n
  149 +CONFIG_USB_PRINTER=n
  150 +CONFIG_USB_STORAGE=n
  151 +# Inventra Highspeed Dual Role Controller
  152 +CONFIG_USB_MUSB_HDRC=n
  153 +
  154 +# LED Support
  155 +CONFIG_NEW_LEDS=y
  156 +CONFIG_LEDS_CLASS=y
  157 +CONFIG_LEDS_GPIO=y
  158 +# LED Triggers
  159 +CONFIG_LEDS_TRIGGERS=y
  160 +CONFIG_LEDS_TRIGGER_TIMER=y
  161 +CONFIG_LEDS_TRIGGER_IDE_DISK=y
  162 +CONFIG_LEDS_TRIGGER_HEARTBEAT=y
  163 +
  164 +# Real Time Clock
  165 +CONFIG_RTC_LIB=m
  166 +CONFIG_RTC_CLASS=m
  167 +
  168 +### File systems
  169 +CONFIG_EXT2_FS=m
  170 +CONFIG_EXT3_FS=y
  171 +CONFIG_EXT4_FS=y
  172 +CONFIG_FUSE_FS=m
  173 +# CD-ROM/DVD Filesystems
  174 +CONFIG_ISO9660_FS=m
  175 +CONFIG_JOLIET=y
  176 +CONFIG_UDF_FS=m
  177 +# DOS/FAT/NT Filesystems
  178 +CONFIG_VFAT_FS=m
  179 +# Pseudo filesystems
  180 +CONFIG_PROC_FS=y
  181 +CONFIG_SYSFS=y
  182 +CONFIG_TMPFS=y
  183 +# Miscellaneous filesystems
  184 +CONFIG_MISC_FILESYSTEMS=y
  185 +CONFIG_JFFS2_FS=m
  186 +CONFIG_UBIFS_FS=m
  187 +# Network File Systems
  188 +CONFIG_NETWORK_FILESYSTEMS=y
  189 +CONFIG_NFS_FS=y
  190 +CONFIG_NFS_V3=y
  191 +CONFIG_ROOT_NFS=y
  192 +# Partition Types
  193 +CONFIG_PARTITION_ADVANCED=y
  194 +CONFIG_MSDOS_PARTITION=y
  195 +# Native language support
  196 +CONFIG_NLS=y
  197 +CONFIG_NLS_CODEPAGE_437=m
  198 +CONFIG_NLS_CODEPAGE_936=m
  199 +CONFIG_NLS_ISO8859_1=m
  200 +CONFIG_NLS_UTF8=m
  201 +
  202 +### Kernel hacking
  203 +CONFIG_FRAME_WARN=8096
  204 +CONFIG_MAGIC_SYSRQ=y
  205 +CONFIG_DEBUG_KERNEL=y
  206 +CONFIG_PROVE_LOCKING=n
  207 +CONFIG_DEBUG_BUGVERBOSE=y
  208 +CONFIG_FRAME_POINTER=y
  209 +CONFIG_DEBUG_LL=y
arch/unicore32/include/asm/Kbuild
  1 +include include/asm-generic/Kbuild.asm
arch/unicore32/include/asm/linkage.h
  1 +/*
  2 + * linux/arch/unicore32/include/asm/linkage.h
  3 + *
  4 + * Code specific to PKUnity SoC and UniCore ISA
  5 + *
  6 + * Copyright (C) 2001-2010 GUAN Xue-tao
  7 + *
  8 + * This program is free software; you can redistribute it and/or modify
  9 + * it under the terms of the GNU General Public License version 2 as
  10 + * published by the Free Software Foundation.
  11 + */
  12 +#ifndef __UNICORE_LINKAGE_H__
  13 +#define __UNICORE_LINKAGE_H__
  14 +
  15 +#define __ALIGN .align 0
  16 +#define __ALIGN_STR ".align 0"
  17 +
  18 +#define ENDPROC(name) \
  19 + .type name, %function; \
  20 + END(name)
  21 +
  22 +#endif
arch/unicore32/kernel/Makefile
  1 +#
  2 +# Makefile for the linux kernel.
  3 +#
  4 +
  5 +# Object file lists.
  6 +obj-y := dma.o elf.o entry.o process.o ptrace.o
  7 +obj-y += setup.o signal.o sys.o stacktrace.o traps.o
  8 +
  9 +obj-$(CONFIG_MODULES) += ksyms.o module.o
  10 +obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
  11 +
  12 +obj-$(CONFIG_CPU_FREQ) += cpu-ucv2.o
  13 +obj-$(CONFIG_UNICORE_FPU_F64) += fpu-ucf64.o
  14 +
  15 +# obj-y for architecture PKUnity v3
  16 +obj-$(CONFIG_ARCH_PUV3) += clock.o irq.o time.o
  17 +
  18 +obj-$(CONFIG_PUV3_GPIO) += gpio.o
  19 +obj-$(CONFIG_PUV3_RTC) += rtc.o
  20 +obj-$(CONFIG_PUV3_PWM) += pwm.o
  21 +obj-$(CONFIG_PUV3_PM) += pm.o sleep.o
  22 +obj-$(CONFIG_HIBERNATION) += hibernate.o hibernate_asm.o
  23 +
  24 +obj-$(CONFIG_PCI) += pci.o
  25 +
  26 +# obj-y for specific machines
  27 +obj-$(CONFIG_ARCH_PUV3) += puv3-core.o
  28 +obj-$(CONFIG_PUV3_NB0916) += puv3-nb0916.o
  29 +
  30 +head-y := head.o
  31 +obj-$(CONFIG_DEBUG_LL) += debug.o
  32 +
  33 +extra-y := $(head-y) init_task.o vmlinux.lds
arch/unicore32/kernel/vmlinux.lds.S
  1 +/*
  2 + * linux/arch/unicore32/kernel/vmlinux.lds.S
  3 + *
  4 + * Code specific to PKUnity SoC and UniCore ISA
  5 + *
  6 + * Copyright (C) 2001-2010 GUAN Xue-tao
  7 + *
  8 + * This program is free software; you can redistribute it and/or modify
  9 + * it under the terms of the GNU General Public License version 2 as
  10 + * published by the Free Software Foundation.
  11 + */
  12 +
  13 +#include <asm-generic/vmlinux.lds.h>
  14 +#include <asm/thread_info.h>
  15 +#include <asm/memory.h>
  16 +#include <asm/page.h>
  17 +
  18 +OUTPUT_ARCH(unicore32)
  19 +ENTRY(stext)
  20 +
  21 +jiffies = jiffies_64;
  22 +
  23 +SECTIONS
  24 +{
  25 + . = PAGE_OFFSET + KERNEL_IMAGE_START;
  26 +
  27 + _text = .;
  28 + __init_begin = .;
  29 + HEAD_TEXT_SECTION
  30 + INIT_TEXT_SECTION(PAGE_SIZE)
  31 + INIT_DATA_SECTION(16)
  32 + PERCPU(PAGE_SIZE)
  33 + __init_end = .;
  34 +
  35 + _stext = .;
  36 + .text : { /* Real text segment */
  37 + TEXT_TEXT
  38 + SCHED_TEXT
  39 + LOCK_TEXT
  40 +
  41 + *(.fixup)
  42 + *(.gnu.warning)
  43 + }
  44 + _etext = .;
  45 +
  46 + _sdata = .;
  47 + RO_DATA_SECTION(PAGE_SIZE)
  48 + RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
  49 + _edata = .;
  50 +
  51 + EXCEPTION_TABLE(32)
  52 + NOTES
  53 +
  54 + BSS_SECTION(0, 0, 0)
  55 + _end = .;
  56 +
  57 + STABS_DEBUG
  58 + DWARF_DEBUG
  59 +
  60 + DISCARDS /* Exit code and data */
  61 +}