1.make as3527 linux board boot from nfs is OK. Occur the UART is not work for its CS not high, the CS pin of UART is multiplex with DBOP, so need to enable DBOP clock and set its pin high to select UART, let UART work.
1.ehance uboot read kernel speed by:
(1)add ICache and DCache in uboot, for our processor is ARM922T, the cache related functions is done by uboot, so only we need do is in board_init to add icache_enable() and dcache_enable().
(2) remove print reading percentage info in uboot to save boot time.
1.in the end, found the most consuming time is the read data from nand through FAT fs, so no matter what we done for write operation, also no effect.so try expand the FS buffer, but after hours, found our board external memory is bad at about 8M address, so failed. use iped board is OK.
2.but the calc time is not work for iped board for its rtc not work. so change to OS_getTime() to calc time.so change to use Segger OS’s OS_getTime() to use tick (1/1000 second) to calc time, and more accurate. During debug, when want to add debug code to calc the seperate time of every part for whole write operation, find there is bug in printf func: after read from nand, then call printf will failed…
so not print in that function, print in main loop of write process is OK.
The result is of the time consumption is like:
read for write: 3s, write 3s, readForVerify:2s, fillBuffer:1s,Verify:1s,
so remove unneeded fillBuffer to save time.
and can be configured to not verify, even unsafe but much more speed you can get.
1.the reason of abnormal of build file data into external memory is the origin mpmc driver is configure to 64M SDRAM, while current board is 32M.configure to 32M, then work well.
but the speed is almost the same as before after I have create a buffer in external memory, read 64K/512K once and write them into nand. it seems that try to use functions of USB used is not possile….
currently, the only method to speedup prom is omit the verify process…..
1.try to add code for new nor/nand flash usb promer to speed up the write to nand, but found a abnormal phenomena that for external memory, when build data from file into external memory 0x30000000, the build out data is not correct, while is OK for internal buffer. to be continued to find out the reason…
1.verify that the rtc work on our board, and not work on iped board for its hardware not add ?
2.enhance uboot read kernel speed by use assembly BCH code.
1.fixbug: the default CVDD/DCDC3 register value is set the bit5 to 1, means not normal mode,so when you press the power off key for more than 1 second, the system will poweroff, while the normal mode is 10 seconds.
2.fixbug: before the i2c write byte, the i2c device is busy, due to the abnormally settings when init. should only set the reset bit and wait for some time, then do other needed settings.
then it will work well.
1.make the I2C work, but when before write byte, the device bit is always 1, means device is busy.
but actually the devices is ready for later write operation. after try many other settings, still the same, so not care it in the end.
2. change to pvdd=3.15 iovdd=3.11in uboot and linux kernel, to make the IPED LCD screen work stable.
3.help for setting the AS3527 cvdd2 and cvdd3 to 3.3V.
1.almost done : add the AFE I2C driver into the uboot for later to configure the afe related hardware.
2.continue to read the source and add debug into to find the reason of uboot read kernel from nand flash is too slow , not find yet.
1.use the autoflush version of write setup&write&flush block function sustitute the old not autoflush version to avoid the stupid flush function to thought the current write is not block aligned, then go to read the tail of block , this makes the frequenctly unneeded erase and copy operation , this make speed is too slow, after use the auto flush version of that three functions , which are in nand flash function table passed into USB for future access nand then call these functions, avoid the unneeded erase and copy ,make speed ehance sharply.
2. let the second time disconnect USB can through choose eject after right click of USB disk in PC.
3.add configure to do none/shutdown/restart after usb prom done.
4.let ams and iped led work well to indicate the usb prom procedure.
1.continue to find the way to speed up the 4K pagesize nand flash usb promer.
have found that the reason for 4K low speed is the more erase action compared with 2K:
the USB data package size is 64K, which make 64K/2K=32 pages ,while pages per block is 64, so it is 32/64=1/2 block, but for 4K, 64K/4K=16 pages, while pages per block is 128, so it is 16/128=1/8 block.
this make the erase before write the "dirty" block more frequently for 4K pages size nand….so speed is slow.
1.speed up the 4K pagesize nand flash usb promer, but not done now.have tested that the nand flash drver write speed is almost the same for 2K/4K pagesize nand , ~=4MB/s .
2.update the auto partition of Data area size according to nand flash size. and rootfs change to 128MB.
1.fix a bug that the macro definition of nand flash max logical blocks is 4096, is small , should change to 8192 for some type of nand.
2.use the old ,not auto detect version of usb promer to set interleave to 1, means support simutaneously program two pages, but the result is more slow than the normal interleave is 0…
1.renew usb promer to : check all pages-> check first 2 and last 2 pages in block .
2.usb promer:add auto jump all bad blocks before the start address of uImage,picture,rootfs.
2.make cramfs work.
3.unify readUID for AS3525/AS3527.
4.fix nand flash selecte after system bootup.
5.add char dev to support system shutdown.
6.add make yaffs2 into buildroot.
7.new usb promer to prom picture after rootfs.
1.unify the afe_read/write_reg() into misc functions.
2.test charger is work well or not in IPED board with their power supply
3.update the new usb promer with support the prom picture or not through the configure file.
4.build the new environment for make yaffs2 rootfs for buildroot.
1.update the usb promer document.
2.remove un-need printf info during kernel boot.
3.unify the character devices’ major number into one file platform.h
1.gather all test related code+file+Note into svn.
2.remove all ams file compile warning except USB part.
1.got a workaround solution for that bootcode bug of exchanging the first 8 bytes when read code in Nor Flash into SDRAM: add two word/8byte before the real data, and the first 16 byte become:
FileLen | DON’T CARE | RealFirstWord | MagicNumber
then after read into SDRAM, the only change is the seond word is change to magic number, the other remain data is OK. for the second word for Uboot is the Undefined Address, which is most case not use it, so this workaround solution can work now: the boot code read uboot in Nor Flash into SDRAM then execute from SDRAM.
2.the IPED board with MXIC Nor Flash is work in the end. the reason for previous not work is , the net card and the Nor Flash is both hardwarely connect into one SPI bus, they confilct, so will got strange problem: the data write into Nor is OK, but read out to verify, found in most case the 3th or 4th or 5th byte of the whole page: 256 byte data will changed, and most case is when the 4th byte is 0xE? then data will wrong…
3.after our bootcode’s bug is jumped over and the IPED’s borad Nor Flash work well, then can change our usb promer to support the Nand Flash promer and Nor flash promer.After adjust code to fit both the nand and nor, the usb promer work well in our green board 256M nand and ST SPI Nor, our green board 2G nand (4K pagesize) and Nor, and IPED Hynix 512M nand and Micronix SPI Nor Flash. Need notation is our board’s boot selector, the number 1 is xpc0, the number 234 is xpc321 !
xpc0=1,xpc123=000, boot from Nor
xpc0=1,xpc123=011, boot from Nand
1.got iped board with SPI Nor Flash, but in the end, the prom dev nor work not well,
can prom into, but read out to verify is not OK, always the byte4 or byte5 in 256Bytes per page is wrong
2.our AMS blue board nand flash’s manufacture ID is confusing: 0xE4 not normal Sumsung’s 0xEC,
after google, it seems that the old sumsung’s nand manufacture ID is 0xE4.
3.our AMS board nor flash prom is OK, can write into and read out to verify is OK,
but use Nor to boot is not OK, the bootcode in Internel Rom will read the uboot in Nor Flash into SDRAM address 0x00, but the read out data has some strange bug: the fisrt word(4 byte) and the second word is exchanged after read into SDRAM.the bug need to fix later…
1.fix a bug that when prom large rootfs, then the loopup table in prom dev nand will overflow for less logical to physical map block.
2.see usb nor promer code and add need code and compile done, wait the IPED board with SPI Nor /EEPROM.
3.fix some compile warning of iped linux bsp