Miyoo
移植UBoot
移植的部份就只有顯示屏的程式碼,過程如下所示:
diff -ruN f1c500s_uboot_old/.config f1c500s_uboot_new/.config
--- f1c500s_uboot_old/.config 2018-12-23 18:04:40.000000000 +0800
+++ f1c500s_uboot_new/.config 2018-12-31 23:14:48.478954005 +0800
@@ -199,8 +199,23 @@
# CONFIG_I2C2_ENABLE is not set
# CONFIG_R_I2C_ENABLE is not set
# CONFIG_AXP_GPIO is not set
-# CONFIG_VIDEO_SUNXI is not set
+CONFIG_VIDEO_SUNXI=y
+CONFIG_VIDEO_LCD_MODE=""
+CONFIG_VIDEO_LCD_DCLK_PHASE=1
+CONFIG_VIDEO_LCD_POWER=""
+CONFIG_VIDEO_LCD_RESET=""
+CONFIG_VIDEO_LCD_BL_EN=""
+CONFIG_VIDEO_LCD_BL_PWM=""
+CONFIG_VIDEO_LCD_BL_PWM_ACTIVE_LOW=y
+# CONFIG_VIDEO_LCD_PANEL_I2C is not set
+CONFIG_VIDEO_LCD_IF_PARALLEL=y
# CONFIG_SUNXI_DE2 is not set
+CONFIG_VIDEO_LCD_PANEL_PARALLEL=y
+# CONFIG_VIDEO_LCD_PANEL_LVDS is not set
+# CONFIG_VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828 is not set
+# CONFIG_VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804 is not set
+# CONFIG_VIDEO_LCD_PANEL_HITACHI_TX18D42VM is not set
+# CONFIG_VIDEO_LCD_TL059WV5C0 is not set
CONFIG_SATAPWR=""
CONFIG_GMAC_TX_DELAY=0
CONFIG_SPL_STACK_R_ADDR=0x81e00000
@@ -518,6 +533,7 @@
#
# Misc commands
#
+# CONFIG_CMD_BMP is not set
# CONFIG_CMD_BSP is not set
# CONFIG_CMD_BKOPS_ENABLE is not set
# CONFIG_CMD_CACHE is not set
@@ -1020,11 +1036,21 @@
# CONFIG_VIDEO_VESA is not set
# CONFIG_VIDEO_LCD_ANX9804 is not set
# CONFIG_VIDEO_LCD_SSD2828 is not set
+# CONFIG_VIDEO_LCD_HITACHI_TX18D42VM is not set
# CONFIG_VIDEO_MVEBU is not set
# CONFIG_DISPLAY is not set
+# CONFIG_VIDEO_FSL_DCU_FB is not set
# CONFIG_VIDEO_TEGRA20 is not set
# CONFIG_VIDEO_BRIDGE is not set
-# CONFIG_VIDEO is not set
+CONFIG_VIDEO=y
+CONFIG_CFB_CONSOLE=y
+# CONFIG_CFB_CONSOLE_ANSI is not set
+CONFIG_VGA_AS_SINGLE_DEVICE=y
+CONFIG_VIDEO_SW_CURSOR=y
+# CONFIG_CONSOLE_EXTRA_INFO is not set
+CONFIG_CONSOLE_SCROLL_LINES=1
+CONFIG_SYS_CONSOLE_BG_COL=0x00
+CONFIG_SYS_CONSOLE_FG_COL=0xa0
# CONFIG_LCD is not set
# CONFIG_VIDEO_SIMPLE is not set
# CONFIG_VIDEO_DT_SIMPLEFB is not set
diff -ruN f1c500s_uboot_old/.config.old f1c500s_uboot_new/.config.old
--- f1c500s_uboot_old/.config.old 2018-12-18 21:17:14.000000000 +0800
+++ f1c500s_uboot_new/.config.old 2018-12-31 22:54:10.936830939 +0800
@@ -265,11 +265,12 @@
# CONFIG_QSPI_BOOT is not set
# CONFIG_SATA_BOOT is not set
# CONFIG_SD_BOOT is not set
-# CONFIG_SPI_BOOT is not set
-CONFIG_BOOTDELAY=2
-# CONFIG_USE_BOOTARGS is not set
+CONFIG_SPI_BOOT=y
+CONFIG_BOOTDELAY=0
+CONFIG_USE_BOOTARGS=y
+CONFIG_BOOTARGS="console=tty0 console=ttyS1,115200 earlyprintk panic=5 rootwait root=/dev/mmcblk0p1 earlyprintk rw rootfstype=ext4"
CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="run distro_bootcmd"
+CONFIG_BOOTCOMMAND="sf probe 0:0 50000000; sf read 0x80C00000 0x100000 0x4000; sf read 0x80008000 0x110000 0x400000; bootz 0x80008000 - 0x80C00000"
#
# Console
diff -ruN f1c500s_uboot_old/drivers/video/cfb_console.c f1c500s_uboot_new/drivers/video/cfb_console.c
--- f1c500s_uboot_old/drivers/video/cfb_console.c 2018-12-18 21:17:16.000000000 +0800
+++ f1c500s_uboot_new/drivers/video/cfb_console.c 2019-01-01 00:18:55.124189732 +0800
@@ -1719,6 +1719,8 @@
" "
);
+extern void r61520_lcd_cmd(uint32_t val);
+extern void r61520_lcd_dat(uint32_t val);
static void plot_logo_or_black(void *screen, int x, int y, int black)
{
@@ -1771,6 +1773,7 @@
}
}
+ r61520_lcd_cmd(0x2c);
while (ycount--) {
#if defined(VIDEO_FB_16BPP_PIXEL_SWAP)
int xpos = x;
@@ -1786,6 +1789,7 @@
g = logo_green[*source - VIDEO_LOGO_LUT_OFFSET];
b = logo_blue[*source - VIDEO_LOGO_LUT_OFFSET];
}
+ r61520_lcd_dat((((uint16_t)r & 0xf8) << 8) | (((uint16_t)g & 0xfc) << 3) | (((uint16_t)b & 0xf8) >> 3));
switch (VIDEO_DATA_FORMAT) {
case GDF__8BIT_INDEX:
@@ -2010,6 +2014,15 @@
memsetl(video_fb_address,
(VIDEO_VISIBLE_ROWS * VIDEO_LINE_LEN) / sizeof(int), bgx);
#endif
+
+ uint16_t x, y;
+
+ r61520_lcd_cmd(0x2c);
+ for(y=0; y<240; y++){
+ for(x=0; x<320; x++){
+ r61520_lcd_dat(0);
+ }
+ }
}
static int cfg_video_init(void)
@@ -2102,9 +2115,10 @@
#ifdef CONFIG_VIDEO_LOGO
/* Plot the logo and get start point of console */
- debug("Video: Drawing the logo ...\n");
+ printf("Video: Drawing the logo ...\n");
video_console_address = video_logo();
#else
+ printf("Video: assign fb address\n");
video_console_address = video_fb_address;
#endif
diff -ruN f1c500s_uboot_old/drivers/video/Kconfig f1c500s_uboot_new/drivers/video/Kconfig
--- f1c500s_uboot_old/drivers/video/Kconfig 2018-12-18 21:17:16.000000000 +0800
+++ f1c500s_uboot_new/drivers/video/Kconfig 2018-12-31 23:14:16.462853497 +0800
@@ -660,4 +660,9 @@
The video output is initialized by U-Boot, and kept by the
kernel.
+config VIDEO_SUNXI
+ bool "Enable frambuffer support for Miyoo handheld"
+ help
+ Enables GPIO-based framebuffer support for Miyoo handheld.
+
endmenu
diff -ruN f1c500s_uboot_old/drivers/video/sunxi/sunxi_display.c f1c500s_uboot_new/drivers/video/sunxi/sunxi_display.c
--- f1c500s_uboot_old/drivers/video/sunxi/sunxi_display.c 2018-12-22 15:49:02.000000000 +0800
+++ f1c500s_uboot_new/drivers/video/sunxi/sunxi_display.c 2019-01-01 00:04:19.780553450 +0800
@@ -68,6 +68,236 @@
{ 720, 480, 60, 37037, 27000, 116, 20, 16, 27, 2, 2, 0, FB_VMODE_INTERLACED },
};
+static void sunxi_lcdc_output(uint32_t is_data, uint32_t val)
+{
+ uint32_t ret;
+ struct sunxi_gpio_reg * const gpio = (struct sunxi_gpio_reg *)SUNXI_PIO_BASE;
+
+ ret = (val & 0x00ff) << 1;
+ ret|= (val & 0xff00) << 2;
+ ret|= is_data ? 0x80000 : 0;
+ ret|= 0x100000;
+ writel(ret, &gpio->gpio_bank[SUNXI_GPIO_D].dat);
+ ret|= 0x40000;
+ writel(ret, &gpio->gpio_bank[SUNXI_GPIO_D].dat);
+}
+
+void r61520_lcd_cmd(uint32_t val)
+{
+ sunxi_lcdc_output(0, val);
+}
+
+void r61520_lcd_dat(uint32_t val)
+{
+ sunxi_lcdc_output(1, val);
+}
+
+static void sunxi_lcdc_gpio_config(void)
+{
+ struct sunxi_gpio_reg * const gpio = (struct sunxi_gpio_reg *)SUNXI_PIO_BASE;
+
+ writel(0x11111117, &gpio->gpio_bank[SUNXI_GPIO_D].cfg[0]); // 0x11111117
+ writel(0x11111171, &gpio->gpio_bank[SUNXI_GPIO_D].cfg[1]); // 0x11111171
+ writel(0x00111111, &gpio->gpio_bank[SUNXI_GPIO_D].cfg[2]); // 0x00111111, CS/RD/RS/WR
+ writel(0xffffffff, &gpio->gpio_bank[SUNXI_GPIO_D].dat);
+}
+
+static void r61520_lcd_init(void)
+{
+ uint32_t ret;
+ struct sunxi_gpio_reg * const gpio = (struct sunxi_gpio_reg *)SUNXI_PIO_BASE;
+
+ ret = readl(&gpio->gpio_bank[SUNXI_GPIO_E].cfg[0]);
+ ret&= 0xf0ffffff;
+ ret|= 0xf1ffffff;
+ writel(ret, &gpio->gpio_bank[SUNXI_GPIO_E].cfg[0]);
+ ret = readl(&gpio->gpio_bank[SUNXI_GPIO_E].dat);
+ ret|= 0x0040;
+ writel(ret, &gpio->gpio_bank[SUNXI_GPIO_E].dat);
+
+ ret = readl(&gpio->gpio_bank[SUNXI_GPIO_E].cfg[1]);
+ ret&= 0xffff0fff;
+ ret|= 0xffff1fff;
+ writel(ret, &gpio->gpio_bank[SUNXI_GPIO_E].cfg[1]);
+ ret = readl(&gpio->gpio_bank[SUNXI_GPIO_E].dat);
+ ret&= ~0x0800;
+ writel(ret, &gpio->gpio_bank[SUNXI_GPIO_E].dat);
+ mdelay(150);
+ ret|= 0x0800;
+ writel(ret, &gpio->gpio_bank[SUNXI_GPIO_E].dat);
+ mdelay(150);
+
+ r61520_lcd_cmd(0xb0);
+ r61520_lcd_dat(0x00);
+
+ r61520_lcd_cmd(0xb1);
+ r61520_lcd_dat(0x00);
+
+ r61520_lcd_cmd(0xb3);
+ r61520_lcd_dat(0x02);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x00);
+
+ r61520_lcd_cmd(0xb4);
+ r61520_lcd_dat(0x00);
+
+ r61520_lcd_cmd(0xc0);
+ r61520_lcd_dat(0x07);
+ r61520_lcd_dat(0x4f);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x01);
+ r61520_lcd_dat(0x33);
+
+ r61520_lcd_cmd(0xc1);
+ r61520_lcd_dat(0x01);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x1a);
+ r61520_lcd_dat(0x08);
+ r61520_lcd_dat(0x08);
+
+ r61520_lcd_cmd(0xc3);
+ r61520_lcd_dat(0x01);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x1a);
+ r61520_lcd_dat(0x08);
+ r61520_lcd_dat(0x08);
+
+ r61520_lcd_cmd(0xc4);
+ r61520_lcd_dat(0x11);
+ r61520_lcd_dat(0x01);
+ r61520_lcd_dat(0x43);
+ r61520_lcd_dat(0x01);
+
+ r61520_lcd_cmd(0xc8);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x0a);
+ r61520_lcd_dat(0x08);
+ r61520_lcd_dat(0x8a);
+ r61520_lcd_dat(0x08);
+ r61520_lcd_dat(0x09);
+ r61520_lcd_dat(0x05);
+ r61520_lcd_dat(0x10);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x23);
+ r61520_lcd_dat(0x10);
+ r61520_lcd_dat(0x05);
+ r61520_lcd_dat(0x05);
+ r61520_lcd_dat(0x60);
+ r61520_lcd_dat(0x0a);
+ r61520_lcd_dat(0x08);
+ r61520_lcd_dat(0x05);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x10);
+ r61520_lcd_dat(0x00);
+
+ r61520_lcd_cmd(0xc9);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x0a);
+ r61520_lcd_dat(0x08);
+ r61520_lcd_dat(0x8a);
+ r61520_lcd_dat(0x08);
+ r61520_lcd_dat(0x09);
+ r61520_lcd_dat(0x05);
+ r61520_lcd_dat(0x10);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x23);
+ r61520_lcd_dat(0x10);
+ r61520_lcd_dat(0x05);
+ r61520_lcd_dat(0x09);
+ r61520_lcd_dat(0x88);
+ r61520_lcd_dat(0x0a);
+ r61520_lcd_dat(0x08);
+ r61520_lcd_dat(0x0a);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x23);
+ r61520_lcd_dat(0x00);
+
+ r61520_lcd_cmd(0xca);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x0a);
+ r61520_lcd_dat(0x08);
+ r61520_lcd_dat(0x8a);
+ r61520_lcd_dat(0x08);
+ r61520_lcd_dat(0x09);
+ r61520_lcd_dat(0x05);
+ r61520_lcd_dat(0x10);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x23);
+ r61520_lcd_dat(0x10);
+ r61520_lcd_dat(0x05);
+ r61520_lcd_dat(0x09);
+ r61520_lcd_dat(0x88);
+ r61520_lcd_dat(0x0a);
+ r61520_lcd_dat(0x08);
+ r61520_lcd_dat(0x0a);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x23);
+ r61520_lcd_dat(0x00);
+
+ r61520_lcd_cmd(0xd0);
+ r61520_lcd_dat(0x07);
+ r61520_lcd_dat(0xc6);
+ r61520_lcd_dat(0xdc);
+
+ r61520_lcd_cmd(0xd1);
+ r61520_lcd_dat(0x54);
+ r61520_lcd_dat(0x0d);
+ r61520_lcd_dat(0x02);
+
+ r61520_lcd_cmd(0xd2);
+ r61520_lcd_dat(0x63);
+ r61520_lcd_dat(0x24);
+
+ r61520_lcd_cmd(0xd4);
+ r61520_lcd_dat(0x63);
+ r61520_lcd_dat(0x24);
+
+ r61520_lcd_cmd(0xd8);
+ r61520_lcd_dat(0x07);
+ r61520_lcd_dat(0x07);
+
+ r61520_lcd_cmd(0xe0);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x00);
+
+ r61520_lcd_cmd(0x13);
+
+ r61520_lcd_cmd(0x20);
+
+ r61520_lcd_cmd(0x35);
+ r61520_lcd_dat(0x00);
+
+ r61520_lcd_cmd(0x44);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x30);
+
+ r61520_lcd_cmd(0x36);
+ r61520_lcd_dat(0xe0);
+
+ r61520_lcd_cmd(0x3a);
+ r61520_lcd_dat(0x55);
+
+ r61520_lcd_cmd(0x2a);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x01);
+ r61520_lcd_dat(0x3f);
+
+ r61520_lcd_cmd(0x2b);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0x00);
+ r61520_lcd_dat(0xef);
+
+ r61520_lcd_cmd(0x11);
+ r61520_lcd_cmd(0x29);
+ r61520_lcd_cmd(0x2c);
+}
+
#ifdef CONFIG_VIDEO_HDMI
/*
@@ -1130,7 +1360,8 @@
switch (sunxi_display.monitor) {
case sunxi_monitor_none:
- return NULL;
+ break;
+ //return NULL;
case sunxi_monitor_dvi:
case sunxi_monitor_hdmi:
if (!sunxi_has_hdmi()) {
@@ -1226,6 +1457,8 @@
graphic_device->winSizeY = mode->yres - 2 * overscan_y;
graphic_device->plnSizeX = mode->xres * graphic_device->gdfBytesPP;
+ sunxi_lcdc_gpio_config();
+ r61520_lcd_init();
return graphic_device;
}
diff -ruN f1c500s_uboot_old/include/autoconf.mk f1c500s_uboot_new/include/autoconf.mk
--- f1c500s_uboot_old/include/autoconf.mk 2018-12-23 18:04:47.000000000 +0800
+++ f1c500s_uboot_new/include/autoconf.mk 2018-12-31 23:42:42.344680283 +0800
@@ -1,4 +1,5 @@
CONFIG_SYS_SPI_U_BOOT_OFFS=0x8000
+CONFIG_VIDEO_BMP_LOGO=y
CONFIG_BOOTM_NETBSD=y
CONFIG_BOOTM_VXWORKS=y
CONFIG_MMC_SUNXI_SLOT=0
@@ -12,6 +13,7 @@
CONFIG_SYS_MONITOR_LEN="(768 << 10)"
CONFIG_BOOTM_LINUX=y
CONFIG_SYS_SPD_BUS_NUM=0
+CONFIG_VIDEO_STD_TIMINGS=y
CONFIG_MISC_INIT_R=y
CONFIG_INITRD_TAG=y
CONFIG_SUPPORT_RAW_INITRD=y
@@ -33,9 +35,12 @@
CONFIG_SYS_LONGHELP=y
CONFIG_SPL_STACK="LOW_LEVEL_SRAM_STACK"
CONFIG_SYS_MAX_FLASH_SECT=512
+CONFIG_VIDEO_LOGO=y
+CONFIG_SUNXI_MAX_FB_SIZE="(16 << 20)"
CONFIG_STANDALONE_LOAD_ADDR=$(CONFIG_SYS_LOAD_ADDR)
CONFIG_ZLIB=y
CONFIG_LIB_UUID=y
+CONFIG_I2C_EDID=y
CONFIG_AUTO_COMPLETE=y
CONFIG_SYS_NS16550_CLK=100000000
CONFIG_GZIP=y
diff -ruN f1c500s_uboot_old/include/config/auto.conf f1c500s_uboot_new/include/config/auto.conf
--- f1c500s_uboot_old/include/config/auto.conf 2018-12-23 18:04:47.000000000 +0800
+++ f1c500s_uboot_new/include/config/auto.conf 2018-12-31 23:42:42.352680285 +0800
@@ -51,6 +51,7 @@
CONFIG_PRE_CONSOLE_BUFFER=y
CONFIG_USB_STORAGE=y
CONFIG_GMAC_TX_DELAY=0
+CONFIG_VIDEO_SW_CURSOR=y
CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y
CONFIG_EFI_LOADER=y
CONFIG_CMD_PING=y
@@ -63,6 +64,7 @@
CONFIG_SYS_STDIO_DEREGISTER=y
CONFIG_SYS_CPU="arm926ejs"
CONFIG_NETDEVICES=y
+CONFIG_VIDEO_LCD_BL_PWM_ACTIVE_LOW=y
CONFIG_USB_GADGET_PRODUCT_NUM=0x1010
CONFIG_SPL_MMC_SUPPORT=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -85,6 +87,7 @@
CONFIG_TPL_SYS_MALLOC_F_LEN=0x400
CONFIG_CMD_SETEXPR=y
CONFIG_CMD_SF=y
+CONFIG_VIDEO=y
CONFIG_DM_DEVICE_REMOVE=y
CONFIG_SYS_CACHELINE_SIZE=32
CONFIG_CMD_EXPORTENV=y
@@ -108,6 +111,7 @@
CONFIG_SPI_BOOT=y
CONFIG_ENV_IS_IN_SPI_FLASH=y
CONFIG_SYS_BOARD="sunxi"
+CONFIG_CFB_CONSOLE=y
CONFIG_SYS_CONFIG_NAME="suniv"
CONFIG_SPL_SPI_SUNXI=y
CONFIG_CMD_NFS=y
@@ -116,7 +120,9 @@
CONFIG_SPI_FLASH=y
CONFIG_USE_ARCH_MEMSET=y
CONFIG_NET=y
+CONFIG_VIDEO_LCD_RESET=""
CONFIG_DM_WARN=y
+CONFIG_VIDEO_LCD_PANEL_PARALLEL=y
CONFIG_MACPWR=""
CONFIG_USB0_VBUS_PIN=""
CONFIG_PARTITION_UUIDS=y
@@ -130,12 +136,16 @@
CONFIG_CMD_FS_GENERIC=y
CONFIG_SUPPORT_OF_CONTROL=y
CONFIG_SPL_BOOTSTAGE_RECORD_COUNT=5
+CONFIG_SYS_CONSOLE_FG_COL=0xa0
CONFIG_DISTRO_DEFAULTS=y
CONFIG_CMD_EXT2=y
CONFIG_DM_STDIO=y
CONFIG_CPU_ARM926EJS=y
+CONFIG_VIDEO_LCD_BL_PWM=""
+CONFIG_CONSOLE_SCROLL_LINES=1
CONFIG_LOCALVERSION=""
CONFIG_MMC3_PINS=""
+CONFIG_VIDEO_SUNXI=y
CONFIG_SUPPORT_SPL=y
CONFIG_CMDLINE=y
CONFIG_DTOC=y
@@ -155,6 +165,7 @@
CONFIG_INITIAL_USB_SCAN_DELAY=0
CONFIG_LOCALVERSION_AUTO=y
CONFIG_DRAM_CLK=156
+CONFIG_SYS_CONSOLE_BG_COL=0x00
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
CONFIG_SPL_SYS_MALLOC_F_LEN=0x400
CONFIG_SYS_ARCH="arm"
@@ -167,9 +178,11 @@
CONFIG_BAUDRATE=115200
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x50
CONFIG_FAT_WRITE=y
+CONFIG_VGA_AS_SINGLE_DEVICE=y
CONFIG_PARTITIONS=y
CONFIG_CMD_ITEST=y
CONFIG_DISPLAY_CPUINFO=y
+CONFIG_VIDEO_LCD_IF_PARALLEL=y
CONFIG_BOOTP_VCI_STRING="U-Boot.arm"
CONFIG_DM_SPI_FLASH=y
CONFIG_CMD_GPIO=y
@@ -183,15 +196,18 @@
CONFIG_CMD_FDT=y
CONFIG_SYS_USB_EVENT_POLL=y
CONFIG_CMD_FAT=y
+CONFIG_VIDEO_LCD_POWER=""
CONFIG_SPI_FLASH_MACRONIX=y
CONFIG_MKIMAGE_DTC_PATH="dtc"
CONFIG_SPL_POWER_SUPPORT=y
CONFIG_PYLIBFDT=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=-1
+CONFIG_VIDEO_LCD_BL_EN=""
CONFIG_EFI_PARTITION_ENTRIES_OFF=0
CONFIG_CMD_NET=y
CONFIG_SPL_RAW_IMAGE_SUPPORT=y
CONFIG_MENU=y
+CONFIG_VIDEO_LCD_MODE=""
CONFIG_CONS_INDEX=2
CONFIG_DEFAULT_DEVICE_TREE="suniv-f1c500s-miyoo"
CONFIG_NET_TFTP_VARS=y
@@ -207,6 +223,7 @@
CONFIG_SYS_MALLOC_F=y
CONFIG_SPL_USE_ARCH_MEMCPY=y
CONFIG_CMD_IMPORTENV=y
+CONFIG_VIDEO_LCD_DCLK_PHASE=1
CONFIG_DRAM_ZQ=0
CONFIG_MMC3_CD_PIN=""
CONFIG_SYS_MALLOC_F_LEN=0x400
diff -ruN f1c500s_uboot_old/include/config/uboot.release f1c500s_uboot_new/include/config/uboot.release
--- f1c500s_uboot_old/include/config/uboot.release 2018-12-23 18:04:48.000000000 +0800
+++ f1c500s_uboot_new/include/config/uboot.release 2018-12-31 22:48:23.041124799 +0800
@@ -1 +1 @@
-2018.01""-gb74f594-dirty
+2018.01""
diff -ruN f1c500s_uboot_old/include/configs/sunxi-common.h f1c500s_uboot_new/include/configs/sunxi-common.h
--- f1c500s_uboot_old/include/configs/sunxi-common.h 2018-12-18 21:17:16.000000000 +0800
+++ f1c500s_uboot_new/include/configs/sunxi-common.h 2018-12-31 23:41:03.512654797 +0800
@@ -297,6 +297,7 @@
#define CONFIG_SUNXI_MAX_FB_SIZE (16 << 20)
#define CONFIG_VIDEO_LOGO
+#define CONFIG_VIDEO_BMP_LOGO
#define CONFIG_VIDEO_STD_TIMINGS
#define CONFIG_I2C_EDID
#define VIDEO_LINE_LEN (pGD->plnSizeX)
diff -ruN f1c500s_uboot_old/include/generated/autoconf.h f1c500s_uboot_new/include/generated/autoconf.h
--- f1c500s_uboot_old/include/generated/autoconf.h 2018-12-23 18:04:47.000000000 +0800
+++ f1c500s_uboot_new/include/generated/autoconf.h 2018-12-31 23:42:41.896680098 +0800
@@ -53,6 +53,7 @@
#define CONFIG_PRE_CONSOLE_BUFFER 1
#define CONFIG_USB_STORAGE 1
#define CONFIG_GMAC_TX_DELAY 0
+#define CONFIG_VIDEO_SW_CURSOR 1
#define CONFIG_CMD_BOOTEFI_HELLO_COMPILE 1
#define CONFIG_EFI_LOADER 1
#define CONFIG_CMD_PING 1
@@ -65,6 +66,7 @@
#define CONFIG_SYS_STDIO_DEREGISTER 1
#define CONFIG_SYS_CPU "arm926ejs"
#define CONFIG_NETDEVICES 1
+#define CONFIG_VIDEO_LCD_BL_PWM_ACTIVE_LOW 1
#define CONFIG_USB_GADGET_PRODUCT_NUM 0x1010
#define CONFIG_SPL_MMC_SUPPORT 1
#define CONFIG_CC_OPTIMIZE_FOR_SIZE 1
@@ -87,6 +89,7 @@
#define CONFIG_TPL_SYS_MALLOC_F_LEN 0x400
#define CONFIG_CMD_SETEXPR 1
#define CONFIG_CMD_SF 1
+#define CONFIG_VIDEO 1
#define CONFIG_DM_DEVICE_REMOVE 1
#define CONFIG_SYS_CACHELINE_SIZE 32
#define CONFIG_CMD_EXPORTENV 1
@@ -110,6 +113,7 @@
#define CONFIG_SPI_BOOT 1
#define CONFIG_ENV_IS_IN_SPI_FLASH 1
#define CONFIG_SYS_BOARD "sunxi"
+#define CONFIG_CFB_CONSOLE 1
#define CONFIG_SYS_CONFIG_NAME "suniv"
#define CONFIG_SPL_SPI_SUNXI 1
#define CONFIG_CMD_NFS 1
@@ -118,7 +122,9 @@
#define CONFIG_SPI_FLASH 1
#define CONFIG_USE_ARCH_MEMSET 1
#define CONFIG_NET 1
+#define CONFIG_VIDEO_LCD_RESET ""
#define CONFIG_DM_WARN 1
+#define CONFIG_VIDEO_LCD_PANEL_PARALLEL 1
#define CONFIG_MACPWR ""
#define CONFIG_USB0_VBUS_PIN ""
#define CONFIG_PARTITION_UUIDS 1
@@ -132,12 +138,16 @@
#define CONFIG_CMD_FS_GENERIC 1
#define CONFIG_SUPPORT_OF_CONTROL 1
#define CONFIG_SPL_BOOTSTAGE_RECORD_COUNT 5
+#define CONFIG_SYS_CONSOLE_FG_COL 0xa0
#define CONFIG_DISTRO_DEFAULTS 1
#define CONFIG_CMD_EXT2 1
#define CONFIG_DM_STDIO 1
#define CONFIG_CPU_ARM926EJS 1
+#define CONFIG_VIDEO_LCD_BL_PWM ""
+#define CONFIG_CONSOLE_SCROLL_LINES 1
#define CONFIG_LOCALVERSION ""
#define CONFIG_MMC3_PINS ""
+#define CONFIG_VIDEO_SUNXI 1
#define CONFIG_SUPPORT_SPL 1
#define CONFIG_CMDLINE 1
#define CONFIG_DTOC 1
@@ -157,6 +167,7 @@
#define CONFIG_INITIAL_USB_SCAN_DELAY 0
#define CONFIG_LOCALVERSION_AUTO 1
#define CONFIG_DRAM_CLK 156
+#define CONFIG_SYS_CONSOLE_BG_COL 0x00
#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR 1
#define CONFIG_SPL_SYS_MALLOC_F_LEN 0x400
#define CONFIG_SYS_ARCH "arm"
@@ -169,9 +180,11 @@
#define CONFIG_BAUDRATE 115200
#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x50
#define CONFIG_FAT_WRITE 1
+#define CONFIG_VGA_AS_SINGLE_DEVICE 1
#define CONFIG_PARTITIONS 1
#define CONFIG_CMD_ITEST 1
#define CONFIG_DISPLAY_CPUINFO 1
+#define CONFIG_VIDEO_LCD_IF_PARALLEL 1
#define CONFIG_BOOTP_VCI_STRING "U-Boot.arm"
#define CONFIG_DM_SPI_FLASH 1
#define CONFIG_CMD_GPIO 1
@@ -185,15 +198,18 @@
#define CONFIG_CMD_FDT 1
#define CONFIG_SYS_USB_EVENT_POLL 1
#define CONFIG_CMD_FAT 1
+#define CONFIG_VIDEO_LCD_POWER ""
#define CONFIG_SPI_FLASH_MACRONIX 1
#define CONFIG_MKIMAGE_DTC_PATH "dtc"
#define CONFIG_SPL_POWER_SUPPORT 1
#define CONFIG_PYLIBFDT 1
#define CONFIG_MMC_SUNXI_SLOT_EXTRA -1
+#define CONFIG_VIDEO_LCD_BL_EN ""
#define CONFIG_EFI_PARTITION_ENTRIES_OFF 0
#define CONFIG_CMD_NET 1
#define CONFIG_SPL_RAW_IMAGE_SUPPORT 1
#define CONFIG_MENU 1
+#define CONFIG_VIDEO_LCD_MODE ""
#define CONFIG_CONS_INDEX 2
#define CONFIG_DEFAULT_DEVICE_TREE "suniv-f1c500s-miyoo"
#define CONFIG_NET_TFTP_VARS 1
@@ -209,6 +225,7 @@
#define CONFIG_SYS_MALLOC_F 1
#define CONFIG_SPL_USE_ARCH_MEMCPY 1
#define CONFIG_CMD_IMPORTENV 1
+#define CONFIG_VIDEO_LCD_DCLK_PHASE 1
#define CONFIG_DRAM_ZQ 0
#define CONFIG_MMC3_CD_PIN ""
#define CONFIG_SYS_MALLOC_F_LEN 0x400
diff -ruN f1c500s_uboot_old/include/generated/generic-asm-offsets.h f1c500s_uboot_new/include/generated/generic-asm-offsets.h
--- f1c500s_uboot_old/include/generated/generic-asm-offsets.h 2018-12-18 21:17:16.000000000 +0800
+++ f1c500s_uboot_new/include/generated/generic-asm-offsets.h 2018-12-31 23:14:57.286981815 +0800
@@ -10,10 +10,10 @@
#define GENERATED_BD_INFO_SIZE 80 /* (sizeof(struct bd_info) + 15) & ~15 @ */
#define GD_SIZE 200 /* sizeof(struct global_data) @ */
#define GD_BD 0 /* offsetof(struct global_data, bd) @ */
-#define GD_MALLOC_BASE 148 /* offsetof(struct global_data, malloc_base) @ */
-#define GD_RELOCADDR 48 /* offsetof(struct global_data, relocaddr) @ */
-#define GD_RELOC_OFF 68 /* offsetof(struct global_data, reloc_off) @ */
-#define GD_START_ADDR_SP 64 /* offsetof(struct global_data, start_addr_sp) @ */
-#define GD_NEW_GD 72 /* offsetof(struct global_data, new_gd) @ */
+#define GD_MALLOC_BASE 152 /* offsetof(struct global_data, malloc_base) @ */
+#define GD_RELOCADDR 52 /* offsetof(struct global_data, relocaddr) @ */
+#define GD_RELOC_OFF 72 /* offsetof(struct global_data, reloc_off) @ */
+#define GD_START_ADDR_SP 68 /* offsetof(struct global_data, start_addr_sp) @ */
+#define GD_NEW_GD 76 /* offsetof(struct global_data, new_gd) @ */
#endif
diff -ruN f1c500s_uboot_old/include/generated/timestamp_autogenerated.h f1c500s_uboot_new/include/generated/timestamp_autogenerated.h
--- f1c500s_uboot_old/include/generated/timestamp_autogenerated.h 2018-12-23 18:04:47.000000000 +0800
+++ f1c500s_uboot_new/include/generated/timestamp_autogenerated.h 2019-01-01 09:52:55.002527413 +0800
@@ -1,5 +1,5 @@
-#define U_BOOT_DATE "Dec 23 2018"
-#define U_BOOT_TIME "18:04:47"
+#define U_BOOT_DATE "Jan 01 2019"
+#define U_BOOT_TIME "09:52:55"
#define U_BOOT_TZ "+0800"
-#define U_BOOT_DMI_DATE "12/23/2018"
-#define U_BOOT_BUILD_DATE 0x20181223
+#define U_BOOT_DMI_DATE "01/01/2019"
+#define U_BOOT_BUILD_DATE 0x20190101
diff -ruN f1c500s_uboot_old/include/generated/version_autogenerated.h f1c500s_uboot_new/include/generated/version_autogenerated.h
--- f1c500s_uboot_old/include/generated/version_autogenerated.h 2018-12-23 18:04:48.000000000 +0800
+++ f1c500s_uboot_new/include/generated/version_autogenerated.h 2018-12-31 22:48:23.049124854 +0800
@@ -1,4 +1,4 @@
-#define PLAIN_VERSION "2018.01-gb74f594-dirty"
+#define PLAIN_VERSION "2018.01"
#define U_BOOT_VERSION "U-Boot " PLAIN_VERSION
#define CC_VERSION_STRING "arm-linux-gcc (Debian 6.3.0-18) 6.3.0 20170516"
#define LD_VERSION_STRING "GNU ld (GNU Binutils for Debian) 2.28"
diff -ruN f1c500s_uboot_old/logo.sh f1c500s_uboot_new/logo.sh
--- f1c500s_uboot_old/logo.sh 1970-01-01 08:00:00.000000000 +0800
+++ f1c500s_uboot_new/logo.sh 2019-01-01 09:21:24.381580630 +0800
@@ -0,0 +1,3 @@
+#!/bin/sh
+# logo.sh xxx.jpg ./tools/logos/xxx.bmp
+jpegtopnm $1 | ppmquant 31 | ppmtobmp -bpp 8 > $2
Binary files f1c500s_uboot_old/scripts/kconfig/mconf and f1c500s_uboot_new/scripts/kconfig/mconf differ
diff -ruN f1c500s_uboot_old/spl/include/autoconf.mk f1c500s_uboot_new/spl/include/autoconf.mk
--- f1c500s_uboot_old/spl/include/autoconf.mk 2018-12-23 18:04:47.000000000 +0800
+++ f1c500s_uboot_new/spl/include/autoconf.mk 2018-12-31 23:42:42.340680280 +0800
@@ -1,4 +1,5 @@
CONFIG_SYS_SPI_U_BOOT_OFFS=0x8000
+CONFIG_VIDEO_BMP_LOGO=y
CONFIG_BOOTM_NETBSD=y
CONFIG_BOOTM_VXWORKS=y
CONFIG_MMC_SUNXI_SLOT=0
@@ -12,6 +13,7 @@
CONFIG_SYS_MONITOR_LEN="(768 << 10)"
CONFIG_BOOTM_LINUX=y
CONFIG_SYS_SPD_BUS_NUM=0
+CONFIG_VIDEO_STD_TIMINGS=y
CONFIG_MISC_INIT_R=y
CONFIG_INITRD_TAG=y
CONFIG_SPL_BUILD=y
@@ -29,9 +31,12 @@
CONFIG_BOARDDIR="board/sunxi"
CONFIG_SPL_STACK="LOW_LEVEL_SRAM_STACK"
CONFIG_SYS_MAX_FLASH_SECT=512
+CONFIG_VIDEO_LOGO=y
+CONFIG_SUNXI_MAX_FB_SIZE="(16 << 20)"
CONFIG_STANDALONE_LOAD_ADDR=$(CONFIG_SYS_LOAD_ADDR)
CONFIG_ZLIB=y
CONFIG_LIB_UUID=y
+CONFIG_I2C_EDID=y
CONFIG_SYS_NS16550_CLK=100000000
CONFIG_GZIP=y
CONFIG_SYS_INIT_RAM_SIZE=0x8000
Binary files f1c500s_uboot_old/tools/logos/miyoo_1.bmp and f1c500s_uboot_new/tools/logos/miyoo_1.bmp differ
Binary files f1c500s_uboot_old/tools/logos/miyoo_2.bmp and f1c500s_uboot_new/tools/logos/miyoo_2.bmp differ
Binary files f1c500s_uboot_old/tools/logos/miyoo_3.bmp and f1c500s_uboot_new/tools/logos/miyoo_3.bmp differ
diff -ruN f1c500s_uboot_old/tools/Makefile f1c500s_uboot_new/tools/Makefile
--- f1c500s_uboot_old/tools/Makefile 2018-12-18 21:17:16.000000000 +0800
+++ f1c500s_uboot_new/tools/Makefile 2019-01-01 09:52:27.086877753 +0800
@@ -220,7 +220,10 @@
# Generic logo
ifeq ($(LOGO_BMP),)
-LOGO_BMP= $(srctree)/$(src)/logos/denx.bmp
+#LOGO_BMP= $(srctree)/$(src)/logos/miyoo_1.bmp
+#LOGO_BMP= $(srctree)/$(src)/logos/miyoo_2.bmp
+LOGO_BMP= $(srctree)/$(src)/logos/miyoo_3.bmp
+#LOGO_BMP= $(srctree)/$(src)/logos/denx.bmp
# Use board logo and fallback to vendor
ifneq ($(wildcard $(srctree)/$(src)/logos/$(BOARD).bmp),)
完成