From 8ff8151448adaa2cebdd7a7ca695267d4460eb40 Mon Sep 17 00:00:00 2001 From: florian Date: Sun, 11 Apr 2010 12:36:55 +0000 Subject: [PATCH] [x86] add net5501 support This patch brings up the net5501 platform. Note that the x86/ target included support for all x86/ class processors. That's not technically correct. This should be constrained only to the "generic" subtarget. Every x86-class target that isn't generic should be able to select only the optimizations/capabilities applicable to that architectural variant. It's also assumed that all x86 processors have keyboard & mouse ports, ISA, DMI, ACPI... the embedded ones typically don't. Again, moving that to the generic subtarget. Fortunately, this was a fairly benign tweak. The net5501 board includes the following logic: Geode/LX processor CS5535 super-I/O chip PC87360 sensor chip Via Rhine Ethernet controllers Via Sata controllers USB, LEDS, I2C Signed-off-by: Philip Prindeville git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20794 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/kernel/modules/other.mk | 33 +++++++++- target/linux/x86/Makefile | 2 +- target/linux/x86/config-default | 66 ++++--------------- target/linux/x86/generic/config-default | 54 +++++++++++++++ target/linux/x86/image/Config.in | 8 +-- target/linux/x86/net5501/config-default | 25 +++++++ target/linux/x86/net5501/target.mk | 15 +++++ .../x86/patches/100-geode_mfgpt_irq.patch | 11 ++++ 8 files changed, 153 insertions(+), 61 deletions(-) create mode 100644 target/linux/x86/net5501/config-default create mode 100644 target/linux/x86/net5501/target.mk create mode 100644 target/linux/x86/patches/100-geode_mfgpt_irq.patch diff --git a/package/kernel/modules/other.mk b/package/kernel/modules/other.mk index 48bf1ab99..6f0994e0d 100644 --- a/package/kernel/modules/other.mk +++ b/package/kernel/modules/other.mk @@ -801,7 +801,7 @@ define KernelPackage/cs5535-gpio DEPENDS:=@TARGET_x86||@TARGET_olpc KCONFIG:=CONFIG_CS5535_GPIO FILES:=$(LINUX_DIR)/drivers/char/cs5535_gpio.$(LINUX_KMOD_SUFFIX) - AUTOLOAD:=$(call AutoLoad,90,cs5535_gpio) + AUTOLOAD:=$(call AutoLoad,50,cs5535_gpio) endef define KernelPackage/cs5535-gpio/description @@ -874,3 +874,34 @@ define KernelPackage/rfkill/description endef $(eval $(call KernelPackage,rfkill)) + +define KernelPackage/geodewdt + SUBMENU:=$(OTHER_MENU) + TITLE:=Geode/LX Watchdog timer + DEPENDS:=@TARGET_x86 @LINUX_2_6 + KCONFIG:=CONFIG_GEODE_WDT + FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/geodewdt.$(LINUX_KMOD_SUFFIX) + AUTOLOAD:=$(call AutoLoad,50,geodewdt) +endef + +define KernelPackage/geodewdt/description + Kernel module for Geode watchdog timer. +endef + +$(eval $(call KernelPackage,geodewdt)) + +define KernelPackage/pc8736x-gpio + SUBMENU:=$(OTHER_MENU) + TITLE:=PC8736x GPIO support + DEPENDS:=@TARGET_x86 + KCONFIG:=CONFIG_PC8736x_GPIO + FILES:=$(LINUX_DIR)/drivers/char/pc8736x_gpio.$(LINUX_KMOD_SUFFIX) + AUTOLOAD:=$(call AutoLoad,40,pc8736x_gpio) +endef + +define KernelPackage/pc8736x-gpio/description + Kernel module for PC8736x GPIO +endef + +$(eval $(call KernelPackage,pc8736x-gpio)) + diff --git a/target/linux/x86/Makefile b/target/linux/x86/Makefile index 4cf011af7..6b248f68c 100644 --- a/target/linux/x86/Makefile +++ b/target/linux/x86/Makefile @@ -10,7 +10,7 @@ ARCH:=i386 BOARD:=x86 BOARDNAME:=x86 FEATURES:=squashfs jffs2 ext2 vdi vmdk pcmcia tgz -SUBTARGETS=generic olpc xen_domu ep80579 +SUBTARGETS=generic olpc xen_domu ep80579 net5501 LINUX_VERSION:=2.6.32.10 diff --git a/target/linux/x86/config-default b/target/linux/x86/config-default index 6310fc139..2ec49b30f 100644 --- a/target/linux/x86/config-default +++ b/target/linux/x86/config-default @@ -3,28 +3,7 @@ CONFIG_4KSTACKS=y # CONFIG_60XX_WDT is not set # CONFIG_64BIT is not set # CONFIG_AC3200 is not set -CONFIG_ACPI=y -# CONFIG_ACPI_AC is not set -# CONFIG_ACPI_ASUS is not set -# CONFIG_ACPI_BATTERY is not set -CONFIG_ACPI_BLACKLIST_YEAR=0 -# CONFIG_ACPI_BUTTON is not set -# CONFIG_ACPI_CONTAINER is not set -# CONFIG_ACPI_CUSTOM_DSDT is not set -# CONFIG_ACPI_DEBUG is not set -# CONFIG_ACPI_DOCK is not set -# CONFIG_ACPI_FAN is not set -# CONFIG_ACPI_PCI_SLOT is not set -CONFIG_ACPI_PROCESSOR=y -# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set -# CONFIG_ACPI_PROCFS is not set -# CONFIG_ACPI_PROCFS_POWER is not set -# CONFIG_ACPI_PROC_EVENT is not set -# CONFIG_ACPI_SBS is not set -CONFIG_ACPI_SYSFS_POWER=y -CONFIG_ACPI_THERMAL=y -# CONFIG_ACPI_TOSHIBA is not set -# CONFIG_ACPI_WMI is not set +# CONFIG_ACPI is not set # CONFIG_ACQUIRE_WDT is not set # CONFIG_ADVANTECH_WDT is not set # CONFIG_ALIM1535_WDT is not set @@ -83,12 +62,12 @@ CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_SUP_AMD=y -CONFIG_CPU_SUP_CENTAUR=y -CONFIG_CPU_SUP_CYRIX_32=y -CONFIG_CPU_SUP_INTEL=y -CONFIG_CPU_SUP_TRANSMETA_32=y -CONFIG_CPU_SUP_UMC_32=y +# CONFIG_CPU_SUP_AMD is not set +# CONFIG_CPU_SUP_CENTAUR is not set +# CONFIG_CPU_SUP_CYRIX_32 is not set +# CONFIG_CPU_SUP_INTEL is not set +# CONFIG_CPU_SUP_TRANSMETA_32 is not set +# CONFIG_CPU_SUP_UMC_32 is not set # CONFIG_CS5535_GPIO is not set # CONFIG_CS89x0 is not set # CONFIG_DCDBAS is not set @@ -101,8 +80,7 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0 # CONFIG_DEPCA is not set CONFIG_DEVPORT=y # CONFIG_DMAR is not set -CONFIG_DMI=y -# CONFIG_DMIID is not set +# CONFIG_DMI is not set CONFIG_DNOTIFY=y CONFIG_DOUBLEFAULT=y CONFIG_DUMMY_CONSOLE=y @@ -194,14 +172,7 @@ CONFIG_HW_RANDOM_VIA=y # CONFIG_IBMASR is not set # CONFIG_IMA is not set CONFIG_INITRAMFS_SOURCE="" -CONFIG_INPUT=y -CONFIG_INPUT_KEYBOARD=y -CONFIG_INPUT_MOUSE=y -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT is not set # CONFIG_INTEL_MENLOW is not set # CONFIG_IOMMU_API is not set # CONFIG_IOMMU_HELPER is not set @@ -214,9 +185,7 @@ CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_NONE=3 CONFIG_IO_DELAY_TYPE_UDELAY=2 # CONFIG_IO_DELAY_UDELAY is not set -CONFIG_ISA=y -CONFIG_ISAPNP=y -CONFIG_ISA_DMA_API=y +# CONFIG_ISA is not set # CONFIG_ISCSI_IBFT_FIND is not set # CONFIG_ISDN_CAPI is not set # CONFIG_ISDN_I4L is not set @@ -263,17 +232,6 @@ CONFIG_MICROCODE_OLD_INTERFACE=y # CONFIG_MK6 is not set # CONFIG_MK7 is not set # CONFIG_MK8 is not set -# CONFIG_MOUSE_BCM5974 is not set -CONFIG_MOUSE_PS2=y -CONFIG_MOUSE_PS2_ALPS=y -# CONFIG_MOUSE_PS2_ELANTECH is not set -CONFIG_MOUSE_PS2_LIFEBOOK=y -CONFIG_MOUSE_PS2_LOGIPS2PP=y -CONFIG_MOUSE_PS2_SYNAPTICS=y -# CONFIG_MOUSE_PS2_TOUCHKIT is not set -CONFIG_MOUSE_PS2_TRACKPOINT=y -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_VSXXXAA is not set # CONFIG_MPENTIUM4 is not set # CONFIG_MPENTIUMII is not set # CONFIG_MPENTIUMIII is not set @@ -399,9 +357,7 @@ CONFIG_VGA_CONSOLE=y CONFIG_VM86=y CONFIG_VM_EVENT_COUNTERS=y # CONFIG_VORTEX is not set -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_VT is not set # CONFIG_W83697UG_WDT is not set # CONFIG_WAFER_WDT is not set # CONFIG_WDT is not set diff --git a/target/linux/x86/generic/config-default b/target/linux/x86/generic/config-default index 9bfdf46ed..9d8fcd3a0 100644 --- a/target/linux/x86/generic/config-default +++ b/target/linux/x86/generic/config-default @@ -1,2 +1,56 @@ +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR=y +CONFIG_CPU_SUP_CYRIX_32=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_TRANSMETA_32=y +CONFIG_CPU_SUP_UMC_32=y +CONFIG_INPUT=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_MOUSE_BCM5974 is not set +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +# CONFIG_MOUSE_PS2_ELANTECH is not set +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_VSXXXAA is not set +CONFIG_DMI=y +# CONFIG_DMIID is not set +CONFIG_ISA=y +CONFIG_ISAPNP=y +CONFIG_ISA_DMA_API=y +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_ACPI=y +# CONFIG_ACPI_AC is not set +# CONFIG_ACPI_ASUS is not set +# CONFIG_ACPI_BATTERY is not set +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_BUTTON is not set +# CONFIG_ACPI_CONTAINER is not set +# CONFIG_ACPI_CUSTOM_DSDT is not set +# CONFIG_ACPI_DEBUG is not set +# CONFIG_ACPI_DOCK is not set +# CONFIG_ACPI_FAN is not set +# CONFIG_ACPI_PCI_SLOT is not set +CONFIG_ACPI_PROCESSOR=y +# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set +# CONFIG_ACPI_PROCFS is not set +# CONFIG_ACPI_PROCFS_POWER is not set +# CONFIG_ACPI_PROC_EVENT is not set +# CONFIG_ACPI_SBS is not set +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_THERMAL=y +# CONFIG_ACPI_TOSHIBA is not set +# CONFIG_ACPI_WMI is not set CONFIG_PATA_LEGACY=y CONFIG_PATA_PLATFORM=y diff --git a/target/linux/x86/image/Config.in b/target/linux/x86/image/Config.in index 9d17f37b6..7eb0c8a1f 100644 --- a/target/linux/x86/image/Config.in +++ b/target/linux/x86/image/Config.in @@ -13,8 +13,8 @@ config X86_GRUB_CONSOLE bool depends X86_GRUB_IMAGES prompt "Use Console Terminal (in addition to Serial)" - default n if TARGET_x86_generic_Soekris48xx || TARGET_x86_generic_Soekris45xx - default y if ! (TARGET_x86_generic_Soekris48xx || TARGET_x86_generic_Soekris45xx) + default n if TARGET_x86_generic_Soekris48xx || TARGET_x86_generic_Soekris45xx || TARGET_x86_net5501 + default y if ! (TARGET_x86_generic_Soekris48xx || TARGET_x86_generic_Soekris45xx || TARGET_x86_net5501) config X86_GRUB_SERIAL string @@ -26,8 +26,8 @@ config X86_GRUB_SERIAL config X86_GRUB_BAUDRATE int "Serial port baud rate" depends X86_GRUB_IMAGES - default 19200 if TARGET_x86_generic_Soekris48xx || TARGET_x86_generic_Soekris45xx - default 38400 if ! (TARGET_x86_generic_Soekris48xx || TARGET_x86_generic_Soekris45xx) + default 19200 if TARGET_x86_generic_Soekris48xx || TARGET_x86_generic_Soekris45xx || TARGET_x86_net5501 + default 38400 if ! (TARGET_x86_generic_Soekris48xx || TARGET_x86_generic_Soekris45xx || TARGET_x86_net5501) config X86_GRUB_KERNELPART int "Kernel partition size (in MB)" diff --git a/target/linux/x86/net5501/config-default b/target/linux/x86/net5501/config-default new file mode 100644 index 000000000..20f10a29c --- /dev/null +++ b/target/linux/x86/net5501/config-default @@ -0,0 +1,25 @@ +# CONFIG_ACPI is not set +# CONFIG_DMI is not set +CONFIG_CPU_SUP_AMD=y +CONFIG_GEODE_MFGPT_TIMER=y +# CONFIG_GEODE_WDT is not set +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set +# CONFIG_ISA is not set +# CONFIG_INPUT is not set +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_M486 is not set +CONFIG_MGEODE_LX=y +# CONFIG_MOUSE_PS2 is not set +# CONFIG_PCSPKR_PLATFORM is not set +CONFIG_PROCESSOR_SELECT=y +# CONFIG_SCx200 is not set +# CONFIG_SERIO_I8042 is not set +# CONFIG_SERIO_LIBPS2 is not set +CONFIG_X86_DEBUGCTLMSR=y +# CONFIG_X86_DS is not set +CONFIG_X86_L1_CACHE_SHIFT=5 +CONFIG_X86_TSC=y +CONFIG_X86_USE_3DNOW=y +CONFIG_X86_USE_PPRO_CHECKSUM=y diff --git a/target/linux/x86/net5501/target.mk b/target/linux/x86/net5501/target.mk new file mode 100644 index 000000000..be4cefe68 --- /dev/null +++ b/target/linux/x86/net5501/target.mk @@ -0,0 +1,15 @@ +BOARDNAME:=Soekris net5501 +DEFAULT_PACKAGES += kmod-ata-via-sata kmod-crypto-hw-geode \ + kmod-cs5535-gpio kmod-nsc-gpio kmod-pc8736x-gpio \ + kmod-geodewdt kmod-hwmon-core kmod-hwmon-pc87360 \ + kmod-via-rhine \ + kmod-i2c-core kmod-i2c-gpio \ + kmod-i2c-algo-bit kmod-i2c-algo-pca kmod-i2c-algo-pcf \ + kmod-usb-core kmod-usb2 kmod-usb-hid kmod-usb-uhci +CFLAGS += -march=k6-2 -fno-align-functions -fno-align-loops -fno-align-jumps \ + -fno-align-labels + +define Target/Description + Build firmware images for Soekris net5501 board +endef + diff --git a/target/linux/x86/patches/100-geode_mfgpt_irq.patch b/target/linux/x86/patches/100-geode_mfgpt_irq.patch new file mode 100644 index 000000000..62cf4aabc --- /dev/null +++ b/target/linux/x86/patches/100-geode_mfgpt_irq.patch @@ -0,0 +1,11 @@ +--- a/arch/x86/kernel/mfgpt_32.c 2010-03-15 09:52:04.000000000 -0600 ++++ b/arch/x86/kernel/mfgpt_32.c 2010-04-08 17:31:56.000000000 -0600 +@@ -33,7 +33,7 @@ + #include + #include + +-#define MFGPT_DEFAULT_IRQ 7 ++#define MFGPT_DEFAULT_IRQ 6 + + static struct mfgpt_timer_t { + unsigned int avail:1; -- 2.20.1