[U-Boot] Proposal to add NAND-boot support for Sunxi SPL

kaplan2539 at gmail.com kaplan2539 at gmail.com
Fri May 22 04:23:26 CEST 2015


Hi Roy,

I could definitely use such a howto. I have applied the patches to the 
current mainline u-boot head and try to boot my A13-OlinXino Wifi board in 
FEL mode.
I can compile and boot into u-boot via FEL. However, I get these errors 
when I have CONFIG_SPL_NAND_SUPPORT defined:

U-Boot SPL 2015.07-rc1-00276-g77792f9-dirty (May 21 2015 - 19:15:54)
DRAM: 512 MiB
Failed to set core voltage! Can't set CPU frequency
sunxi board_nand_init()
Nand initialised
Error: 1 ECC failures detected
Error: 512 ECC failures detected

This is my configs/A13-OLinuXino_defconfig looks like this:
CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER,USB_EHCI,SYS_MAX_NAND_DEVICE=1,SYS_NAND_BASE=0x00"
CONFIG_NAND=y                                                                   

CONFIG_SUNXI_NAND=y                                                             

CONFIG_SUNXI_DMA=y                                                              

CONFIG_CMD_NAND=y                                                               

CONFIG_SPL_NAND_SUPPORT=y                                                       

CONFIG_SPL=y                                                                    

CONFIG_FDTFILE="sun5i-a13-olinuxino.dtb"                                        

CONFIG_USB1_VBUS_PIN="PG11"                                                     

CONFIG_VIDEO_HDMI=n                                                             

CONFIG_VIDEO_VGA_VIA_LCD=y                                                      

CONFIG_VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH=y                               

# For use with the Olimex 7" LCD module, adjust timings for other 
displays      
# Set video-mode=sunxi:800x600-24 at 60,monitor=lcd in the env. to 
enable          
CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:33000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:3,vmode:0"
CONFIG_VIDEO_LCD_POWER="AXP0-0"                                                 

CONFIG_VIDEO_LCD_BL_PWM="PB2"                                                   

CONFIG_ARM=y                                                                    

CONFIG_ARCH_SUNXI=y                                                             

CONFIG_MACH_SUN5I=y                                                             

CONFIG_DRAM_CLK=408                                                             

CONFIG_DRAM_ZQ=123                                                              

CONFIG_DRAM_EMR1=0                                                              

CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-olinuxino" 

I just found out in the sun5i-a13-olinuxino.dts file are no nand settings.
I guess I can find the information in the linux-sunxi 3.4 kernels fex file 
for the olinuxio and need to convert to dts, correct?

I am happy about any hints / comments.

Thanks
Alex



On Thursday, May 21, 2015 at 11:08:24 AM UTC-7, Hans de Goede wrote:
>
> Hi Roy, 
>
> On 21-05-15 15:59, Roy Spliet wrote: 
> > The following patches take the work by Daniel Kochmánski, and make some 
> > heavy modifications for readability and functionality, based on Boris 
> > Brezillon's Linux driver. Tested on an Olimex Lime w/ A20. 
> > Patches are sent as RFC. Open questions: 
> > - Config options added are partially NAND-chip specific. Some options 
> can 
> > be autodetected based on the NAND ID, others require either 
> brute-forcing 
> > or config options like these. Do they belong in sunxi-common? Should 
> > we make a Kconfig option for this? If bikeshedding is desired, are 
> defines 
> > in sunxi-common.h good enough for now? 
> > - Style is mostly kernel-like. Satisfied? 
> > - Daniel: do you think we can work from here? 
> > 
> > Please comment away! 
>
> Cool stuff. Overall this looks good I'll reply with more detailed feedback 
> to your individual patches, 2 questions: 
>
> 1) Can you provide a quick howto (at developer level) on how to actually 
> get the spl and u-boot into the nand, what I'm looking for is unstructions 
> like this: 
>
> a) Take this git repo + branch, build a kernel from it 
> b) Look at this dts file for a nand settings example, adjust it for your 
> board 
> c) Once booted into the kernel using an updated dts you should have these 
> block devices, dd spl to this one, and u-boot to this one. 
>
> No more to go more detailed then that :) 
>
> 2) What is the plan to add support for loading files from nand in u-boot 
> proper, 
> so that we can get (e.g.) extlinux.conf + kernel +dtb from a /boot on nand 
> ? 
>
> Regards, 
>
> Hans 
>


More information about the U-Boot mailing list