rk3026: add ft kernel support
authorchenxing <chenxing@rock-chips.com>
Mon, 16 Sep 2013 09:43:42 +0000 (17:43 +0800)
committerchenxing <chenxing@rock-chips.com>
Mon, 16 Sep 2013 09:43:42 +0000 (17:43 +0800)
arch/arm/configs/rk3026_ft_defconfig [new file with mode: 0644]
arch/arm/mach-rk3026/Kconfig
arch/arm/mach-rk3026/Makefile
arch/arm/mach-rk3026/board-rk3026-ft.c [new file with mode: 0755]

diff --git a/arch/arm/configs/rk3026_ft_defconfig b/arch/arm/configs/rk3026_ft_defconfig
new file mode 100644 (file)
index 0000000..0276015
--- /dev/null
@@ -0,0 +1,85 @@
+CONFIG_EXPERIMENTAL=y
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_KERNEL_LZO=y
+CONFIG_LOG_BUF_SHIFT=12
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_UID16 is not set
+# CONFIG_HOTPLUG is not set
+# CONFIG_ELF_CORE is not set
+# CONFIG_BASE_FULL is not set
+# CONFIG_FUTEX is not set
+# CONFIG_EPOLL is not set
+# CONFIG_SIGNALFD is not set
+# CONFIG_TIMERFD is not set
+# CONFIG_EVENTFD is not set
+# CONFIG_SHMEM is not set
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+# CONFIG_VM_EVENT_COUNTERS is not set
+# CONFIG_SLUB_DEBUG is not set
+# CONFIG_BLOCK is not set
+CONFIG_ARCH_RK3026=y
+# CONFIG_DDR_TEST is not set
+CONFIG_RK_PM_TESTS=y
+# CONFIG_PM_TEST_CLK_RATE is not set
+# CONFIG_PM_TEST_CLK_VOLT is not set
+# CONFIG_PM_TEST_MAXFREQ is not set
+CONFIG_PM_TEST_FT=y
+# CONFIG_RK29_LAST_LOG is not set
+# CONFIG_RK_EARLY_PRINTK is not set
+CONFIG_RK_USB_UART=y
+# CONFIG_RK_CONSOLE_THREAD is not set
+CONFIG_MACH_RK3026_FT=y
+CONFIG_ARM_ERRATA_775420=y
+CONFIG_FIQ_DEBUGGER=y
+CONFIG_FIQ_DEBUGGER_NO_SLEEP=y
+CONFIG_FIQ_DEBUGGER_CONSOLE=y
+CONFIG_FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_SMP=y
+# CONFIG_SMP_ON_UP is not set
+CONFIG_NR_CPUS=2
+CONFIG_PREEMPT=y
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_HIGHMEM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=ttyFIQ0"
+CONFIG_CMDLINE_FORCE=y
+CONFIG_CPU_IDLE=y
+CONFIG_VFP=y
+CONFIG_NEON=y
+# CONFIG_BINFMT_ELF is not set
+# CONFIG_SUSPEND is not set
+# CONFIG_FW_LOADER is not set
+# CONFIG_INPUT is not set
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+# CONFIG_UNIX98_PTYS is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_DEVMEM is not set
+# CONFIG_DEVKMEM is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_ADC is not set
+CONFIG_EXPANDED_GPIO_NUM=0
+CONFIG_EXPANDED_GPIO_IRQ_NUM=0
+CONFIG_SPI_FPGA_GPIO_NUM=0
+CONFIG_SPI_FPGA_GPIO_IRQ_NUM=0
+# CONFIG_HWMON is not set
+# CONFIG_MFD_SUPPORT is not set
+# CONFIG_USB_SUPPORT is not set
+# CONFIG_CMMB is not set
+# CONFIG_FILE_LOCKING is not set
+# CONFIG_DNOTIFY is not set
+# CONFIG_INOTIFY_USER is not set
+# CONFIG_PROC_FS is not set
+# CONFIG_MISC_FILESYSTEMS is not set
+CONFIG_PRINTK_TIME=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_FTRACE is not set
+CONFIG_OC_ETM=y
+# CONFIG_CRC32 is not set
index 89e1e635f9e97e92fff54d1ee89ac520d730be74..b797dd1162fac08e39e6c41db28a1ae159eeeaf3 100755 (executable)
@@ -25,4 +25,7 @@ config MACH_RK3026_86V_FAC
   bool "RK3026 86V Board for factory"
   select MACH_RK_FAC
 
