diff mbox

[v2,3/4] cubieboard: update build support for cubieboard 1/2/3.

Message ID 1438067769-10254-3-git-send-email-fancp2007@gmail.com
State Changes Requested
Headers show

Commit Message

Scott Fan July 28, 2015, 7:16 a.m. UTC
This patch update the cb1/cb2's defconfig to mainline u-boot version,
and bump their linux-sunxi kernel to latest stage/sunxi-3.4 branch.

Additionally, add defconfig for cubieboard3 (a.k.a. cubietruck).

Finally, support set up the SD card only to boot from network.

Signed-off-by: Scott Fan <fancp2007@gmail.com>
---
 board/cubietech/cubieboard/boot.cmd                |   7 +-
 board/cubietech/cubieboard/boot.env                |  20 +
 .../cubietech/cubieboard/linux-cubieboard2.config  | 749 ---------------------
 board/cubietech/cubieboard/mkcubiecard.sh          | 125 ++--
 board/cubietech/cubieboard/post-build.sh           |  14 -
 board/cubietech/cubieboard/post-image.sh           |  26 +
 board/cubietech/cubieboard/readme.txt              |  31 +-
 board/cubietech/cubieboard/sun4i-cubieboard.config |   4 +
 .../cubietech/cubieboard/sun7i-cubieboard2.config  |   4 +
 board/cubietech/cubieboard/sun7i-cubietruck.config |   4 +
 configs/cubieboard2_defconfig                      |  39 +-
 configs/cubieboard_defconfig                       |  38 +-
 configs/cubietruck_defconfig                       |  21 +
 13 files changed, 205 insertions(+), 877 deletions(-)
 create mode 100644 board/cubietech/cubieboard/boot.env
 delete mode 100644 board/cubietech/cubieboard/linux-cubieboard2.config
 delete mode 100755 board/cubietech/cubieboard/post-build.sh
 create mode 100755 board/cubietech/cubieboard/post-image.sh
 create mode 100644 board/cubietech/cubieboard/sun4i-cubieboard.config
 create mode 100644 board/cubietech/cubieboard/sun7i-cubieboard2.config
 create mode 100644 board/cubietech/cubieboard/sun7i-cubietruck.config
 create mode 100644 configs/cubietruck_defconfig

Comments

Thomas Petazzoni July 28, 2015, 7:50 a.m. UTC | #1
Scott,

On Tue, 28 Jul 2015 15:16:08 +0800, Scott Fan wrote:
> This patch update the cb1/cb2's defconfig to mainline u-boot version,
> and bump their linux-sunxi kernel to latest stage/sunxi-3.4 branch.
> 
> Additionally, add defconfig for cubieboard3 (a.k.a. cubietruck).
> 
> Finally, support set up the SD card only to boot from network.
> 
> Signed-off-by: Scott Fan <fancp2007@gmail.com>

When you post new versions of a patch series, please make sure to
include a changelog of what was modified. Otherwise it's difficult for
people reviewing your patches to figure out what you've changed.

See
http://buildroot.org/downloads/manual/manual.html#submitting-patches
for some discussion about this.

Thomas
Thomas Petazzoni Sept. 20, 2015, 1:58 p.m. UTC | #2
Dear Scott Fan,

On Tue, 28 Jul 2015 15:16:08 +0800, Scott Fan wrote:
> This patch update the cb1/cb2's defconfig to mainline u-boot version,
> and bump their linux-sunxi kernel to latest stage/sunxi-3.4 branch.
> 
> Additionally, add defconfig for cubieboard3 (a.k.a. cubietruck).
> 
> Finally, support set up the SD card only to boot from network.

Thanks for this patch. There are things that I like (like using the
in-kernel defconfig + a fragment), but there are also things I don't
really like. Most notably, the addition of the "boot from network"
feature. Our defconfig typically build a system that will boot from SD
or NAND, and we don't aim at supporting dozens of possibilities in
those defconfigs. They are meant to be a starting point, and the user
should know how to customize the U-Boot boot command and kernel
configuration to use network boot instead.

So, could you rework this by not adding the network boot option?

Also, maybe, instead of doing this crazy SD card setup script, could
you use the genimage tool, like is done for the Wandboard. See
configs/wandboard_config, board/wandboard/post-image.sh and
board/wandboard/genimage.cfg ?

This is optional of course, but I'd prefer to move in this direction
rather than a complete rewrite of
board/cubietech/cubieboard/mkcubiecard.sh for no real reason.

> diff --git a/board/cubietech/cubieboard/boot.cmd b/board/cubietech/cubieboard/boot.cmd
> index 849ed00..519b0e7 100644
> --- a/board/cubietech/cubieboard/boot.cmd
> +++ b/board/cubietech/cubieboard/boot.cmd
> @@ -1,4 +1,5 @@
> +setenv bootm_boot_mode sec

What is this doing?

>  setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 ${extra}
> -fatload mmc 0 0x43000000 script.bin
> -fatload mmc 0 0x48000000 uImage
> -bootm 0x48000000
> +load mmc 0:1 0x43000000 script.bin || load mmc 0:1 0x43000000 boot/script.bin
> +load mmc 0:1 0x42000000 uImage || load mmc 0:1 0x42000000 boot/uImage

Why do we have the two possible locations for the script.bin and
uImage ?

> diff --git a/board/cubietech/cubieboard/mkcubiecard.sh b/board/cubietech/cubieboard/mkcubiecard.sh
> index f1d5a9f..a5bd8ec 100755
> --- a/board/cubietech/cubieboard/mkcubiecard.sh
> +++ b/board/cubietech/cubieboard/mkcubiecard.sh
> @@ -1,4 +1,9 @@
> -#! /bin/sh
> +#!/bin/sh
> +### BEGIN INTRO
> +# mkcubiecard.sh v0.2:
> +# 2015, Scott Fan <fancp2007@gmail.com>
> +# rewrite this script more clear;
> +# add the 'netboot' argument, to make a network-bootable card.

