博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
移植kernel-3.10.79 (1)
阅读量:5091 次
发布时间:2019-06-13

本文共 2997 字,大约阅读时间需要 9 分钟。

u-boot 使用u-boot-2014.10

find * -name "*2410*_defconfig"

find * -name "*2440*_defconfig"

可以看到

arch/arm/configs/mini2440_defconfig
arch/arm/configs/s3c2410_defconfig

下载命令:

set serverip 192.168.1.104

kernel:
  tftp 30000000 uImage
  nand erase 0x000c0000 0x500000
  nand write.jffs2 30000000 0xc0000 0x500000
  set machid 16a

 

1 基本修改

1.1 GCC

export  PATH=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/flinn/tools/4.4.3/bin

1.2 Makefile

ARCH            ?= armCROSS_COMPILE   ?= arm-linux-

或者

ARCH            ?= armCROSS_COMPILE   ?= /home/flinn/tools/4.4.3/bin/arm-none-linux-gnueabi-

1.3 编译

make s3c2410_defconfig;make    uImage    // s3c2410_defconfig肯定比mini2440_defconfig更全面些

这里s3c2410_defconfig肯定有开发板的支持, 编译出来的uImage会很大。执行make menuconfig裁剪

1.4 烧录

Uncompressing Linux... done, booting the kernel.                Error: unrecognized/unsupported machine ID (r1 = 0x000000c1).                Available machine support:                ID (hex)        NAME        000007cf        MINI2440        0000016a        SMDK2440

1.5 设置u-boot参数machid

  set machid 16a

  boot后 乱码
  set machid 7cf,正常
  可知smdk2440时钟有问题

 

1.6 修改时钟

  vim arch/arm/mach-s3c24xx/mach-smdk2440.c

  

smdk2440_map_io            s3c24xx_init_clocks(16934400);   //改成12000000

烧录启动:

0x000000000000-0x000000004000 : "Boot Agent"        mtd: partition "Boot Agent" doesn't end on an erase block -- force read-only        0x000000000000-0x000000200000 : "S3C2410 flash partition 1"

1.7 修改分区

  注意:最小单位128K,否则

  mtd: partition "device_tree" doesn't end on an erase block -- force read-onl

  vim arch/arm/mach-s3c24xx/common-smdk.c

  

static struct mtd_partition smdk_default_nand_part[] = {        [0] = {                .name   = "bootloader",                .size   = SZ_512K,                .offset = 0,        },        [1] = {                .name   = "device_tree",                .offset = MTDPART_OFS_APPEND,                .size   = SZ_128K,        },        [2] = {                .name   = "params",                .offset = MTDPART_OFS_APPEND,                .size   = SZ_128K,        },        [3] = {                .name   = "kernel",                .offset = MTDPART_OFS_APPEND,                .size   = 0x500000,          // 5M        },        [4] = {                .name   = "root",                .offset = MTDPART_OFS_APPEND,                .size   = MTDPART_SIZ_FULL,        }            };

  新分区:

  

device nand0 
, # parts = 5 #: name size offset mask_flags 0: bootloader 0x00080000 0x00000000 0 1: device_tree 0x00020000 0x00080000 0 2: params 0x00020000 0x000a0000 0 3: kernel 0x00500000 0x000c0000 0 4: rootfs 0x0fa40000 0x005c0000 0

  设置u-boot

  #define CONFIG_BOOTCOMMAND "nand read.jffs2 0x30007FC0 kernel; nand read.jffs2 32000000 device_tree; bootm 0x30007FC0 - 0x32000000"

 

转载于:https://www.cnblogs.com/hulig7/p/9924182.html

你可能感兴趣的文章
JavaScript 克隆数组
查看>>
eggs
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
【题解】[P4178 Tree]
查看>>
Mongo自动备份
查看>>
cer证书签名验证
查看>>
synchronized
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
Python-Web框架的本质
查看>>
QML学习笔记之一
查看>>
App右上角数字
查看>>