文档章节

大家一起玩U-boot DIY

cubieboard
 cubieboard
发布于 2014/07/30 11:00
字数 1217
阅读 133
收藏 0

本帖子欢迎大家来回复提供更多diy教程。
先上我的DIY作品(想试的看教程3):

U-Boot 2013.07-rc1 (Jun 21 2013 - 20:44:00) TonyLianLong Software(亮点1)

QQ:1040424979(亮点2)

CPU:   TLL A10 CPU(亮点3)

Board: TLL board(亮点4)

I2C:   ready

DRAM:  1 GiB

MMC:   SUNXI SD/MMC: 0

In:    serial

Out:   serial

Err:   serial

Net:   emac

Hit any key to stop autoboot:  0 

sun4i#version

U-Boot 2013.07-rc1 (Jun 21 2013 - 20:44:00) TonyLianLong Software

QQ:1040424979(这也是)

arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.7.1-5ubuntu1~ppa1) 4.7.1

GNU ld (GNU Binutils for Ubuntu) 2.22.52.20120713


教程0,下载uboot源码:
这里从http://www.tonylianlong.com下载,TLL提供技术和空间支持

wget http://www.tonylianlong.com/file/2013-6-21/u-boot-sunxi.zip

unzip u-boot-sunxi

cd u-boot-sunxi


教程1,添加驱动(以NAND为例):
A 一个一个添加:

nano include/config_cmd_default.h


