Printk and command line changes.

Increase the kernel buffer size for printk
to 1MB.

DISABLE! PRINTK_PERSIST, the kernel hangs at boot
when this is actually enabled so leaving it off.
Will look at what's going on with that later.

Copy how MIPS does command line handling.  If
CMDLINE_BOOL is set to y, then append the baked in
command line to the command line from the bootloader.
If CMDLINE_OVERRIDE is also set, then only use the
baked in command line.

Change-Id: Ia647a2e84ce44b6d684dd038626bba9b72ffcc7f
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 2fe864e..731f1a2 100755
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1312,6 +1312,14 @@
 	  Say Y here if you intend to execute your compressed kernel image
 	  (zImage) directly from ROM or flash.  If unsure, say N.
 
+config CMDLINE_BOOL
+	bool "Built-in kernel command line"
+	default n
+
+config CMDLINE_OVERRIDE
+	bool "Built-in command line overrides firware arguments"
+	default n
+
 config CMDLINE
 	string "Default kernel command string"
 	default ""
diff --git a/arch/arm/configs/gflt110_defconfig b/arch/arm/configs/gflt110_defconfig
index 308cc6e..5b64184 100644
--- a/arch/arm/configs/gflt110_defconfig
+++ b/arch/arm/configs/gflt110_defconfig
@@ -1,6 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.32.11
+# Thu Aug  1 14:07:56 2013
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -64,9 +65,15 @@
 # CONFIG_NET_NS is not set
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
+CONFIG_INITRAMFS_ROOT_UID=0
+CONFIG_INITRAMFS_ROOT_GID=0
 CONFIG_RD_GZIP=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_LZMA=y
+# CONFIG_INITRAMFS_COMPRESSION_NONE is not set
+CONFIG_INITRAMFS_COMPRESSION_GZIP=y
+# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set
+# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
@@ -77,6 +84,7 @@
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
+# CONFIG_PRINTK_PERSIST is not set
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_BASE_FULL=y
@@ -193,6 +201,7 @@
 # Feroceon SoC options
 #
 CONFIG_MV88F6500=y
+CONFIG_MACH_GFLT200=y
 # CONFIG_JTAG_DEBUG is not set
 
 #
@@ -399,25 +408,6 @@
 #
 # Telephony options
 #
-CONFIG_MV_PHONE=y
-CONFIG_MV_TDM_SUPPORT=y
-# CONFIG_MV_COMM_UNIT_SUPPORT is not set
-# CONFIG_SILABS_SLIC_SUPPORT is not set
-CONFIG_ZARLINK_SLIC_SUPPORT=y
-CONFIG_ZARLINK_SLIC_VE880=y
-# CONFIG_ZARLINK_SLIC_VE890 is not set
-# CONFIG_ZARLINK_SLIC_VE792 is not set
-CONFIG_MV_TDM_PCM_CLK_8MHZ=y
-# CONFIG_MV_TDM_PCM_CLK_4MHZ is not set
-# CONFIG_MV_TDM_PCM_CLK_2MHZ is not set
-# CONFIG_MV_TDM_USE_INTERNAL_PCLK_SOURCE is not set
-# CONFIG_MV_TDM_USE_EXTERNAL_PCLK_SOURCE is not set
-CONFIG_MV_TDM_USE_DCO=y
-CONFIG_MV_TDM_DUMMY=y
-# CONFIG_MV_PHONE_USE_IRQ_PROCESSING is not set
-# CONFIG_MV_PHONE_USE_FIQ_PROCESSING is not set
-CONFIG_MV_PHONE_USE_SLIC_LIBS=y
-# CONFIG_MV_TDM_EXT_STATS is not set
 
 #
 # SoC CUST support
@@ -571,7 +561,9 @@
 #
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="console=ttyS0,115200"
+CONFIG_CMDLINE_BOOL=y
+# CONFIG_CMDLINE_OVERRIDE is not set
+CONFIG_CMDLINE="console=ttyS0,115200 log_buf_len=1048576"
 # CONFIG_XIP_KERNEL is not set
 # CONFIG_KEXEC is not set
 
@@ -730,7 +722,8 @@
 # Generic Driver Options
 #
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_DEVTMPFS is not set
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 CONFIG_FW_LOADER=y
@@ -852,7 +845,7 @@
 # CONFIG_ATA_OVER_ETH is not set
 # CONFIG_MG_DISK is not set
 # CONFIG_MISC_DEVICES is not set
