add dm8000 support
authorFelix Domke <tmbinc@elitedvb.ne>
Mon, 14 Jul 2008 06:51:13 +0000 (06:51 +0000)
committerFelix Domke <tmbinc@elitedvb.ne>
Mon, 14 Jul 2008 06:51:13 +0000 (06:51 +0000)
40 files changed:
conf/machine/dm8000.conf [new file with mode: 0644]
packages/base-files/base-files/dm8000/.mtn2git_empty [new file with mode: 0644]
packages/base-files/base-files/dm8000/fstab [new file with mode: 0644]
packages/dreambox/dreambox-bootlogo.bb
packages/dreambox/dreambox-dvb-modules.bb
packages/dreambox/dreambox-dvbincludes.bb
packages/dreambox/dreambox-secondstage.bb
packages/enigma2/enigma2-plugins.bb
packages/enigma2/enigma2-skins.bb
packages/enigma2/enigma2.bb
packages/enigma2/enigma2/revert_tuner_config.patch [new file with mode: 0644]
packages/images/dreambox-image.bb
packages/initscripts/initscripts-1.0/dm8000/.mtn2git_empty [new file with mode: 0644]
packages/initscripts/initscripts-1.0/dm8000/bootup [new file with mode: 0644]
packages/ipkg/ipkg-collateral/dm8000/.mtn2git_empty [new file with mode: 0644]
packages/ipkg/ipkg-collateral/dm8000/dest [new file with mode: 0644]
packages/linux/linux-dm8000.bb [new file with mode: 0644]
packages/linux/linux-dm8000/.mtn2git_empty [new file with mode: 0644]
packages/linux/linux-dm8000/dm8000_defconfig [new file with mode: 0644]
packages/linux/linux-dm8000/linux-2.6.12-7400AB-enable-llsc.patch [new file with mode: 0644]
packages/linux/linux-dm8000/linux-2.6.12-brcm-fix-minipci.patch [new file with mode: 0644]
packages/linux/linux-dm8000/linux-2.6.12-brcm-mtd-blkdevfs-fix.diff [new file with mode: 0644]
packages/linux/linux-dm8000/linux-2.6.12-dm8000-nand.patch [new file with mode: 0644]
packages/linux/linux-dm8000/linux-2.6.12-dream-misc.patch [new file with mode: 0644]
packages/linux/linux-dm8000/linux-2.6.12-dream-temp.patch [new file with mode: 0644]
packages/linux/linux-dm8000/linux-2.6.12-fixup-prom-args.patch [new file with mode: 0644]
packages/linux/linux-dm8000/linux-2.6.12-set-custom-extraversion.patch [new file with mode: 0644]
packages/linux/linux-dm8000/linuxmips-2.6.12-fix-fadvise.patch [new file with mode: 0644]
packages/linux/linux-dm8000/linuxmips-2.6.12-fix-futex.patch [new file with mode: 0644]
packages/linux/linux-dm8000/linuxmips-2.6.12-gcc4-compile-fix.patch [new file with mode: 0644]
packages/linux/linux-dm8000/linuxmips-2.6.12-gdb-fix.patch [new file with mode: 0644]
packages/netbase/netbase/dm8000/.mtn2git_empty [new file with mode: 0644]
packages/netbase/netbase/dm8000/interfaces [new file with mode: 0644]
packages/sysvinit/sysvinit/dm8000/.mtn2git_empty [new file with mode: 0644]
packages/sysvinit/sysvinit/dm8000/inittab [new file with mode: 0644]
packages/tuxbox/tuxbox-libtuxtxt.bb
packages/wpa-supplicant/wpa-supplicant-0.4.7/dm8000/.mtn2git_empty [new file with mode: 0644]
packages/wpa-supplicant/wpa-supplicant-0.4.7/dm8000/defconfig [new file with mode: 0644]
packages/wpa-supplicant/wpa-supplicant-0.4.7/dm8000/madwifi-bsd-fix.diff [new file with mode: 0644]
packages/wpa-supplicant/wpa-supplicant_0.4.7.bb

