فهرست منبع

1. 修复多媒体播放卡死的问题。 2. 修复随机的录音卡住以及开发板录音没有内容的问题。 3. emmc根文件系统由ext2改成ext4,解决数据拷贝导致文件系统空间变小的问题。 4. 修复小概率的动画提前隐藏,未插sd卡情况下误判进入卡升级等问题。

Signed-off-by: lixh <lixh@zhonghongcarav.com.cn>
huangliang 3 سال پیش
والد
کامیت
4711a6d4d7

+ 1 - 1
buildroot-external/configs/ark1668e_devb_emmc_defconfig

@@ -55,7 +55,7 @@ BR2_PACKAGE_ANDROID_TOOLS=y
 BR2_PACKAGE_UTIL_LINUX=y
 BR2_PACKAGE_UTIL_LINUX_LIBUUID=y
 BR2_TARGET_ROOTFS_EXT2=y
-BR2_TARGET_ROOTFS_EXT2_2r0=y
+BR2_TARGET_ROOTFS_EXT2_4=y
 BR2_TARGET_ROOTFS_EXT2_SIZE="500M"
 # BR2_TARGET_ROOTFS_TAR is not set
 BR2_LIBARKAPI_ARK1668E=y

+ 1 - 1
buildroot-external/package/DashBoard/mainwindow.cpp