然后在里面(#endif前)添加:

#define CONFIG_CMD_NAND


即可
提供驱动表,按照上面的方式,只不过是要把CONFIG_CMD_NAND替换成你要的:

The default command configuration includes all commands

                except those marked below with a "*".

不带*的是必须的

                CONFIG_CMD_ASKENV        * ask for env variable

                CONFIG_CMD_BDI                  bdinfo

                CONFIG_CMD_BEDBUG        * Include BedBug Debugger

                CONFIG_CMD_BMP                * BMP support

                CONFIG_CMD_BSP                * Board specific commands

                CONFIG_CMD_BOOTD          bootd

                CONFIG_CMD_CACHE        * icache, dcache

                CONFIG_CMD_CONSOLE          coninfo

                CONFIG_CMD_CRC32        * crc32

                CONFIG_CMD_DATE                * support for RTC, date/time...

                CONFIG_CMD_DHCP                * DHCP support

                CONFIG_CMD_DIAG                * Diagnostics

                CONFIG_CMD_DS4510        * ds4510 I2C gpio commands

                CONFIG_CMD_DS4510_INFO        * ds4510 I2C info command

                CONFIG_CMD_DS4510_MEM        * ds4510 I2C eeprom/sram commansd

                CONFIG_CMD_DS4510_RST        * ds4510 I2C rst command

                CONFIG_CMD_DTT                * Digital Therm and Thermostat

                CONFIG_CMD_ECHO                  echo arguments

                CONFIG_CMD_EDITENV          edit env variable

                CONFIG_CMD_EEPROM        * EEPROM read/write support

                CONFIG_CMD_ELF                * bootelf, bootvx

                CONFIG_CMD_ENV_CALLBACK        * display details about env callbacks

                CONFIG_CMD_ENV_FLAGS        * display details about env flags

                CONFIG_CMD_EXPORTENV        * export the environment

                CONFIG_CMD_EXT2                * ext2 command support

                CONFIG_CMD_EXT4                * ext4 command support

                CONFIG_CMD_SAVEENV          saveenv

                CONFIG_CMD_FDC                * Floppy Disk Support

                CONFIG_CMD_FAT                * FAT command support

                CONFIG_CMD_FDOS                * Dos diskette Support

                CONFIG_CMD_FLASH          flinfo, erase, protect

                CONFIG_CMD_FPGA                  FPGA device initialization support

                CONFIG_CMD_FUSE                  Device fuse support

                CONFIG_CMD_GETTIME        * Get time since boot

                CONFIG_CMD_GO                * the 'go' command (exec code)

                CONFIG_CMD_GREPENV        * search environment

                CONFIG_CMD_HASH                * calculate hash / digest

                CONFIG_CMD_HWFLOW        * RTS/CTS hw flow control

                CONFIG_CMD_I2C                * I2C serial bus support

                CONFIG_CMD_IDE                * IDE harddisk support

                CONFIG_CMD_IMI                  iminfo

                CONFIG_CMD_IMLS                  List all images found in NOR flash

                CONFIG_CMD_IMLS_NAND          List all images found in NAND flash

                CONFIG_CMD_IMMAP        * IMMR dump support

                CONFIG_CMD_IMPORTENV        * import an environment

                CONFIG_CMD_INI                * import data from an ini file into the env

                CONFIG_CMD_IRQ                * irqinfo

                CONFIG_CMD_ITEST          Integer/string test of 2 values

                CONFIG_CMD_JFFS2        * JFFS2 Support

                CONFIG_CMD_KGDB                * kgdb

                CONFIG_CMD_LDRINFO          ldrinfo (display Blackfin loader)

                CONFIG_CMD_LINK_LOCAL        * link-local IP address auto-configuration

                                          (169.254.*.*)

                CONFIG_CMD_LOADB          loadb

                CONFIG_CMD_LOADS          loads

                CONFIG_CMD_MD5SUM          print md5 message digest

                                          (requires CONFIG_CMD_MEMORY and CONFIG_MD5)

                CONFIG_CMD_MEMINFO        * Display detailed memory information

                CONFIG_CMD_MEMORY          md, mm, nm, mw, cp, cmp, crc, base,

                                          loop, loopw

                CONFIG_CMD_MEMTEST          mtest

                CONFIG_CMD_MISC                  Misc functions like sleep etc

                CONFIG_CMD_MMC                * MMC memory mapped support

                CONFIG_CMD_MII                * MII utility commands

                CONFIG_CMD_MTDPARTS        * MTD partition support

                CONFIG_CMD_NAND                * NAND support

                CONFIG_CMD_NET                  bootp, tftpboot, rarpboot

                CONFIG_CMD_PCA953X        * PCA953x I2C gpio commands

                CONFIG_CMD_PCA953X_INFO * PCA953x I2C gpio info command

                CONFIG_CMD_PCI                * pciinfo

                CONFIG_CMD_PCMCIA                * PCMCIA support

                CONFIG_CMD_PING                * send ICMP ECHO_REQUEST to network

                                          host

                CONFIG_CMD_PORTIO        * Port I/O

                CONFIG_CMD_READ                * Read raw data from partition

                CONFIG_CMD_REGINFO        * Register dump

                CONFIG_CMD_RUN                  run command in env variable

                CONFIG_CMD_SANDBOX        * sb command to access sandbox features

                CONFIG_CMD_SAVES        * save S record dump

                CONFIG_CMD_SCSI                * SCSI Support

                CONFIG_CMD_SDRAM        * print SDRAM configuration information

                                          (requires CONFIG_CMD_I2C)

                CONFIG_CMD_SETGETDCR          Support for DCR Register access

                                          (4xx only)

                CONFIG_CMD_SF                * Read/write/erase SPI NOR flash

                CONFIG_CMD_SHA1SUM          print sha1 memory digest

                                          (requires CONFIG_CMD_MEMORY)

                CONFIG_CMD_SOFTSWITCH        * Soft switch setting command for BF60x

                CONFIG_CMD_SOURCE          "source" command Support

                CONFIG_CMD_SPI                * SPI serial bus support

                CONFIG_CMD_TFTPSRV        * TFTP transfer in server mode

                CONFIG_CMD_TFTPPUT        * TFTP put command (upload)

                CONFIG_CMD_TIME                * run command and report execution time (ARM specific)

                CONFIG_CMD_TIMER        * access to the system tick timer

                CONFIG_CMD_USB                * USB support

                CONFIG_CMD_CDP                * Cisco Discover Protocol support

                CONFIG_CMD_MFSL                * Microblaze FSL support


提示:适合cb的网络驱动官方没有,我看见论坛里好像有个教程帖子可以弄

B 直接把所有驱动和命令都弄上:
在源码包里:

cd include

cp config_cmd_all.h config_cmd_default.h

cp config_cmd_all.h config_cmd_defaults.h

cd ..


然后编译试试~
提示:如果不想要全部驱动,可以编辑 include/config_cmd_default.h


教程2 编译:

make cubieboard CROSS_COMPILE=arm-linux-gnueabi-

dd if=spl/sunxi-spl.bin of=/dev/sdb bs=1024 seek=8

dd if=u-boot.bin of=/dev/sdb bs=1024 seek=32

/dev/sdb是你的卡的号

教程3 DIY:
亮点1和2:
修改 include/configs/sunxi-common.h文件里面的

#define CONFIG_IDENT_STRING                " Allwinner Technology"

我改成

#define CONFIG_IDENT_STRING " TonyLianLong Software\nQQ:1040424979"

可以用搜索功能,nano里的CTRL+W
提示\n是换行
亮点3,4:
修改board/sunxi/board.c

int checkboard(void)

{

printf("Board: %s\n", CONFIG_SYS_BOARD_NAME);

        return 0;

}


int checkboard(void)

{

        //printf("Board: %s\n", CONFIG_SYS_BOARD_NAME);

        printf("Board: TLL board\n"); //改你要的

        return 0;

}


修改

void spl_display_print(void)

{

printf("Board: %s\n", CONFIG_SYS_BOARD_NAME);


void spl_display_print(void)

{

        //printf("Board: %s\n", CONFIG_SYS_BOARD_NAME);

        printf("Board: TLL board\n");

}


把要删掉的东西打上注释是个好习惯

然后改arch/arm/cpu/armv7/sunxi/cpu_info.c
把print_cpuinfo函数改成这样:

int print_cpuinfo(void)

{

#ifdef CONFIG_SUN4I

        puts("CPU:   TLL A10 CPU\n"); //改这有用,如果用cubieboard的配置编译

#elif defined CONFIG_SUN5I

        /* TODO: Distinguish A13/A10s */

        puts("CPU:   Allwinner A13/A10s (SUN5I)\n"); //改这是A13和A10S的

#else

#warning Please update cpu_info.c with correct CPU information

        puts("CPU:   TLL other SUNXI CPU\n"); //改这是其他sunxi处理器显示的

#endif

        return 0;

}

【第二弹】
修改common/main.c

#ifdef CONFIG_MENUPROMPT

        printf(CONFIG_MENUPROMPT);

#else

        if (bootdelay >= 0)

                printf("Hit any key to stop autoboot: %2d ", bootdelay);

#endif


到:

#ifdef CONFIG_MENUPROMPT

        printf(CONFIG_MENUPROMPT);

#else

        if (bootdelay > 0){

                printf("Hit any key to enter command: %2d ", bootdelay);

        }else{

                printf("No boot delay,start booting");

        }

#endif


修改common/cmd_bootmenu.c把里面的这个if改成这样:

        if (menu->delay > 0) {

                printf(ANSI_CURSOR_POSITION, menu->count + 5, 1);

                printf("  Hit any key to enter command: %2d ", menu->delay);

        }else{

                printf("  No boot delay,start booting");

        }


修改include/configs/sun4i.h:

#define CONFIG_SYS_PROMPT               "sun4i#"



到:

#define CONFIG_SYS_PROMPT               "cubie-u-boot#"


修改common/console.c:

  puts("Print-In:    ");

        if (stdio_devices[stdin] == NULL) {

                puts("No input devices available!\n");

        } else {

                printf ("%s\n", stdio_devices[stdin]->name);

        }

        puts("Print-Out:   ");

        if (stdio_devices[stdout] == NULL) {

                puts("No output devices available!\n");

} else {

                printf ("%s\n", stdio_devices[stdout]->name);

        }

        puts("Print-Err:   ");

        if (stdio_devices[stderr] == NULL) {

                puts("No error devices available!\n");

        } else {

                printf ("%s\n", stdio_devices[stderr]->name);

        }



保存编译~(教程2)好了,就如本文开头(第二弹还更精彩)


原文作者:tll

原文链接:http://forum.cubietech.com/forum.php?mod=viewthread&tid=631&extra=page%3D2

本文转载自:http://forum.cubietech.com/forum.php?mod=viewthread&tid=631&extra=page%3D2

cubieboard
粉丝 11
博文 64
码字总数 2651
作品 1
珠海
私信 提问
跟 UMU 一起玩 OpenWRT(入门篇1):硬件选型和刷机

看了《跟hoowa学做智能路由》系列,http://www.leiphone.com/diy-a-smart-router.html,也想写点自己的经验,大家可以先看 hoowa 童鞋的,他已经写得很好了,UMU 的不同观点是硬件的选择而已...

UMU
2014/05/24
10K
4
一起移植 U-BOOT

现在有没有人对移植 U-BOOT 感兴趣呢,我现在移植到我手头的 芯片上,对 U-BOOT 的组织形式有一定的了解。 一个人做没大意思,想和有兴趣的朋友一起移植。我本来移植用的 不是常见的板子。刚...

張3.
2010/12/31
693
2
MDT 2013 从入门到精通之Deploy Background Customize

在生产环境中,IT部门主管或者IT工作人员总是有这样那样的需求,在使用MDT 部署操作系统这一块也是,比如DIY客户端的需求以及DIY客户端部署过程中的背景等,曾经不止一次有用户与我讨论过此类...

wenzhongxiang
2015/09/15
0
0
DIY装机用单条8GB还是2条4GB双通道内存好?选错当心速度会变慢!

  越来越多的玩家喜欢自己DIY装机,DIY硬件就是保证电脑兼容的前提下自行挑选处理器、显卡、主板、内存、硬盘、机箱、电源等组合在一起,而在这一过程中,诸多朋友发现单单对内存的容量选择...

upzxt123
2018/04/08
0
0
阿里工程师的买房装修记

  工程师似乎天生就自带 DIY 属性——我们见到过的大多数工程师,至少在某一个领域都喜欢搞东搞西,唯一的区别仅仅在于他们入 DIY 坑的途径不同。   今天为大家介绍两位阿里工程师,他们...

天池大数据科研平台
2017/12/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部