分类: 嵌入式
2014-12-17 11:01:45
四、修改电源管理功能
由于我们的开发板并不像SMDKV210那样拥有16MB的SRAM和电源管理芯片,所以我们还要对代码进一步修改。
1.修改底层初始化文件:
gedit board/samsung/smdkc110/lowlevel_init.S
使用条件编译屏蔽掉下面的代码:
#if 0
/* SRAM(2MB) init for SMDKC110 */
/* GPJ1 SROM_ADDR_16to21 */
ldr r0, =ELFIN_GPIO_BASE
……省略部分代码……
/* PS_HOLD pin(GPH0_0) set to high */
ldr r0, =(ELFIN_CLOCK_POWER_BASE + PS_HOLD_CONTROL_OFFSET)
ldr r1, [r0]
orr r1, r1, #0x300
orr r1, r1, #0x1
str r1, [r0]
#endif
使用条件编译屏蔽掉下面的代码:
#if 0
/* init PMIC chip */
bl PMIC_InitIp
#endif
重新编译。
2.固化u-boot
NAND FLASH相关的代码已能识别出系统拥有的NAND FLASH,所以NAND FLASH的读写应该没问题,Uboot本身提供了NAND FLASH的相关读写功能,如 nand erase擦除指令,nand read读指令,nand write写指令,nand scrub格式化指令等等。接下来首先擦除NAND FLASH的前5M内容,然后将上面下载到RAM中的UBoot写到NANDFLASH中。
SMDKV210 # nand erase 0 0x60000
NAND erase: device 0 offset 0x0, size 0x60000
Erasing at 0x40000 -- 100% complete.
OK
SMDKV210 # nand write 0x20000000 0 0x60000
NAND write: device 0 offset 0x0, size 0x60000
Checksum is calculated.
Main area write (3 blocks):
393216 bytes written: OK
现在已经把u-boot.bin烧写到NAND FLASH了,把开发板的启动方式开关打到NAND-BOOT一侧,然后复位开发板,
OK
U-Boot 1.3.4 (Jan 17 2013 - 11:25:27) for SMDKV210
CPU: S5PV210@1000MHz(OK)
APLL = 1000MHz, HclkMsys = 200MHz, PclkMsys = 100MHz
MPLL = 667MHz, EPLL = 80MHz
HclkDsys = 166MHz, PclkDsys = 83MHz
HclkPsys = 133MHz, PclkPsys = 66MHz
SCLKA2M = 200MHz
Serial = CLKUART
Board: SMDKV210
DRAM: 512 MB
Flash: 8 MB
SD/MMC: Card init fail!
0 MB
NAND: 512 MB
In: serial
Out: serial
Err: serial
checking mode for fastboot ...
Hit any key to stop autoboot: 0
SMDKV210 #
输入saveenv保存环境变量,提示保存环境变量到NAND FLASH:
SMDKV210 # saveenv
Unknown command 'saveebnv' - try 'help'
SMDKV210 # saveenv
Saving Environment to SMDK bootable device...
Erasing Nand...
Writing to Nand...
Saved enviroment variables
五、加入USB下载功能
将cmd_usbd.c、usbd-otg-hs.c和usbd-otg-hs.h拷贝至common文件夹下,在Makefile中键入如下代码:
COBJS-$(CONFIG_S3C_USBD) += cmd_usbd.o
COBJS-$(CONFIG_S3C_USBD) += usbd-otg-hs.o
编译,烧写到SD卡或者NANDFLASH中,启动,在SMDKV210#提示符下键入DNW 0x20000000命令,此时会提示安装usb驱动。将驱动安装文件指向文件即可secusb2.sys和secusb2.inf文件所在目录即可,此文件三星公司提供,各个评估板厂商也提供。