There are too many things done in one patch. You should do several
patches doing changes to this script, one patch updating the existing
cubieboard* defconfig, and one adding the cubietruck defconfig.

And better than rewriting the script: remove it and use genimage
instead.

> diff --git a/board/cubietech/cubieboard/sun4i-cubieboard.config b/board/cubietech/cubieboard/sun4i-cubieboard.config
> new file mode 100644
> index 0000000..43eee73
> --- /dev/null
> +++ b/board/cubietech/cubieboard/sun4i-cubieboard.config
> @@ -0,0 +1,4 @@
> +CONFIG_IP_PNP=y
> +CONFIG_IP_PNP_DHCP=y
> +CONFIG_ROOT_NFS=y
> +CONFIG_SUNXI_EMAC=y
> diff --git a/board/cubietech/cubieboard/sun7i-cubieboard2.config b/board/cubietech/cubieboard/sun7i-cubieboard2.config
> new file mode 100644
> index 0000000..43eee73
> --- /dev/null
> +++ b/board/cubietech/cubieboard/sun7i-cubieboard2.config
> @@ -0,0 +1,4 @@
> +CONFIG_IP_PNP=y
> +CONFIG_IP_PNP_DHCP=y
> +CONFIG_ROOT_NFS=y
> +CONFIG_SUNXI_EMAC=y
> diff --git a/board/cubietech/cubieboard/sun7i-cubietruck.config b/board/cubietech/cubieboard/sun7i-cubietruck.config
> new file mode 100644
> index 0000000..ff7813f
> --- /dev/null
> +++ b/board/cubietech/cubieboard/sun7i-cubietruck.config
> @@ -0,0 +1,4 @@
> +CONFIG_IP_PNP=y
> +CONFIG_IP_PNP_DHCP=y
> +CONFIG_ROOT_NFS=y
> +CONFIG_SUNXI_GMAC=y

As I said above, really good idea to use config fragments! However, it
would be nicer if the files indicated that it's a kernel configuration
fragment, so maybe:

	linux-sun7i-cubietruck.config

Thanks,

Thomas
diff mbox

Patch

diff --git a/board/cubietech/cubieboard/boot.cmd b/board/cubietech/cubieboard/boot.cmd
index 849ed00..519b0e7 100644
--- a/board/cubietech/cubieboard/boot.cmd
+++ b/board/cubietech/cubieboard/boot.cmd
@@ -1,4 +1,5 @@ 
+setenv bootm_boot_mode sec
 setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 ${extra}
