zoukankan      html  css  js  c++  java
  • X-003 FriendlyARM tiny4412 uboot移植之添加相应目录文件

     

    X-003 FriendlyARM tiny4412 uboot移植之添加相应目录文件

     

    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 

    开发环境:win7 64 + VMware12 + Ubuntu14.04 64

    工具链:linaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi

    要移植的u-boot版本:u-boot-2016-11

    Tiny4412开发板硬件版本为

      底板:  Tiny4412/Super4412SDK 1506

        核心板:Tiny4412 - 1412

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

     

      u-boot/board/samsung目录下基于exynos4412的开发板有:origenodroidtratstrats2,但是只有origen支持spl配置,根据exynos4412芯片启动的特点,选择origen作为参考比较合适。

     

    一、参考origenu-boot中的代码结构添加tiny4412的目录和配置文件

    1、添加tiny4412 板级目录

    mkdir -p board/samsung/tiny4412

    mkdir -p board/samsung/tiny4412/tools

     

    2、添加tiny4412 配置文件

    touch board/samsung/tiny4412/tiny4412.c

    touch board/samsung/tiny4412/Kconfig

    touch board/samsung/tiny4412/MAINTAINERS

    touch board/samsung/tiny4412/Makefile

    touch board/samsung/tiny4412/tools/mktiny4412spl.c

    touch include/configs/tiny4412.h

    touch configs/tiny4412_defconfig

    touch arch/arm/dts/exynos4412-tiny4412.dts

     

    3、修改、添加tiny4412 相关文件

        

        3.1 添加board/samsung/tiny4412/tiny4412.c

    diff --git a/board/samsung/tiny4412/tiny4412.c b/board/samsung/tiny4412/tiny4412.c

    new file mode 100644

    index 0000000..547dd45

    --- /dev/null

    +++ b/board/samsung/tiny4412/tiny4412.c

    @@ -0,0 +1,40 @@

    +/*

    + *         2016

    + * Author AP0904225 <ap0904225@qq.com>

    + *

    + *

    + * SPDX-License-Identifier:    GPL-2.0+

    + */

    +

    +#include <common.h>

    +#include <asm/io.h>

    +#include <asm/gpio.h>

    +#include <asm/arch/cpu.h>

    +#include <asm/arch/mmc.h>

    +#include <asm/arch/periph.h>

    +#include <asm/arch/pinmux.h>

    +#include <usb.h>

    +

    +DECLARE_GLOBAL_DATA_PTR;

    +

    +u32 get_board_rev(void)

    +{

    +   return 0;

    +}

    +

    +int exynos_init(void)

    +{

    +   return 0;

    +}

    +

    +int board_usb_init(int index, enum usb_init_type init)

    +{

    +   return 0;

    +}

    +

    +#ifdef CONFIG_BOARD_EARLY_INIT_F

    +int exynos_early_init_f(void)

    +{

    +   return 0;

    +}

    +#endif

       

        3.2 添加board/samsung/tiny4412/tools/mktiny4412spl.c

    diff --git a/board/samsung/tiny4412/tools/mktiny4412spl.c b/board/samsung/tiny4412/tools/mktiny4412spl.c

    new file mode 100644

    index 0000000..c3a3e29

    --- /dev/null

    +++ b/board/samsung/tiny4412/tools/mktiny4412spl.c

    @@ -0,0 +1,104 @@

    +/*

    + *       2016

    + *  Author  AP0904225 <ap0904225@qq.com>

    + *

    + * SPDX-License-Identifier:    GPL-2.0+

    + */

    +

    +#include <stdio.h>

    +#include <stdlib.h>

    +#include <unistd.h>

    +#include <fcntl.h>

    +#include <errno.h>

    +#include <string.h>

    +#include <sys/stat.h>

    +

    +#define BUFSIZE            (16*1024)

    +#define IMG_SIZE       ( (14*1024)- 4 )

    +#define FILE_PERM      (S_IRUSR | S_IWUSR | S_IRGRP

    +               | S_IWGRP | S_IROTH | S_IWOTH)

    +/*

    +* Requirement:

    +* IROM code reads first 14K bytes from boot device.

    +* It then calculates the checksum of 14K-4 bytes and compare with data at

    +* 14K-4 offset.

    +*

    +* This function takes two filenames:

    +* IN  "u-boot-spl.bin" and

    +* OUT "$(BOARD)-spl.bin as filenames.

    +* It reads the "u-boot-spl.bin" in 16K buffer.

    +* It calculates checksum of 14K-4 Bytes and stores at 14K-4 offset in buffer.

    +* It writes the buffer to "$(BOARD)-spl.bin" file.

    +*/

    +

    +int main(int argc, char **argv)

    +{

    +   int i, len;

    +   unsigned char buffer[BUFSIZE] = {0};

    +   int ifd, ofd;

    +   unsigned int checksum = 0;

    +   unsigned int count = 0;

    +

    +   if (argc != 3) {

    +       printf(" %d Wrong number of arguments ", argc);

    +       exit(EXIT_FAILURE);

    +   }

    +

    +   ifd = open(argv[1], O_RDONLY);

    +   if (ifd < 0) {

    +       fprintf(stderr, "%s: Can't open %s: %s ",

    +           argv[0], argv[1], strerror(errno));

    +       exit(EXIT_FAILURE);

    +   }

    +

    +   ofd = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, FILE_PERM);

    +   if (ofd < 0) {

    +       fprintf(stderr, "%s: Can't open %s: %s ",

    +           argv[0], argv[2], strerror(errno));

    +       if (ifd)

    +           close(ifd);

    +       exit(EXIT_FAILURE);

    +   }

    +

    +   len = lseek(ifd, 0, SEEK_END);

    +   lseek(ifd, 0, SEEK_SET);

    +

    +   count = (len < IMG_SIZE )? len : IMG_SIZE; //14K-4

    +

    +   if (read(ifd, buffer, count) != count) {

    +       fprintf(stderr, "%s: Can't read %s: %s ",

    +           argv[0], argv[1], strerror(errno));

    +

    +       if (ifd)

    +           close(ifd);

    +       if (ofd)

    +           close(ofd);

    +

    +       exit(EXIT_FAILURE);

    +   }

    +

    +   for(i = 0;i < IMG_SIZE;i++)

    +   {

    +       checksum += (unsigned char)(buffer[i]);

    +   }

    +   *(unsigned int*)(buffer+i) = checksum;

    +

    +   if (write(ofd, buffer, BUFSIZE) != BUFSIZE) {

    +       fprintf(stderr, "%s: Can't write %s: %s ",

    +           argv[0], argv[2], strerror(errno));

    +

    +       if (ifd)

    +           close(ifd);

    +       if (ofd)

    +           close(ofd);

    +

    +       exit(EXIT_FAILURE);

    +   }

    +

    +   if (ifd)

    +       close(ifd);

    +   if (ofd)

    +       close(ofd);

    +

    +   return EXIT_SUCCESS;

    +}

     

    3.3 添加include/configs/tiny4412.h

    diff --git a/include/configs/tiny4412.h b/include/configs/tiny4412.h

    new file mode 100644

    index 0000000..36af8b1

    --- /dev/null

    +++ b/include/configs/tiny4412.h

    @@ -0,0 +1,115 @@

    +/*

    + *         2016

    + *     Author AP0904225 <ap0904225@qq.com>

    + *

    + * Configuration settings for the FriendlyARM TINY4412 (EXYNOS4412) board.

    + *

    + * SPDX-License-Identifier:    GPL-2.0+

    + */

    +

    +#ifndef __CONFIG_TINY4412_H

    +#define __CONFIG_TINY4412_H

    +

    +#include <configs/exynos4-common.h>

    +

    +/* TIZEN THOR downloader support */

    +#undef CONFIG_CMD_THOR_DOWNLOAD

    +#undef CONFIG_USB_FUNCTION_THOR

    +

    +/* High Level Configuration Options */

    +#define TINY4412           1   /* working with TINY4412*/

    +

    +#define CONFIG_SYS_DCACHE_OFF      1

    +

    +/* TINY4412 has 4 bank of DRAM */

    +#define CONFIG_NR_DRAM_BANKS       4

    +#define CONFIG_SYS_SDRAM_BASE      0x40000000

    +#define PHYS_SDRAM_1           CONFIG_SYS_SDRAM_BASE

    +#define SDRAM_BANK_SIZE            (256 << 20) /* 256 MB */

    +

    +/* memtest works on */

    +#define CONFIG_SYS_MEMTEST_START   CONFIG_SYS_SDRAM_BASE

    +#define CONFIG_SYS_MEMTEST_END     (CONFIG_SYS_SDRAM_BASE + 0x6000000)

    +#define CONFIG_SYS_LOAD_ADDR       (CONFIG_SYS_SDRAM_BASE + 0x3E00000)

    +

    +#define CONFIG_SYS_TEXT_BASE       0x43E00000

    +

    +#define CONFIG_MACH_TYPE       MACH_TYPE_TINY4412

    +

    +/* select serial console configuration */

    +#define CONFIG_SERIAL2

    +#define CONFIG_BAUDRATE            115200

    +

    +/* Console configuration */

    +#define CONFIG_DEFAULT_CONSOLE     "console=ttySAC1,115200n8"

    +

    +#define CONFIG_SYS_MEM_TOP_HIDE    (1 << 20)   /* ram console */

    +

    +#define CONFIG_SYS_MONITOR_BASE    0x00000000

    +

    +/* Power Down Modes */

    +#define S5P_CHECK_SLEEP            0x00000BAD

    +#define S5P_CHECK_DIDLE            0xBAD00000

    +#define S5P_CHECK_LPA          0xABAD0000

    +

    +#define CONFIG_SUPPORT_RAW_INITRD

    +

    +/* MMC SPL */

    +#define COPY_BL2_FNPTR_ADDR    0x02020030

    +#define CONFIG_SPL_TEXT_BASE   0x02023400

    +#define CONFIG_SPL_STACK   0x02060000

    +

    +#define CONFIG_EXTRA_ENV_SETTINGS

    +   "loadaddr=0x40007000"

    +   "rdaddr=0x48000000"

    +   "kerneladdr=0x40007000"

    +   "ramdiskaddr=0x48000000"

    +   "console=ttySAC2,115200n8"

    +   "mmcdev=0"

    +   "bootenv=uEnv.txt"

    +   "loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}"

    +   "importbootenv=echo Importing environment from mmc ...; "

    +       "env import -t $loadaddr $filesize"

    +        "loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr"

    +        "bootscript=echo Running bootscript from mmc${mmcdev} ...; "

    +                "source ${loadaddr}"

    +#define CONFIG_BOOTCOMMAND

    +   "if mmc rescan; then "

    +       "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 loadbootscript; then "

    +           "run bootscript; "

    +       "fi; "

    +   "fi;"

    +   "load mmc ${mmcdev} ${loadaddr} uImage; bootm ${loadaddr} "

    +

    +#define CONFIG_CLK_1000_400_200

    +

    +/* MIU (Memory Interleaving Unit) */

    +#define CONFIG_MIU_2BIT_21_7_INTERLEAVED

    +

    +#define CONFIG_ENV_IS_IN_MMC

    +#define CONFIG_SYS_MMC_ENV_DEV     0

    +#define CONFIG_ENV_SIZE            (16 << 10)  /* 16 KB */

    +#define RESERVE_BLOCK_SIZE     (512)

    +#define BL1_SIZE           (16 << 10) /*16 K reserved for BL1*/

    +#define CONFIG_ENV_OFFSET      (RESERVE_BLOCK_SIZE + BL1_SIZE)

    +

    +#define CONFIG_SPL_LDSCRIPT    "board/samsung/common/exynos-uboot-spl.lds"

    +#define CONFIG_SPL_MAX_FOOTPRINT   (14 * 1024)

    +

    +#define CONFIG_SYS_INIT_SP_ADDR        0x02040000

    +

    +/* U-Boot copy size from boot Media to DRAM.*/

    +#define COPY_BL2_SIZE      0x80000

    +#define BL2_START_OFFSET   ((CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)/512)

    +#define BL2_SIZE_BLOC_COUNT    (COPY_BL2_SIZE/512)

    +

    +#endif /* __CONFIG_H */

        

        3.4 添加configs/tiny4412_defconfig

    diff --git a/configs/tiny4412_defconfig b/configs/tiny4412_defconfig

    new file mode 100644

    index 0000000..93917b9

    --- /dev/null

    +++ b/configs/tiny4412_defconfig

    @@ -0,0 +1,34 @@

    +#

    +# U-Boot 2016.11 Configuration for FriendlyARM tiny4412

    +#

    +CONFIG_ARM=y

    +CONFIG_ARCH_EXYNOS=y

    +CONFIG_ARCH_EXYNOS4=y

    +CONFIG_TARGET_TINY4412=y

    +CONFIG_IDENT_STRING=" for TINY4412"

    +CONFIG_DEFAULT_DEVICE_TREE="exynos4412-tiny4412"

    +CONFIG_SYS_CONSOLE_IS_IN_ENV=y

    +CONFIG_SYS_CONSOLE_INFO_QUIET=y

    +CONFIG_SPL=y

    +CONFIG_HUSH_PARSER=y

    +CONFIG_SYS_PROMPT="TINY4412 # "

    +CONFIG_CMD_BOOTZ=y

    +CONFIG_CMD_MMC=y

    +CONFIG_CMD_MII=y

    +CONFIG_CMD_CACHE=y

    +CONFIG_CMD_EXT2=y

    +CONFIG_CMD_EXT4=y

    +CONFIG_CMD_EXT4_WRITE=y

    +CONFIG_CMD_FAT=y

    +CONFIG_CMD_FS_GENERIC=y

    +CONFIG_OF_CONTROL=y

    +

    +#

    +#NOTE:do not delete this:

    +#

    +# CONFIG_CMD_IMLS is not set

    +# CONFIG_CMD_XIMG is not set

    +# CONFIG_CMD_MISC is not set

    +# CONFIG_CMD_FPGA is not set

    +# CONFIG_CMD_NET is not set

    +# CONFIG_CMD_NFS is not set

        

        3.5 添加board/samsung/tiny4412/MAINTAINERS

    diff --git a/board/samsung/tiny4412/MAINTAINERS b/board/samsung/tiny4412/MAINTAINERS

    new file mode 100644

    index 0000000..ee5ad1a9

    --- /dev/null

    +++ b/board/samsung/tiny4412/MAINTAINERS

    @@ -0,0 +1,6 @@

    +TINY4412 BOARD

    +M: AP0904225 <ap0904225@qq.com>

    +S: Author  AP0904225

    +F: board/samsung/tiny4412/

    +F: include/configs/tiny4412.h

    +F: configs/tiny4412_defconfig

        

        3.6 修改 board/samsung/tiny4412/Kconfig

    diff --git a/board/samsung/tiny4412/Kconfig b/board/samsung/tiny4412/Kconfig

    new file mode 100644

    index 0000000..954c391

    --- /dev/null

    +++ b/board/samsung/tiny4412/Kconfig

    @@ -0,0 +1,15 @@

    +if TARGET_TINY4412

    +

    +config SYS_BOARD

    +   default "tiny4412"

    +

    +config SYS_VENDOR

    +   default "samsung"

    +

    +config SYS_CONFIG_NAME

    +   default "tiny4412"

    +

    +config EXYNOS4412

    +   bool

    +

    +endif

     

        3.7 修改board/samsung/tiny4412/Makefile

    diff --git a/board/samsung/tiny4412/Makefile b/board/samsung/tiny4412/Makefile

    new file mode 100644

    index 0000000..55301d5

    --- /dev/null

    +++ b/board/samsung/tiny4412/Makefile

    @@ -0,0 +1,23 @@

    +#

    +#       2016

    +#  Author  AP0904225 <ap0904225@qq.com>

    +#

    +# SPDX-License-Identifier: GPL-2.0+

    +#

    +

    +ifdef CONFIG_SPL_BUILD

    +# necessary to create built-in.o

    +obj- := __dummy__.o

    +

    +hostprogs-y := tools/mktiny4412spl

    +always := $(hostprogs-y)

    +

    +# omit -O2 option to suppress

    +#   warning: dereferencing type-punned pointer will break strict-aliasing rules

    +#

    +# TODO:

    +# Fix the root cause in tools/mktiny4412spl.c and delete the following work-around

    +$(obj)/tools/mktiny4412spl: HOSTCFLAGS:=$(filter-out -O2,$(HOSTCFLAGS))

    +else

    +obj-y  += tiny4412.o

    +endif

     

    3.8 修改arch/arm/mach-exynos/Kconfig,在执行make menuconfig时会看到tiny4412 board选项

    diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig

    index ce2a16f..c8bb811 100644

    --- a/arch/arm/mach-exynos/Kconfig

    +++ b/arch/arm/mach-exynos/Kconfig

    @@ -56,6 +56,15 @@ config TARGET_TRATS2

     config TARGET_ODROID

        bool "Exynos4412 Odroid board"

     

    +config TARGET_TINY4412

    +   bool "Exynos4412 FriendlyARM Tiny4412 board"

    +   select SUPPORT_SPL

    +   select SPL

    +   select EXYNOS4412

    +       help

    +       Support FriendlyARM Tiny4412 board based on Samsung exynos4412

    +       CPU: S5PC220[Samsung SOC on SMP Platform Base on ARM CortexA9].

    +

     endchoice

     endif

     

    @@ -145,6 +154,7 @@ source "board/samsung/universal_c210/Kconfig"

     source "board/samsung/origen/Kconfig"

     source "board/samsung/trats2/Kconfig"

     source "board/samsung/odroid/Kconfig"

    +source "board/samsung/tiny4412/Kconfig"

     source "board/samsung/arndale/Kconfig"

     source "board/samsung/smdk5250/Kconfig"

     source "board/samsung/smdk5420/Kconfig"

     

        3.9 修改 arch/arm/mach-exynos/Makefile

    diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile

    index 0cc6c32..ac47ab2 100644

    --- a/arch/arm/mach-exynos/Makefile

    +++ b/arch/arm/mach-exynos/Makefile

    @@ -15,6 +15,7 @@ ifdef CONFIG_SPL_BUILD

     obj-$(CONFIG_EXYNOS5)  += clock_init_exynos5.o

     obj-$(CONFIG_EXYNOS5)  += dmc_common.o dmc_init_ddr3.o

     obj-$(CONFIG_EXYNOS4210)+= dmc_init_exynos4.o clock_init_exynos4.o

    +obj-$(CONFIG_EXYNOS4412)+= dmc_init_exynos4.o clock_init_exynos4.o

     obj-y  += spl_boot.o tzpc.o

     obj-y  += lowlevel_init.o

     endif

     

        3.10 修改arch/arm/mach-exynos/exynos4_setup.h

    diff --git a/arch/arm/mach-exynos/exynos4_setup.h b/arch/arm/mach-exynos/exynos4_setup.h

    index 9f29d94..838e02c 100644

    --- a/arch/arm/mach-exynos/exynos4_setup.h

    +++ b/arch/arm/mach-exynos/exynos4_setup.h

    @@ -440,6 +440,12 @@ struct mem_timings {

     #define APB_SFR_ARBRITATION_CONF_VAL   0x00000001

     #endif

     

    +#ifdef TINY4412

    +/* Interleave: 2Bit, Interleave_bit1: 0x15, Interleave_bit0: 0x7 */

    +#define APB_SFR_INTERLEAVE_CONF_VAL    0x20001507

    +#define APB_SFR_ARBRITATION_CONF_VAL   0x00000001

    +#endif

    +

     #define INTERLEAVE_ADDR_MAP_START_ADDR 0x40000000

     #define INTERLEAVE_ADDR_MAP_END_ADDR   0xbfffffff

     #define INTERLEAVE_ADDR_MAP_EN     0x00000001

       

        3.11、修改arch/arm/include/asm/mach-types.h,增加tiny4412machine ID

     diff --git a/arch/arm/include/asm/mach-types.h b/arch/arm/include/asm/mach-types.h

    index d51be0b..297f1c3 100644

    --- a/arch/arm/include/asm/mach-types.h

    +++ b/arch/arm/include/asm/mach-types.h

    @@ -1107,6 +1107,7 @@ extern unsigned int __machine_arch_type;

     #define MACH_TYPE_COLIBRI_T30          4493

     #define MACH_TYPE_APALIS_T30           4513

     #define MACH_TYPE_OMAPL138_LCDK        2495

    +#define MACH_TYPE_TINY4412             4608

     

     #ifdef CONFIG_ARCH_EBSA110

     # ifdef machine_arch_type

     

        3.12、修改arch/arm/dts/Makefile,用于编译tiny4412设备树

    diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile

    index 836a8c4..a654d74 100644

    --- a/arch/arm/dts/Makefile

    +++ b/arch/arm/dts/Makefile

    @@ -14,6 +14,7 @@ dtb-$(CONFIG_EXYNOS4) += exynos4210-origen.dtb

        exynos4210-universal_c210.dtb

        exynos4210-trats.dtb

        exynos4412-trats2.dtb

    +   exynos4412-tiny4412.dtb

        exynos4412-odroid.dtb

     

     dtb-$(CONFIG_TARGET_HIKEY) += hi6220-hikey.dtb

     

           3.13 添加arch/arm/dts/exynos4412-tiny4412.dts,使用uart0作为终端

    diff --git a/arch/arm/dts/exynos4412-tiny4412.dts b/arch/arm/dts/exynos4412-tiny4412.dts

    new file mode 100644

    index 0000000..8822d52

    --- /dev/null

    +++ b/arch/arm/dts/exynos4412-tiny4412.dts

    @@ -0,0 +1,86 @@

    +/*

    + * FriendlyARM Tiny4412 board device tree source

    + *

    + *             2016

    + *  Author  AP0904225 <ap0904225@qq.com>

    + *

    + * SPDX-License-Identifier:    GPL-2.0+

    + */

    +

    +/dts-v1/;

    +#include "exynos4412.dtsi"

    +

    +/ {

    +   model = "Tiny4412 based on Exynos4412";

    +   compatible = "samsung,tiny4412", "samsung,exynos4412";

    +

    +   aliases {

    +       i2c0 = "/i2c@13860000";

    +       i2c1 = "/i2c@13870000";

    +       i2c2 = "/i2c@13880000";

    +       i2c3 = "/i2c@13890000";

    +       i2c4 = "/i2c@138a0000";

    +       i2c5 = "/i2c@138b0000";

    +       i2c6 = "/i2c@138c0000";

    +       i2c7 = "/i2c@138d0000";

    +       serial0 = "/serial@13800000";

    +       console = "/serial@13810000";

    +       mmc2 = "/sdhci@12530000";

    +       mmc4 = "/dwmmc@12550000";

    +   };

    +

    +   i2c@13860000 {

    +       samsung,i2c-sda-delay = <100>;

    +       samsung,i2c-slave-addr = <0x10>;

    +       samsung,i2c-max-bus-freq = <100000>;

    +       status = "okay";

    +   };

    +

    +   serial@13810000 {

    +       status = "okay";

    +   };

    +

    +   sdhci@12510000 {

    +       status = "disabled";

    +   };

    +

    +   sdhci@12520000 {

    +       status = "disabled";

    +   };

    +

    +   sdhci@12530000 {

    +       samsung,bus-width = <4>;

    +       samsung,timing = <1 2 3>;

    +       cd-gpios = <&gpk2 2 0>;

    +   };

    +

    +   sdhci@12540000 {

    +       status = "disabled";

    +   };

    +

    +   dwmmc@12550000 {

    +       samsung,bus-width = <8>;

    +       samsung,timing = <2 1 0>;

    +       samsung,removable = <0>;

    +       fifoth_val = <0x203f0040>;

    +       bus_hz = <400000000>;

    +       div = <0x3>;

    +       index = <4>;

    +   };

    +

    +   ehci@12580000 {

    +       compatible = "samsung,exynos-ehci";

    +       reg = <0x12580000 0x100>;

    +       #address-cells = <1>;

    +       #size-cells = <1>;

    +       phy {

    +           compatible = "samsung,exynos-usb-phy";

    +           reg = <0x125B0000 0x100>;

    +       };

    +   };

    +

    +   emmc-reset {

    +       compatible = "samsung,emmc-reset";

    +       reset-gpio = <&gpk1 2 0>;

    +   };

    +};

     

        添加完相关代码目录后,执行如下命令进行编译uboot

     

    $ make distclean

    $ make tiny4412_defconfig

    $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

     

        添加的文件没有出错的话,可以顺利编译出u-boot-spl.bin u-boot.bin文件,此时这个u-boot-spl.bin u-boot.bin文件还不能直接用在tiny4412 SDK开发板上,需进一步修改代码。

        到这里第一阶段的添加相关代码目录文件的工作就告一段落了。

     

    参考

    1、友善之臂tiny4412 uboot_tiny4412-20130729.tar.gz

    2http://www.wowotech.net/x_project/bubblegum_uboot_porting.html

    3http://www.wowotech.net/u-boot/boot_flow_1.html

    4http://www.wowotech.net/u-boot/boot_flow_2.html

    5http://www.cnblogs.com/pengdonglin137/p/5080645.html

     

     

  • 相关阅读:
    动手动脑11.19
    随机产生四则运算,导入导出文件
    JAVA常用的异常处理情况
    动手动脑11.12
    动手动脑11.1
    动手动脑10.21
    动手动脑10.14
    Cygwin install apt-cyg
    php获取request_uri
    linux下sed批量替换文件内容
  • 原文地址:https://www.cnblogs.com/LoTGu/p/6078966.html
Copyright © 2011-2022 走看看