From dfc19a34b4ac9f5ad1aec67a2353895c8ef1ecd5 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Tue, 17 May 2011 10:35:14 +0000 Subject: [PATCH] * adds support for Artec Thincan MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-of-By: Lauri Võsandi SVN-Revision: 26919 --- target/linux/x86/Makefile | 2 +- target/linux/x86/image/Config.in | 15 ++++++++ target/linux/x86/image/Makefile | 7 ++++ .../x86/thincan/base-files/etc/init.d/alsa | 9 +++++ target/linux/x86/thincan/config-default | 26 +++++++++++++ target/linux/x86/thincan/profiles/dbe61.mk | 25 +++++++++++++ target/linux/x86/thincan/target.mk | 37 +++++++++++++++++++ 7 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 target/linux/x86/thincan/base-files/etc/init.d/alsa create mode 100644 target/linux/x86/thincan/config-default create mode 100644 target/linux/x86/thincan/profiles/dbe61.mk create mode 100644 target/linux/x86/thincan/target.mk diff --git a/target/linux/x86/Makefile b/target/linux/x86/Makefile index 829d422377e..1531c4d2135 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 4847dd4ae56..3ceae05f36b 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 12ffe185532..c070a103198 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 00000000000..94c6965e7eb --- /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 00000000000..ce04ea29b96 --- /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 00000000000..ee7c251a372 --- /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 00000000000..cd127a48233 --- /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 + -- 2.30.2