-fatload mmc 0 0x43000000 script.bin
-fatload mmc 0 0x48000000 uImage
-bootm 0x48000000
+load mmc 0:1 0x43000000 script.bin || load mmc 0:1 0x43000000 boot/script.bin
+load mmc 0:1 0x42000000 uImage || load mmc 0:1 0x42000000 boot/uImage
+bootm 0x42000000
diff --git a/board/cubietech/cubieboard/boot.env b/board/cubietech/cubieboard/boot.env
new file mode 100644
index 0000000..8d8fbd4
--- /dev/null
+++ b/board/cubietech/cubieboard/boot.env
@@ -0,0 +1,20 @@ 
+autoload=no
+nfsroot=/tftpboot/rootfs
+
+stderr=serial,vga
+stdin=serial,usbkbd
+stdout=serial,vga
+
+scriptfile=script.bin
+scriptaddr=0x43000000
+
+kernelfile=uImage
+kernel_addr_r=0x42000000
+
+bootm_boot_mode=sec
+console=ttyS0,115200
+
+netargs=setenv bootargs console=${console} root=/dev/nfs nfsroot=${serverip}:${nfsroot} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:off:${dnsip} ${extra}
+netboot=if test -s ${ipaddr}; then if test -s ${serverip}; then run netargs; tftp ${scriptaddr} ${serverip}:${scriptfile}; tftp ${kernel_addr_r} ${serverip}:${kernelfile}; bootm ${kernel_addr_r}; else echo WARN: Cannot find the environment variable serverip, please setenv, then saveenv and boot; fi; else run bootcmd; fi;
+
+bootcmd=dhcp; run netboot;
diff --git a/board/cubietech/cubieboard/linux-cubieboard2.config b/board/cubietech/cubieboard/linux-cubieboard2.config
deleted file mode 100644
index 1ae1519..0000000
--- a/board/cubietech/cubieboard/linux-cubieboard2.config
+++ /dev/null
@@ -1,749 +0,0 @@ 
-CONFIG_EXPERIMENTAL=y
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_AUDIT=y
-CONFIG_IRQ_DOMAIN_DEBUG=y
-CONFIG_RCU_FAST_NO_HZ=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=19
-CONFIG_CGROUPS=y
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CPUSETS=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_RESOURCE_COUNTERS=y
-CONFIG_CGROUP_MEM_RES_CTLR=y
-CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
-CONFIG_CGROUP_MEM_RES_CTLR_KMEM=y
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_CFS_BANDWIDTH=y
-CONFIG_RT_GROUP_SCHED=y
-CONFIG_BLK_CGROUP=y
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_PERF_COUNTERS=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_JUMP_LABEL=y
-CONFIG_MODULES=y
-CONFIG_MODULE_FORCE_LOAD=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_PARTITION_ADVANCED=y
-CONFIG_OSF_PARTITION=y
-CONFIG_AMIGA_PARTITION=y
-CONFIG_MAC_PARTITION=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_MINIX_SUBPARTITION=y
-CONFIG_SOLARIS_X86_PARTITION=y
-CONFIG_UNIXWARE_DISKLABEL=y
-CONFIG_SGI_PARTITION=y
-CONFIG_SUN_PARTITION=y
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-CONFIG_CFQ_GROUP_IOSCHED=y
-CONFIG_ARCH_SUN7I=y
-CONFIG_SUNXI_SCALING_MIN=408
-# CONFIG_CACHE_L2X0 is not set
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_SMP=y
-CONFIG_ARM_ARCH_TIMER=y
-CONFIG_NR_CPUS=2
-CONFIG_PREEMPT=y
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_HIGHMEM=y
-CONFIG_COMPACTION=y
-CONFIG_KSM=y
-CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/mmc0p1 rw init=/init loglevel=8"
-CONFIG_KEXEC=y
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_STAT=m
-CONFIG_CPU_FREQ_DEFAULT_GOV_FANTASY=y
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-CONFIG_CPU_FREQ_USR_EVNT_NOTIFY=y
-CONFIG_CPU_FREQ_DVFS=y
-CONFIG_CPU_IDLE=y
-CONFIG_VFP=y
-CONFIG_NEON=y
-CONFIG_BINFMT_MISC=y
-CONFIG_PM_RUNTIME=y
-CONFIG_PM_DEBUG=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_FIB_TRIE_STATS=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-CONFIG_NET_IPIP=y
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_ARPD=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=y
-CONFIG_INET_ESP=y
-CONFIG_INET_IPCOMP=y
-CONFIG_INET_DIAG=m
-CONFIG_INET_UDP_DIAG=m
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=y
-CONFIG_TCP_CONG_WESTWOOD=y
-CONFIG_TCP_CONG_HTCP=y
-CONFIG_TCP_CONG_HSTCP=y
-CONFIG_TCP_CONG_HYBLA=y
-CONFIG_TCP_CONG_SCALABLE=y
-CONFIG_TCP_CONG_LP=y
-CONFIG_TCP_CONG_VENO=y
-CONFIG_TCP_CONG_YEAH=y
-CONFIG_TCP_CONG_ILLINOIS=y
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_PRIVACY=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IPV6_PIMSM_V2=y
-# CONFIG_ANDROID_PARANOID_NETWORK is not set
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NETWORK_PHY_TIMESTAMPING=y
-CONFIG_NETFILTER=y
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMEOUT=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CT_PROTO_DCCP=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=m
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-CONFIG_NETFILTER_TPROXY=m
-CONFIG_NETFILTER_XT_SET=m
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
-CONFIG_NETFILTER_XT_TARGET_LOG=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_CPU=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_NFACCT=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA2=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_IP_SET=m
-CONFIG_IP_SET_BITMAP_IP=m
-CONFIG_IP_SET_BITMAP_IPMAC=m
-CONFIG_IP_SET_BITMAP_PORT=m
-CONFIG_IP_SET_HASH_IP=m
-CONFIG_IP_SET_HASH_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETPORT=m
-CONFIG_IP_SET_HASH_NETIFACE=m
-CONFIG_IP_SET_LIST_SET=m
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_PROTO_SCTP=y
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_PE_SIP=m
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_RPFILTER=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_REJECT_SKERR=y
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_NF_NAT=m
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-CONFIG_NF_CONNTRACK_IPV6=m
-CONFIG_IP6_NF_QUEUE=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RPFILTER=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_TARGET_REJECT_SKERR=y
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_ULOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-CONFIG_L2TP=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_BATMAN_ADV=m
-CONFIG_OPENVSWITCH=m
-CONFIG_NETPRIO_CGROUP=m
-CONFIG_NET_PKTGEN=m
-CONFIG_IRDA=m
-CONFIG_IRLAN=m
-CONFIG_IRNET=m
-CONFIG_IRCOMM=m
-CONFIG_IRDA_ULTRA=y
-CONFIG_IRTTY_SIR=m
-CONFIG_KINGSUN_DONGLE=m
-CONFIG_KSDAZZLE_DONGLE=m
-CONFIG_KS959_DONGLE=m
-CONFIG_USB_IRDA=m
-CONFIG_SIGMATEL_FIR=m
-CONFIG_MCS_FIR=m
-CONFIG_BT=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
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-CONFIG_AF_RXRPC=m
-CONFIG_RXKAD=m
-CONFIG_CFG80211=y
-CONFIG_CFG80211_DEVELOPER_WARNINGS=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_LIB80211=m
-CONFIG_CFG80211_ALLOW_RECONNECT=y
-CONFIG_MAC80211=m
-CONFIG_MAC80211_MESH=y
-CONFIG_WIMAX=m
-CONFIG_RFKILL=y
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-# CONFIG_FIRMWARE_IN_KERNEL is not set
-CONFIG_CONNECTOR=y
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_CRYPTOLOOP=y
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=2
-CONFIG_SUNXI_DBGREG=m
-CONFIG_BLK_DEV_SD=y
-CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_SCSI_MULTI_LUN=y
-CONFIG_ATA=y
-CONFIG_SATA_AHCI_PLATFORM=y
-CONFIG_SW_SATA_AHCI_PLATFORM=y
-CONFIG_NETDEVICES=y
-CONFIG_BONDING=m
-# CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_CHELSIO is not set
-# CONFIG_NET_VENDOR_FARADAY is not set
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_SMSC is not set
-# CONFIG_NET_VENDOR_STMICRO is not set
-CONFIG_SUNXI_EMAC=y
-CONFIG_PHYLIB=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOE=m
-CONFIG_PPPOLAC=m
-CONFIG_PPPOPNS=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_USB_IPHETH=m
-CONFIG_ATH_COMMON=m
-CONFIG_ATH9K=m
-CONFIG_RTL8192CU=m
-CONFIG_RTL8192CU_SW=m
-CONFIG_RTL8188EU=m
-CONFIG_RTXX7X_SW=m
-CONFIG_INPUT_POLLDEV=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_JOYDEV=y
-CONFIG_INPUT_EVDEV=y
-CONFIG_INPUT_KEYRESET=y
-CONFIG_KEYBOARD_HV2605_KEYBOARD=m
-CONFIG_INPUT_JOYSTICK=y
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_GT801=m
-CONFIG_TOUCHSCREEN_GT811=m
-CONFIG_TOUCHSCREEN_GT818=m
-CONFIG_TOUCHSCREEN_FT5X_TS=m
-CONFIG_TOUCHSCREEN_ZT8031=m
-CONFIG_GSENSOR=y
-CONFIG_SENSORS_BMA250=m
-CONFIG_MEMSIC_ECOMPASS=m
-CONFIG_SENSORS_MXC622X=m
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_NONSTANDARD=y
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=8
-CONFIG_SERIAL_8250_RUNTIME_UARTS=8
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_SPI=y
-CONFIG_SPI_DEBUG=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_SUNXI=m
-CONFIG_POWER_SUPPLY=y
-CONFIG_AW_AXP=y
-# CONFIG_HWMON is not set
-CONFIG_REGULATOR=y
-CONFIG_MEDIA_SUPPORT=y
-CONFIG_VIDEO_DEV=y
-CONFIG_MEDIA_TUNER_CUSTOMISE=y
-# CONFIG_MEDIA_TUNER_SIMPLE is not set
-# CONFIG_MEDIA_TUNER_TDA8290 is not set
-# CONFIG_MEDIA_TUNER_TDA827X is not set
-# CONFIG_MEDIA_TUNER_TDA18271 is not set
-# CONFIG_MEDIA_TUNER_TDA9887 is not set
-# CONFIG_MEDIA_TUNER_TEA5767 is not set
-# CONFIG_MEDIA_TUNER_MT20XX is not set
-# CONFIG_MEDIA_TUNER_MT2060 is not set
-# CONFIG_MEDIA_TUNER_MT2266 is not set
-# CONFIG_MEDIA_TUNER_MT2131 is not set
-# CONFIG_MEDIA_TUNER_QT1010 is not set
-# CONFIG_MEDIA_TUNER_MXL5005S is not set
-# CONFIG_MEDIA_TUNER_MXL5007T is not set
-# CONFIG_MEDIA_TUNER_MC44S803 is not set
-# CONFIG_MEDIA_TUNER_MAX2165 is not set
-# CONFIG_MEDIA_TUNER_TDA18218 is not set
-# CONFIG_MEDIA_TUNER_TDA18212 is not set
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_JL2005BCD=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_HDPVR=m
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_USBVISION=m
-CONFIG_USB_ET61X251=m
-CONFIG_USB_SN9C102=m
-CONFIG_USB_PWC=m
-CONFIG_VIDEO_CPIA2=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_SOC_CAMERA=m
-CONFIG_SOC_CAMERA_IMX074=m
-CONFIG_SOC_CAMERA_MT9M001=m
-CONFIG_SOC_CAMERA_MT9M111=m
-CONFIG_SOC_CAMERA_MT9T031=m
-CONFIG_SOC_CAMERA_MT9T112=m
-CONFIG_SOC_CAMERA_MT9V022=m
-CONFIG_SOC_CAMERA_RJ54N1=m
-CONFIG_SOC_CAMERA_TW9910=m
-CONFIG_SOC_CAMERA_PLATFORM=m
-CONFIG_SOC_CAMERA_OV2640=m
-CONFIG_SOC_CAMERA_OV5642=m
-CONFIG_SOC_CAMERA_OV6650=m
-CONFIG_SOC_CAMERA_OV772X=m
-CONFIG_SOC_CAMERA_OV9640=m
-CONFIG_SOC_CAMERA_OV9740=m
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-# CONFIG_VIDEO_CSI_SUN4I is not set
-CONFIG_RADIO_SI470X=y
-CONFIG_USB_SI470X=m
-CONFIG_I2C_SI470X=m
-CONFIG_USB_MR800=m
-CONFIG_USB_DSBR=m
-CONFIG_RADIO_SI4713=m
-CONFIG_USB_KEENE=m
-CONFIG_RADIO_TEA5764=m
-CONFIG_RADIO_SAA7706H=m
-CONFIG_RADIO_TEF6862=m
-CONFIG_RADIO_WL1273=m
-CONFIG_AUDIO_ENGINE=y
-CONFIG_PA_CONTROL=y
-CONFIG_DRM=m
-CONFIG_DRM_MALI=m
-CONFIG_DRM_UDL=m
-CONFIG_MALI=m
-CONFIG_MALI400_DEBUG=y
-CONFIG_MALI400_GPU_UTILIZATION=y
-CONFIG_FB=y
-CONFIG_FB_SUNXI=y
-CONFIG_FB_SUNXI_LCD=y
-CONFIG_FB_SUNXI_HDMI=y
-CONFIG_HDMI_CEC=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_LINUX_CLUT224 is not set
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_SEQUENCER_OSS=y
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_VERBOSE_PRINTK=y
-CONFIG_SND_ALOOP=m
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_SOC=y
-CONFIG_SND_SUNXI_SOC_SPDIF=y
-CONFIG_HIDRAW=y
-CONFIG_UHID=y
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-CONFIG_HID_KYE=y
-CONFIG_HID_LOGITECH_DJ=y
-CONFIG_LOGITECH_FF=y
-# CONFIG_LOGIWHEELS_FF is not set
-CONFIG_USB=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_OHCI_HCD=y
-CONFIG_USB_STORAGE=y
-CONFIG_USB_STORAGE_REALTEK=y
-CONFIG_USB_STORAGE_DATAFAB=y
-CONFIG_USB_STORAGE_FREECOM=y
-CONFIG_USB_STORAGE_ISD200=y
-CONFIG_USB_STORAGE_USBAT=y
-CONFIG_USB_STORAGE_SDDR09=y
-CONFIG_USB_STORAGE_SDDR55=y
-CONFIG_USB_STORAGE_JUMPSHOT=y
-CONFIG_USB_STORAGE_ALAUDA=y
-CONFIG_USB_STORAGE_ONETOUCH=y
-CONFIG_USB_STORAGE_KARMA=y
-CONFIG_USB_STORAGE_CYPRESS_ATACB=y
-CONFIG_USB_STORAGE_ENE_UB6250=y
-CONFIG_USB_SERIAL=y
-CONFIG_USB_SERIAL_CONSOLE=y
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_GADGET=y
-CONFIG_USB_FILE_STORAGE=m
-CONFIG_USB_FILE_STORAGE_TEST=y
-CONFIG_MMC=y
-# CONFIG_MMC_BLOCK_BOUNCE is not set
-CONFIG_MMC_USHC=y
-CONFIG_MMC_SUNXI_POWER_CONTROL=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_SUNXI=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_BACKLIGHT=y
-CONFIG_LEDS_TRIGGER_CPU=y
-CONFIG_LEDS_TRIGGER_GPIO=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_SUN4I=y
-CONFIG_STAGING=y
-CONFIG_ANDROID=y
-CONFIG_ANDROID_BINDER_IPC=y
-CONFIG_ANDROID_LOGGER=y
-CONFIG_ANDROID_RAM_CONSOLE=y
-CONFIG_ANDROID_LOW_MEMORY_KILLER=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-CONFIG_REISERFS_FS=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-CONFIG_QFMT_V2=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=y
-CONFIG_CUSE=y
-CONFIG_FSCACHE=y
-CONFIG_FSCACHE_STATS=y
-CONFIG_CACHEFILES=y
-CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
-CONFIG_NTFS_FS=y
-CONFIG_NTFS_RW=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_HFS_FS=y
-CONFIG_HFSPLUS_FS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="y"
-CONFIG_ROOT_NFS=y
-CONFIG_NFS_USE_LEGACY_DNS=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_FAULT_INJECTION=y
-CONFIG_CIFS=y
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_936=y
-CONFIG_NLS_CODEPAGE_950=y
-CONFIG_NLS_CODEPAGE_932=y
-CONFIG_NLS_CODEPAGE_949=y
-CONFIG_NLS_ASCII=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
-# CONFIG_ENABLE_WARN_DEPRECATED is not set
-CONFIG_FRAME_WARN=2048
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_STRIP_ASM_SYMS=y
-CONFIG_DEBUG_FS=y
-CONFIG_DEBUG_SECTION_MISMATCH=y
-CONFIG_DEBUG_KERNEL=y
-CONFIG_DEBUG_SHIRQ=y
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_SCHEDSTATS=y
-CONFIG_TIMER_STATS=y
-CONFIG_DEBUG_INFO=y
-CONFIG_DEBUG_LIST=y
-CONFIG_BOOT_PRINTK_DELAY=y
-CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y
-# CONFIG_FTRACE is not set
-CONFIG_DYNAMIC_DEBUG=y
-CONFIG_STRICT_DEVMEM=y
-CONFIG_DEBUG_LL=y
-CONFIG_SECURITYFS=y
-# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
-CONFIG_CRYPTO_GF128MUL=y
-CONFIG_CRYPTO_SEQIV=y
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_ZLIB=y
-CONFIG_CRYPTO_LZO=y
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-# CONFIG_CRYPTO_HW is not set
-CONFIG_LIBCRC32C=y
diff --git a/board/cubietech/cubieboard/mkcubiecard.sh b/board/cubietech/cubieboard/mkcubiecard.sh
index f1d5a9f..a5bd8ec 100755
--- a/board/cubietech/cubieboard/mkcubiecard.sh
+++ b/board/cubietech/cubieboard/mkcubiecard.sh
@@ -1,4 +1,9 @@ 
-#! /bin/sh
+#!/bin/sh
+### BEGIN INTRO
+# mkcubiecard.sh v0.2:
+# 2015, Scott Fan <fancp2007@gmail.com>
+# rewrite this script more clear;
+# add the 'netboot' argument, to make a network-bootable card.
 # mkCubieCard.sh v0.1:
 # 2013, Carlo Caione <carlo.caione@gmail.com>
 # heavely based on :