+config MACH_RK3026_FT
+       bool "RK3026 FT Board"
+
 endchoice
index b0c5dc76d1b5e25e499112a174e39d22cce118bc..3ffda1919524df4a9a6c7a43e443740099ffee38 100755 (executable)
@@ -26,3 +26,4 @@ board-$(CONFIG_MACH_RK3028A_TB) += board-rk3028a-tb.o
 board-$(CONFIG_MACH_RK3028A_86V) += board-rk3028a-86v.o
 board-$(CONFIG_MACH_RK3028A_FAC) += board-rk3028a-86v-fac.o
 board-$(CONFIG_MACH_RK3026_86V_FAC) += board-rk3026-86v-fac.o
+board-$(CONFIG_MACH_RK3026_FT) += board-rk3026-ft.o
diff --git a/arch/arm/mach-rk3026/board-rk3026-ft.c b/arch/arm/mach-rk3026/board-rk3026-ft.c
new file mode 100755 (executable)
index 0000000..97155fb
--- /dev/null
@@ -0,0 +1,69 @@
+/*\r
+ *\r
+ * Copyright (C) 2013 ROCKCHIP, Inc.\r
+ *\r
+ * This software is licensed under the terms of the GNU General Public\r
+ * License version 2, as published by the Free Software Foundation, and\r
+ * may be copied, distributed, and modified under those terms.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ */\r
+\r
+#include <linux/kernel.h>\r
+#include <linux/init.h>\r
+#include <linux/io.h>\r
+#include <linux/delay.h>\r
+#include <linux/clk.h>\r
+\r
+#include <asm/mach-types.h>\r
+#include <asm/mach/arch.h>\r
+\r
+#include <mach/board.h>\r
+#include <mach/gpio.h>\r
+\r
+#define FT\r
+\r
+#ifdef FT\r
+#define CONSOLE_LOGLEVEL 9\r
+#define ARM_PLL_MHZ (312)\r
+#else\r
+#define CONSOLE_LOGLEVEL 9\r
+#define ARM_PLL_MHZ (816)\r
+#endif\r
+\r
+static void __init machine_rk2928_board_init(void)\r
+{\r
+       console_loglevel = CONSOLE_LOGLEVEL;\r
+}\r
+\r
+#define ft_printk(fmt, arg...) \\r
+       printk(KERN_EMERG fmt, ##arg)\r
+\r
+void __init board_clock_init(void)\r
+{\r
+       rk2928_clock_data_init(periph_pll_default, codec_pll_default, RK30_CLOCKS_DEFAULT_FLAGS);\r
+       clk_set_rate(clk_get(NULL, "cpu"), ARM_PLL_MHZ * 1000 * 1000);\r
+       preset_lpj = loops_per_jiffy;\r
+}\r
+\r
+static void __init ft_fixup(struct machine_desc *desc, struct tag *tags,\r
+                       char **cmdline, struct meminfo *mi)\r
+{\r
+       mi->nr_banks = 1;\r
+       mi->bank[0].start = PLAT_PHYS_OFFSET;\r
+       mi->bank[0].size = SZ_512M;\r
+}\r
+\r
+MACHINE_START(RK30, "RK30board")\r
+       .boot_params    = PLAT_PHYS_OFFSET + 0x800,\r
+       .fixup          = ft_fixup,\r
+       .map_io         = rk2928_map_io,\r
+       .init_irq       = rk2928_init_irq,\r
+       .timer          = &rk2928_timer,\r
+       .init_machine   = machine_rk2928_board_init,\r
+MACHINE_END\r
+\r