(一)修改clock.c

经过上面两节的修改,我们发现还是有些问题,就是u-boot启动后会停留在MMC: ,其实这是由于在clock.c文件中关于mmc和lcd部分的结构体用错了

exynos4_get_mmc_clk()

exynos4_set_mmc_clk()

exynos4_get_lcd_clk()


exynos4_set_lcd_clk()


根据文档资料,exynos4412芯片属于4x12系列,而不是4系列,所以要改一下

(二)修改lowlevel_init.c

由于itop-4412开发板用的串口是串口2,所以改一下;还有就是tzpc的初始化,u-boot-2017.11默认的tzpc是exynos5系列芯片的,其实exynos4412已经有tzpc了,关于exynos的tzpc相关的知识,大家可以去网上学习,由于我移植的u-boot又不是用于高大上的商业机密啥的,就把它注释了,如果自己想加上tzpc的话,自己参考讯为提供的三星原厂exynos4412芯片文档,在第14章

讯为提供的三星原厂exynos4412芯片文档第14章

(三)修改power.c

(1)为power.h文件增加exynos4x12_power
这是由于exynos4412芯片属于exynos4x12类型

这个结构体来源与讯为提供的三星原厂exynos4412芯片资料的8.8 Register Description

代码

struct exynos4x12_power {unsigned int    om_stat;unsigned char   res1[0xc];unsigned int    rtc_clko_sel;unsigned int    gnss_rtc_out_ctrl;unsigned int    lpi_denial_mask0;unsigned int    lpi_denial_mask1;unsigned int    lpi_denial_mask2;unsigned int    c2c_ctrl;unsigned char   res2[0x1d8];unsigned int    central_seq_config;unsigned int    res3;unsigned int    central_seq_option;unsigned char   res4[0x1f4];unsigned int    swreset;unsigned int    rst_stat;unsigned int    auto_wdt_reset_disable;unsigned int    mask_wdt_reset_request;unsigned char   res5[0x1f0];unsigned int    wakeup_stat;unsigned int    eint_wakeup_mask;unsigned int    wakeup_mask;unsigned char   res6[0xf4];unsigned int    hdmi_phy_control;unsigned int    usbdevice_phy_control;unsigned int    hsic_1_phy_control;unsigned int    hsic_2_phy_control;unsigned int    mipi_phy0_control;unsigned int    mipi_phy1_control;unsigned int    adc_phy_control;unsigned char   res7[0x64];unsigned int    body_bias_con0;unsigned int    body_bias_con1;unsigned int    body_bias_con2;unsigned int    body_bias_con3;unsigned char   res8[0x70];unsigned int    inform0;unsigned int    inform1;unsigned int    inform2;unsigned int    inform3;unsigned int    inform4;unsigned int    inform5;unsigned int    inform6;unsigned int    inform7;unsigned char   res9[0x1e0];unsigned int    pmu_debug;unsigned char   res10[0x5fc];unsigned int    arm_core0_sys_pwr_reg;unsigned char   res11[0xc];unsigned int    arm_core1_sys_pwr_reg;unsigned char   res12[0x6c];unsigned int    arm_common_sys_pwr_reg;unsigned char   res13[0x3c];unsigned int    arm_cpu_l2_0_sys_pwr_reg;unsigned int    arm_cpu_l2_1_sys_pwr_reg;unsigned char   res14[0x38];unsigned int    cmu_aclkstop_sys_pwr_reg;unsigned int    cmu_sclkstop_sys_pwr_reg;unsigned char   res15[0x4];unsigned int    cmu_reset_sys_pwr_reg;unsigned char   res16[0x10];unsigned int    apll_sysclk_sys_pwr_reg;unsigned int    mpll_sysclk_sys_pwr_reg;unsigned int    vpll_sysclk_sys_pwr_reg;unsigned int    epll_sysclk_sys_pwr_reg;unsigned char   res17[0x8];unsigned int    cmu_clkstop_gps_alive_sys_pwr_reg;unsigned int    cmu_reset_gps_alive_sys_pwr_reg;unsigned int    cmu_clkstop_cam_sys_pwr_reg;unsigned int    cmu_clkstop_tv_sys_pwr_reg; unsigned int    cmu_clkstop_mfc_sys_pwr_reg;unsigned int    cmu_clkstop_g3d_sys_pwr_reg;unsigned int    cmu_clkstop_lcd0_sys_pwr_reg;unsigned int    cmu_clkstop_isp_sys_pwr_reg;unsigned int    cmu_clkstop_maudio_sys_pwr_reg;unsigned int    cmu_clkstop_gps_sys_pwr_reg;unsigned int    cmu_reset_cam_sys_pwr_reg;unsigned int    cmu_reset_tv_sys_pwr_reg;unsigned int    cmu_reset_mfc_sys_pwr_reg;unsigned int    cmu_reset_g3d_sys_pwr_reg;unsigned int    cmu_reset_lcd0_sys_pwr_reg;unsigned int    cmu_reset_isp_sys_pwr_reg;unsigned int    cmu_reset_maudio_sys_pwr_reg;unsigned int    cmu_reset_gps_sys_pwr_reg;unsigned int    top_bus_sys_pwr_reg;unsigned int    top_retention_sys_pwr_reg;unsigned int    top_pwr_sys_pwr_reg;unsigned char   res18[0x14];unsigned int    logic_reset_sys_pwr_reg;unsigned char   res19[0x1c];unsigned int    onenandxl_mem_sys_pwr_reg;unsigned int    hsi_mem_sys_pwr_reg;unsigned char   res20[0x4]; unsigned int    usbotg_mem_sys_pwr_reg;unsigned int    sdmmc_mem_sys_pwr_reg;unsigned int    cssys_mem_sys_pwr_reg;unsigned int    secss_mem_sys_pwr_reg;unsigned int    potator_mem_sys_pwr_reg;unsigned char   res21[0x20];unsigned int    pad_retention_dram_sys_pwr_reg;unsigned int    pad_retention_maudio_sys_pwr_reg;unsigned char   res22[0x18];unsigned int    pad_retention_gpio_sys_pwr_reg;unsigned int    pad_retention_uart_sys_pwr_reg;unsigned int    pad_retention_mmca_sys_pwr_reg;unsigned int    pad_retention_mmcb_sys_pwr_reg;unsigned int    pad_retention_ebia_sys_pwr_reg;unsigned int    pad_retention_ebib_sys_pwr_reg;unsigned char   res23[0x8];unsigned int    pad_isolation_sys_pwr_reg;unsigned char   res24[0x1c];unsigned int    pad_alv_sel_sys_pwr_reg;unsigned char   res25[0x1c];unsigned int    xusbxti_sys_pwr_reg;unsigned int    xxti_sys_pwr_reg;unsigned char   res26[0x38];unsigned int    ext_regulator_sys_pwr_reg;unsigned char   res27[0x3c];unsigned int    gpio_mode_sys_pwr_reg;unsigned char   res28[0x3c];unsigned int    gpio_mode_maudio_sys_pwr_reg;unsigned char   res29[0x3c];unsigned int    cam_sys_pwr_reg;unsigned int    tv_sys_pwr_reg;unsigned int    mfc_sys_pwr_reg;unsigned int    g3d_sys_pwr_reg;unsigned int    lcd0_sys_pwr_reg;unsigned int    isp_sys_pwr_reg;unsigned int    maudio_sys_pwr_reg;unsigned int    gps_sys_pwr_reg;unsigned int    gps_alive_sys_pwr_reg;unsigned char   res30[0xc5c];unsigned int    arm_core0_configuration;unsigned int    arm_core0_status;unsigned int    arm_core0_option;unsigned char   res31[0x74];unsigned int    arm_core1_configuration;unsigned int    arm_core1_status;unsigned int    arm_core1_option;unsigned char   res32[0x37c];unsigned int    arm_common_option;unsigned char   res33[0x1f4];unsigned int    arm_cpu_l2_0_configuration;unsigned int    arm_cpu_l2_0_status;unsigned char   res34[0x18];unsigned int    arm_cpu_l2_1_configuration;unsigned int    arm_cpu_l2_1_status;unsigned char   res35[0xa00];unsigned int    pad_retention_maudio_option;unsigned char   res36[0xdc];unsigned int    pad_retention_gpio_option;unsigned char   res37[0x1c];unsigned int    pad_retention_uart_option;unsigned char   res38[0x1c];unsigned int    pad_retention_mmca_option;unsigned char   res39[0x1c];unsigned int    pad_retention_mmcb_option;unsigned char   res40[0x1c];unsigned int    pad_retention_ebia_option;unsigned char   res41[0x1c];unsigned int    pad_retention_ebib_option;unsigned char   res42[0x160];unsigned int    ps_hold_control;unsigned char   res43[0xf0];unsigned int    xusbxti_configuration;unsigned int    xusbxti_status;unsigned char   res44[0x14];unsigned int    xusbxti_duration;unsigned int    xxti_configuration;unsigned int    xxti_status;unsigned char   res45[0x14];unsigned int    xxti_duration;unsigned char   res46[0x1dc];unsigned int    ext_regulator_duration;unsigned char   res47[0x5e0];unsigned int    cam_configuration;unsigned int    cam_status;unsigned int    cam_option;unsigned char   res48[0x14];unsigned int    tv_configuration;unsigned int    tv_status;unsigned int    tv_option;unsigned char   res49[0x14];unsigned int    mfc_configuration;unsigned int    mfc_status;unsigned int    mfc_option;unsigned char   res50[0x14];unsigned int    g3d_configuration;unsigned int    g3d_status;unsigned int    g3d_option;unsigned char   res51[0x14];unsigned int    lcd0_configuration;unsigned int    lcd0_status;unsigned int    lcd0_option;unsigned char   res52[0x14];unsigned int    isp_configuration;unsigned int    isp_status;unsigned int    isp_option;unsigned char   res53[0x34];unsigned int    gps_configuration;unsigned int    gps_status;unsigned int    gps_option;unsigned char   res54[0x14];unsigned int    gps_alive_configuration;unsigned int    gps_alive_status;unsigned int    gps_alive_option;
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207

(2)添加exynos4x12_set_ps_hold_ctrl函数,并修改set_ps_hold_ctrl

static void exynos4x12_set_ps_hold_ctrl(void)
{struct exynos4x12_power *power = (struct exynos4x12_power *)samsung_get_base_power();/* value: 1000000000B */setbits_le32(&power->ps_hold_control, EXYNOS_PS_HOLD_CONTROL_DATA_HIGH);/*** GPX0PUD register** 0x0 = Disables Pull-up/Pull-down* 0x1 = Enables Pull-down* 0x2 = Reserved* 0x3 = Enables Pull-up*/writel(0x3, (unsigned int *)0x11000c08);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18


注:为啥要修改GPX0PUD寄存器呢? 因为exynos4412 scp 核心板的电源管理是通过gpio来控制电源管理的,所以要将gpio设置为上拉

void set_ps_hold_ctrl(void)
{if (cpu_is_exynos5())exynos5_set_ps_hold_ctrl();
#ifdef CONFIG_ITOP4412else if (cpu_is_exynos4())exynos4x12_set_ps_hold_ctrl();
#endif
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(四)配置itop4412.h文件了

/** Copyright (C) 2011 Samsung Electronics** Configuration settings for the SAMSUNG ITOP4412 (EXYNOS4412) board.** SPDX-License-Identifier: GPL-2.0+*/#ifndef __CONFIG_ITOP4412_H
#define __CONFIG_ITOP4412_H#include <configs/exynos4-common.h>#define CONFIG_SUPPORT_EMMC_BOOT 1/* High Level Configuration Options */
#define CONFIG_EXYNOS4210       1   /* which is a EXYNOS4210 SoC */
#define CONFIG_ITOP4412         1   /* working with ITOP4412*/#define CONFIG_SYS_DCACHE_OFF       1/* itop-4412 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 + 0x00100000)#define CONFIG_SYS_TEXT_BASE        0x43E00000/* #define MACH_TYPE_ITOP4412       0xffffffff */
#define CONFIG_MACH_TYPE        MACH_TYPE_ITOP4412/* select serial console configuration */
#define CONFIG_SERIAL2/* Console configuration */
#define CONFIG_DEFAULT_CONSOLE      "console=ttySAC1,115200n8\0"#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 /* 0x02021410 */#define CONFIG_EXTRA_ENV_SETTINGS \"loadaddr=0x40007000\0" \"rdaddr=0x48000000\0" \"kerneladdr=0x40007000\0" \"ramdiskaddr=0x48000000\0" \"console=ttySAC2,115200n8\0" \"mmcdev=0\0" \"bootenv=uEnv.txt\0" \"dtb_addr=0x41000000\0" \"dtb_name=exynos4412-itop-4412.dtb\0" \"loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \"bootargs=console=ttySAC2,115200n8 earlyprintk\0" \"importbootenv=echo Importing environment from mmc ...; " \"env import -t $loadaddr $filesize\0" \"loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr\0" \"bootscript=echo Running bootscript from mmc${mmcdev} ...; " \"source ${loadaddr}\0"
#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;" \"mmc read ${loadaddr} 0x1000 0x4000; mmc read ${dtb_addr} 0x800 0xa0; bootm ${loadaddr} - ${dtb_addr}" \"load mmc ${mmcdev} ${loadaddr} uImage; load mmc ${mmcdev} ${dtb_addr} ${dtb_name}; bootm ${loadaddr} - ${dtb_addr}"#define CONFIG_CLK_1000_400_200/* MIU (Memory Interleaving Unit) */
#define CONFIG_MIU_2BIT_21_7_INTERLEAVED#define CONFIG_SYS_MMC_ENV_DEV      0
#define CONFIG_ENV_SIZE         (8 << 10)   /* 16 KB */
#define RESERVE_BLOCK_SIZE      (512)
#define BL1_SIZE            (8 << 10) /*8 K reserved for BL1*/
#define BL2_SIZE            (16 << 10) /*16 K reserved for BL2 */
#define CONFIG_ENV_OFFSET       (RESERVE_BLOCK_SIZE + BL1_SIZE + BL2_SIZE)#define CONFIG_SPL_MAX_FOOTPRINT    (14 * 1024)#define CONFIG_SPL_STACK            0x02040000
#define UBOOT_SIZE                  (2 << 20)
#define CONFIG_SYS_INIT_SP_ADDR     (CONFIG_SYS_TEXT_BASE+UBOOT_SIZE-0x1000)/* 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 */
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118

(五)最后就是设备树文件的编写了

关于设备树文件的编写,网上也有很多资料可以查,我也就不详细说明了(其实我也不太懂,只是弄个大概,反正u-boot的能正常运行就ok了),废话不多说,直接上代码,位置在arch/arm/dts/exynos4412-itop4412.dts

exynos4412-itop4412.dts

/** Odroid-U3/X2 board device tree source** Copyright (c) 2014 Samsung Electronics Co., Ltd.*      http://www.samsung.com** SPDX-License-Identifier: GPL-2.0+*//dts-v1/;
#include "exynos4412.dtsi"/ {model = "itop-4412 based on Exynos4412";compatible = "samsung,itop-4412", "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@13820000";console = "/serial@13820000";mmc2 = "sdhci@12530000";mmc4 = "dwmmc@12550000";};fimd@11c00000 {compatible = "samsung,exynos-fimd";reg = <0x11c00000 0xa4>;samsung,vl-freq = <60>;samsung,vl-col = <480>;samsung,vl-row = <272>;samsung,vl-width = <480>;samsung,vl-height = <272>;samsung,vl-clkp = <0>;samsung,vl-oep = <0>;samsung,vl-hsp = <1>;samsung,vl-vsp = <0>;samsung,vl-dp = <1>;samsung,vl-bpix = <4>;samsung,vl-hspw = <32>;samsung,vl-hbpd = <80>;samsung,vl-hfpd = <48>;samsung,vl-vspw = <2>;samsung,vl-vbpd = <1>;samsung,vl-vfpd = <13>;samsung,vl-cmd-allow-len = <0xf>;samsung,winid = <0>;samsung,power-on-delay = <30>;samsung,interface-mode = <1>;samsung,mipi-enabled = <0>;//samsung,dp-enabled;//samsung,dual-lcd-enabled;samsung,logo-on = <1>;samsung,resolution = <0>;samsung,rgb-mode = <1>;samsung,pwm-out-gpio  = <&gpd0 1 1>;samsung,bl-en-gpio = <&gpd0 0 1>;};mipidsi@11c80000 {compatible = "samsung,exynos-mipi-dsi";reg = <0x11c80000 0x5c>;samsung,dsim-config-e-interface = <1>;samsung,dsim-config-e-virtual-ch = <0>;samsung,dsim-config-e-pixel-format = <7>;samsung,dsim-config-e-burst-mode = <1>;samsung,dsim-config-e-no-data-lane = <3>;samsung,dsim-config-e-byte-clk = <0>;samsung,dsim-config-hfp = <1>;samsung,dsim-config-p = <3>;samsung,dsim-config-m = <120>;samsung,dsim-config-s = <1>;samsung,dsim-config-pll-stable-time = <500>;samsung,dsim-config-esc-clk = <20000000>;samsung,dsim-config-stop-holding-cnt = <0x7ff>;samsung,dsim-config-bta-timeout = <0xff>;samsung,dsim-config-rx-timeout = <0xffff>;samsung,dsim-device-id = <0xffffffff>;samsung,dsim-device-bus-id = <0>;samsung,dsim-device-reverse-panel = <1>;};i2c@13860000 {samsung,i2c-sda-delay = <100>;samsung,i2c-slave-addr = <0x10>;samsung,i2c-max-bus-freq = <100000>;status = "okay";max77686_pmic@09 {compatible = "maxim,max77686_pmic";interrupts = <7 0>;reg = <0x09 0 0>;#clock-cells = <1>;};};serial@13820000 {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>;*/status = "okay";};sdhci@12540000 {status = "disabled";};dwmmc@12550000 {samsung,bus-width = <4>;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>;};
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161

关于u-boot-2017.11版本在iTop-4412精英版的移植就大功告成了,(因为移植了好一段时间了,可能有些地方没写到,一切以源代码为准)

移植后的源代码
iTop-4412 精英版 u-boot-2017.11

以后有时间我会把linux-4.14.12在iTop-4412精英版的移植写出教程的
先大家看看移植后的截图

iTop-4412精英版的u-boot-2017.11移植教程(三)相关推荐

  1. 【教程】迅为iTOP-4412精英版exynos4412开发板搭建原生Linux最小系统(一)

    概述 迅为iTOP-4412开发板采用的CPU芯片为三星的exynos4412,开发板分为三种:(1)POP封装+1GB内存(2)SCP封装+1GB内存(3)SCP封装+2GB内存.笔者用的是SCP ...

  2. f150platinum_新款福特F150PLATINUM精英版皮卡超强越野实力展示

    新款福特F150PLATINUM精英版皮卡超强越野实力展示 2017-09-26 16:48 来源: 荣大汽车 伴随着我国皮卡政策的解禁,皮卡这种车型在国内四五六线城市出现的越来越多.而作为稳居北美汽 ...

  3. iTop-4412开发板精英版

    开发板是一个相对复杂的电子系统,请耐心按照本章说明组装,以免造成不必要的损失.用户最好使用迅为提供的连接线,因为有些部件是专门定制的,可能和市场上购买的其它连接线和部件不匹配,擅自使用市场上购买的接线 ...

  4. 嵌入式设备NFS挂载目录(基于iTop 4412)

    嵌入式设备NFS挂载目录(基于iTop 4412) 文章目录 嵌入式设备NFS挂载目录(基于iTop 4412) 1. 背景 2. 工作量分析 3. 上位机搭建NFS Server 3.1 上位机环境 ...

  5. 带你简单的了解和学习一下STM32f1精英版(入门级)

    目录 前言 一.STM32简介+如何入门 二.入手STM32+动手敲LED代码 三. 开始进阶and结尾 前言 第一次写博客,写的不好请见谅,有哪里写错了可以直接反馈给我,谢谢! 附上一个我的精英板子 ...

  6. 轻薄 RTX 怪兽 — Razer Blade 15 精英版 2019 长测

    Razer Blade 15 推出的这一年内,以轻薄的机身和不俗的性能为雷蛇笔记本在 2018 年的口碑和市场提升打下了重要基础,而今年的 Razer Blade 15 精英版 2019 RTX 也顾 ...

  7. 正点原子STM32F103精英版开发环境搭建并编写第一个程序(使用串口下载,基于HAL库)

    一:软件下载: 使用图形化配置软件:STM32cubeMX,支持HAL库. 1,下载stm32cubeMX; 2,下载STM32f103器件包: 3,下载IED:keil5 arm版本: 4,下载 s ...

  8. 正点原子STM32精英版LCD实验白屏

    最近在咸鱼上买了一块正点原子的STM32精英版,带一个2.8寸的lcd屏幕,然后下载官方的历程测试,但是到lcd实验的时候发现下载样例后屏幕仍然是白色的,这让我很疑惑,于是我直接下载最后一个综合实验, ...

  9. 昂达vi40精英版刷Linux,昂达vi40旗舰版刷机教程【图解】

    昂达品牌是在国内比较知名的电子品牌,成立的时间是在1989年,生产的产品主要有华硕主板,打印机,源兴光驱以及 显示器 等等,通过了整整十二年的努力,在市场上获得很好的用户口碑,今天小编要给大家介绍的也 ...

最新文章

  1. ps grep java_ps -ef | grep java 查看所有关于java的进程
  2. 面向人工智能的计算机体系结构
  3. 你必须知道的.Net 读书笔记----new 关键字 和const readonly
  4. CF Edu54 E. Vasya and a Tree DFS+树状数组
  5. 2021年高考成绩什么时候查询辽宁,2021年辽宁高考成绩什么时候几点可以查
  6. Harmony OS — Picker滑动选择器
  7. vlookup 公式使用及常见问题
  8. 迎来智能数据分析的新时代
  9. 【产品】 产品设计:工业设计(ID设计)系列软件介绍:平面设计、建模和3D渲染
  10. python 小程序——快递分拣程序
  11. 【H5】 svg的 defs用法 渐变
  12. 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2
  13. 不得不看的Python入门知识
  14. 向5岁小朋友解释什么是微服务
  15. Eclipse写js没有代码提示
  16. PC端和移动端微信加入群聊的测试点分析
  17. 最好用的网易邮箱工具-网易邮箱助手
  18. 优化版GM后台包站系统+码支付/代理/84个GM游戏
  19. Aspose.PDF for Java系列5-转化PDF文档为Word
  20. 养猫日记-20191216

热门文章

  1. 保健用品智慧供应链管理系统:精细化管理供应商与采购环节,打造敏捷型供应链
  2. APK Image Extractor(安卓APK图像提取) v2.0
  3. 抖音短视频的推荐机制是什么? 国仁网络资讯
  4. xxl-job——简介
  5. 显微镜C接口_壁虎支架、AI相机、手机镜头、便携显微镜,十一旅行有它们更精彩...
  6. 黑马程序员——集合框架
  7. 移远公司 NB-IoT模块AT指令详细解释
  8. 网卡statis数据内核过程分析
  9. 墙裂推荐 Anaconda | 安利 Python IDE
  10. 高德地图 瓦片地图上画圆,线段等