-CONFIG_HAVE_IDE=n
+CONFIG_HAVE_IDE=y
 # CONFIG_IDE is not set
 
 #
@@ -987,8 +980,7 @@
 # CONFIG_NETPOLL is not set
 # CONFIG_NET_POLL_CONTROLLER is not set
 # CONFIG_ISDN is not set
-CONFIG_PHONE=y
-# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE is not set
 
 #
 # Input device support
@@ -1027,9 +1019,9 @@
 #
 # Character devices
 #
-CONFIG_VT=n
+CONFIG_VT=y
 CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=n
+CONFIG_VT_CONSOLE=y
 CONFIG_HW_CONSOLE=y
 # CONFIG_VT_HW_CONSOLE_BINDING is not set
 # CONFIG_DEVKMEM is not set
@@ -1339,22 +1331,15 @@
 #
 # CD-ROM/DVD Filesystems
 #
-CONFIG_ISO9660_FS=n
-# CONFIG_JOLIET is not set
-# CONFIG_ZISOFS is not set
-CONFIG_UDF_FS=n
-CONFIG_UDF_NLS=n
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
 
 #
 # DOS/FAT/NT Filesystems
 #
-CONFIG_FAT_FS=n
-CONFIG_MSDOS_FS=n
+# CONFIG_MSDOS_FS is not set
 # CONFIG_VFAT_FS is not set
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_NTFS_FS=n
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
+# CONFIG_NTFS_FS is not set
 
 #
 # Pseudo filesystems
diff --git a/arch/arm/configs/gflt200_defconfig b/arch/arm/configs/gflt200_defconfig
index dc43c0e..358ae44 100644
--- a/arch/arm/configs/gflt200_defconfig
+++ b/arch/arm/configs/gflt200_defconfig
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.32.11
-# Sun Sep  2 08:35:19 2012
+# Thu Aug  1 13:19:54 2013
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -65,9 +65,15 @@
 # CONFIG_NET_NS is not set
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
+CONFIG_INITRAMFS_ROOT_UID=0
+CONFIG_INITRAMFS_ROOT_GID=0
 CONFIG_RD_GZIP=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_LZMA=y
+# CONFIG_INITRAMFS_COMPRESSION_NONE is not set
+CONFIG_INITRAMFS_COMPRESSION_GZIP=y
+# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set
+# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
@@ -78,8 +84,7 @@
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
-CONFIG_PRINTK_PERSIST=y
-CONFIG_PRINTK_TIME=y
+# CONFIG_PRINTK_PERSIST is not set
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_BASE_FULL=y
@@ -109,6 +114,7 @@
 #
 # GCOV-based kernel profiling
 #
+# CONFIG_GCOV_KERNEL is not set
 # CONFIG_SLOW_WORK is not set
 CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 CONFIG_SLABINFO=y
@@ -398,34 +404,19 @@
 #
 # ERRATA / WA
 #
+# CONFIG_MV_ETH_6601_LB_WA is not set
 
 #
 # Telephony options
 #
-CONFIG_MV_PHONE=y
-CONFIG_MV_TDM_SUPPORT=y
-# CONFIG_MV_COMM_UNIT_SUPPORT is not set
-# CONFIG_SILABS_SLIC_SUPPORT is not set
-CONFIG_ZARLINK_SLIC_SUPPORT=y
-CONFIG_ZARLINK_SLIC_VE880=y
-# CONFIG_ZARLINK_SLIC_VE890 is not set
-# CONFIG_ZARLINK_SLIC_VE792 is not set
-CONFIG_MV_TDM_PCM_CLK_8MHZ=y
-# CONFIG_MV_TDM_PCM_CLK_4MHZ is not set
-# CONFIG_MV_TDM_PCM_CLK_2MHZ is not set
-CONFIG_MV_TDM_USE_INTERNAL_PCLK_SOURCE=y
-# CONFIG_MV_TDM_USE_EXTERNAL_PCLK_SOURCE is not set
-# CONFIG_MV_TDM_USE_DCO is not set
-CONFIG_MV_TDM_DUMMY=y
-# CONFIG_MV_PHONE_USE_IRQ_PROCESSING is not set
-# CONFIG_MV_PHONE_USE_FIQ_PROCESSING is not set
-CONFIG_MV_PHONE_USE_SLIC_LIBS=y
 
 #
 # SoC CUST support
 #
 CONFIG_MV_CUST=y
 CONFIG_MV_CUST_IGMP_HANDLE=y
