smart210 【u-boot-2014.04】移植之串口输出

移植Goni最方便的地方就是串口移植。

1.修改配置

include/configs/smart210.h

#define CONFIG_SERIAL2                  1       /* use SERIAL2 */

修改成SERIAL0

2.vim arch/arm/lib/crt0.S    

-        bl      board_init_f
+        ldr     lr, =_run_in_ram
+        ldr     pc, =board_init_f

+_run_in_ram:

3.lowlevel_init.S

3.1 时钟设置

/*
 * system_clock_init: Initialize core clock and bus clock.
 * void system_clock_init(void)
 */
system_clock_init:
        ldr     r0, =S5PC110_CLOCK_BASE         @ 0xE0100000

        ldr     r0, =0xE010C000                 @ S5PC110_PWR_CFG

        /* Set OSC_FREQ value */
        ldr     r1, =0xf
        str     r1, [r0, #0x100]                @ S5PC110_OSC_FREQ

        /* Set MTC_STABLE value */
        ldr     r1, =0xffffffff
        str     r1, [r0, #0x110]                @ S5PC110_MTC_STABLE

        /* Set CLAMP_STABLE value */
        ldr     r1, =0x3ff03ff
        str     r1, [r0, #0x114]                @ S5PC110_CLAMP_STABLE

        ldr     r0, =S5PC110_CLOCK_BASE         @ 0xE0100000

        /* Set Clock divider */
        ldr     r1, =0x14131440                 @ 1:1:4:4, 1:4:5
        str     r1, [r0, #0x300]
        ldr     r1, =0x11110111                 @ UART[3210]: MMC[3210]
        str     r1, [r0, #0x310]

        /* Set Lock Time */
        ldr     r1, =0x2cf                      @ Locktime : 30us
        str     r1, [r0, #0x000]                @ S5PC110_APLL_LOCK
        ldr     r1, =0xe10                      @ Locktime : 0xe10 = 3600
        str     r1, [r0, #0x008]                @ S5PC110_MPLL_LOCK
        str     r1, [r0, #0x010]                @ S5PC110_EPLL_LOCK
        str     r1, [r0, #0x020]                @ S5PC110_VPLL_LOCK

        /* S5PC110_APLL_CON */
        ldr     r1, =0x807D0301                 @ 1000MHz
        str     r1, [r0, #0x100]
        /* S5PC110_MPLL_CON */
        ldr     r1, =0x829B0C01                 @ 667MHz
        str     r1, [r0, #0x108]
        /* S5PC110_EPLL_CON */
        ldr     r1, =0x80600602                 @  96MHz VSEL 0 P 6 M 96 S 2
        str     r1, [r0, #0x110]
        /* S5PC110_VPLL_CON */
        ldr     r1, =0x806C0603                 @  54MHz
        str     r1, [r0, #0x120]

        /* Set Source Clock */
        ldr     r1, =0x10001111                 @ A, M, E, VPLL Muxing
        str     r1, [r0, #0x200]                @ S5PC1XX_CLK_SRC0

        /*
        /* OneDRAM(DMC0) clock setting */
        ldr     r1, =0x01000000                 @ ONEDRAM_SEL[25:24] 1 SCLKMPLL
        str     r1, [r0, #0x218]                @ S5PC110_CLK_SRC6
        ldr     r1, =0x30000000                 @ ONEDRAM_RATIO[31:28] 3 + 1
        str     r1, [r0, #0x318]                @ S5PC110_CLK_DIV6

        /* XCLKOUT = XUSBXTI 24MHz */
        add     r2, r0, #0xE000                 @ S5PC110_OTHERS
        ldr     r1, [r2]
        orr     r1, r1, #(0x3 << 8)             @ CLKOUT[9:8] 3 XUSBXTI
        str     r1, [r2]

        /* wait at least 200us to stablize all clock */
        mov     r2, #0x10000
1:      subs    r2, r2, #1
        bne     1b

        mov     pc, lr

3.2 DDR设置

3.3 copy_code_to_dram

4.copy_code_to_dram(mmc_relocate.c)

此时,烧录有输出:

U-Boot 2014.04 (Dec 23 2018 - 20:03:21)

	CPU:	S5PC110@1000MHz
	Board:	Goni
	I2C:   ready
	DRAM:  3.9 GiB

猜你喜欢

转载自blog.csdn.net/qq_21353001/article/details/85226567