add net5501 support
authorFlorian Fainelli <florian@openwrt.org>
Sun, 11 Apr 2010 12:36:55 +0000 (12:36 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Sun, 11 Apr 2010 12:36:55 +0000 (12:36 +0000)
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 <philipp_subx@redfish-solutions.com>
SVN-Revision: 20794

package/kernel/modules/other.mk
target/linux/x86/Makefile
target/linux/x86/config-default
target/linux/x86/generic/config-default
target/linux/x86/image/Config.in
target/linux/x86/net5501/config-default [new file with mode: 0644]
target/linux/x86/net5501/target.mk [new file with mode: 0644]
target/linux/x86/patches/100-geode_mfgpt_irq.patch [new file with mode: 0644]

index 48bf1ab996cef783caa39aa638b6f0bf59f0fefe..6f0994e0da71c32e2c69ed1a29ceaa27cc3b99e2 100644 (file)
@@ -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))
+
index 4cf011af78a6d59195f0376d77006540e315c2c6..6b248f68c3a0878020691ac88ea76419cc98db62 100644 (file)
@@ -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
 
index 6310fc139f89df5c83e9c2fb3c63fdd8fd72af5e..2ec49b30f2878bdc342617589661050a89af746b 100644 (file)
@@ -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
index 9bfdf46ed07bcd7ab99eb4d04802cc179adb3035..9d8fcd3a0e63e18925e45145825bd6a9b482ee45 100644 (file)
@@ -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
index 9d17f37b6373b50c64c51ff10eb38d002ffeacf7..7eb0c8a1f2924bfe562893b114973907c78af6ff 100644 (file)
@@ -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 (file)
index 0000000..20f10a2
--- /dev/null
@@ -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 (file)
index 0000000..be4cefe
--- /dev/null
@@ -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 (file)
index 0000000..62cf4aa
--- /dev/null
@@ -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 <linux/module.h>
+ #include <asm/geode.h>
+
+-#define MFGPT_DEFAULT_IRQ     7
++#define MFGPT_DEFAULT_IRQ     6
+
+ static struct mfgpt_timer_t {
+       unsigned int avail:1;