# # Realtek Semiconductor Corp. # # RLX Linux Kernel Configuration # # Tony Wu (tonywu@realtek.com) # Dec. 07, 2008 # #### BEGIN INCLUDE config RTL_819X def_bool y config RTL_8196C def_bool y # # Processor Config # config ARCH_32BIT bool default y config ARCH_CPU_RLX4181 bool default y config ARCH_CPU_EB bool default y config ARCH_CPU_EL bool default n config ARCH_CPU_RADIAX bool default n config ARCH_CPU_SLEEP bool default y config ARCH_CPU_ULS bool default y config ARCH_CPU_LLSC bool default n config ARCH_CPU_SYNC bool default n config ARCH_CACHE_WBC bool default y config ARCH_CACHE_L2C bool default n config ARCH_IRQ_CPU bool default y config ARCH_IRQ_VEC bool default y config ARCH_BUS_USB bool default n config ARCH_BUS_PCI bool default y config ARCH_BUS_PCI_MSI bool default n # # System Config # menu "System Configuration" choice prompt "System Type" default RTL_8196C_GW config RTL_8196C_GW bool "RTL8196C Demo Board" help This enables support for Realtek RTL8196C demo board endchoice config RTL8196C_REVISION_B bool default y if RTL_8196C_GW default y if RTL_8196C_iNIC config RTL8196C_GREEN_ETHERNET bool default y if RTL_8196C_GW config FPGA_PLATFORM bool config RTL_PCIE_SIMPLE_INIT bool default y if RTL8192SE default y if RTL8192CD config RTL_WTDOG bool "Enable watchdog timer support" config RTL_TIMER_ADJUSTMENT bool "Enable timer adjustment support" config RTL_WEBPAGES_IN_ROOTFS bool "Webpages in rootfs support" config RTL819X_SPI_FLASH bool "SPI flash support" config RTL_FLASH_DUAL_IMAGE_ENABLE bool "Enable Flash Dual Bank support" comment "Second Bank Offset" depends on RTL_FLASH_DUAL_IMAGE_ENABLE config RTL_FLASH_DUAL_IMAGE_OFFSET hex "offset of Flash" depends on RTL_819X && RTL_FLASH_DUAL_IMAGE_ENABLE default "0x200000" help offset of second bank, Normally should be 2M or 4M. config RTL_FLASH_MAPPING_ENABLE bool "Enable Flash Mapping" config POCKET_ROUTER_SUPPORT bool "Pocket router support" config POCKET_AP_SUPPORT bool "Pocket AP support" config DOMAIN_NAME_QUERY_SUPPORT bool "Domain name query support" config USB3G_SUPPORT bool "USB3G support" select HOTPLUG #select UEVENT_HELPER_PATH select FW_LOADER select FIRMWARE_IN_KERNEL #select EXTRA_FIRMWARE="" select SCSI select SCSI_DMA select BLK_DEV_SD select BLK_DEV_SR select PPP select PPP_MULTILINK select PPP_FILTER select PPP_DEFLATE select PPP_BSDCOMP select DEFAULTS_KERNEL_2_6 select USB_SUPPORT select USB_ARCH_HAS_HCD select USB_ARCH_HAS_OHCI select USB_ARCH_HAS_EHCI select USB select USB_ANNOUNCE_NEW_DEVICES select USB_DEVICEFS select USB_DEVICE_CLASS select USB_MON select USB_EHCI_HCD select USB_EHCI_ROOT_HUB_TT select USB_EHCI_TT_NEWSCHED select USB_OHCI_HCD select USB_OHCI_LITTLE_ENDIAN select USB_STORAGE select USB_SERIAL select USB_SERIAL_CONSOLE select USB_SERIAL_GENERIC select USB_SERIAL_OPTION select CONFIGFS_FS select ZLIB_DEFLATE default n config HTTP_FILE_SERVER_SUPPORT bool "Http File server support" comment "Support two spi flash" config RTL_TWO_SPI_FLASH_ENABLE bool "two spi flash support" default n config RTL_SPI_FLASH1_SIZE hex "Config 1st flash size" depends on RTL_819X && RTL_TWO_SPI_FLASH_ENABLE default "0x400000" help Normally should be 0x400000 or 0x800000. config RTL_SPI_FLASH2_SIZE hex "Config 2nd flash size" depends on RTL_819X && RTL_TWO_SPI_FLASH_ENABLE default "0x400000" help Normally should be 0x400000 or 0x800000. comment "Flash size 2M or 4M, default 2M" depends on RTL_FLASH_MAPPING_ENABLE comment "USB3G is enable, please set to 0x400000" depends on RTL_FLASH_MAPPING_ENABLE && USB3G_SUPPORT config RTL_FLASH_SIZE hex "Size of Flash" depends on RTL_819X && RTL_FLASH_MAPPING_ENABLE default "0x200000" help Size of Flash, Normally should be 2M or 4M. comment "Hardware setting offset,should be 4K alignment" depends on RTL_FLASH_MAPPING_ENABLE config RTL_HW_SETTING_OFFSET hex "Hardware setting offset in flash." depends on RTL_819X && RTL_FLASH_MAPPING_ENABLE default "0x6000" help Hardware Setting store in flash from the offset. it should be 4k alignment. comment "Default setting offset,should be 4K alignment." depends on RTL_FLASH_MAPPING_ENABLE comment "size of default and current setting should be same." depends on RTL_FLASH_MAPPING_ENABLE config RTL_DEFAULT_SETTING_OFFSET hex "Default setting offset in flash." depends on RTL_819X && RTL_FLASH_MAPPING_ENABLE default "0x8000" help Default Setting store in flash from the offset. normally the default setting shoud save before current settting. NOTE: make sure it's size is enough for default setting, default size is 16K. comment "Current setting offset,should be 4K alignment." depends on RTL_FLASH_MAPPING_ENABLE config RTL_CURRENT_SETTING_OFFSET hex "Current setting offset in flash." depends on RTL_819X && RTL_FLASH_MAPPING_ENABLE default "0xC000" help Current Setting store in flash from the offset. normally the current setting saved after default setting. NOTE: make sure it's size is enough for current setting, default size is 16K. comment "Webpage image offset,should be 4K alignment." depends on RTL_FLASH_MAPPING_ENABLE comment "size of web page is normally about 100K." depends on RTL_FLASH_MAPPING_ENABLE config RTL_WEB_PAGES_OFFSET hex "webpages image offset in flash." depends on RTL_819X && RTL_FLASH_MAPPING_ENABLE default "0x10000" help Webpages image store in flash from the offset. NOTE: default size is 128K. comment "Linux image offset,should be 4K alignment." depends on RTL_FLASH_MAPPING_ENABLE comment "this offset MUST between 0x10000~0x40000." depends on RTL_FLASH_MAPPING_ENABLE config RTL_LINUX_IMAGE_OFFSET hex "linux image offset in flash." depends on RTL_819X && RTL_FLASH_MAPPING_ENABLE default "0x30000" help linux image store in flash from the offset. comment "Root image offset,should be 64K alignment." depends on RTL_FLASH_MAPPING_ENABLE comment "USB3G is enable, please set to 0x130000." depends on RTL_FLASH_MAPPING_ENABLE && USB3G_SUPPORT config RTL_ROOT_IMAGE_OFFSET hex "root image offset in flash." depends on RTL_819X && RTL_FLASH_MAPPING_ENABLE default "0xF0000" help root image store in flash from the offset. # KERNE_STACK_SIZE = PAGE_SIZE<R, R->W, W->R, W->W # Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC # config WEAK_ORDERING bool # # CPU may reorder reads and writes beyond LL/SC # CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC # config WEAK_REORDERING_BEYOND_LLSC bool # # CACHE # config CPU_HAS_WBC bool default y if ARCH_CACHE_WBC config CPU_HAS_L2C bool default y if ARCH_CACHE_L2C # ## WRITE BUFFER ## config CPU_HAS_WB bool default n # # DMA # config DMA_NONCOHERENT bool default y select DMA_NEED_PCI_MAP_STATE config DMA_NEED_PCI_MAP_STATE bool config ZONE_DMA bool # # ENDIAN # config CPU_BIG_ENDIAN bool default y if ARCH_CPU_EB config CPU_LITTLE_ENDIAN bool default y if ARCH_CPU_EL # # IRQ # config IRQ_CPU bool default y if ARCH_IRQ_CPU config IRQ_VEC bool default y if ARCH_IRQ_VEC config GENERIC_HARDIRQS bool default y config GENERIC_IRQ_PROBE bool default n config GENERIC_HARDIRQS_NO__DO_IRQ def_bool y # # BUS # config HW_HAS_PCI bool default y if ARCH_BUS_PCI config ARCH_SUPPORTS_MSI bool default y if ARCH_BUS_PCI_MSI config HW_HAS_USB bool default y if ARCH_BUS_USB # # end of RLX configuration # config RWSEM_GENERIC_SPINLOCK bool default y config RWSEM_XCHGADD_ALGORITHM bool config ARCH_SUPPORTS_OPROFILE bool default y if !MIPS_MT_SMTC config GENERIC_FIND_NEXT_BIT bool default y config GENERIC_HWEIGHT bool default y config GENERIC_CALIBRATE_DELAY bool default y config GENERIC_CLOCKEVENTS bool default y config GENERIC_TIME bool default y config GENERIC_CMOS_UPDATE bool default n config SCHED_OMIT_FRAME_POINTER bool default y # # Select some configuration options automatically based on user selections. # config EARLY_PRINTK bool "Early printk" if EMBEDDED && DEBUG_KERNEL depends on SYS_HAS_EARLY_PRINTK default y help This option enables special console drivers which allow the kernel to print messages very early in the bootup process. This is useful for kernel debugging when your machine crashes very early before the console code is initialized. For normal operation, it is not recommended because it looks ugly on some machines and doesn't cooperate with an X server. You should normally say N here, unless you want to debug such a crash. config SYS_HAS_EARLY_PRINTK bool config NO_IOPORT def_bool n config GENERIC_ISA_DMA bool select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n config GENERIC_ISA_DMA_SUPPORT_BROKEN bool select GENERIC_ISA_DMA config GENERIC_GPIO bool config SWAP_IO_SPACE bool # # Set to y for ptrace access to watch registers. # config HARDWARE_WATCHPOINTS bool default y if CPU_MIPSR1 || CPU_MIPSR2 menu "Kernel type" # # - Highmem only makes sense for the 32-bit kernel. # - The current highmem code will only work properly on physically indexed # caches such as R3000, SB1, R7000 or those that look like they're virtually # indexed such as R4000/R4400 SC and MC versions or R10000. So for the # moment we protect the user and offer the highmem option only on machines # where it's known to be safe. This will not offer highmem on a few systems # such as MIPS32 and MIPS64 CPUs which may have virtual and physically # indexed CPUs but we're playing safe. # - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we # know they might have memory configurations that could make use of highmem # support. # config HIGHMEM bool "High Memory Support" depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM config CPU_SUPPORTS_HIGHMEM bool config SYS_SUPPORTS_HIGHMEM bool config ARCH_FLATMEM_ENABLE def_bool y config ARCH_DISCONTIGMEM_ENABLE def_bool n config ARCH_POPULATES_NODE_MAP def_bool y config NODES_SHIFT int default "6" depends on NEED_MULTIPLE_NODES source "mm/Kconfig" config SMP def_bool n source "kernel/time/Kconfig" # # Timer Interrupt Frequency Configuration # choice prompt "Timer frequency" default HZ_250 help Allows the configuration of the timer frequency. config HZ_48 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ config HZ_100 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ config HZ_128 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ config HZ_250 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ config HZ_256 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ config HZ_1000 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ config HZ_1024 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ endchoice config SYS_SUPPORTS_48HZ bool config SYS_SUPPORTS_100HZ bool config SYS_SUPPORTS_128HZ bool config SYS_SUPPORTS_250HZ bool config SYS_SUPPORTS_256HZ bool config SYS_SUPPORTS_1000HZ bool config SYS_SUPPORTS_1024HZ bool config SYS_SUPPORTS_ARBIT_HZ bool default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \ !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \ !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \ !SYS_SUPPORTS_1024HZ config HZ int default 48 if HZ_48 default 100 if HZ_100 default 128 if HZ_128 default 250 if HZ_250 default 256 if HZ_256 default 1000 if HZ_1000 default 1024 if HZ_1024 source "kernel/Kconfig.preempt" config KEXEC bool "Kexec system call (EXPERIMENTAL)" depends on EXPERIMENTAL help kexec is a system call that implements the ability to shutdown your current kernel, and to start another kernel. It is like a reboot but it is independent of the system firmware. And like a reboot you can start any kernel with it, not just Linux. The name comes from the similarity to the exec system call. It is an ongoing process to be certain the hardware in a machine is properly shutdown, so do not be surprised if this code does not initially work for you. It may help to enable device hotplugging support. As of this writing the exact hardware interface is strongly in flux, so no good recommendation can be made. config SECCOMP bool "Enable seccomp to safely compute untrusted bytecode" depends on PROC_FS default y help This kernel feature is useful for number crunching applications that may need to compute untrusted bytecode during their execution. By using pipes or other transports made available to the process as file descriptors supporting the read/write syscalls, it's possible to isolate those applications in their own address space using seccomp. Once seccomp is enabled via /proc//seccomp, it cannot be disabled and the task is only allowed to execute a few safe syscalls defined by each seccomp mode. If unsure, say Y. Only embedded should say N here. endmenu config LOCKDEP_SUPPORT bool default y config STACKTRACE_SUPPORT bool default n source "init/Kconfig" config PROBE_INITRD_HEADER bool "Probe initrd header created by addinitrd" depends on BLK_DEV_INITRD help Probe initrd header at the last page of kernel image. Say Y here if you are using arch/rlx/boot/addinitrd.c to add initrd or initramfs image to the kernel image. Otherwise, say N. source "kernel/Kconfig.freezer" menu "Bus options (PCI/USB)" config PCI bool "Support for PCI controller" depends on HW_HAS_PCI select PCI_DOMAINS help Find out whether you have a PCI motherboard. PCI is the name of a bus system, i.e. the way the CPU talks to the other stuff inside your box. Other bus systems are ISA, EISA, or VESA. If you have PCI, say Y, otherwise N. config PCI_DOMAINS bool source "drivers/pci/Kconfig" source "drivers/pci/hotplug/Kconfig" source "drivers/pcmcia/Kconfig" endmenu menu "Power management options" config ARCH_SUSPEND_POSSIBLE def_bool y depends on !SMP source "kernel/power/Kconfig" endmenu source "net/Kconfig" source "drivers/Kconfig" source "fs/Kconfig" source "arch/rlx/Kconfig.debug" source "security/Kconfig" source "crypto/Kconfig" source "lib/Kconfig"