在分析start.s之前先分析下配置文件吧!见下面的注释
很多定义我也没搞清楚,分享过程也是个学习过程!
其中绿色的是注释,灰色的才是定义,看的好不习惯
#ifndef __CONFIG_H
#define __CONFIG_H
/*
* High Level Configuration Options
* (easy to change)
*/
/* 定义一个SoC型号,我们使用6410 */
//#define CONFIG_S3C6400 1 /* in a SAMSUNG S3C6400 SoC */
#define CONFIG_S3C6410 1 /* in a SAMSUNG S3C6410 SoC */
/* SoC属于哪个系类 */
#define CONFIG_S3C64XX 1 /* in a SAMSUNG S3C64XX Family */
/* 是哪种开发板 */
//#define CONFIG_SMDK6400 1 /* on a SAMSUNG SMDK6400 Board */
#define CONFIG_OKK6410 1 /* on a ForLinx OK6410 Board */
/* 内存基地址 */
#define CONFIG_SYS_SDRAM_BASE 0x50000000
/* 外部晶振频率 12Mhz */
/* input clock of PLL: SMDK6410 has 12MHz input clock */
#define CONFIG_SYS_CLK_FREQ 12000000
#if !defined(CONFIG_NAND_SPL) && (TEXT_BASE >= 0xc0000000)
#define CONFIG_ENABLE_MMU
#endif
/* 与Linux内核相关的几个TAG */
#define CONFIG_SETUP_MEMORY_TAGS
#define CONFIG_CMDLINE_TAG
#define CONFIG_INITRD_TAG
/*
* Architecture magic and machine type
*/
/* 机器ID号,该参数将传递给Linux内核,暂时可以不用管 */
#define MACH_TYPE 1270
/* 显示cpu 信息和 board信息 */
#define CONFIG_DISPLAY_CPUINFO
#define CONFIG_DISPLAY_BOARDINFO
/* 搜索了一下,发现其他地方没有用到 这个配置, */
#undef CONFIG_SKIP_RELOCATE_UBOOT
/*
* Size of malloc() pool
*/
/* 设置允许malloc分配的内存大小=环境变量大小+1M 配置全局数据空间大小 */
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 1024 * 1024)
#define CONFIG_SYS_GBL_DATA_SIZE 128 /* size in bytes for initial data */
/*
* Hardware drivers
*/
/* 配置网卡,暂时可以不用管 */
#define CONFIG_NET_MULTI
#define CONFIG_CS8900 /* we have a CS8900 on-board */
#define CONFIG_CS8900_BASE 0x18800300
#define CONFIG_CS8900_BUS16 /* follow the Linux driver */
/*
* select serial console configuration
*/
/* 配置串口,这里使用的是6410的串口0 在lowlevel_init中使用 */
#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on SMDK6410 */
/* 使用 HUSH解析,应该是命令解析相关的,保持默认吧 */
#define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */
#ifdef CONFIG_SYS_HUSH_PARSER
#define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
#endif
/* 看名字也是命令相