[x86]
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 17 May 2011 10:35:14 +0000 (10:35 +0000)
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 17 May 2011 10:35:14 +0000 (10:35 +0000)
* 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

target/linux/x86/Makefile
target/linux/x86/image/Config.in
target/linux/x86/image/Makefile
target/linux/x86/thincan/base-files/etc/init.d/alsa [new file with mode: 0644]
target/linux/x86/thincan/config-default [new file with mode: 0644]
target/linux/x86/thincan/profiles/dbe61.mk [new file with mode: 0644]
target/linux/x86/thincan/target.mk [new file with mode: 0644]

index 829d422..1531c4d 100644 (file)
@@ -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
 
index 4847dd4..3ceae05 100644 (file)
@@ -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
index 12ffe18..c070a10 100644 (file)
@@ -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 (file)
index 0000000..94c6965
--- /dev/null
@@ -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 (file)
index 0000000..ce04ea2
--- /dev/null
@@ -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 (file)
index 0000000..ee7c251
--- /dev/null
@@ -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 (file)
index 0000000..cd127a4
--- /dev/null
@@ -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
+