u-boot-2014.10移植设置时钟/sdram(代码片段)

hulig7 hulig7     2023-01-14     619

关键词:

时钟修改

vim arch/arm/cpu/arm920t/start.S

# if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
        ldr     r1, =0x3ff
        ldr     r0, =INTSUBMSK
        str     r1, [r0]
        
        /* FCLK:HCLK:PCLK = 1:2:4 */
        /* default FCLK is 120 MHz ! */
        ldr     r0, =CLKDIVN
        mov     r1, #5
        str     r1, [r0]

        /* add by Flinn */
                #define S3C2440_MPLL_200MHZ     ((0x5c<<12)|(0x01<<4)|(0x02))
                #define S3C2440_MPLL_400MHZ     ((0x5c<<12)|(0x01<<4)|(0x01))

        mrc     p15, 0, r1, c1, c0, 0   
        orr     r1, r1, #0xc0000000
        mcr     p15, 0, r1, c1, c0, 0

        /* MPLLCON = S3C2440_MPLL_400MHZ */
        ldr r0, =0x4c000004
        ldr r1, =S3C2440_MPLL_400MHZ
        str r1, [r0]

SDRAM设置

vim board/samsung/smdk2440/lowlevel_init.S
    #define REFCNT                  1113   -> 0x4f4

时钟前面设置了, 删除后面的

