From 077d48b9313aced4aabf7125fc9a54f4bf9f37ab Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Thu, 01 Aug 2019 18:16:15 +0800 Subject: [PATCH] update linux kernel, u-boot patch. adjust partition table, update rootfs build shell script to new partition. test ok --- ok335xD/linux-bsp/patches/u-boot-2011.09-ok335x.patch | 204 +++++++++++++++++++++++++++++++++ ok335xD/linux-bsp/patches/linux-3.2.0-ok335x.patch | 132 +++++++++++++++++++++- ok335xD/linux-bsp/build.sh | 2 3 files changed, 327 insertions(+), 11 deletions(-) diff --git a/ok335xD/linux-bsp/build.sh b/ok335xD/linux-bsp/build.sh index 911916c..eb02384 100755 --- a/ok335xD/linux-bsp/build.sh +++ b/ok335xD/linux-bsp/build.sh @@ -121,7 +121,7 @@ mode=ubi image=ubi.img vol_id=0 -vol_size=231MiB +vol_size=140MiB vol_type=dynamic vol_name=rootfs vol_flags=autoresize diff --git a/ok335xD/linux-bsp/patches/linux-3.2.0-ok335x.patch b/ok335xD/linux-bsp/patches/linux-3.2.0-ok335x.patch index c9c12df..2e442b6 100644 --- a/ok335xD/linux-bsp/patches/linux-3.2.0-ok335x.patch +++ b/ok335xD/linux-bsp/patches/linux-3.2.0-ok335x.patch @@ -1,20 +1,121 @@ diff -Nuar linux-3.2.0/arch/arm/mach-omap2/board-am335xevm.c linux-3.2.0-ok335x/arch/arm/mach-omap2/board-am335xevm.c --- linux-3.2.0/arch/arm/mach-omap2/board-am335xevm.c 2014-01-22 18:20:21.000000000 +0800 -+++ linux-3.2.0-ok335x/arch/arm/mach-omap2/board-am335xevm.c 2019-07-29 13:35:32.026115491 +0800 -@@ -2160,8 +2160,8 @@ ++++ linux-3.2.0-ok335x/arch/arm/mach-omap2/board-am335xevm.c 2019-08-01 12:55:20.735041318 +0800 +@@ -2017,47 +2017,38 @@ + am33xx_register_ehrpwm(2, &pwm_pdata[2]); + } + +-/* NAND partition information */ ++ ++/* NAND(MT29F2G08ABAEAWP, 256M) partition information, modify partition by guowenxue */ + static struct mtd_partition am335x_nand_partitions[] = { + /* All the partition sizes are listed in terms of NAND block size */ + { + .name = "SPL", +- .offset = 0, /* Offset = 0x0 */ +- .size = SZ_128K, +- }, +- { +- .name = "SPL.backup1", +- .offset = MTDPART_OFS_APPEND, /* Offset = 0x20000 */ +- .size = SZ_128K, +- }, +- { +- .name = "SPL.backup2", +- .offset = MTDPART_OFS_APPEND, /* Offset = 0x40000 */ +- .size = SZ_128K, +- }, +- { +- .name = "SPL.backup3", +- .offset = MTDPART_OFS_APPEND, /* Offset = 0x60000 */ +- .size = SZ_128K, ++ .offset = 0, /* Offset = 0x000000 */ ++ .size = 1*SZ_512K, + }, + { + .name = "U-Boot", +- .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */ +- .size = 15 * SZ_128K, ++ .offset = MTDPART_OFS_APPEND, /* Offset = 0x080000 */ ++ .size = 1*SZ_256K, + }, + { + .name = "U-Boot Env", +- .offset = MTDPART_OFS_APPEND, /* Offset = 0x260000 */ +- .size = 1 * SZ_128K, ++ .offset = MTDPART_OFS_APPEND, /* Offset = 0x0C0000 */ ++ .size = 1*SZ_256K, + }, + { + .name = "Kernel", +- .offset = MTDPART_OFS_APPEND, /* Offset = 0x280000 */ +- .size = 40 * SZ_128K, ++ .offset = MTDPART_OFS_APPEND, /* Offset = 0x100000 */ ++ .size = 5*SZ_1M, + }, + { +- .name = "File System", +- .offset = MTDPART_OFS_APPEND, /* Offset = 0x780000 */ ++ .name = "Rootfs", ++ .offset = MTDPART_OFS_APPEND, /* Offset = 0x600000 */ ++ .size = 150*SZ_1M, ++ }, ++ { ++ .name = "Apps", ++ .offset = MTDPART_OFS_APPEND, /* Offset = 0x9c00000 */ + .size = MTDPART_SIZ_FULL, + }, + }; +@@ -2160,8 +2151,10 @@ &am335x_nand_timings); if (!pdata) return; -// pdata->ecc_opt =OMAP_ECC_BCH8_CODE_HW; - pdata->ecc_opt =OMAP_ECC_HAMMING_CODE_DEFAULT; -+ pdata->ecc_opt =OMAP_ECC_BCH8_CODE_HW; ++ ++ /* Modify by guowenxue, kernel & rootfs must use ECC_BCH8 in u-boot */ ++ pdata->ecc_opt =OMAP_ECC_BCH8_CODE_HW; + //pdata->ecc_opt =OMAP_ECC_HAMMING_CODE_DEFAULT; pdata->elm_used = true; gpmc_device[0].pdata = pdata; +@@ -3121,10 +3114,15 @@ + + static int __init screentype_setup(char *str) + { ++ /* Modify by guowenxue, our OK335XD use 800x480-7" capacitive LCD */ ++ screen_type = SCREEN_TYPE_C; ++ ++#if 0 + if(!strncmp(str,"C",1)) + screen_type = SCREEN_TYPE_C; + else + screen_type = SCREEN_TYPE_R; ++#endif + + return 1; + } +@@ -3132,6 +3130,9 @@ + + static int __init screensize_setup(char *str) + { ++ /* Modify by guowenxue, our OK335XD use 800x480-7" capacitive LCD */ ++ screen_size = SCREEN_SIZE_800X480_7; ++#if 0 + if(!strncmp(str,"800x600-8",9)) + screen_size = SCREEN_SIZE_800X600_8; + else if(!strncmp(str,"800x480-5",9)) +@@ -3142,6 +3143,7 @@ + screen_size = SCREEN_SIZE_800X600_10; + else + screen_size = SCREEN_SIZE_480X272_4; ++#endif + + return 1; + } diff -Nuar linux-3.2.0/build.sh linux-3.2.0-ok335x/build.sh --- linux-3.2.0/build.sh 1970-01-01 08:00:00.000000000 +0800 -+++ linux-3.2.0-ok335x/build.sh 2019-07-29 13:34:57.430114827 +0800 ++++ linux-3.2.0-ok335x/build.sh 2019-08-01 12:52:36.239038163 +0800 @@ -0,0 +1,74 @@ +#!/bin/bash + @@ -92,7 +193,7 @@ + diff -Nuar linux-3.2.0/.cfg-ok335x linux-3.2.0-ok335x/.cfg-ok335x --- linux-3.2.0/.cfg-ok335x 1970-01-01 08:00:00.000000000 +0800 -+++ linux-3.2.0-ok335x/.cfg-ok335x 2019-07-29 13:30:10.022109314 +0800 ++++ linux-3.2.0-ok335x/.cfg-ok335x 2019-08-01 12:55:57.327042020 +0800 @@ -0,0 +1,2936 @@ +# +# Automatically generated file; DO NOT EDIT. @@ -3030,9 +3131,28 @@ +CONFIG_NLATTR=y +CONFIG_AVERAGE=y +# CONFIG_CORDIC is not set +diff -Nuar linux-3.2.0/ChangeLog.txt linux-3.2.0-ok335x/ChangeLog.txt +--- linux-3.2.0/ChangeLog.txt 1970-01-01 08:00:00.000000000 +0800 ++++ linux-3.2.0-ok335x/ChangeLog.txt 2019-08-01 12:52:36.243038163 +0800 +@@ -0,0 +1,15 @@ ++ ++1. Nandflash(MT29F2G08ABAEAWP, 256M) Partition ++----------------------------------------------- ++ ++arch/arm/mach-omap2/board-am335xevm.c: ++ ++0x000000000000-0x000000080000 : "SPL" ++0x000000080000-0x0000000c0000 : "U-Boot" ++0x0000000c0000-0x000000100000 : "U-Boot Env" ++0x000000100000-0x000000600000 : "Kernel" ++0x000000600000-0x000009c00000 : "Rootfs" ++0x000009c00000-0x000010000000 : "Apps" ++ ++ ++ diff -Nuar linux-3.2.0/Makefile linux-3.2.0-ok335x/Makefile --- linux-3.2.0/Makefile 2019-07-28 20:25:29.000000000 +0800 -+++ linux-3.2.0-ok335x/Makefile 2019-07-29 13:07:08.678082816 +0800 ++++ linux-3.2.0-ok335x/Makefile 2019-08-01 12:52:36.259038163 +0800 @@ -192,8 +192,8 @@ # Default value for CROSS_COMPILE is not to prefix executables # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile diff --git a/ok335xD/linux-bsp/patches/u-boot-2011.09-ok335x.patch b/ok335xD/linux-bsp/patches/u-boot-2011.09-ok335x.patch index b5265ec..d8c0388 100644 --- a/ok335xD/linux-bsp/patches/u-boot-2011.09-ok335x.patch +++ b/ok335xD/linux-bsp/patches/u-boot-2011.09-ok335x.patch @@ -1,7 +1,7 @@ diff -Nuar u-boot-2011.09/build.sh u-boot-2011.09-ok335x/build.sh --- u-boot-2011.09/build.sh 1970-01-01 08:00:00.000000000 +0800 -+++ u-boot-2011.09-ok335x/build.sh 2019-07-29 13:42:52.862123947 +0800 -@@ -0,0 +1,66 @@ ++++ u-boot-2011.09-ok335x/build.sh 2019-08-01 16:36:13.003295528 +0800 +@@ -0,0 +1,67 @@ +#!/bin/bash + +TFTP_PATH=/tftp @@ -9,7 +9,8 @@ +IMG_NAME="u-boot.img MLO" + +CROSSTOOL=/opt/crosstool/cortex-a7/bin/arm-linux-gnueabi- -+JOBS=`cat /proc/cpuinfo |grep "processor"|wc -l` ++#JOBS=`cat /proc/cpuinfo |grep "processor"|wc -l` ++JOBS=1 + + +function do_clean() @@ -68,9 +69,204 @@ +do_install + + +diff -Nuar u-boot-2011.09/include/configs/ok335x.h u-boot-2011.09-ok335x/include/configs/ok335x.h +--- u-boot-2011.09/include/configs/ok335x.h 2014-01-23 09:45:03.000000000 +0800 ++++ u-boot-2011.09-ok335x/include/configs/ok335x.h 2019-08-01 18:04:47.259397469 +0800 +@@ -61,17 +61,11 @@ + "nandroot=ubi0:rootfs rw ubi.mtd=7,2048\0" \ + "nandrootfstype=ubifs rootwait=1\0" + #else +-#define CON \ +- "console=ttyO0,115200n8\0" \ +- "optargs=\0" \ +- "mmcroot=/dev/mmcblk0p2 ro\0" \ +- "mmcrootfstype=ext3 rootwait\0" \ +- "nandroot=ubi0:rootfs rw ubi.mtd=7,2048\0" \ +- "nandrootfstype=ubifs rootwait=1\0" ++#define CON "console=ttyO0,115200n8\0" + #endif + + /* set to negative value for no autoboot */ +-#define CONFIG_BOOTDELAY 3 ++#define CONFIG_BOOTDELAY 1 + + #define CONFIG_MMC + #define CONFIG_NAND +@@ -81,141 +75,30 @@ + #define CONFIG_CFB_CONSOLE + #define CONFIG_VGA_AS_SINGLE_DEVICE + ++#define CONFIG_BOOTARGS "console=ttyO0,115200n8 root=ubi0:rootfs rw ubi.mtd=4,2048 rootfstype=ubifs rootwait=1" ++#define CONFIG_BOOTCOMMAND "run confaddr; nandecc hw 2; nand read ${loadaddr} ${kernaddr} ${kernsize}; bootm ${loadaddr}" ++#define CONFIG_IPADDR 192.168.2.222 ++#define CONFIG_SERVERIP 192.168.2.2 ++#define CONFIG_BOOTFILE uImage ++#define CONFIG_LOADADDR 0x80200000 + +-#if 1 + #define CONFIG_EXTRA_ENV_SETTINGS \ +- CON \ +- "screentype=R\0"\ +- "screensize=800x480-7\0"\ +- "loadaddr=0x80200000\0" \ +- "kloadaddr=0x80007fc0\0" \ +- "fdtaddr=0x80F80000\0" \ +- "fdt_high=0xffffffff\0" \ +- "rdaddr=0x81000000\0" \ +- "bootdev=MMC\0"\ +- "bootfile=uImage\0" \ +- "fdtfile=\0" \ +- "mmcdev=0\0" \ +- "nandsrcaddr=0x280000\0" \ +- "nandimgsize=0x500000\0" \ +- "rootpath=/export/rootfs\0" \ +- "nfsopts=nolock\0" \ +- "static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}" \ +- "::off\0" \ +- "ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=${rdaddr},64M\0" \ +- "ramrootfstype=ext2\0" \ +- "ip_method=none\0" \ +- "bootargs_defaults=setenv bootargs " \ +- "console=${console} " \ +- "${optargs}\0" \ +- "mmcargs=run bootargs_defaults;" \ +- "setenv bootargs ${bootargs} " \ +- "root=${mmcroot} " \ +- "rootfstype=${mmcrootfstype} ip=${ip_method} screentype=${screentype} screensize=${screensize}\0" \ +- "nandargs=setenv bootargs console=${console} " \ +- "${optargs} " \ +- "root=${nandroot} " \ +- "rootfstype=${nandrootfstype} screentype=${screentype} screensize=${screensize}\0" \ +- "spiroot=/dev/mtdblock4 rw\0" \ +- "spirootfstype=jffs2\0" \ +- "spisrcaddr=0xe0000\0" \ +- "spiimgsize=0x362000\0" \ +- "spibusno=0\0" \ +- "spiargs=setenv bootargs console=${console} " \ +- "${optargs} " \ +- "root=${spiroot} " \ +- "rootfstype=${spirootfstype}\0" \ +- "netargs=setenv bootargs console=${console} " \ +- "${optargs} " \ +- "root=/dev/nfs " \ +- "nfsroot=${serverip}:${rootpath},${nfsopts} rw " \ +- "ip=dhcp\0" \ +- "bootenv=uEnv.txt\0" \ +- "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ +- "importbootenv=echo Importing environment from mmc ...; " \ +- "env import -t $loadaddr $filesize\0" \ +- "ramargs=setenv bootargs console=${console} " \ +- "${optargs} " \ +- "root=${ramroot} " \ +- "rootfstype=${ramrootfstype}\0" \ +- "loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \ +- "loaduimagefat=fatload mmc ${mmcdev} ${kloadaddr} ${bootfile}\0" \ +- "loaduimage=ext2load mmc ${mmcdev}:2 ${kloadaddr} /boot/${bootfile}\0" \ +- "mmcboot=echo Booting from mmc ...; " \ +- "run mmcargs; " \ +- "bootm ${kloadaddr}\0" \ +- "nandboot=echo Booting from nand ...; " \ +- "run nandargs; " \ +- "nandecc hw 2;"\ +- "nand read ${loadaddr} ${nandsrcaddr} ${nandimgsize}; " \ +- "bootm ${loadaddr}\0" \ +- "spiboot=echo Booting from spi ...; " \ +- "run spiargs; " \ +- "sf probe ${spibusno}:0; " \ +- "sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; " \ +- "bootm ${loadaddr}\0" \ +- "netboot=echo Booting from network ...; " \ +- "setenv autoload no; " \ +- "dhcp; " \ +- "tftp ${loadaddr} ${bootfile}; " \ +- "run netargs; " \ +- "bootm ${loadaddr}\0" \ +- "ramboot=echo Booting from ramdisk ...; " \ +- "run ramargs; " \ +- "bootm ${loadaddr}\0" \ +- "findfdt="\ +- "if test $board_name = A335BONE; then " \ +- "setenv fdtfile am335x-bone.dtb; fi; " \ +- "if test $board_name = A33515BB; then " \ +- "setenv fdtfile am335x-evm.dtb; fi; " \ +- "if test $board_name = A335X_SK; then " \ +- "setenv fdtfile am335x-evmsk.dtb; fi\0" \ +- "auto_update_nand= echo ---------------Begin update system to Nand---------------;led all on;"\ +- "setenv TYPE 0;nand erase.chip;mmc rescan; "\ +- "setenv TYPE 1;fatload mmc 0 80A00000 MLO; setenv TYPE 2;nandecc hw 2;nand write.i 80A00000 0 ${filesize}; "\ +- "setenv TYPE 3;fatload mmc 0 80A00000 u-boot.img;setenv TYPE 4;nandecc hw 2;nand write.i 80A00000 80000 ${filesize}; "\ +- "setenv TYPE 5;fatload mmc 0 80A00000 uImage; setenv TYPE 6;nandecc hw 2;nand write.i 80A00000 280000 ${filesize}; "\ +- "setenv TYPE 7;fatload mmc 0 80A00000 ubi.img; setenv TYPE 8;nandecc sw;nand write.i 80A00000 780000 ${filesize};"\ +- "echo ;"\ +- "echo --------------Update system to Nand success--------------;led flash all;\0"\ +- "update_nand= echo ---------------Begin update system to Nand---------------;led all on;"\ +- "setenv TYPE 0;nand erase.chip;mmc rescan; "\ +- "setenv TYPE 1;fatload mmc 0 80A00000 MLO; setenv TYPE 2;nandecc hw 2;nand write.i 80A00000 0 ${filesize}; "\ +- "setenv TYPE 3;fatload mmc 0 80A00000 u-boot.img;setenv TYPE 4;nandecc hw 2;nand write.i 80A00000 80000 ${filesize}; "\ +- "setenv TYPE 5;fatload mmc 0 80A00000 uImage; setenv TYPE 6;nandecc hw 2;nand write.i 80A00000 280000 ${filesize}; "\ +- "setenv TYPE 7;fatload mmc 0 80A00000 ubi.img; setenv TYPE 8;nandecc sw;nand write.i 80A00000 780000 ${filesize};"\ +- "echo ;"\ +- "echo --------------Update system to Nand success--------------;led all off;"\ +- +- +-#define CONFIG_BOOTCOMMAND \ +- " if test $bootdev = MMC; then " \ +- "mmc dev ${mmcdev}; mmc rescan;"\ +- "echo SD/MMC found on device ${mmcdev};" \ +- "if run loadbootenv; then " \ +- "echo Loaded environment from ${bootenv};" \ +- "run importbootenv;" \ +- "fi;" \ +- "if test -n $uenvcmd; then " \ +- "echo Running uenvcmd ...;" \ +- "run uenvcmd;" \ +- "fi;" \ +- "if run loaduimagefat; then " \ +- "run mmcboot;" \ +- "elif run loaduimage; then " \ +- "run mmcboot;" \ +- "else " \ +- "echo Could not find ${bootfile} ;" \ +- "fi;" \ +- "else " \ +- "run nandboot;" \ +- "fi;" \ +- +-#else +-#define CONFIG_BOOTARGS "console=ttyO0,115200n8 earlyprintk ubi.mtd=7,2048 root=ubi0:rootfs rootfstype=ubifs init=/init androidboot.console=ttyO0" +-#define CONFIG_BOOTCOMMAND "nandecc hw 2;nand read.i 80007fc0 280000 400000;bootm 80007fc0" +-#endif ++ "screentype=C\0" \ ++ "screensize=800x480-7\0" \ ++ "confaddr=set spladdr 0x0; set ubootaddr 0x80000; set envaddr 0xc0000; set envsize 0x40000; " \ ++ "set kernaddr 0x100000; set kernsize 0x500000; set rootaddr 0x600000; set rootsize 0x9600000 \0" \ ++ "confimgs=set spl 'MLO'; set uboot 'u-boot.img'; set kernel 'uImage'; set rootfs 'ubifs.img' \0" \ ++ "conf=run confaddr; run confimgs; set filesize 0x20000; \0" \ ++ "bbl=run conf; nand erase 0 100000; tftp ${loadaddr} ${spl}; nandecc hw 2; nand write.i ${loadaddr} ${spladdr} ${filesize}; " \ ++ "tftp ${uboot}; nandecc hw 2;nand write.i ${loadaddr} ${ubootaddr} ${filesize}\0" \ ++ "benv=run confaddr; nandecc hw 0; nand erase ${envaddr} ${envsize}; save\0" \ ++ "bkr=run conf; tftp ${loadaddr} ${kernel}; nand erase ${kernaddr} ${kernsize}; "\ ++ "nandecc hw 2; nand write.i ${loadaddr} ${kernaddr} ${filesize}\0" \ ++ "bfs=run conf; tftp ${loadaddr} ${rootfs}; nand erase ${rootaddr} ${rootsize}; "\ ++ "nandecc hw 2; nand write.i ${loadaddr} ${rootaddr} ${filesize}\0" \ ++ "bsys=nand scrub.chip; run conf; run bbl; run bkr; run bfs; reset\0" + ++ + #define CONFIG_MISC_INIT_R + #define CONFIG_SYS_AUTOLOAD "yes" + #define CONFIG_CMD_CACHE +@@ -412,7 +295,7 @@ + #define CONFIG_SYS_MONITOR_LEN (256 << 10) /* Reserve 2 sectors */ + #define CONFIG_SYS_FLASH_BASE PISMO1_NAND_BASE + #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_FLASH_BASE +-#define MNAND_ENV_OFFSET 0x260000 /* environment starts here */ ++#define MNAND_ENV_OFFSET 0xC0000 /* environment starts here */ + #define CONFIG_SYS_ENV_SECT_SIZE (128 << 10) /* 128 KiB */ + #define CONFIG_ENV_OFFSET MNAND_ENV_OFFSET + #define CONFIG_ENV_ADDR MNAND_ENV_OFFSET diff -Nuar u-boot-2011.09/Makefile u-boot-2011.09-ok335x/Makefile --- u-boot-2011.09/Makefile 2013-11-20 14:14:16.000000000 +0800 -+++ u-boot-2011.09-ok335x/Makefile 2019-07-29 13:39:47.514120392 +0800 ++++ u-boot-2011.09-ok335x/Makefile 2019-08-01 15:09:30.547195733 +0800 @@ -155,6 +155,8 @@ # load ARCH, BOARD, and CPU configuration include $(obj)include/config.mk -- Gitblit v1.9.1