一、在lowlevel_init.S中添加电源制锁与串口打印'o'
电源制锁的代码:
/* added by lwl; PS_HOLDER_CONTROL */
ldr r0, =0xE010E81C
ldr r1, [r0]
ldr r2, =0x301
orr r1, r1, r2
str r1, [r0]
/* end added */
查看s5pv210芯片手册寄存器0xE010E81C,写相应的位即可,主要用作软启动。
串口打印'o'的代码:
/* added by lwl; uart print "o" */
ldr r1, =0x4f4f4f4f
ldr r0, =S5PC110_UART_BASE
str r1, [r0, #0x820] @'O'
/* end added */
这里使用的是串口2,该uboot中串口初始化程序是不完全的,由于s5pv210内部的iRom中有串口初始化的程序,在这里其实串口是可以不用再次初始化的,只用把待发送的数据写到相应串口的数据寄存器中即可。
二、修改连接脚本u-boot.lds
lowlevel_init.S是在start.S中调用的,为uboot启动的第一个阶段,该阶阶段发生在重定位之前,是在s5pv210内部的iRam中运行的,iRam中运行的是整个uboot前8k的代码,所以必须保证start.S与lowlevel_init.S在整个uboot中的前8k代码中,这就要在连接脚本的代码段进行指明,将这两个文件对应的目标文件连接到uboot的开头为止。该uboot本身将start.S连接在了最开头的位置,我只用加