+CONFIG_MV_CUST_MLD_HANDLE=y
+CONFIG_MV_CUST_LPBK_DETECT_HANDLE=y
 # CONFIG_MV_CUST_UDP_SAMPLE_HANDLE is not set
 # CONFIG_MV_CUST_FLOW_MAP_HANDLE is not set
 
@@ -481,6 +472,9 @@
 # CONFIG_PCIE_VIRTUAL_BRIDGE_SUPPORT is not set
 # CONFIG_MV_UART_POLLING_MODE is not set
 # CONFIG_MV_PRINTK_SLICE_SUPPORT is not set
+CONFIG_MV_DRAM_DEFAULT_ACCESS_CFG=y
+# CONFIG_MV_DRAM_FASTPATH_ACCESS_CFG is not set
+# CONFIG_MV_DRAM_XBAR_ACCESS_CFG is not set
 CONFIG_ARCH_FEROCEON=y
 
 #
@@ -568,6 +562,8 @@
 #
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE_BOOL=y
+# CONFIG_CMDLINE_OVERRIDE is not set
 CONFIG_CMDLINE="console=ttyS0,115200 log_buf_len=1048576"
 # CONFIG_XIP_KERNEL is not set
 # CONFIG_KEXEC is not set
@@ -727,7 +723,8 @@
 # Generic Driver Options
 #
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_DEVTMPFS is not set
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 CONFIG_FW_LOADER=y
@@ -985,7 +982,6 @@
 # CONFIG_NET_POLL_CONTROLLER is not set
 # CONFIG_ISDN is not set
 # CONFIG_PHONE is not set
-# CONFIG_PHONE_IXJ is not set
 
 #
 # Input device support
@@ -1026,7 +1022,7 @@
 #
 CONFIG_VT=y
 CONFIG_CONSOLE_TRANSLATIONS=y
-# CONFIG_VT_CONSOLE is not set
+CONFIG_VT_CONSOLE=y
 CONFIG_HW_CONSOLE=y
 # CONFIG_VT_HW_CONSOLE_BINDING is not set
 # CONFIG_DEVKMEM is not set
@@ -1337,20 +1333,14 @@
 # CD-ROM/DVD Filesystems
 #
 # CONFIG_ISO9660_FS is not set
-# CONFIG_JOLIET is not set
-# CONFIG_ZISOFS is not set
 # CONFIG_UDF_FS is not set
-# CONFIG_UDF_NLS is not set
 
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
 # CONFIG_MSDOS_FS is not set
 # CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
 
 #
 # Pseudo filesystems
@@ -1505,6 +1495,7 @@
 CONFIG_HAVE_FUNCTION_TRACER=y
 CONFIG_TRACING_SUPPORT=y
 # CONFIG_FTRACE is not set
+# CONFIG_DYNAMIC_DEBUG is not set
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_ARM_UNWIND is not set
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index d503809..f95401e 100755
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -123,6 +123,9 @@
 static char __initdata command_line[COMMAND_LINE_SIZE];
 
 static char default_command_line[COMMAND_LINE_SIZE] __initdata = CONFIG_CMDLINE;
+#ifdef CONFIG_CMDLINE_BOOL
+static char config_command_line[COMMAND_LINE_SIZE] __initdata = CONFIG_CMDLINE;
+#endif
 static union { char c[4]; unsigned long l; } endian_test __initdata = { { 'l', '?', '?', 'b' } };
 #define ENDIANNESS ((char)endian_test.l)
 
@@ -782,7 +785,21 @@
 
 	memcpy(boot_command_line, from, COMMAND_LINE_SIZE);
 	boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
-	parse_cmdline(cmdline_p, from);
+#ifdef CONFIG_CMDLINE_BOOL
+#ifdef CONFIG_CMDLINE_OVERRIDE
+	// Use only the baked in command line.
+	memcpy(boot_command_line, config_command_line, COMMAND_LINE_SIZE);
+	boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
+#else
+	// Append the baked in command line parameter(s) to the supplied
+	// command line.
+	if (config_command_line[0]) {
+		strlcat(boot_command_line, " ", COMMAND_LINE_SIZE);
+		strlcat(boot_command_line, config_command_line, COMMAND_LINE_SIZE);
+	}
+#endif
+#endif
+	parse_cmdline(cmdline_p, boot_command_line);
 	paging_init(mdesc);
 #ifdef CONFIG_DEBUG_LL
 	{