diff --git a/conf/machine/dm8000.conf b/conf/machine/dm8000.conf
new file mode 100644 (file)
index 0000000..da0932a
--- /dev/null
@@ -0,0 +1,51 @@
+#@TYPE: Machine
+#@NAME: Dreambox DM8000
+#@DESCRIPTION: Machine configuration for the Dreambox DM8000
+
+TARGET_ARCH = "mipsel"
+IPKG_ARCHS = "all mipsel ${MACHINE}"
+PREFERRED_PROVIDER_xserver = "xserver-kdrive"
+PREFERRED_PROVIDER_virtual/kernel = "linux-dm8000"
+BOOTSTRAP_EXTRA_DEPENDS = "virtual/kernel dreambox-dvb-modules gst-plugin-dvbmediasink"
+BOOTSTRAP_EXTRA_RDEPENDS = "kernel dreambox-dvb-modules kernel-module-stv0299 \
+       kernel-module-cifs      kernel-module-exportfs  kernel-module-isofs \
+       kernel-module-reiserfs  kernel-module-scsi-mod  kernel-module-sd-mod \
+       kernel-module-sg        kernel-module-sr-mod    kernel-module-usb-storage \
+       kernel-module-usbhid    kernel-module-usbmon    kernel-module-ide-cd \
+       kernel-module-autofs4   kernel-module-cdrom \
+       kernel-module-msdos kernel-module-vfat kernel-module-fat \
+       kernel-module-xfs gst-plugin-dvbmediasink"
+
+TARGET_FPU = "soft"
+#OLDEST_KERNEL = "2.6.9"
+
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
+
+PREFERRED_VERSION_glibc = "2.3.5+cvs20051107"
+PREFERRED_VERSION_gcc-cross-initial = "3.4.5"
+PREFERRED_VERSION_gcc-cross = "4.1.1"
+PREFERRED_VERSION_gcc-cross-sdk = "4.1.1" 
+PREFERRED_VERSION_gcc = "4.1.1"
+PREFERRED_VERSION_binutils-cross = "2.16.1"
+PREFERRED_VERSION_binutils-cross-sdk = "2.16.1"
+PREFERRED_VERSION_binutils = "2.16.1"
+PREFERRED_VERSION_linux-libc-headers = "2.6.12.0"
+GLIBC_ADDONS = "nptl"
+GLIBC_EXTRA_OECONF = "--disable-profile --with-tls --without-fp --with-__thread"
+
+EXTRA_IMAGEDEPENDS += "dreambox-secondstage dreambox-buildimage-native"
+EXTRA_IMAGECMD_jffs2 = " --eraseblock=0x20000 -n -l "
+IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS}/boot --faketime \
+       --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.boot.jffs2 \
+       ${EXTRA_IMAGECMD}; rm -rf ${IMAGE_ROOTFS}/boot/*; \
+                               mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime \
+       --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
+       ${EXTRA_IMAGECMD}; \
+       buildimage ${STAGING_LIBDIR}/dreambox-secondstage/main.bin.gz \
+       ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.boot.jffs2 \
+       ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
+       ${MACHINE} 64 large \
+       > ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfi"
diff --git a/packages/base-files/base-files/dm8000/.mtn2git_empty b/packages/base-files/base-files/dm8000/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/base-files/base-files/dm8000/fstab b/packages/base-files/base-files/dm8000/fstab
new file mode 100644 (file)
index 0000000..ad71691
--- /dev/null
@@ -0,0 +1,9 @@
+rootfs               /                    auto       defaults              1 1
+proc                 /proc                proc       defaults              0 0
+devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
+usbdevfs             /proc/bus/usb        usbdevfs   defaults              0 0
+/dev/mtdblock/2      /boot                jffs2      ro                    0 0
+tmpfs                /var                 tmpfs      defaults              0 0
+tmpfs                /tmp                 tmpfs      defaults             0 0
+/dev/ide/host0/bus0/target0/lun0/part1 /media/hdd auto defaults            0 0
+/dev/ide/host0/bus1/target0/lun0/part1 /media/hdd auto defaults                   0 0
index a581ee9..e5a10a6 100644 (file)
@@ -12,6 +12,8 @@ SRC_URI = "http://sources.dreamboxupdate.com/download/7020/bootlogo_${MACHINE}.e
        http://sources.dreamboxupdate.com/download/7020/bootlogo_wait_${MACHINE}.mvi \
        http://sources.dreamboxupdate.com/download/7020/backdrop_${MACHINE}.mvi"
 
+SRC_URI_append_dm8000 = " http://sources.dreamboxupdate.com/download/7020/bootlogo_${MACHINE}.jpg"
+
 SRC_URI_append_dm800 = " http://sources.dreamboxupdate.com/download/7020/bootlogo_${MACHINE}.jpg \
        http://sources.dreamboxupdate.com/download/7020/switchoff_${MACHINE}.mvi"
 
@@ -31,5 +33,9 @@ do_install_append_dm800() {
        install -m 0755 ${S}/switchoff_${MACHINE}.mvi ${D}/usr/share/switchoff.mvi
 }
 
+do_install_append_dm8000() {
+       install -m 0755 ${S}/bootlogo_${MACHINE}.jpg ${D}/boot/bootlogo.jpg
+}
+
 PACKAGE_ARCH := "${MACHINE_ARCH}"
-FILES_${PN} = "/boot /usr/share"
\ No newline at end of file
+FILES_${PN} = "/boot /usr/share"
index dac030d..0856f3d 100644 (file)
@@ -24,6 +24,9 @@ PV_dm500plus = "${KV}-20071026"
 KV_dm800 = "2.6.12-5.1-brcmstb-dm800"
 PV_dm800 = "${KV}-20080521"
 
+KV_dm8000 = "2.6.12-5.1-brcmstb-dm8000"
+PV_dm8000 = "${KV}-20080712"
+
 RDEPENDS = "kernel (${KV})"
 PR = "r0"
 
@@ -78,5 +81,13 @@ do_install_dm800() {
        install -d ${D}${sbindir}
 }
 
+do_install_dm8000() {
+       install -d ${D}/lib/modules/${KV}/extra
+       for f in *.ko LICENSE; do
+               install -m 0644 ${WORKDIR}/$f ${D}/lib/modules/${KV}/extra/$f;
+       done
+       install -d ${D}${sbindir}
+}
+
 PACKAGE_ARCH := "${MACHINE_ARCH}"
 FILES_${PN} = "/"
index 6cbfb11..6438110 100644 (file)
@@ -83,3 +83,13 @@ do_install_dm800() {
                install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
        done;
 }
+
+do_install_dm8000() {
+       install -d ${STAGING_INCDIR}/ci
+       install -d ${STAGING_INCDIR}/dbox
+       install -d ${STAGING_INCDIR}/dreambox
+       install -d ${STAGING_INCDIR}/tuxbox
+       for f in ${INPUT_FILES}; do
+               install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
+       done;
+}
index ac91fd7..4d22dad 100644 (file)
@@ -6,7 +6,7 @@ PV_dm7020 = "35"
 PV_dm7025 = "61"
 PV_dm600pvr = "53"
 PV_dm500plus = "53"
-PV_dm8000 = "53"
+PV_dm8000 = "62"
 PV_dm800 = "61"
 PR = "r0"
 
@@ -19,8 +19,13 @@ do_stage() {
        gzip -c ${S}/secondstage-${MACHINE}-${PV}.bin > ${STAGING_LIBDIR}/dreambox-secondstage/main.bin.gz
 }
 
-# the dm800 secondstage is already compressed (and encrypted)
+# the dm{800,8000} secondstage is already compressed (and encrypted)
 do_stage_dm800() {
        install -d ${STAGING_LIBDIR}/dreambox-secondstage
        cp ${S}/secondstage-${MACHINE}-${PV}.bin ${STAGING_LIBDIR}/dreambox-secondstage/main.bin.gz
 }
+
+do_stage_dm8000() {
+       install -d ${STAGING_LIBDIR}/dreambox-secondstage
+       cp ${S}/secondstage-${MACHINE}-${PV}.bin ${STAGING_LIBDIR}/dreambox-secondstage/main.bin.gz
+}
index 510bbb5..8dcf26e 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "Additional plugins for Enigma2"
 MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
 
-SRCDATE = "20080417"
+SRCDATE = "20080712"
 
 # if you want experimental, use:
 #REL_MAJOR="2"
@@ -13,6 +13,9 @@ REL_MAJOR="2"
 REL_MINOR="4"
 TAG = ";tag=${PN}_rel${REL_MAJOR}${REL_MINOR}"
 
+REL_MINOR_dm8000="5"
+TAG_dm8000=""
+
 PV = "${REL_MAJOR}.${REL_MINOR}cvs${SRCDATE}"
 
 SRC_URI = "cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/enigma2-plugins;module=enigma2-plugins;method=pserver${TAG};date=${SRCDATE}"
index 208090a..918219b 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "Skins for Enigma2"
 MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
 
-SRCDATE = "20080417"
+SRCDATE = "20080712"
 
 # if you want experimental, use:
 #REL_MAJOR="2"
@@ -13,6 +13,9 @@ REL_MAJOR="2"
 REL_MINOR="4"
 TAG = ";tag=${PN}_rel${REL_MAJOR}${REL_MINOR}"
 
+REL_MINOR_dm8000="5"
+TAG_dm8000=""
+
 PV = "${REL_MAJOR}.${REL_MINOR}cvs${SRCDATE}"
 
 SRC_URI = "cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/enigma2-skins;module=enigma2-skins;method=pserver${TAG};date=${SRCDATE}"
index f00372a..c2ef448 100644 (file)
@@ -11,7 +11,7 @@ RDEPENDS = "python-codecs python-core python-lang python-re python-threading \
 
 RDEPENDS_append_dm7020 = " gst-plugin-ossaudio"
 RDEPENDS_append_dm7025 = " gst-plugin-alsa alsa-conf"
-RDEPENDS_append_dm8000 = " gst-plugin-alsa alsa-conf"
+RDEPENDS_append_dm8000 = " gst-plugin-alsa alsa-conf gst-plugin-avi gst-plugin-matroska"
 RDEPENDS_append_dm800 = " gst-plugin-alsa alsa-conf"
 
 # 'forward depends' - no two providers can have the same PACKAGES_DYNAMIC, however both
@@ -33,8 +33,8 @@ DESCRIPTION_append_enigma2-plugin-systemplugins-videomode = "selects advanced vi
 RDEPENDS_enigma2-plugin-extensions-dvdplayer = "libdreamdvd0"
 
 PN = "enigma2"
-PR = "r1"
-SRCDATE = "20080522"
+PR = "r0"
+SRCDATE = "20080713"
 
 # if you want experimental, use:
 #REL_MAJOR="2"
@@ -46,6 +46,9 @@ REL_MAJOR="2"
 REL_MINOR="4"
 TAG = ";tag=enigma2_rel${REL_MAJOR}${REL_MINOR}"
 
+REL_MINOR_dm8000="5"
+TAG_dm8000=""
+
 PV = "${REL_MAJOR}.${REL_MINOR}cvs${SRCDATE}"
 
 SRC_URI = "cvs://anonymous@dreamboxupdate.com/cvs;module=enigma2;method=pserver${TAG};date=${SRCDATE} \
@@ -53,6 +56,8 @@ SRC_URI = "cvs://anonymous@dreamboxupdate.com/cvs;module=enigma2;method=pserver$
 
 SRC_URI_append_dm7025 = " file://enigma2-disable-iframesearch.patch;patch=1;pnum=1"
 
+SRC_URI_append_dm8000 = " file://revert_tuner_config.patch;patch=0;pnum=0"
+
 S = "${WORKDIR}/enigma2"
 
 FILES_${PN} += "${datadir}/fonts"
diff --git a/packages/enigma2/enigma2/revert_tuner_config.patch b/packages/enigma2/enigma2/revert_tuner_config.patch
new file mode 100644 (file)
index 0000000..d3a4466
--- /dev/null
@@ -0,0 +1,319 @@
+diff -u -r1.144 -r1.140
+--- lib/python/Components/NimManager.py        2 Jul 2008 11:12:11 -0000       1.144
++++ lib/python/Components/NimManager.py        5 Jun 2008 09:19:01 -0000       1.140
+@@ -121,13 +121,13 @@
+                               # save what nim we link to/are equal to/satposdepends to.
+                               # this is stored in the *value* (not index!) of the config list
+                               if nim.configMode.value == "equal":
+-                                      self.equal[int(nim.connectedTo.value)]=x
++                                      self.equal[int(nim.equalTo.value)]=x
+                               elif nim.configMode.value == "loopthrough":
+-                                      self.linkNIMs(sec, x, int(nim.connectedTo.value))
+-                                      self.linked[int(nim.connectedTo.value)]=x
++                                      self.linkNIMs(sec, x, int(nim.linkedTo.value))
++                                      self.linked[int(nim.linkedTo.value)]=x
+                               elif nim.configMode.value == "satposdepends":
+-                                      self.setSatposDepends(sec, x, int(nim.connectedTo.value))
+-                                      self.satposdepends[int(nim.connectedTo.value)]=x
++                                      self.setSatposDepends(sec, x, int(nim.satposDependsTo.value))
++                                      self.satposdepends[int(nim.satposDependsTo.value)]=x
+               for slot in nim_slots:
+                       x = slot.slot
+@@ -357,7 +357,7 @@
+               self.update()
+ class NIM(object):
+-      def __init__(self, slot, type, description, has_outputs = True, internally_connectable = None):
++      def __init__(self, slot, type, description):
+               self.slot = slot
+               if type not in ["DVB-S", "DVB-C", "DVB-T", "DVB-S2", None]:
+@@ -366,8 +366,6 @@
+               self.type = type
+               self.description = description
+-              self.has_outputs = has_outputs
+-              self.internally_connectable = internally_connectable
+       def isCompatible(self, what):
+               compatible = {
+@@ -378,15 +376,6 @@
+                               "DVB-S2": ["DVB-S", "DVB-S2", None]
+                       }
+               return what in compatible[self.type]
+-      
+-      def connectableTo(self):
+-              connectable = {
+-                              "DVB-S": ["DVB-S", "DVB-S2"],
+-                              "DVB-C": ["DVB-C"],
+-                              "DVB-T": ["DVB-T"],
+-                              "DVB-S2": ["DVB-S", "DVB-S2"]
+-                      }
+-              return connectable[self.type]
+       def getSlotName(self):
+               # get a friendly description for a slot name.
+@@ -398,12 +387,6 @@
+       def getSlotID(self):
+               return chr(ord('A') + self.slot)
+-      
+-      def hasOutputs(self):
+-              return self.has_outputs
+-      
+-      def internallyConnectableTo(self):
+-              return self.internally_connectable
+       slot_id = property(getSlotID)
+@@ -536,12 +519,6 @@
+                               entries[current_slot]["type"] = str(line.strip()[6:])
+                       elif line.strip().startswith("Name:"):
+                               entries[current_slot]["name"] = str(line.strip()[6:])
+-                      elif line.strip().startswith("Has_Outputs:"):
+-                              input = str(line.strip()[len("Has_Outputs:") + 1:])
+-                              entries[current_slot]["has_outputs"] = (input == "yes")
+-                      elif line.strip().startswith("Internally_Connectable:"):
+-                              input = int(line.strip()[len("Internally_Connectable:") + 1:])
+-                              entries[current_slot]["internally_connectable"] = input 
+                       elif line.strip().startswith("empty"):
+                               entries[current_slot]["type"] = None
+                               entries[current_slot]["name"] = _("N/A")
+@@ -551,23 +528,13 @@
+                       if not (entry.has_key("name") and entry.has_key("type")):
+                               entry["name"] =  _("N/A")
+                               entry["type"] = None
+-                      if not (entry.has_key("has_outputs")):
+-                              entry["has_outputs"] = True
+-                      if not (entry.has_key("internally_connectable")):
+-                              entry["internally_connectable"] = None
+-                      self.nim_slots.append(NIM(slot = id, description = entry["name"], type = entry["type"], has_outputs = entry["has_outputs"], internally_connectable = entry["internally_connectable"]))
++                      self.nim_slots.append(NIM(slot = id, description = entry["name"], type = entry["type"]))
+       def hasNimType(self, chktype):
+               for slot in self.nim_slots:
+                       if slot.isCompatible(chktype):
+                               return True
+               return False
+-      
+-      def getNimType(self, slotid):
+-              return self.nim_slots[slotid].type
+-      
+-      def getNimDescription(self, slotid):
+-              return self.nim_slots[slotid].friendly_full_description
+       def getNimListOfType(self, type, exception = -1):
+               # returns a list of indexes for NIMs compatible to the given type, except for 'exception'
+@@ -591,59 +558,6 @@
+               for slot in self.nim_slots:
+                       list.append(slot.friendly_full_description)
+               return list
+-      
+-      def getSlotCount(self):
+-              return len(self.nim_slots)
+-      
+-      def hasOutputs(self, slotid):
+-              return self.nim_slots[slotid].hasOutputs()
+-      
+-      def canConnectTo(self, slotid):
+-              slots = []
+-              if self.nim_slots[slotid].internallyConnectableTo() is not None:
+-                      slots.append(self.nim_slots[slotid].internallyConnectableTo())
+-              for type in self.nim_slots[slotid].connectableTo(): 
+-                      for slot in self.getNimListOfType(type, exception = slotid):
+-                              # FIXME we restrict loopthrough from dvb-s2 to dvb-s, because the c++ part can't handle it
+-                              if not (type == "DVB-S" and self.getNimType(slot)):
+-                                      if self.hasOutputs(slot):
+-                                              slots.append(slot)
+-              slots.sort()
+-              
+-              return slots
+-      
+-      def canEqualTo(self, slotid):
+-              type = self.getNimType(slotid)
+-              if self.getNimConfig(slotid) == "DVB-S2":
+-                      type = "DVB-S"
+-              nimList = self.getNimListOfType(type, slotid)
+-              for nim in nimList[:]:
+-                      mode = self.getNimConfig(nim)
+-                      if mode.configMode.value == "loopthrough" or mode.configMode.value == "satposdepends":
+-                              nimList.remove(nim)
+-              return nimList
+-      
+-      def canDependOn(self, slotid):
+-              type = self.getNimType(slotid)
+-              if self.getNimConfig(slotid) == "DVB-S2":
+-                      type = "DVB-S"
+-              nimList = self.getNimListOfType(type, slotid)
+-              positionerList = []
+-              for nim in nimList[:]:
+-                      mode = self.getNimConfig(nim)
+-                      if mode.configMode.value == "simple" and mode.diseqcMode.value == "positioner":
+-                              alreadyConnected = False
+-                              for testnim in nimList:
+-                                      testmode = self.getNimConfig(testnim)
+-                                      if testmode.configMode.value == "satposdepends" and int(testmode.connectedTo.value) == int(nim):
+-                                              alreadyConnected = True
+-                                              break
+-                              if not alreadyConnected:
+-                                      positionerList.append(nim)
+-              return positionerList
+-      
+-      def getNimConfig(self, slotid):
+-              return config.Nims[slotid]
+       def getSatList(self):
+               return self.satList
+@@ -778,16 +692,27 @@
+               x = slot.slot
+               nim = config.Nims[x]
+               
++              # HACK: currently, we can only looptrough to socket A
++
+               if slot.isCompatible("DVB-S"):
+-                      choices = { "nothing": _("nothing connected"),
+-                                      "simple": _("simple"),
+-                                      "advanced": _("advanced")}
+-                      if len(nimmgr.getNimListOfType(slot.type, exception = x)) > 0:
+-                              choices["equal"] = _("equal to")
+-                              choices["satposdepends"] = _("second cable of motorized LNB")
+-                      if len(nimmgr.canConnectTo(x)) > 0:
+-                              choices["loopthrough"] = _("loopthrough to")
+-                      nim.configMode = ConfigSelection(choices = choices, default = "simple")
++                      if slot.slot == 0:
++                              nim.configMode = ConfigSelection(
++                                      choices = {
++                                              "simple": _("simple"),
++                                              "advanced": _("advanced"),
++                                              "nothing": _("nothing connected"),
++                                              },
++                                      default = "simple")
++                      else:
++                              nim.configMode = ConfigSelection(
++                                      choices = {
++                                              "equal": _("equal to Socket A"),
++                                              "loopthrough": _("loopthrough to socket A"),
++                                              "nothing": _("nothing connected"),
++                                              "satposdepends": _("second cable of motorized LNB"),
++                                              "simple": _("simple"),
++                                              "advanced": _("advanced")},
++                                      default = "loopthrough")
+                       #important - check if just the 2nd one is LT only and the first one is DVB-S
+                       # CHECKME: is this logic correct for >2 slots?
+@@ -814,11 +739,6 @@
+                                       ("positioner", _("Positioner"))],
+                               default = "diseqc_a_b")
+-                      choices = []
+-                      for id in nimmgr.getNimListOfType("DVB-S"):
+-                              if id != x:
+-                                      choices.append((str(id), str(chr(65 + id))))
+-                      nim.connectedTo = ConfigSelection(choices = choices)
+                       nim.diseqcA = getConfigSatlist(192, nimmgr.satList)
+                       nim.diseqcB = getConfigSatlist(130, nimmgr.satList)
+                       nim.diseqcC = ConfigSatlist(list = nimmgr.satList)
+@@ -839,6 +759,19 @@
+                       nim.fastTurningBegin = ConfigDateTime(default = mktime(btime.timetuple()), formatstring = _("%H:%M"), increment = 900)
+                       etime = datetime(1970, 1, 1, 19, 0);
+                       nim.fastTurningEnd = ConfigDateTime(default = mktime(etime.timetuple()), formatstring = _("%H:%M"), increment = 900)
++                      # get other frontends of the same type
++
++                      satNimList = nimmgr.getNimListOfType("DVB-S", slot.slot)
++                      satNimListNames = {}
++
++                      for x in satNimList:
++                              n = nimmgr.nim_slots[x]
++                              satNimListNames["%d" % n.slot] = n.friendly_full_description
++
++                      if len(satNimListNames):
++                              nim.equalTo = ConfigSelection(choices = satNimListNames)
++                              nim.linkedTo = ConfigSelection(choices = satNimListNames)
++                              nim.satposDependsTo = ConfigSelection(choices = satNimListNames)
+                       # advanced config:
+                       nim.advanced = ConfigSubsection()
+diff -u -r1.72 -r1.66
+--- lib/python/Screens/Satconfig.py    11 Jul 2008 12:23:16 -0000      1.72
++++ lib/python/Screens/Satconfig.py    5 Jun 2008 09:19:02 -0000       1.66
+@@ -5,7 +5,7 @@
+ from Components.ConfigList import ConfigListScreen
+ from Components.MenuList import MenuList
+ from Components.NimManager import nimmanager
+-from Components.config import getConfigListEntry, config, ConfigNothing, ConfigSelection, updateConfigElement
++from Components.config import getConfigListEntry, config, ConfigNothing
+ from Screens.MessageBox import MessageBox
+ from time import mktime, localtime
+@@ -46,22 +46,7 @@
+                       if nim.powerMeasurement.value:
+                               nim.powerMeasurement.value = False
+                               nim.powerMeasurement.save()
+-              
+-      def createConfigMode(self):
+-              choices = { "nothing": _("nothing connected"),
+-                                      "simple": _("simple"),
+-                                      "advanced": _("advanced")}
+-              #if len(nimmanager.getNimListOfType(nimmanager.getNimType(self.slotid), exception = x)) > 0:
+-              #       choices["equal"] = _("equal to")
+-              #       choices["satposdepends"] = _("second cable of motorized LNB")
+-              if len(nimmanager.canEqualTo(self.slotid)) > 0:
+-                      choices["equal"] = _("equal to")
+-              if len(nimmanager.canDependOn(self.slotid)) > 0:
+-                      choices["satposdepends"] = _("second cable of motorized LNB")
+-              if len(nimmanager.canConnectTo(self.slotid)) > 0:
+-                      choices["loopthrough"] = _("loopthrough to")
+-              self.nimConfig.configMode = updateConfigElement(self.nimConfig.configMode, ConfigSelection(choices = choices, default = "simple"))
+-                                      
++
+       def createSetup(self):
+               print "Creating setup"
+               self.list = [ ]
+@@ -92,31 +77,7 @@
+                                       self.createSimpleSetup(self.list, self.nimConfig.diseqcMode.value)
+                               if self.nimConfig.diseqcMode.value == "positioner":
+                                       self.createPositionerSetup(self.list)
+-                      elif self.nimConfig.configMode.value == "equal":
+-                              choices = []
+-                              nimlist = nimmanager.canEqualTo(self.nim.slot)
+-                              for id in nimlist:
+-                                      #choices.append((str(id), str(chr(65 + id))))
+-                                      choices.append((str(id), nimmanager.getNimDescription(id)))
+-                              self.nimConfig.connectedTo = updateConfigElement(self.nimConfig.connectedTo, ConfigSelection(choices = choices))
+-                              self.list.append(getConfigListEntry(_("Tuner"), self.nimConfig.connectedTo))
+-                      elif self.nimConfig.configMode.value == "satposdepends":
+-                              choices = []
+-                              nimlist = nimmanager.canDependOn(self.nim.slot)
+-                              for id in nimlist:
+-                                      #choices.append((str(id), str(chr(65 + id))))
+-                                      choices.append((str(id), nimmanager.getNimDescription(id)))
+-                              self.nimConfig.connectedTo = updateConfigElement(self.nimConfig.connectedTo, ConfigSelection(choices = choices))
+-                              self.list.append(getConfigListEntry(_("Tuner"), self.nimConfig.connectedTo))
+-                      elif self.nimConfig.configMode.value == "loopthrough":
+-                              choices = []
+-                              print "connectable to:", nimmanager.canConnectTo(self.slotid)
+-                              connectable = nimmanager.canConnectTo(self.slotid) 
+-                              for id in connectable:
+-                                      choices.append((str(id), nimmanager.getNimDescription(id)))
+-                              self.nimConfig.connectedTo = updateConfigElement(self.nimConfig.connectedTo, ConfigSelection(choices = choices))
+-                              self.list.append(getConfigListEntry(_("Connected to"), self.nimConfig.connectedTo))
+-                      elif self.nimConfig.configMode.value == "nothing":
++                      elif self.nimConfig.configMode.value in ["loopthrough", "satposdepends", "nothing", "equal"]:
+                               pass
+                       elif self.nimConfig.configMode.value == "advanced": # advanced
+                               # SATs
+@@ -327,13 +288,9 @@
+                       "cancel": self.keyCancel,
+               }, -2)
+-              self.slotid = slotid
+               self.nim = nimmanager.nim_slots[slotid]
+               self.nimConfig = self.nim.config
+-              self.createConfigMode()
+               self.createSetup()
+-              # safeAll is needed, so that keyCancel works properly
+-              self.saveAll()
+       def keyLeft(self):
+               ConfigListScreen.keyLeft(self)
index 6e66ce0..d7eaab9 100644 (file)
@@ -92,6 +92,11 @@ MODEM_SUPPORT_R = "kernel-module-crc-ccitt kernel-module-ppp-async \
 WLAN_SUPPORT = "wireless-tools wlan-rt73 zd1211b wpa-supplicant"
 WLAN_SUPPORT_R = "enigma2-plugin-systemplugins-wirelesslan"
 
+WLAN_MADWIFI = "madwifi-ng"
+WLAN_MADWIFI_R = "madwifi-ng-modules madwifi-ng-tools"
+
+DVDPLAYER_SUPPORT_R = "enigma2-plugin-extensions-dvdplayer"
+
 # now machine specific:
 OPENDREAMBOX_COMMON_MACHINE_dm600pvr += "${OPENDREAMBOX_V2_ONLY} ${OPENDREAMBOX_TUXBOX} ${MODEM_SUPPORT}"
 OPENDREAMBOX_COMMON_MACHINE_R_dm600pvr += "${OPENDREAMBOX_TUXBOX_R} ${MODEM_SUPPORT_R} dreambox-blindscan-utils"
@@ -113,6 +118,10 @@ OPENDREAMBOX_COMMON_MACHINE_dm800 += "${OPENDREAMBOX_V3_ONLY} ${OPENDREAMBOX_EXP
 OPENDREAMBOX_COMMON_MACHINE_R_dm800 += "${OPENDREAMBOX_EXPERIMENTAL_R} ${WLAN_SUPPORT_R} enigma2-plugin-systemplugins-videomode"
 OPENDREAMBOX_COMMON_MACHINE_D_dm800 += ""
 
+OPENDREAMBOX_COMMON_MACHINE_dm8000 += "${OPENDREAMBOX_V3_ONLY} ${OPENDREAMBOX_EXPERIMENTAL} ${WLAN_SUPPORT} ${WLAN_MADWIFI}"
+OPENDREAMBOX_COMMON_MACHINE_R_dm8000 += "${OPENDREAMBOX_EXPERIMENTAL_R} ${WLAN_SUPPORT_R} ${DVDPLAYER_SUPPORT_R} ${WLAN_MADWIFI_R} enigma2-plugin-systemplugins-videomode"
+OPENDREAMBOX_COMMON_MACHINE_D_dm8000 += ""
+
 # collect the stuff into OPENDREAMBOX_COMMON
 OPENDREAMBOX_COMMON += " ${OPENDREAMBOX_COMMON_MACHINE}"
 OPENDREAMBOX_COMMON_R += " ${OPENDREAMBOX_COMMON_MACHINE_R}"
diff --git a/packages/initscripts/initscripts-1.0/dm8000/.mtn2git_empty b/packages/initscripts/initscripts-1.0/dm8000/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/initscripts/initscripts-1.0/dm8000/bootup b/packages/initscripts/initscripts-1.0/dm8000/bootup
new file mode 100644 (file)
index 0000000..00b847c
--- /dev/null
@@ -0,0 +1,90 @@
+modprobe lcd
+echo 10 > /proc/progress
+[ -e /dev/dbox/oled0 ] && ln -s /dev/dbox/oled0 /dev/dbox/lcd0
+
+mount -t proc proc /proc
+echo 11 > /proc/progress
+
+mount -t sysfs sysfs /sys
+echo 12 > /proc/progress
+
+depmod -Ae
+echo 13 > /proc/progress
+
+swapon -a
+echo 14 > /proc/progress
+
+for mod in isofs cifs nfsd usb-storage sd autofs4 vfat ide-cd; do
+       modprobe $mod 2> /dev/null ;
+done
+
+mount -at nonfs,nosmbfs,noncpfs 2>/dev/null
+echo 15 > /proc/progress
+
+tar xzf /etc/var.tar.gz -C /
+echo 16 > /proc/progress
+
+# sleep after 10min
+for i in 0 1; do
+       hdparm -S 120 /dev/ide/host0/bus$i/target0/lun0/disc || /bin/true;
+done
+
+echo 17 > /proc/progress
+
+# set UDMA66
+for i in 0 1; do
+       hdparm -X66 /dev/ide/host0/bus$i/target0/lun0/disc || /bin/true;
+done
+
+# accustic management
+for i in 0 1; do
+       hdparm -M 128 /dev/ide/host0/bus$i/target0/lun0/disc || /bin/true;
+done
+
+echo 18 > /proc/progress
+for i in dreambox_rc2 fp info; do
+       modprobe $i;
+done
+
+echo 19 > /proc/progress
+
+cat /etc/videomode > /proc/stb/video/videomode
+
+echo 20 > /proc/progress
+
+for mod in rt73 zd1211b; do
+       modprobe $mod 2> /dev/null ;
+done
+
+echo "loading madwifi modules"
+for x in wlan ath_rate; do
+       for mod in `ls /lib/modules/$(uname -r)/net | grep $x | cut -d . -f 0`; do 
+               modprobe $mod 2> /dev/null ;
+       done
+done
+modprobe ath_pci 2> /dev/null
+
+echo 21 > /proc/progress
+
+automount --ghost --timeout=1 /autofs file /etc/auto.hotplug
+
+[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
+
+hostname -F /etc/hostname
+
+echo 22 > /proc/progress
+/usr/bin/wdog /usr/bin/dccamd -
+
+echo 23 > /proc/progress
+ifup -a
+
+echo 24 > /proc/progress
+mount -at nfs,smbfs,cpfs 2>/dev/null
+
+[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
+
+echo 25 > /proc/progress
+
+ldconfig
+
+ipkg-cl configure
diff --git a/packages/ipkg/ipkg-collateral/dm8000/.mtn2git_empty b/packages/ipkg/ipkg-collateral/dm8000/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/ipkg/ipkg-collateral/dm8000/dest b/packages/ipkg/ipkg-collateral/dm8000/dest
new file mode 100644 (file)
index 0000000..e041eb7
--- /dev/null
@@ -0,0 +1,5 @@
+dest root /
+dest cf /media/cf/
+dest ram /media/ram/
+dest hdd /media/hdd/
+dest usb /media/usb/
diff --git a/packages/linux/linux-dm8000.bb b/packages/linux/linux-dm8000.bb
new file mode 100644 (file)
index 0000000..17ef604
--- /dev/null
@@ -0,0 +1,78 @@
+DESCRIPTION = "Linux kernel for Dreambox DM8000"
+LICENSE = "GPL"
+PN = "linux-dm8000"
+KV = "2.6.12"
+PV = "2.6.12"
+PR = "r2"
+
+# note, the rX in the filename is *NOT* the packet revision - it's the patch revision.
+SRC_URI += "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${KV}.tar.bz2 \
+       file://dm8000_defconfig \
+       http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-brcm-5.1.patch.bz2;patch=1;pnum=1 \
+       http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update_dvbapi-r1.patch.bz2;patch=1;pnum=1 \
+       http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-multipid-r4.patch.bz2;patch=1;pnum=1 \
+       http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-core-fix-several-locking-problems.patch.bz2;patch=1;pnum=1 \
+       http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvbapi-pilot-rolloff-extension-r0.patch.bz2;patch=1;pnum=1 \
+       http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update-wireless.patch.bz2;patch=1;pnum=1 \
+       http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-add-ioprio.patch.bz2;patch=1;pnum=1 \
+       file://linux-2.6.12-dream-misc.patch;patch=1;pnum=1 \
+       file://linux-2.6.12-dm8000-nand.patch;patch=1;pnum=1 \
+       file://linux-2.6.12-dream-temp.patch;patch=1;pnum=1 \
+       file://linux-2.6.12-brcm-mtd-blkdevfs-fix.diff;patch=1;pnum=1 \
+       file://linux-2.6.12-set-custom-extraversion.patch;patch=1;pnum=1 \
+       file://linux-2.6.12-fixup-prom-args.patch;patch=1;pnum=1 \
+       file://linux-2.6.12-7400AB-enable-llsc.patch;patch=1;pnum=1 \
+       file://linuxmips-2.6.12-fix-fadvise.patch;patch=1;pnum=1 \
+       file://linuxmips-2.6.12-fix-futex.patch;patch=1;pnum=1 \
+       file://linuxmips-2.6.12-gcc4-compile-fix.patch;patch=1;pnum=1 \
+       file://linuxmips-2.6.12-gdb-fix.patch;patch=1;pnum=1 \
+       file://linux-2.6.12-brcm-fix-minipci.patch;patch=1;pnum=1"
+
+S = "${WORKDIR}/stblinux-2.6.12"
+
+inherit kernel
+
+FILES_kernel-image = "/boot/vmlinux.gz /boot/autoexec.bat"
+
+export OS = "Linux"
+KERNEL_IMAGETYPE = "vmlinux"
+KERNEL_OUTPUT = "vmlinux"
+KERNEL_OBJECT_SUFFIX = "ko"
+
+do_munge() {
+       mv ${WORKDIR}/linux-2.6.12 ${WORKDIR}/stblinux-2.6.12
+       if [ -d ${S}/drivers/sound ]; then
+               rm -R ${S}/drivers/sound;
+       fi;
+}
+
+addtask munge before do_patch after do_unpack
+
+do_configure_prepend() {
+       oe_machinstall -m 0644 ${WORKDIR}/dm8000_defconfig ${S}/.config
+       oe_runmake oldconfig
+}
+
+do_install_append () {
+       install -d ${D}/boot
+       install -m 0755 vmlinux ${D}/boot/vmlinux
+       echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
+       gzip ${D}/boot/vmlinux
+       echo "/flash/vmlinux.gz" >> ${D}/boot/autoexec.bat
+}
+
+pkg_preinst_kernel-image () {
+       [ -d /proc/stb ] && mount -o rw,remount /boot
+}
+
+pkg_postinst_kernel-image () {
+       [ -d /proc/stb ] && mount -o ro,remount /boot
+}
+
+pkg_prerm_kernel-image () {
+       [ -d /proc/stb ] && mount -o rw,remount /boot
+}
+
+pkg_postrm_kernel-image () {
+       [ -d /proc/stb ] && mount -o ro,remount /boot
+}
diff --git a/packages/linux/linux-dm8000/.mtn2git_empty b/packages/linux/linux-dm8000/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/linux/linux-dm8000/dm8000_defconfig b/packages/linux/linux-dm8000/dm8000_defconfig
new file mode 100644 (file)
index 0000000..f8ee5d3
--- /dev/null
@@ -0,0 +1,1749 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.12-5.1-brcmstb-dm8000
+# Wed Jun 25 11:05:01 2008
+#
+CONFIG_MIPS=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+# CONFIG_IKCONFIG is not set
+CONFIG_EMBEDDED=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_OBSOLETE_MODPARM=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_MIPS_BCM3560A0 is not set
+# CONFIG_MIPS_BCM3560B0 is not set
+# CONFIG_MIPS_BCM3563 is not set
+# CONFIG_MIPS_BCM3563C0 is not set
+# CONFIG_MIPS_BCM7038B0 is not set
+# CONFIG_MIPS_BCM7038CX is not set
+# CONFIG_MIPS_BCM97398 is not set
+# CONFIG_MIPS_BCM7110 is not set
+# CONFIG_MIPS_BCM7111 is not set
+# CONFIG_MIPS_BCM7112 is not set
+# CONFIG_MIPS_BCM7115 is not set
+# CONFIG_MIPS_BCM7118AX is not set
+# CONFIG_MIPS_BCM7118A0_NAND is not set
+# CONFIG_MIPS_BCM7312 is not set
+# CONFIG_MIPS_BCM7315 is not set
+# CONFIG_MIPS_BCM7317 is not set
+# CONFIG_MIPS_BCM7318 is not set
+# CONFIG_MIPS_BCM7319 is not set
+# CONFIG_MIPS_BCM7320 is not set
+# CONFIG_MIPS_BCM7328 is not set
+# CONFIG_MIPS_BCM7329 is not set
+# CONFIG_MIPS_BCM97456 is not set
+# CONFIG_MIPS_BCM97456BX is not set
+# CONFIG_MIPS_BCM97456BX_NAND is not set
+# CONFIG_MIPS_BCM7400AX is not set
+CONFIG_MIPS_BCM7400BX=y
+# CONFIG_MIPS_BCM7400BX_NAND is not set
+# CONFIG_MIPS_BCM7400AX_NAND is not set
+# CONFIG_MIPS_BCM7405AX is not set
+# CONFIG_MIPS_BCM97455 is not set
+# CONFIG_MIPS_BCM7401AX is not set
+# CONFIG_MIPS_BCM7401BX is not set
+# CONFIG_MIPS_BCM7401BX_NAND is not set
+# CONFIG_MIPS_BCM97455B0 is not set
+# CONFIG_MIPS_BCM7401CX is not set
+# CONFIG_MIPS_BCM7401CX_NAND is not set
+# CONFIG_MIPS_BCM97455CX is not set
+# CONFIG_MIPS_BCM97455CX_NAND is not set
+# CONFIG_MIPS_BCM97458AX is not set
+# CONFIG_MIPS_BCM97458AX_NAND is not set
+# CONFIG_MIPS_BCM7402S is not set
+# CONFIG_MIPS_BCM7402B0S is not set
+# CONFIG_MIPS_BCM7402A0 is not set
+# CONFIG_MIPS_BCM7402CX is not set
+# CONFIG_MIPS_BCM7402CX_NAND is not set
+# CONFIG_MIPS_BCM7403AX is not set
+# CONFIG_MIPS_BCM7451AX_SMB is not set
+# CONFIG_MIPS_BCM7403AX_NAND is not set
+# CONFIG_MIPS_BCM7452AX is not set
+# CONFIG_MIPS_BCM7452AX_NAND is not set
+# CONFIG_MIPS_BCM7440AX is not set
+# CONFIG_MIPS_BCM7440BX is not set
+# CONFIG_MIPS_BCM7440BX_NAND is not set
+# CONFIG_MIPS_BCM93730 is not set
+# CONFIG_MIPS_MTX1 is not set
+# CONFIG_MIPS_BOSPORUS is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+# CONFIG_MIPS_PB1550 is not set
+# CONFIG_MIPS_PB1200 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_DB1550 is not set
+# CONFIG_MIPS_DB1200 is not set
+# CONFIG_MIPS_MIRAGE is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_MACH_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MACH_JAZZ is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_JAGUAR_ATX is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
+# CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_MIPS_XXS1500 is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_MACH_VR41XX is not set
+# CONFIG_PMC_YOSEMITE is not set
+# CONFIG_QEMU is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SWARM is not set
+# CONFIG_SIBYTE_SENTOSA is not set
+# CONFIG_SIBYTE_RHONE is not set
+# CONFIG_SIBYTE_CARMEL is not set
+# CONFIG_SIBYTE_PTSWARM is not set
+# CONFIG_SIBYTE_LITTLESUR is not set
+# CONFIG_SIBYTE_CRHINE is not set
+# CONFIG_SIBYTE_CRHONE is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_TOSHIBA_RBTX4927 is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_HAVE_DEC_LOCK=y
+CONFIG_DMA_NONCOHERENT=y
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_SYS_SUPPORTS_CPUFREQ=y
+CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
+CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
+CONFIG_IRQ_CPU=y
+CONFIG_MIPS_BRCM97XXX=y
+CONFIG_MIPS_BCM7400B0=y
+CONFIG_MIPS_BCM7400=y
+CONFIG_MIPS_BRCM=y
+# CONFIG_BRCM_7XXX_SERIAL is not set
+# CONFIG_LONG_LONG_SUPPORT is not set
+CONFIG_SERIAL=y
+CONFIG_MIPS_L1_CACHE_SHIFT=6
+
+#
+# Power management
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_BRCM=y
+
+#
+# CPU selection
+#
+# CONFIG_CPU_MIPS32_R2 is not set
+CONFIG_CPU_MIPS32_R1=y
+# CONFIG_CPU_MIPS64_R1 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+# CONFIG_CPU_VR41XX is not set
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_RM9000 is not set
+# CONFIG_CPU_SB1 is not set
+CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
+CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
+
+#
+# Kernel type
+#
+CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
+# CONFIG_64BIT is not set
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_8KB is not set
+# CONFIG_PAGE_SIZE_16KB is not set
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_CPU_HAS_PREFETCH=y
+# CONFIG_64BIT_PHYS_ADDR is not set
+# CONFIG_CPU_ADVANCED is not set
+CONFIG_CPU_HAS_LLSC=y
+CONFIG_CPU_HAS_SYNC=y
+# CONFIG_SMP is not set
+# CONFIG_PREEMPT is not set
+
+#
+# Bus options (PCI, PCMCIA, EISA, ISA, TC)
+#
+CONFIG_HW_HAS_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+# CONFIG_PCI_NAMES is not set
+CONFIG_MMU=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_TRAD_SIGNALS=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER=y
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLOCK_ROMBLOCK is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+# CONFIG_MTD_CFI_INTELEXT is not set
+CONFIG_MTD_CFI_AMDSTD=y
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_BCM7XXX=y
+# CONFIG_MTD_MULTI_PHYSMAP is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_RAMTD is not set
+# CONFIG_MTD_BLKMTD is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+CONFIG_MTD_NAND_DM8000=y
+# CONFIG_MTD_NAND_NANDSIM is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
+
+#
+# Broadcom NAND Flash Device Drivers
+#
+# CONFIG_MTD_BRCMNAND is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+# CONFIG_BLK_DEV_RAM is not set
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_ATA_OVER_ETH=m
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+CONFIG_BLK_DEV_IDE_SATA=y
+CONFIG_BLK_DEV_IDEDISK=y
+CONFIG_IDEDISK_MULTI_MODE=y
+CONFIG_BLK_DEV_IDECD=m
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_BLK_DEV_IDESCSI is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=y
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_IDEPCI_SHARE_IRQ is not set
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=y
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+CONFIG_BLK_DEV_SVWKS=y
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_ARM is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI=m
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+CONFIG_SCSI_QLA2XXX=m
+# CONFIG_SCSI_QLA21XX is not set
+# CONFIG_SCSI_QLA22XX is not set
+# CONFIG_SCSI_QLA2300 is not set
+# CONFIG_SCSI_QLA2322 is not set
+# CONFIG_SCSI_QLA6312 is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_NSP32 is not set
+CONFIG_SCSI_DEBUG=m
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID5=m
+CONFIG_MD_RAID6=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_EMC=m
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_ARPD=y
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+# CONFIG_IP_NF_CT_ACCT is not set
+CONFIG_IP_NF_CONNTRACK_MARK=y
+CONFIG_IP_NF_CT_PROTO_SCTP=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_OWNER=m
+# CONFIG_IP_NF_MATCH_PHYSDEV is not set
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_NAT_AMANDA=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_CLASSIFY=m
+CONFIG_IP_NF_TARGET_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+# CONFIG_IP6_NF_MATCH_PHYSDEV is not set
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# Bridge: Netfilter Configuration
+#
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+# CONFIG_SCTP_HMAC_SHA1 is not set
+CONFIG_SCTP_HMAC_MD5=y
+# CONFIG_ATM is not set
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CLK_JIFFIES=y
+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
+# CONFIG_NET_SCH_CLK_CPU is not set
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_NET_CLS_IND=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NETPOLL=y
+CONFIG_NETPOLL_RX=y
+CONFIG_NETPOLL_TRAP=y
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIUSB=m
+CONFIG_BT_HCIUSB_SCO=y
+# CONFIG_BT_HCIUART is not set
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+# CONFIG_BT_HCIVHCI is not set
+CONFIG_NETDEVICES=y
+CONFIG_NETIF_DMA=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+CONFIG_BCMINTEMAC_7038=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+
+#
+# Tulip family network device support
+#
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_PCI is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+# CONFIG_HERMES is not set
+# CONFIG_ATMEL is not set
+
+#
+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
+#
+# CONFIG_PRISM54 is not set
+CONFIG_NET_WIRELESS=y
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+# CONFIG_SLIP is not set
+# CONFIG_NET_FC is not set
+# CONFIG_SHAPER is not set
+CONFIG_NETCONSOLE=m
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=m
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=m
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+CONFIG_INPUT_JOYSTICK=y
+# CONFIG_JOYSTICK_ANALOG is not set
+# CONFIG_JOYSTICK_A3D is not set
+# CONFIG_JOYSTICK_ADI is not set
+# CONFIG_JOYSTICK_COBRA is not set
+# CONFIG_JOYSTICK_GF2K is not set
+# CONFIG_JOYSTICK_GRIP is not set
+# CONFIG_JOYSTICK_GRIP_MP is not set
+# CONFIG_JOYSTICK_GUILLEMOT is not set
+# CONFIG_JOYSTICK_INTERACT is not set
+# CONFIG_JOYSTICK_SIDEWINDER is not set
+# CONFIG_JOYSTICK_TMDC is not set
+# CONFIG_JOYSTICK_IFORCE is not set
+# CONFIG_JOYSTICK_WARRIOR is not set
+# CONFIG_JOYSTICK_MAGELLAN is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_STINGER is not set
+# CONFIG_JOYSTICK_TWIDJOY is not set
+# CONFIG_JOYSTICK_JOYDUMP is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_PCSPKR is not set
+# CONFIG_INPUT_UINPUT is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_I8042 is not set
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=0
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_RTC is not set
+# CONFIG_GEN_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_I810 is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_ISA is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_PROSAVAGE is not set
+# CONFIG_I2C_SAVAGE4 is not set
+# CONFIG_SCx200_ACB is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+# CONFIG_I2C_VOODOO3 is not set
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Hardware Sensors Chip support
+#
+# CONFIG_I2C_SENSOR is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ASB100 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_FSCHER is not set
+# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+
+#
+# Other I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_RTC8564 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+CONFIG_DVB=y
+CONFIG_DVB_CORE=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+# CONFIG_DVB_AV7110 is not set
+# CONFIG_DVB_BUDGET is not set
+# CONFIG_DVB_BUDGET_CI is not set
+# CONFIG_DVB_BUDGET_AV is not set
+
+#
+# Supported USB Adapters
+#
+# CONFIG_DVB_TTUSB_BUDGET is not set
+# CONFIG_DVB_TTUSB_DEC is not set
+# CONFIG_DVB_DIBUSB is not set
+# CONFIG_DVB_CINERGYT2 is not set
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+# CONFIG_DVB_B2C2_FLEXCOP is not set
+# CONFIG_DVB_B2C2_SKYSTAR is not set
+
+#
+# Supported BT878 Adapters
+#
+
+#
+# Supported DVB Frontends
+#
+
+#
+# Customise DVB Frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_STV0299=m
+# CONFIG_DVB_CX24110 is not set
+CONFIG_DVB_TDA8083=m
+# CONFIG_DVB_TDA80XX is not set
+CONFIG_DVB_MT312=m
+CONFIG_DVB_VES1X93=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+CONFIG_DVB_L64781=m
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_ATMEL_AT76C651 is not set
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terresterial DTV) frontends
+#
+# CONFIG_DVB_NXT2002 is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+
+#
+# Graphics support
+#
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SOFT_CURSOR=y
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON_OLD is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_SMIVGX is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_E1356 is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Logo configuration
+#
+# CONFIG_LOGO is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# PCI devices
+#
+# CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_YMFPCI is not set
+# CONFIG_SND_ALS4000 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_HDA_INTEL is not set
+
+#
+# ALSA MIPS devices
+#
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB=y
+CONFIG_USB_DEBUG=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_SPLIT_ISO is not set
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+CONFIG_USB_BRCM=y
+# CONFIG_USB_BRCM_PWR_CTL is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_AUDIO=m
+
+#
+# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
+#
+CONFIG_USB_MIDI=m
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_DPCM=y
+CONFIG_USB_STORAGE_USBAT=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+# CONFIG_HID_FF is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+CONFIG_USB_AIPTEK=m
+CONFIG_USB_WACOM=m
+CONFIG_USB_KBTAB=m
+CONFIG_USB_POWERMATE=m
+CONFIG_USB_MTOUCH=m
+CONFIG_USB_EGALAX=m
+CONFIG_USB_XPAD=m
+CONFIG_USB_ATI_REMOTE=m
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB Multimedia devices
+#
+CONFIG_USB_DABUSB=m
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_ZD1201 is not set
+CONFIG_USB_MON=m
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_AUERSWALD=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_PHIDGETKIT=m
+CONFIG_USB_PHIDGETSERVO=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_TEST is not set
+
+#
+# USB ATM/DSL drivers
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# InfiniBand support
+#
+# CONFIG_INFINIBAND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+# CONFIG_EXT2_FS_XATTR is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_REISERFS_FS_XATTR is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+
+#
+# XFS support
+#
+CONFIG_XFS_FS=m
+CONFIG_XFS_EXPORT=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+CONFIG_MINIX_FS=m
+# CONFIG_ROMFS_FS is not set
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_DEBUG=y
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+CONFIG_DEVFS_FS=y
+CONFIG_DEVFS_MOUNT=y
+# CONFIG_DEVFS_DEBUG is not set
+# CONFIG_DEVPTS_FS_XATTR is not set
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_JFFS2_SUMMARY=y
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_SQUASHFS_VMALLOC is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+CONFIG_UFS_FS_WRITE=y
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=y
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_CROSSCOMPILE=y
+CONFIG_CMDLINE="root=/dev/mtdblock3 rootfstype=jffs2 rw mem=128M console=null"
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-7400AB-enable-llsc.patch b/packages/linux/linux-dm8000/linux-2.6.12-7400AB-enable-llsc.patch
new file mode 100644 (file)
index 0000000..cb05512
--- /dev/null
@@ -0,0 +1,14 @@
+--- 2.6.12-5.1-org/arch/mips/Makefile  2008-03-19 16:22:29.000000000 +0100
++++ 2.6.12-5.1-patched/arch/mips/Makefile      2008-03-24 14:06:32.000000000 +0100
+@@ -876,10 +876,9 @@
+ core-$(CONFIG_MIPS_BCM7400A0) += arch/mips/brcmstb/common/
+ core-$(CONFIG_MIPS_BCM7400B0) += arch/mips/brcmstb/common/
+-ifdef CONFIG_SMP
+ cflags-$(CONFIG_MIPS_BCM7400A0)       += -Iinclude/asm-mips/mach-brcmstb
+ cflags-$(CONFIG_MIPS_BCM7400B0)       += -Iinclude/asm-mips/mach-brcmstb
+-endif
++
+ load-$(CONFIG_MIPS_BCM7400A0) := 0x80001000
+ load-$(CONFIG_MIPS_BCM7400B0) := 0x80001000
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-brcm-fix-minipci.patch b/packages/linux/linux-dm8000/linux-2.6.12-brcm-fix-minipci.patch
new file mode 100644 (file)
index 0000000..eb6384f
--- /dev/null
@@ -0,0 +1,11 @@
+--- stblinux-2.6.12.org/include/asm-mips/brcmstb/brcm97400b0/boardmap.h        2008-07-03 23:48:25.000000000 +0200
++++ stblinux-2.6.12/include/asm-mips/brcmstb/brcm97400b0/boardmap.h    2008-07-03 21:23:22.000000000 +0200
+@@ -69,7 +69,7 @@
+ #define PCI_1394_PHYS_MEM_WIN0_BASE   0xd0000000
+-#define PCI_DEVICE_ID_EXT       0x0d
++#define PCI_DEVICE_ID_EXT       1 /* 0x0d */
+ #define PCI_DEVICE_ID_1394      0x0e
+ #define PCI_DEVICE_ID_MINI      0x04
+ #define PCI_DEVICE_ID_SATA      0 /* On 2ndary PCI bus */
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-brcm-mtd-blkdevfs-fix.diff b/packages/linux/linux-dm8000/linux-2.6.12-brcm-mtd-blkdevfs-fix.diff
new file mode 100644 (file)
index 0000000..da5324e
--- /dev/null
@@ -0,0 +1,109 @@
+Index: stblinux-2.6.12/drivers/mtd/mtd_blkdevs.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/mtd_blkdevs.c     2007-07-26 00:55:00.000000000 +0200
++++ stblinux-2.6.12/drivers/mtd/mtd_blkdevs.c  2008-01-16 23:58:30.000000000 +0100
+@@ -21,6 +21,7 @@
+ #include <linux/init.h>
+ #include <asm/semaphore.h>
+ #include <asm/uaccess.h>
++#include <linux/devfs_fs_kernel.h>
+ static LIST_HEAD(blktrans_majors);
+@@ -302,6 +303,9 @@
+               snprintf(gd->disk_name, sizeof(gd->disk_name),
+                        "%s%d", tr->name, new->devnum);
++      snprintf(gd->devfs_name, sizeof(gd->devfs_name),
++               "%s/%c", tr->name, (tr->part_bits?'a':'0') + new->devnum);
++
+       /* 2.5 has capacity in units of 512 bytes while still
+          having BLOCK_SIZE_BITS set to 10. Just to keep us amused. */
+       set_capacity(gd, (new->size * new->blksize) >> 9);
+@@ -418,6 +422,8 @@
+               return ret;
+       }
++      devfs_mk_dir(tr->name);
++
+       INIT_LIST_HEAD(&tr->devs);
+       list_add(&tr->list, &blktrans_majors);
+@@ -450,6 +456,7 @@
+               tr->remove_dev(dev);
+       }
++      devfs_remove(tr->name);
+       blk_cleanup_queue(tr->blkcore_priv->rq);
+       unregister_blkdev(tr->major, tr->name);
+Index: stblinux-2.6.12/drivers/mtd/mtdchar.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/mtdchar.c 2008-01-21 01:37:38.000000000 +0100
++++ stblinux-2.6.12/drivers/mtd/mtdchar.c      2008-01-21 01:37:40.000000000 +0100
+@@ -26,6 +26,8 @@
+ static struct class *mtd_class;
++#include <linux/devfs_fs_kernel.h>
++
+ static void mtd_notify_add(struct mtd_info* mtd)
+ {
+       if (!mtd)
+@@ -50,6 +52,12 @@
+                           MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
+                           NULL, "mtd%dro", mtd->index);
+ #endif
++
++      devfs_mk_cdev(MKDEV(MTD_CHAR_MAJOR, mtd->index*2),
++                    S_IFCHR | S_IRUGO | S_IWUGO, "mtd/%d", mtd->index);
++
++      devfs_mk_cdev(MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
++                    S_IFCHR | S_IRUGO, "mtd/%dro", mtd->index);
+ }
+ static void mtd_notify_remove(struct mtd_info* mtd)
+@@ -59,6 +67,9 @@
+       class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2));
+       class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1));
++
++      devfs_remove("mtd/%d", mtd->index);
++      devfs_remove("mtd/%dro", mtd->index);
+ }
+ static struct mtd_notifier notifier = {
+@@ -66,6 +77,17 @@
+       .remove = mtd_notify_remove,
+ };
++static inline void mtdchar_devfs_init(void)
++{
++      devfs_mk_dir("mtd");
++}
++
++static inline void mtdchar_devfs_exit(void)
++{
++      devfs_remove("mtd");
++}
++
++
+ /*
+  * We use file->private_data to store a pointer to the MTDdevice.
+  * Since alighment is at least 32 bits, we have 2 bits free for OTP
+@@ -807,6 +829,7 @@
+               return PTR_ERR(mtd_class);
+       }
++      mtdchar_devfs_init();
+       register_mtd_user(&notifier);
+       return 0;
+ }
+@@ -815,6 +838,7 @@
+ {
+       unregister_mtd_user(&notifier);
+       class_destroy(mtd_class);
++      mtdchar_devfs_exit();
+       unregister_chrdev(MTD_CHAR_MAJOR, "mtd");
+ }
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-dm8000-nand.patch b/packages/linux/linux-dm8000/linux-2.6.12-dm8000-nand.patch
new file mode 100644 (file)
index 0000000..832479b
--- /dev/null
@@ -0,0 +1,249 @@
+Index: stblinux-2.6.12/drivers/mtd/nand/Kconfig
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/nand/Kconfig      2006-10-10 20:27:00.000000000 +0200
++++ stblinux-2.6.12/drivers/mtd/nand/Kconfig   2007-04-25 02:36:25.000000000 +0200
+@@ -199,6 +199,10 @@
+       help
+         Enables access to the Smart Media card interface on the AT91RM9200.
++config MTD_NAND_DM8000
++      bool "DM8000 NAND support"
++      depends on MTD_NAND
++
+ config MTD_NAND_NANDSIM
+       tristate "Support for NAND Flash Simulator"
+       depends on m && MTD_NAND && MTD_PARTITIONS
+Index: stblinux-2.6.12/drivers/mtd/nand/Makefile
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/nand/Makefile     2006-10-10 20:27:00.000000000 +0200
++++ stblinux-2.6.12/drivers/mtd/nand/Makefile  2007-04-25 02:36:25.000000000 +0200
+@@ -16,6 +16,7 @@
+ obj-$(CONFIG_MTD_NAND_AU1550)         += au1550nd.o
+ obj-$(CONFIG_MTD_NAND_PPCHAMELEONEVB) += ppchameleonevb.o
+ obj-$(CONFIG_MTD_NAND_S3C2410)                += s3c2410.o
++obj-$(CONFIG_MTD_NAND_DM8000)     += dm8000.o
+ obj-$(CONFIG_MTD_NAND_DISKONCHIP)     += diskonchip.o
+ obj-$(CONFIG_MTD_NAND_H1900)          += h1910.o
+ obj-$(CONFIG_MTD_NAND_RTC_FROM4)      += rtc_from4.o
+Index: stblinux-2.6.12/drivers/mtd/nand/dm8000.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ stblinux-2.6.12/drivers/mtd/nand/dm8000.c  2007-04-25 16:09:12.000000000 +0200
+@@ -0,0 +1,217 @@
++/*
++ *  drivers/mtd/nand/dm8000.c
++ *
++ *  Copyright (C) 2000 Steven J. Hill (sjhill@realitydiluted.com)
++ *
++ *  Modified for Dreambox DM8000 by Felix Domke <tmbinc@elitedvb.net>
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ *  Overview:
++ *   This is a device driver for the NAND flash device found on the
++ *   DM8000 board.
++ *
++ */
++
++#include <linux/slab.h>
++#include <linux/module.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/nand.h>
++#include <linux/mtd/partitions.h>
++#include <asm/io.h>
++
++static struct mtd_info *dm8000_mtd = NULL;
++/*
++ * Define partitions for flash device
++ */
++const static struct mtd_partition partition_info[] = {
++      {
++              .name   = "complete",
++              .offset = 0,
++              .size   = 256*1024*1024
++      },
++      {
++              .name   = "loader",
++              .offset = 0,
++              .size   = 1024*1024
++      },
++      {
++              .name   = "boot partition",
++              .offset = 1024*1024,
++              .size   = 3*1024*1024
++      },
++      {
++              .name   = "root partition",
++              .offset = 4*1024*1024,
++              .size   = 60*1024*1024
++      },
++      {
++              .name   = "home partition",
++              .offset = 64*1024*1024,
++              .size   = 64*1024*1024
++      },
++      {
++              .name   = "unused partition",
++              .offset = 128*1024*1024,
++              .size   = 120*1024*1024
++      },
++      {
++              .name   = "preset partition",
++              .offset = 248*1024*1024,
++              .size   = 8*1024*1024
++      }
++};
++#define NUM_PARTITIONS 7
++
++/*
++ *    hardware specific access to control-lines
++ *  our hardware logic handles the line according to the addresses.
++ */
++static void dm8000_hwcontrol(struct mtd_info *mtd, int cmd)
++{
++      struct nand_chip *this = mtd->priv;
++
++      switch(cmd){
++
++      case NAND_CTL_SETCLE: this->IO_ADDR_W = (void*)0xBF030000; break; // COMMAND
++      case NAND_CTL_CLRCLE: this->IO_ADDR_W = (void*)0xBF030004; break; // DATA
++
++      case NAND_CTL_SETALE: this->IO_ADDR_W = (void*)0xBF030002; break; // ADDRESS
++      case NAND_CTL_CLRALE: this->IO_ADDR_W = (void*)0xBF030004; break; // DATA
++
++      case NAND_CTL_SETNCE: break; // CE will automatically set on command
++      case NAND_CTL_CLRNCE: *(volatile unsigned char*)0xBF030003 = 0; break; // TERM
++      default:
++              BUG();
++      }
++}
++
++static void dm8000_nand_read_buf(struct mtd_info *mtd, u_char *buf, int len)
++{
++//    struct nand_chip *this = mtd->priv;
++
++      *(volatile unsigned char*)0xBF030002;
++
++      while (len > 16)
++      {
++              *(long*)buf = *(volatile long*)(0xBF030004);
++              *(long*)(buf+4) = *(volatile long*)(0xBF030004);
++              *(long*)(buf+8) = *(volatile long*)(0xBF030004);
++              *(long*)(buf+12) = *(volatile long*)(0xBF030004);
++              buf += 16;
++              len -= 16;
++      }
++
++      while (len--)
++              *buf++ = *(volatile unsigned char*)(0xBF030004);
++}
++
++static int dm8000_dev_ready(struct mtd_info *mtd)
++{
++      *(volatile unsigned char*)0xBF030002;
++      return 1;
++}
++
++/*
++ * Main initialization routine
++ */
++int __init dm8000_init (void)
++{
++      struct nand_chip *this;
++      unsigned char probe[4];
++      int i, j;
++
++      /* Allocate memory for MTD device structure and private data */
++      dm8000_mtd = kmalloc (sizeof(struct mtd_info) + sizeof (struct nand_chip),
++                              GFP_KERNEL);
++      if (!dm8000_mtd) {
++              printk ("Unable to allocate DM8000 NAND MTD device structure.\n");
++              return -ENOMEM;
++      }
++
++      /* Get pointer to private data */
++      this = (struct nand_chip *) (&dm8000_mtd[1]);
++
++      *(volatile unsigned char*)(0xBF030000) = 0x90;
++      *(volatile unsigned char*)(0xBF030002) = 0;
++      probe[0] = *(volatile unsigned char*)(0xBF030004);
++      probe[1] = *(volatile unsigned char*)(0xBF030004);
++      probe[2] = *(volatile unsigned char*)(0xBF030004);
++      probe[3] = *(volatile unsigned char*)(0xBF030004);
++      *(volatile unsigned char*)(0xBF030003) = 0; // term
++
++      j = jiffies;
++      for (i=0; i<1000*1000/4; ++i)
++              *(volatile unsigned long*)(0xBF030004);
++      printk("%ld kb/s\n", 1000 * HZ / (jiffies-j));
++
++      printk(" - NAND PROBE: %02x %02x %02x %02x\n",
++                      probe[0], probe[1], probe[2], probe[3]);
++
++      /* Initialize structures */
++      memset((char *) dm8000_mtd, 0, sizeof(struct mtd_info));
++      memset((char *) this, 0, sizeof(struct nand_chip));
++
++      /* Link the private data with the MTD structure */
++      dm8000_mtd->priv = this;
++
++      /* Set address of NAND IO lines */
++      this->IO_ADDR_R = (void*)0xBF030004;
++      this->IO_ADDR_W = (void*)0xBF030004;
++
++      /* Set address of hardware control function */
++      this->hwcontrol = dm8000_hwcontrol;
++      this->read_buf = dm8000_nand_read_buf;
++      this->dev_ready = 0; // don't use dm8000_dev_ready
++      /* 15 us command delay time */
++      this->chip_delay = 15;
++      this->eccmode = NAND_ECC_SOFT;
++
++      /* Scan to find existence of the device */
++      if (nand_scan (dm8000_mtd, 1)) {
++              kfree (dm8000_mtd);
++              return -ENXIO;
++      }
++
++      /* Allocate memory for internal data buffer */
++      this->data_buf = kmalloc (sizeof(u_char) * (dm8000_mtd->oobblock + dm8000_mtd->oobsize), GFP_KERNEL);
++      if (!this->data_buf) {
++              printk ("Unable to allocate NAND data buffer for Dreambox.\n");
++              kfree (dm8000_mtd);
++              return -ENOMEM;
++      }
++
++      /* Register the partitions */
++      add_mtd_partitions(dm8000_mtd, partition_info, NUM_PARTITIONS);
++
++      /* Return happy */
++      return 0;
++}
++module_init(dm8000_init);
++
++/*
++ * Clean up routine
++ */
++#ifdef MODULE
++static void __exit dm8000_cleanup (void)
++{
++      struct nand_chip *this = (struct nand_chip *) &dm8000_mtd[1];
++
++      /* Unregister the device */
++      del_mtd_device (dm8000_mtd);
++
++      /* Free internal data buffer */
++      kfree (this->data_buf);
++
++      /* Free the MTD device structure */
++      kfree (dm8000_mtd);
++}
++module_exit(dm8000_cleanup);
++#endif
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Felix Domke <tmbinc@elitedvb.net>");
++MODULE_DESCRIPTION("Dream-Multimedia DM8000 NAND flash board glue");
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-dream-misc.patch b/packages/linux/linux-dm8000/linux-2.6.12-dream-misc.patch
new file mode 100644 (file)
index 0000000..bf572da
--- /dev/null
@@ -0,0 +1,87 @@
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/reset.c 2.6.12-5.0-patched/arch/mips/kernel/reset.c
+--- 2.6.12-5.0-org/arch/mips/kernel/reset.c    2007-07-26 00:51:08.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/reset.c        2007-12-11 12:34:52.000000000 +0100
+@@ -27,6 +27,7 @@
+ }
+ EXPORT_SYMBOL(machine_restart);
++EXPORT_SYMBOL(_machine_restart);
+ void machine_halt(void)
+ {
+@@ -34,6 +35,7 @@
+ }
+ EXPORT_SYMBOL(machine_halt);
++EXPORT_SYMBOL(_machine_halt);
+ void machine_power_off(void)
+ {
+@@ -41,3 +43,4 @@
+ }
+ EXPORT_SYMBOL(machine_power_off);
++EXPORT_SYMBOL(_machine_power_off);
+diff -Naur 2.6.12-5.0-org/drivers/video/Kconfig 2.6.12-5.0-patched/drivers/video/Kconfig
+--- 2.6.12-5.0-org/drivers/video/Kconfig       2007-07-26 00:54:49.000000000 +0200
++++ 2.6.12-5.0-patched/drivers/video/Kconfig   2007-12-11 12:34:52.000000000 +0100
+@@ -39,7 +39,7 @@
+         device-aware may cause unexpected results. If unsure, say N.
+ config FB_CFB_FILLRECT
+-      tristate
++      tristate "FB_CFB_FILLRECT"
+       depends on FB
+       default n
+       ---help---
+@@ -48,7 +48,7 @@
+         (accelerated) version.
+ config FB_CFB_COPYAREA
+-      tristate
++      tristate "FB_CFB_COPYAREA"
+       depends on FB
+       default n
+       ---help---
+@@ -57,7 +57,7 @@
+         version.
+ config FB_CFB_IMAGEBLIT
+-      tristate
++      tristate "FB_CFB_IMAGEBLIT"
+       depends on FB
+       default n
+       ---help---
+@@ -66,7 +66,7 @@
+         (accelerated) version.
+ config FB_SOFT_CURSOR
+-      tristate
++      tristate "FB_SOFT_CURSOR"
+       depends on FB
+       default n
+       ---help---
+diff -Naur 2.6.12-5.0-org/drivers/char/keyboard.c 2.6.12-5.0-patched/drivers/char/keyboard.c
+--- 2.6.12-5.0-org/drivers/char/keyboard.c     2007-07-26 00:53:29.000000000 +0200
++++ 2.6.12-5.0-patched/drivers/char/keyboard.c 2007-12-11 12:34:52.000000000 +0100
+@@ -1186,6 +1186,9 @@
+       for (i = KEY_RESERVED; i < BTN_MISC; i++)
+               if (test_bit(i, dev->keybit)) break;
++      if ( test_bit(EV_NO_CONSOLE, dev->evbit) )
++              return NULL;
++
+       if ((i == BTN_MISC) && !test_bit(EV_SND, dev->evbit)) 
+               return NULL;
+diff -Naur 2.6.12-5.0-org/include/linux/input.h 2.6.12-5.0-patched/include/linux/input.h
+--- 2.6.12-5.0-org/include/linux/input.h       2007-07-26 00:56:59.000000000 +0200
++++ 2.6.12-5.0-patched/include/linux/input.h   2007-12-11 12:34:52.000000000 +0100
+@@ -92,6 +92,7 @@
+ #define EV_FF                 0x15
+ #define EV_PWR                        0x16
+ #define EV_FF_STATUS          0x17
++#define EV_NO_CONSOLE         0x1e
+ #define EV_MAX                        0x1f
+ /*
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-dream-temp.patch b/packages/linux/linux-dm8000/linux-2.6.12-dream-temp.patch
new file mode 100644 (file)
index 0000000..615d135
--- /dev/null
@@ -0,0 +1,141 @@
+Index: stblinux-2.6.12/arch/mips/kernel/vmlinux.lds.S
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/kernel/vmlinux.lds.S        2008-01-16 23:52:20.000000000 +0100
++++ stblinux-2.6.12/arch/mips/kernel/vmlinux.lds.S     2008-01-16 23:52:22.000000000 +0100
+@@ -145,8 +145,8 @@
+     . = ALIGN(4096);
+   __initramfs_start = .;
+   .init.ramfs : { *(.init.ramfs) }
+-    . = ALIGN(4096);
+   __initramfs_end = .;
++    . = ALIGN(4096);
+   __bss_start = .;            /* BSS */
+   .sbss      : {
+Index: stblinux-2.6.12/drivers/net/brcmint7038/bcmemac.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/net/brcmint7038/bcmemac.c     2008-01-16 23:52:20.000000000 +0100
++++ stblinux-2.6.12/drivers/net/brcmint7038/bcmemac.c  2008-01-16 23:52:13.000000000 +0100
+@@ -2978,99 +2978,10 @@
+ static void bcmemac_getMacAddr(struct net_device* dev)
+ {
+-      uint8 flash_eaddr[ETH_ALEN];
+-      void *virtAddr;
+-      uint16 word;
+-      int i;
+-
+-#if !defined( CONFIG_BRCM_PCI_SLAVE) && !defined( CONFIG_MTD_BRCMNAND )
+-#if 1
+-      virtAddr = (void*)FLASH_MACADDR_ADDR;
+-#else
+-      //virtAddr = (void*) 0xBDFFF824; /* BCM97110 in-flash Ethernet MAC address */
+-      virtAddr = (void*) KSEG1ADDR(getPhysFlashBase() + FLASH_MACADDR_OFFSET); 
+-#endif
+-
+-          /* It is a common problem that the flash and/or Chip Select are
+-       * not initialized properly, so leave this printk on
+-       */
+-      printk("%s: Reading MAC address from %08lX, FLASH_BASE=%08lx\n", 
+-              dev->name,(uint32) virtAddr, (unsigned long) 0xA0000000L|getPhysFlashBase());
+-
+-      word=0;
+-      word=readw(virtAddr);
+-      flash_eaddr[0]=(uint8) (word & 0x00FF);
+-      flash_eaddr[1]=(uint8) ((word & 0xFF00) >> 8);
+-      word=readw(virtAddr+2);
+-      flash_eaddr[2]=(uint8) (word & 0x00FF);
+-      flash_eaddr[3]=(uint8) ((word & 0xFF00) >> 8);
+-      word=readw(virtAddr+4);
+-      flash_eaddr[4]=(uint8) (word & 0x00FF);
+-      flash_eaddr[5]=(uint8) ((word & 0xFF00) >> 8);
+-
+-      printk("%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X fetched from addr %lX\n",
+-              dev->name,
+-              flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
+-              flash_eaddr[3],flash_eaddr[4],flash_eaddr[5],
+-              (uint32) virtAddr);
+-
+-#elif defined( CONFIG_MTD_BRCMNAND )
+-{
+-      extern int gNumHwAddrs;
+-      extern unsigned char* gHwAddrs[];
+-      
+-      if (gNumHwAddrs >= 1) {
+-              for (i=0; i < 6; i++) {
+-                      flash_eaddr[i] = (uint8) gHwAddrs[0][i];
+-              }
+-
+-              printk("%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X fetched from bootloader\n",
+-                      dev->name,
+-                      flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
+-                      flash_eaddr[3],flash_eaddr[4],flash_eaddr[5]
+-                      );
+-      }
+-      else {
+-              printk(KERN_ERR "%s: No MAC addresses defined\n", __FUNCTION__);
+-      }
+-}
++              /* we rip the address set by the bootloader */
++      unsigned long addr[2] = { be32_to_cpu(*(unsigned int*)0xB008005C), be32_to_cpu(*(unsigned int*)0xB0080058)};
+-#else 
+-/* PCI slave cannot access the EBI bus, 
+- * and for now, same for NAND flash, until CFE supports it
+- */
+-/* Use hard coded value if Flash not properly initialized */
+-      //if ((*flash_eaddr & 0xff) == 0xff)
+-      {
+-//#ifdef USE_HARDCODED_MACADDR
+-              flash_eaddr[0] = 0x00;
+-              flash_eaddr[1] = 0xc0;
+-              flash_eaddr[2] = 0xa8;
+-              flash_eaddr[3] = 0x74;
+-              flash_eaddr[4] = 0x3b;
+-              flash_eaddr[5] = 0x51;
+-              printk("%s: Default MAC address %02X:%02X:%02X:%02X:%02X:%02X used\n",
+-                      dev->name,
+-                      flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
+-                      flash_eaddr[3],flash_eaddr[4],flash_eaddr[5]);
+-//#else
+-//                    printk("%s: Cannot read EMAC address from flash.  Please run EVAL codes\n", CARDNAME);
+-//                    return -ENODEV;
+-//#endif
+-      }
+-#endif
+-
+-        /* fill in the MAC address */
+-        for (i = 0; i < 6; i++) {
+-            dev->dev_addr[i] = flash_eaddr[i];
+-        }
+-
+-        /* print the Ethenet address */
+-        printk("%s: MAC Address: ", dev->name);
+-        for (i = 0; i < 5; i++) {
+-            printk("%2.2X:", dev->dev_addr[i]);
+-        }
+-        printk("%2.2X\n", dev->dev_addr[i]);
++      memcpy(dev->dev_addr, ((unsigned char*)addr)+2, 6);
+ }
+Index: stblinux-2.6.12/arch/mips/brcmstb/common/setup.c
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/brcmstb/common/setup.c      2008-01-16 23:53:24.000000000 +0100
++++ stblinux-2.6.12/arch/mips/brcmstb/common/setup.c   2008-01-16 23:54:06.000000000 +0100
+@@ -136,13 +136,13 @@
+ static void brcm_machine_halt(void)
+ {
+-      printk("Broadcom eval board halted.\n");
++      printk("Halted.\n");
+       while (1);
+ }
+ static void brcm_machine_power_off(void)
+ {
+-      printk("Broadcom eval board halted. Please turn off power.\n");
++      printk("Halted. Please turn off power.\n");
+       while (1);
+ }
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-fixup-prom-args.patch b/packages/linux/linux-dm8000/linux-2.6.12-fixup-prom-args.patch
new file mode 100644 (file)
index 0000000..4020fc9
--- /dev/null
@@ -0,0 +1,65 @@
+Index: stblinux-2.6.12/arch/mips/brcmstb/common/prom.c
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/brcmstb/common/prom.c       2008-01-16 00:14:31.000000000 +0100
++++ stblinux-2.6.12/arch/mips/brcmstb/common/prom.c    2008-01-16 00:23:08.000000000 +0100
+@@ -216,6 +216,29 @@
+ }
++int prom_argc;
++int *_prom_argv, *_prom_envp;
++
++void  __init prom_init_cmdline(void)
++{
++      char *cp;
++      int actr;
++
++      actr = 1; /* Always ignore argv[0] */
++
++      cp = &(arcs_cmdline[0]);
++      while(actr < prom_argc) {
++              strcpy(cp, _prom_argv[actr]);
++              cp += strlen(_prom_argv[actr]);
++              *cp++ = ' ';
++              actr++;
++      }
++      if (cp != &(arcs_cmdline[0])) {
++              /* get rid of trailing space */
++              --cp;
++              *cp = '\0';
++      }
++}
+ void __init prom_init(void)
+ {
+@@ -731,23 +754,14 @@
+               uart_puts("Default command line = \n");
+               uart_puts(CONFIG_CMDLINE);
+               uart_puts("\n");
+-              p = &arcs_cmdline[0];
+-              while (p != NULL && *p != '\0') {
+-                      if (!isspace(*p))
+-                              break;
+-                      p++;
+-              }
+-              if (p == NULL || *p == '\0') {
+-                      uart_puts("Defaulting to boot from HD\n");
+-                      /* Default is to boot from HD */
+-                      strcpy(arcs_cmdline,
+-                              "root=/dev/hda1" DEFAULT_KARGS);
+-              }
+-              else if (appendConsoleNeeded) {
+-                      /* Make sure that the boot params specify a console */
+-                      appendConsoleArg(arcs_cmdline);
+-              }
+               
++              prom_argc = fw_arg0;
++              _prom_argv = (int *) fw_arg1;
++              _prom_envp = (int *) fw_arg2;
++              printk("%d %p %p\n", prom_argc, _prom_argv, _prom_envp);
++              prom_init_cmdline();
++              
++
+ #else /* No CONFIG_CMDLINE, and not Initrd */
+       /* Default is to boot from HD */
+               strcpy(arcs_cmdline,
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-set-custom-extraversion.patch b/packages/linux/linux-dm8000/linux-2.6.12-set-custom-extraversion.patch
new file mode 100644 (file)
index 0000000..2a6e14f
--- /dev/null
@@ -0,0 +1,13 @@
+Index: stblinux-2.6.12/Makefile
+===================================================================
+--- stblinux-2.6.12.orig/Makefile      2007-12-17 20:09:55.000000000 +0100
++++ stblinux-2.6.12/Makefile   2007-12-17 22:37:51.000000000 +0100
+@@ -2,7 +2,7 @@
+ PATCHLEVEL = 6
+ SUBLEVEL = 12
+ # STABLE_VERSION = .2
+-EXTRAVERSION =-5.1-brcmstb
++EXTRAVERSION =-5.1-brcmstb-dm8000
+ NAME=Woozy Numbat
+ # *DOCUMENTATION*
diff --git a/packages/linux/linux-dm8000/linuxmips-2.6.12-fix-fadvise.patch b/packages/linux/linux-dm8000/linuxmips-2.6.12-fix-fadvise.patch
new file mode 100644 (file)
index 0000000..430f32c
--- /dev/null
@@ -0,0 +1,29 @@
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/syscall.c 2.6.12-5.0-patched/arch/mips/kernel/syscall.c
+--- 2.6.12-5.0-org/arch/mips/kernel/syscall.c  2007-07-26 00:51:09.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/syscall.c      2007-12-11 12:34:52.000000000 +0100
+@@ -405,6 +405,13 @@
+       }
+ }
++asmlinkage long mips_fadvise64(int fd,
++                  unsigned int low_off, unsigned int high_off,
++                  unsigned int len, int advice, unsigned int dummy)
++{
++      return sys_fadvise64_64(fd, (((u64)high_off) << 32) | low_off, (u64)len, advice);
++}
++
+ /*
+  * No implemented yet ...
+  */
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/scall32-o32.S 2.6.12-5.0-patched/arch/mips/kernel/scall32-o32.S
+--- 2.6.12-5.0-org/arch/mips/kernel/scall32-o32.S      2007-07-26 00:51:08.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/scall32-o32.S  2007-12-11 12:34:52.000000000 +0100
+@@ -594,7 +594,7 @@
+       sys     sys_remap_file_pages    5
+       sys     sys_set_tid_address     1
+       sys     sys_restart_syscall     0
+-      sys     sys_fadvise64_64        7
++      sys     mips_fadvise64          7
+       sys     sys_statfs64            3       /* 4255 */
+       sys     sys_fstatfs64           2
+       sys     sys_timer_create        3
diff --git a/packages/linux/linux-dm8000/linuxmips-2.6.12-fix-futex.patch b/packages/linux/linux-dm8000/linuxmips-2.6.12-fix-futex.patch
new file mode 100644 (file)
index 0000000..cb0bfe2
--- /dev/null
@@ -0,0 +1,368 @@
+diff -Naur 2.6.12-5.0-org/include/asm-mips/futex.h 2.6.12-5.0-patched/include/asm-mips/futex.h
+--- 2.6.12-5.0-org/include/asm-mips/futex.h    1970-01-01 01:00:00.000000000 +0100
++++ 2.6.12-5.0-patched/include/asm-mips/futex.h        2007-12-11 12:34:52.000000000 +0100
+@@ -0,0 +1,134 @@
++#ifndef _ASM_FUTEX_H
++#define _ASM_FUTEX_H
++
++#ifdef __KERNEL__
++
++#include <linux/config.h>
++#include <linux/futex.h>
++#include <asm/errno.h>
++#include <asm/uaccess.h>
++#include <asm/war.h>
++
++#ifdef CONFIG_SMP
++#define __FUTEX_SMP_SYNC "    sync                                    \n"
++#else
++#define __FUTEX_SMP_SYNC
++#endif
++
++#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg)            \
++{                                                                     \
++      if (cpu_has_llsc && R10000_LLSC_WAR) {                          \
++              __asm__ __volatile__(                                   \
++              "       .set    push                            \n"     \
++              "       .set    noat                            \n"     \
++              "       .set    mips3                           \n"     \
++              "1:     ll      %1, %4  # __futex_atomic_op     \n"     \
++              "       .set    mips0                           \n"     \
++              "       " insn  "                               \n"     \
++              "       .set    mips3                           \n"     \
++              "2:     sc      $1, %2                          \n"     \
++              "       beqzl   $1, 1b                          \n"     \
++              __FUTEX_SMP_SYNC                                        \
++              "3:                                             \n"     \
++              "       .set    pop                             \n"     \
++              "       .set    mips0                           \n"     \
++              "       .section .fixup,\"ax\"                  \n"     \
++              "4:     li      %0, %6                          \n"     \
++              "       j       2b                              \n"     \
++              "       .previous                               \n"     \
++              "       .section __ex_table,\"a\"               \n"     \
++              "       "__UA_ADDR "\t1b, 4b                    \n"     \
++              "       "__UA_ADDR "\t2b, 4b                    \n"     \
++              "       .previous                               \n"     \
++              : "=r" (ret), "=&r" (oldval), "=R" (*uaddr)             \
++              : "0" (0), "R" (*uaddr), "Jr" (oparg), "i" (-EFAULT)    \
++              : "memory");                                            \
++      } else if (cpu_has_llsc) {                                      \
++              __asm__ __volatile__(                                   \
++              "       .set    push                            \n"     \
++              "       .set    noat                            \n"     \
++              "       .set    mips3                           \n"     \
++              "1:     ll      %1, %4  # __futex_atomic_op     \n"     \
++              "       .set    mips0                           \n"     \
++              "       " insn  "                               \n"     \
++              "       .set    mips3                           \n"     \
++              "2:     sc      $1, %2                          \n"     \
++              "       beqz    $1, 1b                          \n"     \
++              __FUTEX_SMP_SYNC                                        \
++              "3:                                             \n"     \
++              "       .set    pop                             \n"     \
++              "       .set    mips0                           \n"     \
++              "       .section .fixup,\"ax\"                  \n"     \
++              "4:     li      %0, %6                          \n"     \
++              "       j       2b                              \n"     \
++              "       .previous                               \n"     \
++              "       .section __ex_table,\"a\"               \n"     \
++              "       "__UA_ADDR "\t1b, 4b                    \n"     \
++              "       "__UA_ADDR "\t2b, 4b                    \n"     \
++              "       .previous                               \n"     \
++              : "=r" (ret), "=&r" (oldval), "=R" (*uaddr)             \
++              : "0" (0), "R" (*uaddr), "Jr" (oparg), "i" (-EFAULT)    \
++              : "memory");                                            \
++      } else                                                          \
++              ret = -ENOSYS;                                          \
++}
++
++static inline int
++futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
++{
++      int op = (encoded_op >> 28) & 7;
++      int cmp = (encoded_op >> 24) & 15;
++      int oparg = (encoded_op << 8) >> 20;
++      int cmparg = (encoded_op << 20) >> 20;
++      int oldval = 0, ret;
++      if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
++              oparg = 1 << oparg;
++
++      if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int)))
++              return -EFAULT;
++
++      inc_preempt_count();
++
++      switch (op) {
++      case FUTEX_OP_SET:
++              __futex_atomic_op("move $1, %z5", ret, oldval, uaddr, oparg);
++              break;
++
++      case FUTEX_OP_ADD:
++              __futex_atomic_op("addu $1, %1, %z5",
++                                ret, oldval, uaddr, oparg);
++              break;
++      case FUTEX_OP_OR:
++              __futex_atomic_op("or   $1, %1, %z5",
++                                ret, oldval, uaddr, oparg);
++              break;
++      case FUTEX_OP_ANDN:
++              __futex_atomic_op("and  $1, %1, %z5",
++                                ret, oldval, uaddr, ~oparg);
++              break;
++      case FUTEX_OP_XOR:
++              __futex_atomic_op("xor  $1, %1, %z5",
++                                ret, oldval, uaddr, oparg);
++              break;
++      default:
++              ret = -ENOSYS;
++      }
++
++      dec_preempt_count();
++
++      if (!ret) {
++              switch (cmp) {
++              case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break;
++              case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break;
++              case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break;
++              case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break;
++              case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break;
++              case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break;
++              default: ret = -ENOSYS;
++              }
++      }
++      return ret;
++}
++
++#endif
++#endif
+diff -Naur 2.6.12-5.0-org/include/linux/futex.h 2.6.12-5.0-patched/include/linux/futex.h
+--- 2.6.12-5.0-org/include/linux/futex.h       2007-07-26 00:57:03.000000000 +0200
++++ 2.6.12-5.0-patched/include/linux/futex.h   2007-12-11 12:34:52.000000000 +0100
+@@ -4,14 +4,40 @@
+ /* Second argument to futex syscall */
+-#define FUTEX_WAIT (0)
+-#define FUTEX_WAKE (1)
+-#define FUTEX_FD (2)
+-#define FUTEX_REQUEUE (3)
+-#define FUTEX_CMP_REQUEUE (4)
++#define FUTEX_WAIT            0
++#define FUTEX_WAKE            1
++#define FUTEX_FD              2
++#define FUTEX_REQUEUE         3
++#define FUTEX_CMP_REQUEUE     4
++#define FUTEX_WAKE_OP         5
+ long do_futex(unsigned long uaddr, int op, int val,
+               unsigned long timeout, unsigned long uaddr2, int val2,
+               int val3);
++#define FUTEX_OP_SET          0       /* *(int *)UADDR2 = OPARG; */
++#define FUTEX_OP_ADD          1       /* *(int *)UADDR2 += OPARG; */
++#define FUTEX_OP_OR           2       /* *(int *)UADDR2 |= OPARG; */
++#define FUTEX_OP_ANDN         3       /* *(int *)UADDR2 &= ~OPARG; */
++#define FUTEX_OP_XOR          4       /* *(int *)UADDR2 ^= OPARG; */
++
++#define FUTEX_OP_OPARG_SHIFT  8       /* Use (1 << OPARG) instead of OPARG.  */
++
++#define FUTEX_OP_CMP_EQ               0       /* if (oldval == CMPARG) wake */
++#define FUTEX_OP_CMP_NE               1       /* if (oldval != CMPARG) wake */
++#define FUTEX_OP_CMP_LT               2       /* if (oldval < CMPARG) wake */
++#define FUTEX_OP_CMP_LE               3       /* if (oldval <= CMPARG) wake */
++#define FUTEX_OP_CMP_GT               4       /* if (oldval > CMPARG) wake */
++#define FUTEX_OP_CMP_GE               5       /* if (oldval >= CMPARG) wake */
++
++/* FUTEX_WAKE_OP will perform atomically
++   int oldval = *(int *)UADDR2;
++   *(int *)UADDR2 = oldval OP OPARG;
++   if (oldval CMP CMPARG)
++     wake UADDR2;  */
++
++#define FUTEX_OP(op, oparg, cmp, cmparg) \
++  (((op & 0xf) << 28) | ((cmp & 0xf) << 24)           \
++   | ((oparg & 0xfff) << 12) | (cmparg & 0xfff))
++
+ #endif
+diff -Naur 2.6.12-5.0-org/kernel/futex.c 2.6.12-5.0-patched/kernel/futex.c
+--- 2.6.12-5.0-org/kernel/futex.c      2007-07-26 00:57:20.000000000 +0200
++++ 2.6.12-5.0-patched/kernel/futex.c  2007-12-11 12:34:52.000000000 +0100
+@@ -40,6 +40,7 @@
+ #include <linux/pagemap.h>
+ #include <linux/syscalls.h>
+ #include <linux/signal.h>
++#include <asm/futex.h>
+ #define FUTEX_HASHBITS (CONFIG_BASE_SMALL ? 4 : 8)
+@@ -201,22 +202,6 @@
+        * for a rare case, so we simply fetch the page.
+        */
+-      /*
+-       * Do a quick atomic lookup first - this is the fastpath.
+-       */
+-      spin_lock(&current->mm->page_table_lock);
+-      page = follow_page(mm, uaddr, 0);
+-      if (likely(page != NULL)) {
+-              key->shared.pgoff =
+-                      page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT);
+-              spin_unlock(&current->mm->page_table_lock);
+-              return 0;
+-      }
+-      spin_unlock(&current->mm->page_table_lock);
+-
+-      /*
+-       * Do it the general way.
+-       */
+       err = get_user_pages(current, mm, uaddr, 1, 0, 0, &page, NULL);
+       if (err >= 0) {
+               key->shared.pgoff =
+@@ -327,6 +312,123 @@
+ }
+ /*
++ * Wake up all waiters hashed on the physical page that is mapped
++ * to this virtual address:
++ */
++static int futex_wake_op(unsigned long uaddr1, unsigned long uaddr2, int nr_wake, int nr_wake2, int op)
++{
++      union futex_key key1, key2;
++      struct futex_hash_bucket *bh1, *bh2;
++      struct list_head *head;
++      struct futex_q *this, *next;
++      int ret, op_ret, attempt = 0;
++
++retryfull:
++      down_read(&current->mm->mmap_sem);
++
++      ret = get_futex_key(uaddr1, &key1);
++      if (unlikely(ret != 0))
++              goto out;
++      ret = get_futex_key(uaddr2, &key2);
++      if (unlikely(ret != 0))
++              goto out;
++
++      bh1 = hash_futex(&key1);
++      bh2 = hash_futex(&key2);
++
++retry:
++      if (bh1 < bh2)
++              spin_lock(&bh1->lock);
++      spin_lock(&bh2->lock);
++      if (bh1 > bh2)
++              spin_lock(&bh1->lock);
++
++      op_ret = futex_atomic_op_inuser(op, (int __user *)uaddr2);
++      if (unlikely(op_ret < 0)) {
++              int dummy;
++
++              spin_unlock(&bh1->lock);
++              if (bh1 != bh2)
++                      spin_unlock(&bh2->lock);
++
++              if (unlikely(op_ret != -EFAULT)) {
++                      ret = op_ret;
++                      goto out;
++              }
++
++              /* futex_atomic_op_inuser needs to both read and write
++               * *(int __user *)uaddr2, but we can't modify it
++               * non-atomically.  Therefore, if get_user below is not
++               * enough, we need to handle the fault ourselves, while
++               * still holding the mmap_sem.  */
++              if (attempt++) {
++                      struct vm_area_struct * vma;
++                      struct mm_struct *mm = current->mm;
++
++                      ret = -EFAULT;
++                      if (attempt >= 2 ||
++                          !(vma = find_vma(mm, uaddr2)) ||
++                          vma->vm_start > uaddr2 ||
++                          !(vma->vm_flags & VM_WRITE))
++                              goto out;
++
++                      switch (handle_mm_fault(mm, vma, uaddr2, 1)) {
++                      case VM_FAULT_MINOR:
++                              current->min_flt++;
++                              break;
++                      case VM_FAULT_MAJOR:
++                              current->maj_flt++;
++                              break;
++                      default:
++                              goto out;
++                      }
++                      goto retry;
++              }
++
++              /* If we would have faulted, release mmap_sem,
++               * fault it in and start all over again.  */
++              up_read(&current->mm->mmap_sem);
++
++              ret = get_user(dummy, (int __user *)uaddr2);
++              if (ret)
++                      return ret;
++
++              goto retryfull;
++      }
++
++      head = &bh1->chain;
++
++      list_for_each_entry_safe(this, next, head, list) {
++              if (match_futex (&this->key, &key1)) {
++                      wake_futex(this);
++                      if (++ret >= nr_wake)
++                              break;
++              }
++      }
++
++      if (op_ret > 0) {
++              head = &bh2->chain;
++
++              op_ret = 0;
++              list_for_each_entry_safe(this, next, head, list) {
++                      if (match_futex (&this->key, &key2)) {
++                              wake_futex(this);
++                              if (++op_ret >= nr_wake2)
++                                      break;
++                      }
++              }
++              ret += op_ret;
++      }
++
++      spin_unlock(&bh1->lock);
++      if (bh1 != bh2)
++              spin_unlock(&bh2->lock);
++out:
++      up_read(&current->mm->mmap_sem);
++      return ret;
++}
++
++/*
+  * Requeue all waiters hashed on one physical page to another
+  * physical page.
+  */
+@@ -740,6 +842,9 @@
+       case FUTEX_CMP_REQUEUE:
+               ret = futex_requeue(uaddr, uaddr2, val, val2, &val3);
+               break;
++      case FUTEX_WAKE_OP:
++              ret = futex_wake_op(uaddr, uaddr2, val, val2, val3);
++              break;
+       default:
+               ret = -ENOSYS;
+       }
+@@ -755,9 +860,11 @@
+       unsigned long timeout = MAX_SCHEDULE_TIMEOUT;
+       int val2 = 0;
+-      if ((op == FUTEX_WAIT) && utime) {
++      if (utime && (op == FUTEX_WAIT)) {
+               if (copy_from_user(&t, utime, sizeof(t)) != 0)
+                       return -EFAULT;
++              if (!timespec_valid(&t))
++                      return -EINVAL;
+               timeout = timespec_to_jiffies(&t) + 1;
+       }
+       /*
diff --git a/packages/linux/linux-dm8000/linuxmips-2.6.12-gcc4-compile-fix.patch b/packages/linux/linux-dm8000/linuxmips-2.6.12-gcc4-compile-fix.patch
new file mode 100644 (file)
index 0000000..c1dc961
--- /dev/null
@@ -0,0 +1,91 @@
+diff -Naur 2.6.12-5.0-org/include/asm-mips/uaccess.h 2.6.12-5.0-patched/include/asm-mips/uaccess.h
+--- 2.6.12-5.0-org/include/asm-mips/uaccess.h  2007-07-26 00:56:08.000000000 +0200
++++ 2.6.12-5.0-patched/include/asm-mips/uaccess.h      2007-12-11 12:34:52.000000000 +0100
+@@ -234,39 +234,72 @@
+ #define __get_user_nocheck(x,ptr,size)                                        \
+ ({                                                                    \
+-      __typeof(*(ptr)) __gu_val =  (__typeof(*(ptr))) 0;              \
+       long __gu_err = 0;                                              \
+-                                                                      \
+       might_sleep();                                                  \
+       switch (size) {                                                 \
+-      case 1: __get_user_asm("lb", ptr); break;                       \
+-      case 2: __get_user_asm("lh", ptr); break;                       \
+-      case 4: __get_user_asm("lw", ptr); break;                       \
+-      case 8: __GET_USER_DW(ptr); break;                              \
++      case 1: {                                                       \
++              s8 __gu_val =  (s8) 0;                                  \
++              __get_user_asm("lb", ptr);                              \
++              (x) = (__typeof__(*(ptr))) __gu_val;                    \
++              break;                                                  \
++              }                                                       \
++      case 2: {                                                       \
++              s16 __gu_val =  (s16) 0;                                \
++              __get_user_asm("lh", ptr);                              \
++              (x) = (__typeof__(*(ptr))) __gu_val;                    \
++              break;                                                  \
++              }                                                       \
++      case 4: {                                                       \
++              s32 __gu_val = (s32) 0;                                 \
++              __get_user_asm("lw", ptr);                              \
++              (x) = (__typeof__(*(ptr))) __gu_val;                    \
++              break;                                                  \
++              }                                                       \
++      case 8: {                                                       \
++              s64 __gu_val = (s64) 0;                                 \
++              __GET_USER_DW(ptr);                                     \
++              (x) = (__typeof__(*(ptr))) __gu_val;                    \
++              break;                                                  \
++              }                                                       \
+       default: __get_user_unknown(); break;                           \
+       }                                                               \
+-      (x) = (__typeof__(*(ptr))) __gu_val;                            \
+       __gu_err;                                                       \
+ })
+ #define __get_user_check(x,ptr,size)                                  \
+ ({                                                                    \
+       const __typeof__(*(ptr)) __user * __gu_addr = (ptr);            \
+-      __typeof__(*(ptr)) __gu_val = 0;                                \
+       long __gu_err = -EFAULT;                                        \
+-                                                                      \
+       might_sleep();                                                  \
+-                                                                      \
+       if (likely(access_ok(VERIFY_READ,  __gu_addr, size))) {         \
+               switch (size) {                                         \
+-              case 1: __get_user_asm("lb", __gu_addr); break;         \
+-              case 2: __get_user_asm("lh", __gu_addr); break;         \
+-              case 4: __get_user_asm("lw", __gu_addr); break;         \
+-              case 8: __GET_USER_DW(__gu_addr); break;                \
++              case 1: {                                                       \
++                      s8 __gu_val =  (s8) 0;                                  \
++                      __get_user_asm("lb", ptr);                              \
++                      (x) = (__typeof__(*(ptr))) __gu_val;                    \
++                      break;                                                  \
++                      }                                                       \
++              case 2: {                                                       \
++                      s16 __gu_val =  (s16) 0;                                \
++                      __get_user_asm("lh", ptr);                              \
++                      (x) = (__typeof__(*(ptr))) __gu_val;                    \
++                      break;                                                  \
++                      }                                                       \
++              case 4: {                                                       \
++                      s32 __gu_val = (s32) 0;                                 \
++                      __get_user_asm("lw", ptr);                              \
++                      (x) = (__typeof__(*(ptr))) __gu_val;                    \
++                      break;                                                  \
++                      }                                                       \
++              case 8: {                                                       \
++                      s64 __gu_val = (s64) 0;                                 \
++                      __GET_USER_DW(ptr);                                     \
++                      (x) = (__typeof__(*(ptr))) __gu_val;                    \
++                      break;                                                  \
++              }                                                       \
+               default: __get_user_unknown(); break;                   \
+               }                                                       \
+       }                                                               \
+-      (x) = (__typeof__(*(ptr))) __gu_val;                            \
+       __gu_err;                                                       \
+ })
diff --git a/packages/linux/linux-dm8000/linuxmips-2.6.12-gdb-fix.patch b/packages/linux/linux-dm8000/linuxmips-2.6.12-gdb-fix.patch
new file mode 100644 (file)
index 0000000..d70e2de
--- /dev/null
@@ -0,0 +1,22 @@
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/gdb-low.S 2.6.12-5.0-patched/arch/mips/kernel/gdb-low.S
+--- 2.6.12-5.0-org/arch/mips/kernel/gdb-low.S  2007-07-26 00:51:07.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/gdb-low.S      2007-12-11 12:34:52.000000000 +0100
+@@ -52,12 +52,14 @@
+               /*
+                * Called from user mode, go somewhere else.
+                */
+-              lui     k1, %hi(saved_vectors)
+               mfc0    k0, CP0_CAUSE
+               andi    k0, k0, 0x7c
+-              add     k1, k1, k0
+-              lw      k0, %lo(saved_vectors)(k1)
+-              jr      k0
++
++#ifdef CONFIG_MIPS64
++              dsll    k0, k0, 1
++#endif
++              lw      k1, %lo(saved_vectors)(k0)
++              jr      k1
+               nop
+ 1:
+               move    k0, sp
diff --git a/packages/netbase/netbase/dm8000/.mtn2git_empty b/packages/netbase/netbase/dm8000/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/netbase/netbase/dm8000/interfaces b/packages/netbase/netbase/dm8000/interfaces
new file mode 100644 (file)
index 0000000..673618f
--- /dev/null
@@ -0,0 +1,10 @@
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+# Ethernet
+auto eth0
+iface eth0 inet dhcp
+
diff --git a/packages/sysvinit/sysvinit/dm8000/.mtn2git_empty b/packages/sysvinit/sysvinit/dm8000/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/sysvinit/sysvinit/dm8000/inittab b/packages/sysvinit/sysvinit/dm8000/inittab
new file mode 100644 (file)
index 0000000..d424332
--- /dev/null
@@ -0,0 +1,33 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:3:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+S:5:respawn:/sbin/getty ttyS0 115200
+
index e9de9ea..0aa0a95 100644 (file)
@@ -11,6 +11,7 @@ SRCDATE_dm600pvr = "20070307"
 SRCDATE_dm500plus = "20070307"
 SRCDATE_dm7025 = "20050912"
 SRCDATE_dm800 = "20050912"
+SRCDATE_dm8000 = "20050912"
 SRCDATE_dm7020 = "20070307"
 
 PN = "libtuxtxt"
diff --git a/packages/wpa-supplicant/wpa-supplicant-0.4.7/dm8000/.mtn2git_empty b/packages/wpa-supplicant/wpa-supplicant-0.4.7/dm8000/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/wpa-supplicant/wpa-supplicant-0.4.7/dm8000/defconfig b/packages/wpa-supplicant/wpa-supplicant-0.4.7/dm8000/defconfig
new file mode 100644 (file)
index 0000000..214fe69
--- /dev/null
@@ -0,0 +1,163 @@
+# This file lists the configuration options that are used when building the
+# hostapd binary. All lines starting with # are ignored. Configuration option
+# lines must be commented out complete, if they are not to be included, i.e.,
+# just setting VARIABLE=n is not disabling that variable.
+#
+# This file is included in Makefile, so variables like CFLAGS and LIBS can also
+# be modified from here. In most cass, these lines should use += in order not
+# to override previous values of the variables.
+
+CFLAGS = $(TARGET_CFLAGS) -I../hostapd -I../utils -I../driver/modules -Wall -MMD
+
+# for wpa_supplicant, wpa_cli
+LIBS = $(TARGET_LDFLAGS)
+
+# for wpa_passphrase:
+LIBS_p = $(TARGET_LDFLAGS)
+
+
+# Uncomment following two lines and fix the paths if you have installed openssl
+# in non-default location
+#CFLAGS += -I/usr/local/openssl/include
+#LIBS += -L/usr/local/openssl/lib
+
+# Example configuration for various cross-compilation platforms
+
+#### sveasoft (e.g., for Linksys WRT54G) ######################################
+#CC=mipsel-uclibc-gcc
+#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
+#CFLAGS += -Os
+#CPPFLAGS += -I../src/include -I../../src/router/openssl/include
+#LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl
+###############################################################################
+
+#### openwrt (e.g., for Linksys WRT54G) #######################################
+#CC=mipsel-uclibc-gcc
+#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
+#CFLAGS += -Os
+#CPPFLAGS=-I../src/include -I../openssl-0.9.7d/include \
+#      -I../WRT54GS/release/src/include
+#LIBS = -lssl
+###############################################################################
+
+
+# Driver interface for Host AP driver
+#CONFIG_DRIVER_HOSTAP=y
+
+# Driver interface for Agere driver
+#CONFIG_DRIVER_HERMES=y
+
+# Driver interface for madwifi driver
+CONFIG_DRIVER_MADWIFI=y
+# Change include directories to match with the local setup
+#CFLAGS += -I../madwifi/wpa
+
+# Driver interface for Prism54 driver
+#CONFIG_DRIVER_PRISM54=y
+
+# Driver interface for ndiswrapper
+#CONFIG_DRIVER_NDISWRAPPER=y
+
+# Driver interface for Atmel driver
+#CONFIG_DRIVER_ATMEL=y
+
+# Driver interface for Broadcom driver
+#CONFIG_DRIVER_BROADCOM=y
+# Example path for wlioctl.h; change to match your configuration
+#CFLAGS += -I/opt/WRT54GS/release/src/include
+
+# Driver interface for Intel ipw2100 driver
+#CONFIG_DRIVER_IPW2100=y
+
+# Driver interface for the Zydas zd1211 driver
+CONFIG_DRIVER_ZD1211=y
+
+# Driver interface for Ralink rt73 driver
+CONFIG_DRIVER_RALINK=y
+
+# Driver interface for generic Linux wireless extensions
+CONFIG_DRIVER_WEXT=y
+
+# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
+#CONFIG_DRIVER_BSD=y
+#CFLAGS += -I/usr/local/include
+#LIBS += -L/usr/local/lib
+
+# Driver interface for Windows NDIS
+#CONFIG_DRIVER_NDIS=y
+#CFLAGS += -I/usr/include/w32api/ddk
+#LIBS += -L/usr/local/lib
+# For native build using mingw
+#CONFIG_NATIVE_WINDOWS=y
+# Additional directories for cross-compilation on Linux host for mingw target
+#CFLAGS += -I/opt/mingw/mingw32/include/ddk
+#LIBS += -L/opt/mingw/mingw32/lib
+#CC=mingw32-gcc
+
+# Driver interface for development testing
+#CONFIG_DRIVER_TEST=y
+
+# Enable IEEE 802.1X Supplicant (automatically included if any EAP method is
+# included)
+CONFIG_IEEE8021X_EAPOL=y
+
+# EAP-MD5 (automatically included if EAP-TTLS is enabled)
+CONFIG_EAP_MD5=y
+
+# EAP-MSCHAPv2 (automatically included if EAP-PEAP is enabled)
+CONFIG_EAP_MSCHAPV2=y
+
+# EAP-TLS
+CONFIG_EAP_TLS=y
+
+# EAL-PEAP
+CONFIG_EAP_PEAP=y
+
+# EAP-TTLS
+CONFIG_EAP_TTLS=y
+
+# EAP-GTC
+CONFIG_EAP_GTC=y
+
+# EAP-OTP
+CONFIG_EAP_OTP=y
+
+# EAP-SIM (enable CONFIG_PCSC, if EAP-SIM is used)
+#CONFIG_EAP_SIM=y
+
+# EAP-PSK (experimental; this is _not_ needed for WPA-PSK)
+#CONFIG_EAP_PSK=y
+
+# LEAP
+CONFIG_EAP_LEAP=y
+
+# EAP-AKA (enable CONFIG_PCSC, if EAP-AKA is used)
+#CONFIG_EAP_AKA=y
+
+# PKCS#12 (PFX) support (used to read private key and certificate file from
+# a file that usually has extension .p12 or .pfx)
+CONFIG_PKCS12=y
+
+# PC/SC interface for smartcards (USIM, GSM SIM)
+# Enable this if EAP-SIM or EAP-AKA is included
+#CONFIG_PCSC=y
+
+# Development testing
+#CONFIG_EAPOL_TEST=y
+
+# Replace native Linux implementation of packet sockets with libdnet/libpcap.
+# This will be automatically set for non-Linux OS.
+#CONFIG_DNET_PCAP=y
+
+# Include control interface for external programs, e.g, wpa_cli
+CONFIG_CTRL_IFACE=y
+
+# Include interface for using external supplicant (Xsupplicant) for EAP
+# authentication
+#CONFIG_XSUPPLICANT_IFACE=y
+
+# Include support for GNU Readline and History Libraries in wpa_cli.
+# When building a wpa_cli binary for distribution, please note that these
+# libraries are licensed under GPL and as such, BSD license may not apply for
+# the resulting binary.
+#CONFIG_READLINE=y
diff --git a/packages/wpa-supplicant/wpa-supplicant-0.4.7/dm8000/madwifi-bsd-fix.diff b/packages/wpa-supplicant/wpa-supplicant-0.4.7/dm8000/madwifi-bsd-fix.diff
new file mode 100644 (file)
index 0000000..036b896
--- /dev/null
@@ -0,0 +1,12 @@
+#dummy.. we dont like change anything
+--- driver_madwifi.c.orig      2005-03-18 15:12:53.392793216 +0100
++++ driver_madwifi.c   2005-03-18 15:13:09.246383104 +0100
+@@ -25,7 +25,7 @@
+ #include "eloop.h"
+ #include "wpa_supplicant.h"
+-#include <include/compat.h>
++#include <include/compat.h>
+ #include <net80211/ieee80211.h>
+ #include <net80211/ieee80211_crypto.h>
+ #include <net80211/ieee80211_ioctl.h>
index edb6f60..00c27fa 100644 (file)
@@ -6,7 +6,7 @@ HOMEPAGE = "http://hostap.epitest.fi/wpa_supplicant/"
 DEPENDS = "openssl"
 DEPENDS_mtx-1_append = "madwifi-modules"
 DEPENDS_mtx-2_append = "madwifi-modules"
-PR = "r2"
+PR = "r3"
 
 SRC_URI = "http://hostap.epitest.fi/releases/wpa_supplicant-${PV}.tar.gz \
        file://madwifi-bsd-fix.diff;patch=1;pnum=0 \
@@ -17,6 +17,9 @@ SRC_URI = "http://hostap.epitest.fi/releases/wpa_supplicant-${PV}.tar.gz \
        file://wpa_supplicant-ralink_rt73-fix.patch;patch=1 \
        file://wpa_supplicant.conf"
 
+DEPENDS_dm8000_append = "madwifi-ng"
+TARGET_CFLAGS_dm8000_append = " -I${STAGING_INCDIR}/madwifi-ng"
+
 S = "${WORKDIR}/wpa_supplicant-${PV}"
 
 do_configure () {