@@ -9,13 +14,21 @@ 
 # (c) Copyright 2009 Graeme Gregory <dp@xora.org.uk>
 # Licensed under terms of GPLv2
 #
+# Bootable SD card
+# http://linux-sunxi.org/Bootable_SD_card
+#
 # Parts of the procudure base on the work of Denys Dmytriyenko
 # http://wiki.omap.com/index.php/MMC_Boot_Format
+### END INTRO
 
 IMAGES_DIR=$1
+DRIVE=$2
+NETBOOT=$3
+
 SPL_IMG=$IMAGES_DIR/sunxi-spl.bin
 SPL_UBOOT=$IMAGES_DIR/u-boot-sunxi-with-spl.bin
 UBOOT_IMG=$IMAGES_DIR/u-boot.bin
+UBOOT_ENV=$IMAGES_DIR/u-boot-env.bin
 UIMAGE=$IMAGES_DIR/uImage
 BIN_BOARD_FILE=$IMAGES_DIR/script.bin
 ROOTFS=$IMAGES_DIR/rootfs.tar
@@ -23,8 +36,8 @@  BOOT_CMD_H=$IMAGES_DIR/boot.scr
 
 export LC_ALL=C
 
-if [ $# -ne 2 ]; then
-	echo "Usage: $0 <images_dir> <drive>"
+if [ $# -lt 2 ]; then
+	echo "Usage: $0 <images_dir> <drive> [netboot: yes|no]"
 	exit 1;
 fi
 
@@ -35,6 +48,7 @@  fi
 
 if [ ! -f $SPL_IMG  -a ! -f $SPL_UBOOT ] ||
    [ ! -f $UBOOT_IMG ] ||
+   [ ! -f $UBOOT_ENV ] ||
    [ ! -f $UIMAGE ] ||
    [ ! -f $BIN_BOARD_FILE ] ||
    [ ! -f $ROOTFS ] ||
@@ -43,57 +57,81 @@  if [ ! -f $SPL_IMG  -a ! -f $SPL_UBOOT ] ||
 	exit 1
 fi
 
-DRIVE=$2
-P1=`mktemp -d`
-P2=`mktemp -d`
 
-dd if=/dev/zero of=$DRIVE bs=1M count=3
+####################
+# Preparing
+####################
+echo `fdisk -l $DRIVE | grep Disk | grep bytes`
 
-SIZE=`fdisk -l $DRIVE | grep Disk | grep bytes | awk '{print $5}'`
+# erase the first part of your card except the partition table
+echo "\n>>>> Erasing the first part of $DRIVE ..."
+dd if=/dev/zero of=$DRIVE bs=1024 count=1023 seek=1
 
-echo DISK SIZE - $SIZE bytes
+####################
+# Bootloader
+####################
+if [ -e $SPL_UBOOT ]; then
+	echo "\n>>>> Writing $SPL_UBOOT ..."
+	dd if=$SPL_UBOOT of=$DRIVE bs=1024 seek=8
+else
+	# write SPL
+	echo "\n>>>> Writing $SPL_IMG ..."
+	dd if=$SPL_IMG of=$DRIVE bs=1024 seek=8
+	# write u-boot
+	echo "\n>>>> Writing $UBOOT_IMG ..."
+	dd if=$UBOOT_IMG of=$DRIVE bs=1024 seek=32
+fi
 
+if [ "xyes" = "x$NETBOOT" ]; then
+	# write environment for netboot
+	echo "\n>>>> Writing $UBOOT_ENV ..."
+	dd if=$UBOOT_ENV of=$DRIVE bs=1024 seek=544
+	exit 0
+fi
 
-# ~2048, 16MB, FAT, bootable
-# ~rest of drive, Ext4
-{
-echo 32,512,0x0C,*
-echo 544,,,-
-} | sfdisk -D $DRIVE
+####################
+# Partitioning
+####################
+# a 16MB boot partition starting at 1MB,
+# and the rest as rootfs partition
+echo "\n>>>> Partitioning ..."
+sfdisk -R $DRIVE
+cat <<EOT | sfdisk --in-order -L -uM $DRIVE
+1,16,c
+,,L
+EOT
 
 sleep 1
 
-if [ -b ${DRIVE}1 ]; then
-	D1=${DRIVE}1
-	umount ${DRIVE}1
-	mkfs.vfat -n "boot" ${DRIVE}1
+# format the first partition
+[ -b ${DRIVE}1 ] && D1=${DRIVE}1
+[ -b ${DRIVE}p1 ] && D1=${DRIVE}p1
+
+if [ -n $D1 ]; then
+	echo "\n>>>> Formatting boot partition $D1 ..."
+	mkfs.vfat -v -n "BOOT" $D1
 else
-	if [ -b ${DRIVE}p1 ]; then
-		D1=${DRIVE}p1
-		umount ${DRIVE}p1
-		mkfs.vfat -n "boot" ${DRIVE}p1
-	else
-		echo "Cant find boot partition in /dev"
-		exit 1
-	fi
+	echo "Cannot find boot partition in /dev"
+	exit 1
 fi
 
+# format the second partition
+[ -b ${DRIVE}2 ] && D2=${DRIVE}2
+[ -b ${DRIVE}p2 ] && D2=${DRIVE}p2
 
-if [ -b ${DRIVE}2 ]; then
-	D2=${DRIVE}2
-	umount ${DRIVE}2
-	mkfs.ext4 -L "Cubie" ${DRIVE}2
+if [ -n $D2 ]; then
+	echo "\n>>>> Formatting rootfs partition $D2 ..."
+	mkfs.ext4 -v -L "Cubie" $D2
 else
-	if [ -b ${DRIVE}p2 ]; then
-		D2=${DRIVE}p2
-		umount ${DRIVE}p2
-		mkfs.ext4 -L "Cubie" ${DRIVE}p2
-	else
-		echo "Cant find rootfs partition in /dev"
-		exit 1
-	fi
+	echo "Cannot find rootfs partition in /dev"
+	exit 1
 fi
 
+echo ">>>> Writing boot files and rootfs files ..."
+
+P1=`mktemp -d`
+P2=`mktemp -d`
+
 mount $D1 $P1
 mount $D2 $P2
 
@@ -114,11 +152,4 @@  umount $D2
 rm -fr $P1
 rm -fr $P2
 
-if [ -e $SPL_UBOOT ]; then
-	dd if=$SPL_UBOOT of=$DRIVE bs=1024 seek=8
-else
-	# write SPL
-	dd if=$SPL_IMG of=$DRIVE bs=1024 seek=8
-	# write mele u-boot
-	dd if=$UBOOT_IMG of=$DRIVE bs=1024 seek=32
-fi
+echo "All completed."
diff --git a/board/cubietech/cubieboard/post-build.sh b/board/cubietech/cubieboard/post-build.sh
deleted file mode 100755
index 1b0258c..0000000
--- a/board/cubietech/cubieboard/post-build.sh
+++ /dev/null
@@ -1,14 +0,0 @@ 
-#!/bin/sh
-# post-build.sh for CubieBoard
-# 2013, Carlo Caione <carlo.caione@gmail.com>
-
-BOARD_DIR="$(dirname $0)"
-MKIMAGE=$HOST_DIR/usr/bin/mkimage
-BOOT_CMD=$BOARD_DIR/boot.cmd
-BOOT_CMD_H=$BINARIES_DIR/boot.scr
-
-# U-Boot script
-if [ -e $MKIMAGE -a -e $BOOT_CMD ];
-then
-	$MKIMAGE -C none -A arm -T script -d $BOOT_CMD $BOOT_CMD_H
-fi
diff --git a/board/cubietech/cubieboard/post-image.sh b/board/cubietech/cubieboard/post-image.sh
new file mode 100755
index 0000000..4d792a4
--- /dev/null
+++ b/board/cubietech/cubieboard/post-image.sh
@@ -0,0 +1,26 @@ 
+#!/bin/sh
+# post-image.sh for CubieBoard
+# 2015, Scott Fan <fancp2007@gmail.com>
+# 2013, Carlo Caione <carlo.caione@gmail.com>
+
+BOARD_DIR="$(dirname $0)"
+MKIMAGE=$HOST_DIR/usr/bin/mkimage
+BOOT_CMD=$BOARD_DIR/boot.cmd
+BOOT_CMD_H=$BINARIES_DIR/boot.scr
+
+MKENVIMAGE=$HOST_DIR/usr/bin/mkenvimage
+BOOT_ENV_SIZE=0x20000
+BOOT_ENV_SRC=$BOARD_DIR/boot.env
+BOOT_ENV_BIN=$BINARIES_DIR/u-boot-env.bin
+
+# U-Boot script
+if [ -e $MKIMAGE -a -e $BOOT_CMD ];
+then
+	$MKIMAGE -C none -A arm -T script -d $BOOT_CMD $BOOT_CMD_H
+fi
+
+# U-Boot environment
+if [ -e $MKENVIMAGE -a -e $BOOT_ENV_SRC ];
+then
+	$MKENVIMAGE -s $BOOT_ENV_SIZE -o $BOOT_ENV_BIN $BOOT_ENV_SRC
+fi
diff --git a/board/cubietech/cubieboard/readme.txt b/board/cubietech/cubieboard/readme.txt
index 81cc5e4..af3e997 100644
--- a/board/cubietech/cubieboard/readme.txt
+++ b/board/cubietech/cubieboard/readme.txt
@@ -1,4 +1,4 @@ 
-cubieboard and cubieboard2
+cubieboard, cubieboard2 and cubietruck
 
 -----
 Intro
@@ -13,11 +13,16 @@  For more information, please see http://linux-sunxi.org/FirstSteps
 How to build it
 ---------------
 
-You need to use the cubieboard_defconfig or cubieboard2_defconfig, to do so:
+You need to use the cubie*_defconfig, to do so:
+cubieboard1 (a.k.a. cubieboard):
  * make cubieboard_defconfig
-or
+
+cubieboard2:
  * make cubieboard2_defconfig
 
+cubieboard3 (a.k.a. cubietruck):
+ * make cubietruck_defconfig
+
 And to compile:
  * make
 
@@ -31,10 +36,10 @@  After building, you should obtain this tree:
     +-- rootfs.tar
     +-- boot.scr
     +-- script.bin
-    +-- sunxi-spl.bin
     +-- u-boot.bin
-    +-- u-boot-sunxi-with-spl.bin (optional)
-    `-- uImage
+    +-- u-boot-env.bin
+    +-- u-boot-sunxi-with-spl.bin
+    +-- uImage
 
 --------------------------
 How setting up the SD card
@@ -54,9 +59,21 @@  Use dmesg to find out where the SD card is attached in the /dev tree
 where:
  - <images_dir> is the directory containing the generated files (usually
    output/images)
- - <device> is the device file of the SD card (usually /dev/sdX)
+ - <device> is the device file of the SD card (usually /dev/mmcblk0 or /dev/sdX)
+
 
+Alternately, you may set up the SD card only to boot from the network:
+
+# sudo ./mkcubiecard.sh <images_dir> <device> [netboot]
+
+where:
+ - <images_dir> and <device> as above
+ - [netboot] specify whether to boot from network (should yes, if you want)
 
+ATTENTION: This operation will keep the partition table of your SD card, will not
+           write any data to the existing partitions. However, if the first
+           partition ahead of the 1MB offset, it will be damaged.
 
 --
+Scott Fan <fancp2007@gmail.com>
 Carlo Caione <carlo.caione@gmail.com>
diff --git a/board/cubietech/cubieboard/sun4i-cubieboard.config b/board/cubietech/cubieboard/sun4i-cubieboard.config
new file mode 100644
index 0000000..43eee73
--- /dev/null
+++ b/board/cubietech/cubieboard/sun4i-cubieboard.config
@@ -0,0 +1,4 @@ 
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_SUNXI_EMAC=y
diff --git a/board/cubietech/cubieboard/sun7i-cubieboard2.config b/board/cubietech/cubieboard/sun7i-cubieboard2.config
new file mode 100644
index 0000000..43eee73
--- /dev/null
+++ b/board/cubietech/cubieboard/sun7i-cubieboard2.config
@@ -0,0 +1,4 @@ 
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_SUNXI_EMAC=y
diff --git a/board/cubietech/cubieboard/sun7i-cubietruck.config b/board/cubietech/cubieboard/sun7i-cubietruck.config
new file mode 100644
index 0000000..ff7813f
--- /dev/null
+++ b/board/cubietech/cubieboard/sun7i-cubietruck.config
@@ -0,0 +1,4 @@ 
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_SUNXI_GMAC=y
diff --git a/configs/cubieboard2_defconfig b/configs/cubieboard2_defconfig
index f85760d..41d5266 100644
--- a/configs/cubieboard2_defconfig
+++ b/configs/cubieboard2_defconfig
@@ -1,40 +1,21 @@ 
-# Architecture
 BR2_arm=y
 BR2_cortex_a7=y
-
-# System configuration
+BR2_KERNEL_HEADERS_3_4=y
 BR2_TARGET_GENERIC_HOSTNAME="Cubieboard2"
 BR2_TARGET_GENERIC_ISSUE="Welcome to use Cubieboard!"
-BR2_TARGET_GENERIC_GETTY=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/cubietech/cubieboard/post-build.sh"
-
-# Additional tools
-BR2_PACKAGE_HOST_SUNXI_TOOLS=y
-BR2_PACKAGE_HOST_UBOOT_TOOLS=y
-BR2_PACKAGE_SUNXI_TOOLS=y
-BR2_PACKAGE_SUNXI_BOARDS=y
-BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE="a20/cubieboard2.fex"
-
-# Kernel headers
-BR2_KERNEL_HEADERS_3_4=y
-
-# Kernel
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/cubietech/cubieboard/post-image.sh"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux-sunxi/linux-sunxi.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="5dda5145c877335e17bd9ca48954841acc0f785a"
-BR2_LINUX_KERNEL_VERSION="sunxi-3.4"
-BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
-BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/cubietech/cubieboard/linux-cubieboard2.config"
-
-# Bootloaders
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d47d367036be38c5180632ec8a3ad169a4593a88"
+BR2_LINUX_KERNEL_DEFCONFIG="sun7i"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/cubietech/cubieboard/sun7i-cubieboard2.config"
+BR2_PACKAGE_SUNXI_TOOLS=y
+BR2_PACKAGE_SUNXI_BOARDS=y
+BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE="a20/cubieboard2.fex"
 BR2_TARGET_UBOOT=y
-BR2_TARGET_UBOOT_BOARDNAME="cubieboard2"
-BR2_TARGET_UBOOT_CUSTOM_GIT=y
-BR2_TARGET_UBOOT_VERSION="sunxi"
-BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux-sunxi/u-boot-sunxi.git"
-BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="b4bca5e0651b460a4511582f07a935cb48f74948"
-BR2_TARGET_UBOOT_FORMAT_BIN=y
+BR2_TARGET_UBOOT_BOARDNAME="Cubieboard2"
 BR2_TARGET_UBOOT_SPL=y
 BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin"
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y
diff --git a/configs/cubieboard_defconfig b/configs/cubieboard_defconfig
index 1da019f..85dc794 100644
--- a/configs/cubieboard_defconfig
+++ b/configs/cubieboard_defconfig
@@ -1,39 +1,21 @@ 
-# Architecture
 BR2_arm=y
 BR2_cortex_a8=y
-
-# System configuration
+BR2_KERNEL_HEADERS_3_4=y
 BR2_TARGET_GENERIC_HOSTNAME="Cubieboard"
 BR2_TARGET_GENERIC_ISSUE="Welcome to use Cubieboard!"
-BR2_TARGET_GENERIC_GETTY=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/cubietech/cubieboard/post-build.sh"
-
-# Additional tools
-BR2_PACKAGE_HOST_SUNXI_TOOLS=y
-BR2_PACKAGE_HOST_UBOOT_TOOLS=y
-BR2_PACKAGE_SUNXI_TOOLS=y
-BR2_PACKAGE_SUNXI_BOARDS=y
-BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE="a10/cubieboard.fex"
-
-# Kernel headers
-BR2_KERNEL_HEADERS_3_4=y
-
-# Kernel
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/cubietech/cubieboard/post-image.sh"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux-sunxi/linux-sunxi.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="274a66a7bfcbaabb88d63e4eba161965383cc416"
-BR2_LINUX_KERNEL_VERSION="sunxi-3.4"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d47d367036be38c5180632ec8a3ad169a4593a88"
 BR2_LINUX_KERNEL_DEFCONFIG="sun4i"
-
-# Bootloaders
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/cubietech/cubieboard/sun4i-cubieboard.config"
+BR2_PACKAGE_SUNXI_TOOLS=y
+BR2_PACKAGE_SUNXI_BOARDS=y
+BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE="a10/cubieboard.fex"
 BR2_TARGET_UBOOT=y
-BR2_TARGET_UBOOT_BOARDNAME="cubieboard"
-BR2_TARGET_UBOOT_CUSTOM_GIT=y
-BR2_TARGET_UBOOT_VERSION="sunxi"
-BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux-sunxi/u-boot-sunxi.git"
-BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="1a8ac55429f7f8cc9f100c1cf2dc0195cf81e76f"
-BR2_TARGET_UBOOT_FORMAT_BIN=y
+BR2_TARGET_UBOOT_BOARDNAME="Cubieboard"
 BR2_TARGET_UBOOT_SPL=y
-BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin"
+BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin"
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y
diff --git a/configs/cubietruck_defconfig b/configs/cubietruck_defconfig
new file mode 100644
index 0000000..01a5fc2
--- /dev/null
+++ b/configs/cubietruck_defconfig
@@ -0,0 +1,21 @@ 
+BR2_arm=y
+BR2_cortex_a7=y
+BR2_KERNEL_HEADERS_3_4=y
+BR2_TARGET_GENERIC_HOSTNAME="Cubietruck"
+BR2_TARGET_GENERIC_ISSUE="Welcome to use Cubieboard!"
+BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/cubietech/cubieboard/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux-sunxi/linux-sunxi.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d47d367036be38c5180632ec8a3ad169a4593a88"
+BR2_LINUX_KERNEL_DEFCONFIG="sun7i"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/cubietech/cubieboard/sun7i-cubietruck.config"
+BR2_PACKAGE_SUNXI_TOOLS=y
+BR2_PACKAGE_SUNXI_BOARDS=y
+BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE="a20/cubietruck.fex"
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="Cubietruck"
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin"
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y