summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-05-17 10:35:14 +0000
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-05-17 10:35:14 +0000
commit9f3b548077b769c62cadafaa4b268311eb985774 (patch)
treeab7b83e6fdf7bab7752d70484b9c6b1f6400746b
parent794aa95581731d8f882790629e0e8072cfb0ab94 (diff)
[x86]
* adds support for Artec Thincan Signed-of-By: Lauri Võsandi <lauri.vosandi@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26919 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--target/linux/x86/Makefile2
-rw-r--r--target/linux/x86/image/Config.in15
-rw-r--r--target/linux/x86/image/Makefile7
-rw-r--r--target/linux/x86/thincan/base-files/etc/init.d/alsa9
-rw-r--r--target/linux/x86/thincan/config-default26
-rw-r--r--target/linux/x86/thincan/profiles/dbe61.mk25
-rw-r--r--target/linux/x86/thincan/target.mk37
7 files changed, 120 insertions, 1 deletions
diff --git a/target/linux/x86/Makefile b/target/linux/x86/Makefile
index 829d42237..1531c4d21 100644
--- a/target/linux/x86/Makefile
+++ b/target/linux/x86/Makefile
@@ -10,7 +10,7 @@ ARCH:=i386
BOARD:=x86
BOARDNAME:=x86
FEATURES:=squashfs jffs2 ext4 vdi vmdk pcmcia targz
-SUBTARGETS=generic olpc xen_domu ep80579 net5501 kvm_guest geos alix2
+SUBTARGETS=generic olpc xen_domu ep80579 net5501 kvm_guest geos alix2 thincan
LINUX_VERSION:=2.6.37.6
diff --git a/target/linux/x86/image/Config.in b/target/linux/x86/image/Config.in
index 4847dd4ae..3ceae05f3 100644
--- a/target/linux/x86/image/Config.in
+++ b/target/linux/x86/image/Config.in
@@ -1,3 +1,18 @@
+config X86_ETHERBOOT_IMAGES
+ bool "Build Etherboot image"
+ depends TARGET_x86 && TARGET_x86_thincan_DBE61
+ default y
+ help
+ Builds network bootable image for ThinCan DBE61 (Etherboot BIOS)
+
+config X86_ETHERBOOT_BOOTOPTS
+ string "Extra kernel boot options"
+ depends X86_ETHERBOOT_IMAGES
+ default "ip=dhcp nbdport=2000 " if TARGET_ROOTFS_SQUASHFS
+ default "ip=dhcp root=/dev/nfs nfsroot=192.168.0.1:/srv/dbe61"
+ help
+ Kernel arguments to pass to the kernel eg. NFS root location etc.
+
config X86_GRUB_IMAGES
bool "Build GRUB images (Linux x86 or x86_64 host only)"
depends TARGET_x86 && !TARGET_x86_olpc
diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile
index 12ffe1855..c070a1031 100644
--- a/target/linux/x86/image/Makefile
+++ b/target/linux/x86/image/Makefile
@@ -166,6 +166,13 @@ endif
define Image/BuildKernel
$(CP) $(KDIR)/bzImage $(BIN_DIR)/$(IMG_PREFIX)-vmlinuz
+ ifneq ($(CONFIG_X86_ETHERBOOT_IMAGES),)
+ rm -f $(BIN_DIR)/$(IMG_PREFIX)-etherboot
+ $(STAGING_DIR_HOST)/bin/mkelfImage \
+ --append=$(CONFIG_X86_ETHERBOOT_BOOTOPTS) \
+ $(KDIR)/bzImage \
+ $(BIN_DIR)/$(IMG_PREFIX)-etherboot
+ endif
endef
define Image/Prepare
diff --git a/target/linux/x86/thincan/base-files/etc/init.d/alsa b/target/linux/x86/thincan/base-files/etc/init.d/alsa
new file mode 100644
index 000000000..94c6965e7
--- /dev/null
+++ b/target/linux/x86/thincan/base-files/etc/init.d/alsa
@@ -0,0 +1,9 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006 OpenWrt.org
+START=50
+
+start() {
+ amixer set PCM 50% unmute
+ amixer set Headphone 100% unmute
+}
+
diff --git a/target/linux/x86/thincan/config-default b/target/linux/x86/thincan/config-default
new file mode 100644
index 000000000..ce04ea29b
--- /dev/null
+++ b/target/linux/x86/thincan/config-default
@@ -0,0 +1,26 @@
+
+# Fix freeze-on-boot issue
+CONFIG_EMBEDDED=n
+
+# Enable in-kernel NFS client
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_ROOT_NFS=y
+
+# Enable NBD
+CONFIG_BLK_DEV_NBD=y
+
+# Enable Realtek 8139
+CONFIG_8139TOO=y
+CONFIG_8139TOO_PIO=n
+CONFIG_8139TOO_TUNE_TWISTER=n
+CONFIG_8139TOO_8129=n
+CONFIG_8139_OLD_RX_RESET=n
+
+# Enable in-kernel IP autoconfiguration
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=n
+CONFIG_IP_PNP_RARP=n
+
diff --git a/target/linux/x86/thincan/profiles/dbe61.mk b/target/linux/x86/thincan/profiles/dbe61.mk
new file mode 100644
index 000000000..ee7c251a3
--- /dev/null
+++ b/target/linux/x86/thincan/profiles/dbe61.mk
@@ -0,0 +1,25 @@
+#
+# Copyright (C) 2006-2009 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/DBE61
+ NAME:=DBE61
+endef
+
+define Profile/DBE61/Description
+ Compile OpenWrt for Artec ThinCan DBE61
+
+ ThinCan DBE61 is a thin-client featuring:
+ * AMD Geode LX700
+ * AMD CS5535 companion device
+ * 64MB or 256MB NAND Flash or none
+ * 128MB or 256MB DDR SDRAM
+ * Realtek RTL8139
+
+ http://wiki.thincan.org/DBE61
+endef
+
+$(eval $(call Profile,DBE61))
diff --git a/target/linux/x86/thincan/target.mk b/target/linux/x86/thincan/target.mk
new file mode 100644
index 000000000..cd127a482
--- /dev/null
+++ b/target/linux/x86/thincan/target.mk
@@ -0,0 +1,37 @@
+DEVICE_TYPE:=terminal
+BOARDNAME:=Artec ThinCan
+
+CFLAGS := -O2 -pipe -march=geode -mtune=geode -funit-at-a-time
+
+DEFAULT_PACKAGES:=\
+ base-files \
+ busybox \
+ hotplug2 \
+ libc \
+ libgcc \
+ opkg \
+ uci \
+ udevtrigger \
+ kmod-fs-msdos \
+ kmod-fs-vfat \
+ kmod-fs-ext2 \
+ kmod-fs-ext3 \
+ kmod-fs-ext4 \
+ kmod-usb-core \
+ kmod-usb-ohci \
+ kmod-usb-hid \
+ kmod-usb-storage \
+ kmod-usb2 \
+ kmod-sound-core \
+ kmod-sound-cs5535audio \
+ kmod-crypto-core \
+ kmod-crypto-hw-geode \
+ kmod-crypto-ocf \
+ kmod-crypto-aes
+
+define Target/Description
+ Build firmware images for Artec ThinCan
+
+ Note that NBD, NFS, DHCP and ethernet module are built into kernel
+endef
+