@@ -11,7 +11,7 @@ MainWindow::MainWindow(QWidget *parent) :
     QMainWindow(parent)
 {
 #ifdef __ARM__
-    QResource::registerResource("usr/share/images.rcc");
+    QResource::registerResource("/usr/share/images.rcc");
     this->setWindowFlag(Qt::FramelessWindowHint);
 #endif
     QPalette pal = palette();

+ 3 - 3
linux/arch/arm/boot/dts/ark1668e.dtsi

@@ -439,7 +439,7 @@
 			i2s_adc_clk: i2s_adc_clk {
 				#clock-cells = <0>;
 				compatible = "arkmiro,ark-clk-sys";
-				clocks = <&axipll>, <&audpll>;
+				clocks = <&xtal24mhz>, <&audpll>;
 				reg = <0x6c>;
 				index-offset = <0>;
 				index-mask = <0x1>;
@@ -449,7 +449,7 @@
 			i2s_dac_clk: i2s_dac_clk {
 				#clock-cells = <0>;
 				compatible = "arkmiro,ark-clk-sys";
-				clocks = <&axipll>, <&audpll>;
+				clocks = <&xtal24mhz>, <&audpll>;
 				reg = <0x6c>;
 				index-offset = <2>;
 				index-mask = <0x1>;
@@ -459,7 +459,7 @@
 			i2s2_dac_clk: i2s2_dac_clk {
 				#clock-cells = <0>;
 				compatible = "arkmiro,ark-clk-sys";
-				clocks = <&axipll>, <&audpll>;
+				clocks = <&xtal24mhz>, <&audpll>;
 				reg = <0x6c>;
 				index-offset = <4>;
 				index-mask = <0x1>;

+ 1 - 1
linux/drivers/video/fbdev/arkmicro/ark1668e_lcdfb.c

@@ -282,7 +282,7 @@ static int ark1668e_lcdfb_check_var(struct fb_var_screeninfo *var,
 		var->xres_virtual = var->xres;
 
 	if (var->yres >= var->yres_virtual)
-		var->yres_virtual = var->yres * 2;
+		var->yres_virtual = var->yres * 3;
 
 	/* Force same alignment for each line */
 	var->xres = (var->xres + 3) & ~3UL;

+ 6 - 0
u-boot/arch/arm/mach-arkmicro/include/mach/ark1668e-sysreg.h

@@ -15,6 +15,12 @@
 #define SYS_DDR_IO_CFG			0x19c
 #define SYS_PAD_CTRL00			0x1c0
 #define SYS_PAD_CTRL01			0x1c4
+#define SYS_PAD_CTRL02			0x1c8
+#define SYS_PAD_CTRL03			0x1cc
+#define SYS_PAD_CTRL04			0x1d0
+#define SYS_PAD_CTRL05			0x1d4
+#define SYS_PAD_CTRL06			0x1d8
+#define SYS_PAD_CTRL07			0x1dc
 #define SYS_PAD_CTRL08			0x1e0
 #define SYS_PAD_CTRL09			0x1e4
 #define SYS_IO_DRIVER01			0x1f4

+ 2 - 6
u-boot/arch/arm/mach-arkmicro/spl_ark1668e.c

@@ -217,13 +217,9 @@ static void switch_to_main_crystal_osc(void)
 	/* switch to sys pll clk */
 	/* ahb and pclk and pclk1 must have the same clk source */
 	/* change the config will cause mfc working fail */
-	/* ahb clk */
+	/* ahb and apb clk */
 	regval = 0x04040404;
-	regval |= (2 << 12) | (1 << 8);
-	write_sys_reg(regval, SYS_CLK_SEL);
-	udelay(50);
-	/* pclk */
-	regval |= (5 << 4) | 1;
+	regval |= (2 << 12) | (1 << 8) | (5 << 4) | 1;
 	write_sys_reg(regval, SYS_CLK_SEL);
 	udelay(50);
 	/* pclk1 */

+ 2 - 1
u-boot/board/arkmicro/ark1668e_devb/ark1668e_devb.c

@@ -266,7 +266,8 @@ int board_late_init(void)
 	need_update = env_get("need_update");
 	if (!strcmp(need_update, "yes")) {
 		loadaddr = env_get_hex("loadaddr", 0);
-
+		if (loadaddr)
+			memset(loadaddr, 0, strlen(ARK1668_UPDATE_MAGIC));
 		sprintf(cmd, "fatload %s %s %s update-magic", "mmc", env_get("sd_dev_part"), env_get("loadaddr"));
 		run_command(cmd, 0);
 		if (loadaddr && !memcmp((void *)loadaddr, ARK1668_UPDATE_MAGIC, strlen(ARK1668_UPDATE_MAGIC))) {

+ 14 - 0
u-boot/drivers/video/arkmicro/ark1668e_lcd.c

@@ -235,6 +235,20 @@ static void ark_lcdc_init(struct udevice *dev)
 	else if(priv->interface_type == ARK1668E_LCDC_INTERFACE_TTL)
 	{
 		lcdc_writel_sys(priv, SYS_CTL_2A, SWITCH_LVDS_TO_TTL);
+		/* pad config */
+		value = lcdc_readl_sys(priv, SYS_PAD_CTRL05);
+		value &= ~(0x3ffff << 12);
+		value |= (1 << 27) | (1 << 24) | (1 << 21) | (1 << 18) | (1 << 15) | (1 << 12);
+		lcdc_writel_sys(priv, SYS_PAD_CTRL05, value);
+
+		value = (1<<27) | (1<<24) | (1<<21) | (1<<18) | (1<<15) | (1<<12) | (1<<9) | (1<<6) | (1<<3) | (1<<0);
+		lcdc_writel_sys(priv, SYS_PAD_CTRL06, value);
+		lcdc_writel_sys(priv, SYS_PAD_CTRL07, value);
+
+		value = lcdc_readl_sys(priv, SYS_PAD_CTRL08);
+		value &= ~((7 << 3) | (7 << 0));
+		value |= (1 << 3) | (1 << 0);
+		lcdc_writel_sys(priv, SYS_PAD_CTRL08, value);
 	}
 
 	/* sync always on */

+ 1 - 2
u-boot/include/configs/ark1668e_devb_emmc.h

@@ -99,7 +99,6 @@
 		"${mtdparts} " \
 		"root=${nandroot} " \
 		"rootfstype=${nandrootfstype}\0" \
-		"root=/dev/mmcblk0p2 rw rootfstype=ext2 rootwait \0" \
 	"nandroot=ubi0:rootfs rw ubi.mtd=rootfs ubi.fm_autoconvert=1\0" \
 	"nandrootfstype=ubifs rootwait\0" \
 	"nandboot=echo Booting from nand ...; " \
@@ -212,7 +211,7 @@
 		"root=${emmcroot} " \
 		"rootfstype=${emmcrootfstype}\0" \
 	"emmcroot=/dev/mmcblk0p10 rw\0" \
-	"emmcrootfstype=ext2 rootwait\0" \
+	"emmcrootfstype=ext4 rootwait\0" \
 	"emmcboot=echo Booting from emmc ...; " \
 		"run emmcargs; " \
 		"mmc dev ${emmc_dev_part}; " \