vim board/samsung/smdk2440/smdk2440.c
board_early_init_f():
#if 0
            /* to reduce PLL lock time, adjust the LOCKTIME register */
            writel(0xFFFFFF, &clk_power->locktime);
    
            /* configure MPLL */
            writel((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV,
                   &clk_power->mpllcon);
    
            /* some delay between MPLL and UPLL */
            pll_delay(4000);
    
            /* configure UPLL */
            writel((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV,
                   &clk_power->upllcon);
#endif

再次烧写

U-Boot 2014.10 (Nov 01 2018 - 11:06:54)
            
            CPUID: 32440001
            FCLK:      400 MHz
            HCLK:      100 MHz
            PCLK:       50 MHz
            DRAM:  64 MiB
            WARNING: Caches not enabled
            Flash: *** failed ***
            ### ERROR ### Please RESET the board ###

原因是

board_init_r
                flash_init 此时我们的nor flash还不识别
                去掉
                else 
                    puts(failed);
                    //hang();
                

重新编译烧写

U-Boot 2014.10 (Nov 01 2018 - 11:14:31)

        CPUID: 32440001
        FCLK:      400 MHz
        HCLK:      100 MHz
        PCLK:       50 MHz
        DRAM:  64 MiB
        WARNING: Caches not enabled
        Flash: *** failed ***
        *** Warning - bad CRC, using default environment
        
        In:    serial
        Out:   serial
        Err:   serial
        Net:   CS8900-0
        Error: CS8900-0 address not set.
        
        Warning: Your board does not use generic board. Please read
        doc/README.generic-board and take action. Boards not
        upgraded by the late 2014 may break or be removed.

 

u-boot-2014.10移植识别dm9000(代码片段)

在smdk2440.h里面注释掉CS8900相关的#if0#defineCONFIG_DRIVER_CS89001/*wehaveaCS8900on-board*/#defineCS8900_BASE0x19000300#defineCS8900_BUS161/*theLinuxdriverdoesaccessesasshorts*/#endif#if!defined(CONFIG_DRIVER_ 查看详情

u-boot-2014.10移植支持nand(代码片段)

在smdk2440.h里面加上NAND的配置选项 #defineCONFIG_CMD_NAND编译出错drivers/mtd/nand/s3c2410_nand.c:Infunction‘s3c2410_hwcontrol‘:drivers/mtd/nand/s3c2410_nand.c:44:warning:implicitdeclarationoffunction‘s3c2410_g 查看详情

u-boot-2014.10移植重定位,支持nand启动(代码片段)

前面链接地址都是0x0,可以从nor正常启动内核和文件系统。现在把链接地址改成0x33f00000一旦更改了链接地址,u-boot从norflash加载时,串口没有任何输出 添加文件boot_init.c#defineNFCONF(*((volatileunsignedlong*)0x4E000000))#defineNFCONT(*((volat... 查看详情

u-boot-2014.10移植修改环境变量的存储位置(代码片段)

原来环境变量存储在norflash里,前面mtdparts分区第二个分区就是params现在修改环境变量到nand里, 搜索defaultenvironment在Env_common.c函数里面:default_environment结构体default_environment结构体定义在env_common.c里面其中有:#ifdefCONFIG_BOOTARG... 查看详情

u-boot-2014.10移植添加mtdparts命令和分区(代码片段)

添加mtdparts命令,改命令可以查看当前分区,在启动参数里面可以以分区名代表地址和长度grep"cmd_mtdpart"*-nR  搜索可知,mtdpart在cmd_mtdparts.c里面定义  common/Makefile:147:obj-$(CONFIG_CMD_MTDPARTS)+=cmd_mtdparts.o因此需要定义CONFI... 查看详情

移植kernel-3.10.79(代码片段)

u-boot使用u-boot-2014.10find*-name"*2410*_defconfig"find*-name"*2440*_defconfig"可以看到arch/arm/configs/mini2440_defconfigarch/arm/configs/s3c2410_defconfig下载命令:setserverip192.168.1.104kernel:   tftp300000 查看详情

u-boot移植---代码修改---时钟修改sdram

...现在就需要做的是代码的修改,配置成适合目标板使用的u-boot。一、时钟修改  在代码流程分析中,我们知道,系统的启动是:设置CPU为管理员模式关闭看门狗屏蔽中断设置启动参数:时钟 FCLK:HCLK:PCLK=1:2:4   FCLK... 查看详情

rtc时钟芯片替换代码移植-iic通信

1、问题RTC时钟芯片由爱普生RX-8010SJ更换成大普INS5710A,两者都是IIC通信,更换大普芯片后时钟不走、以及报掉电错误。仿真分析原因是CPU和RTC芯片收发数据延时不够导致,根据爱普生芯片手册,8010收发数据不采取... 查看详情

tiny4412--uboot移植时钟(代码片段)

...inaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi要移植的u-boot版本:u-boot-2016-11Tiny4412开发板硬件版本为:  底板:  Tiny4412SDK1312B  核心板:Tiny4412-1306 1、时钟体系exynos4412芯片时钟体系的介绍在《Exynos4412... 查看详情

w5500移植

SPI通讯协议接收和发送是同时进行的,主设备发送1Byte数据后,同时接收1Byte的空数据(DummyByte),需要读取接受缓存区复位flag,否则后面读取时读到的还是这个空数据。即使是只接收数据,SPI主设备也是需要向从设备发送数据,以... 查看详情

x-005friendlyarmtiny4412uboot移植之时钟初始化

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 查看详情

串口的移植(代码片段)

在串口的移植时候一定要更改使能USART时钟串口1挂载在RCC_APB2Periph,而其他的挂载在RCC_APB1Periph.TXRX的GPIO引脚和时钟中断源杜邦线的连接.(相应的引脚)利用条件编译防止重复编译. #defineDEBUG_USART11#defineDEBUG_USART20#defineDEBUG_USART30#de... 查看详情

一,移植uboot,分析uboot启动流程(代码片段)

文档时间:2018-08-08交叉编译器:arm-linux-gcc-4.3.2Ubuntu版本:16.04uboot版本:2013.10uboot启动流程简要如下:    a,设置CPU为管理模式    b,关闭看门狗    c,关闭中断    d,设置时钟频率    e,进入lowlevel_init.S,... 查看详情

uboot研读笔记|03-初步移植uboot2012.04到jz2440(修改时钟,配置串口)(代码片段)

项目开源地址:https://github.com/Mculover666/uboot-jz24400.教程完整目录00-嵌入式Linux系统中Bootloader的作用和基本运行原理01-下载uboot源码并使用VSCode远程查看源码、编译uboot(2012.04.01版本)02-详细探索uboot启动过程(基于... 查看详情

移植最新u-boot之裁剪和修改默认参数

...ceinsight工程、编译、烧写、如果无运行分析原因  tarxjfu-boot-2012.04.01.tar.bz2  cdu-boot-2012.04.01  makesmdk2410_config  make2.分析u-boot:通过链接命令分析组成文件、阅读代码分析启动过程  a.初始化硬件:关看门狗、设置时钟、... 查看详情

时钟配置

首先需要一个空白工程这边我已经移植好了,请进入gitee自行下载下载地址打开工程进入主函数,从第七行进入按照注释往函数里填入参数入口参数CRM_PLL_SOURCE_HEXT代表选择HEXT为标题外部时钟源。 查看详情

linux驱动|rtc-hym8563移植笔记(代码片段)

本文基于瑞芯微rk3568平台,关于该平台快速入手操作,大家可以参考以下文章:《瑞芯微rk356x板子快速上手》0、什么是rtc-hym8563?RTC:实时时钟的缩写是(Real_TimeClock)。RTC是集成电路,通常称为时钟芯片。1&... 查看详情

linux驱动|rtc-hym8563移植笔记(代码片段)

本文基于瑞芯微rk3568平台,关于该平台快速入手操作,大家可以参考以下文章:《瑞芯微rk356x板子快速上手》0、什么是rtc-hym8563?RTC:实时时钟的缩写是(Real_TimeClock)。RTC是集成电路,通常称为时钟芯片。1&... 查看详情