* [U-Boot-Users] Strange behavior in UPM
@ 2008-07-25 16:50 Alemao
2008-07-25 17:33 ` Anton Vorontsov
0 siblings, 1 reply; 4+ messages in thread
From: Alemao @ 2008-07-25 16:50 UTC (permalink / raw)
To: u-boot
Hi all,
I have a board based on the MPC8360E-RDK, and im trying to
make NAND at local bus works with UPM. I put the scope to
see what was going wrong and I got this:
___
- the waveform in LGPL1/3 (nand CLE/ALE) should be ___| |___
___ ___
but was |__|
My question is: is there any regs different from those that
program the UPM (BRx, ORx) that can affect and cause this behavior?
Of course, supposing the UPM array in
u-boot/board/freescale/mpc8360erdk/nand.c is correct, that i think
it is.
Im using the same configuration located at
u-boot/include/configs/MPC8360ERDK.h
/*
* NAND flash on the local bus
*/
#define CONFIG_CMD_NAND 1
#define CONFIG_NAND_FSL_UPM 1
#define CFG_NAND_BASE 0x60000000
#define CFG_MAX_NAND_DEVICE 1
#define NAND_MAX_CHIPS 1
#define CONFIG_MTD_NAND_VERIFY_WRITE
#define CFG_LBLAWBAR1_PRELIM CFG_NAND_BASE /* Window base at flash base */
#define CFG_LBLAWAR1_PRELIM 0x8000001b /* Access window size 4K ??? */
/* Port size 8 bit, UPMA */
#define CFG_BR1_PRELIM (CFG_NAND_BASE | 0x00000881)
#define CFG_OR1_PRELIM 0xfc000001
One detail, im using u-boot-1.1.4 and i got the codes for UPM and NAND
from u-boot-1.3.4-rc1.
Cheers,
--
Alemao
^ permalink raw reply [flat|nested] 4+ messages in thread* [U-Boot-Users] Strange behavior in UPM 2008-07-25 16:50 [U-Boot-Users] Strange behavior in UPM Alemao @ 2008-07-25 17:33 ` Anton Vorontsov 2008-07-29 13:22 ` Alemao 0 siblings, 1 reply; 4+ messages in thread From: Anton Vorontsov @ 2008-07-25 17:33 UTC (permalink / raw) To: u-boot On Fri, Jul 25, 2008 at 01:50:41PM -0300, Alemao wrote: > Hi all, > > I have a board based on the MPC8360E-RDK, and im trying to > make NAND at local bus works with UPM. I put the scope to > see what was going wrong and I got this: > > > ___ > - the waveform in LGPL1/3 (nand CLE/ALE) should be ___| |___ > ___ ___ > but was |__| The ascii art attempt failed. ;-) [...] > One detail, im using u-boot-1.1.4 and i got the codes for UPM and NAND > from u-boot-1.3.4-rc1. Since the boards are pretty the same, I guess you can just compile the u-boot-1.3.3 (please try release instead of -rc, to be sure), and see if NAND will work. Maybe it will need really small code modifications for your board though. Otherwise it is hard to say where is problem is (maybe the problem in the 1.1.4 nand core code, not in UPM setup?). Also, you didn't mention what kind of chip the board is using. Thanks, -- Anton Vorontsov email: cbouatmailru at gmail.com irc://irc.freenode.net/bd2 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot-Users] Strange behavior in UPM 2008-07-25 17:33 ` Anton Vorontsov @ 2008-07-29 13:22 ` Alemao 2008-07-29 21:09 ` Alemao 0 siblings, 1 reply; 4+ messages in thread From: Alemao @ 2008-07-29 13:22 UTC (permalink / raw) To: u-boot Im using MPC8360E and NAND512W32BN6E, and they are connected like in mpc8360e-rdk (same pins). About the waveform, i did the tests considering "reading the electronic signature" from the nand flash. I put the code below in a loop (nand_base.c): --- /* Select the device */ this->select_chip(mtd, 0); /* Send the command for reading device ID */ this->cmdfunc(mtd, NAND_CMD_READID, 0x00, -1); /* Read manufacturer and device IDs */ nand_maf_id = this->read_byte(mtd); nand_dev_id = this->read_byte(mtd); --- From nand datasheet, figure 28, when CL goes from LOW to HIGH, #W goes from HIGH to LOW, and in I/O the value for reading the electronic signature is passed. But here with my board, CL is already in HIGH and then goes LOW. As im using u-boot-1.1.4, i tried import the code from u-boot-1.3.3 and u-boot-1.3.4-rc1. Both i got the same result. So, as my board is _based_ in mpc8360e-rdk, i was wondering if other configuration can affect the UPM. Looking at the this->cmdfunc(...) (fun_cmdfunc at fsl_upm.c) it has some calls to fsl_upm_start_pattern, fsl_upm_run_pattern... and this functions activates the UPM. So it seems to be simple: command(READID) upm_start_pattern() upm_run_pattern(READID) upm_end_pattern() read_byte() Im really curious to know what is causing the CL inversion. Right now im trying to understand the UPM array. But its not so simple. I have my doubts if my problem is the UPM array, since its working on mpc8360e-rdk and the same array is in App Note from Freescale. Cheers, -- Alemao On Fri, Jul 25, 2008 at 2:33 PM, Anton Vorontsov <avorontsov@ru.mvista.com> wrote: > On Fri, Jul 25, 2008 at 01:50:41PM -0300, Alemao wrote: >> Hi all, >> >> I have a board based on the MPC8360E-RDK, and im trying to >> make NAND at local bus works with UPM. I put the scope to >> see what was going wrong and I got this: >> >> >> ___ >> - the waveform in LGPL1/3 (nand CLE/ALE) should be ___| |___ >> ___ ___ >> but was |__| > > The ascii art attempt failed. ;-) > > [...] >> One detail, im using u-boot-1.1.4 and i got the codes for UPM and NAND >> from u-boot-1.3.4-rc1. > > Since the boards are pretty the same, I guess you can just compile > the u-boot-1.3.3 (please try release instead of -rc, to be sure), > and see if NAND will work. Maybe it will need really small code > modifications for your board though. > > Otherwise it is hard to say where is problem is (maybe the problem in > the 1.1.4 nand core code, not in UPM setup?). > > Also, you didn't mention what kind of chip the board is using. > > Thanks, > > -- > Anton Vorontsov > email: cbouatmailru at gmail.com > irc://irc.freenode.net/bd2 > ^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot-Users] Strange behavior in UPM 2008-07-29 13:22 ` Alemao @ 2008-07-29 21:09 ` Alemao 0 siblings, 0 replies; 4+ messages in thread From: Alemao @ 2008-07-29 21:09 UTC (permalink / raw) To: u-boot Other thing i notice in the following code: --- /* Send the command for reading device ID */ this->cmdfunc(mtd, NAND_CMD_READID, 0x00, -1); /* Read manufacturer and device IDs */ nand_maf_id = this->read_byte(mtd); nand_dev_id = this->read_byte(mtd); --- It do this in UPM: MAMR: 0xE0005070 pat_offset: 0x00000008 (write_command) MAR: 0xE0005068 cmd: 0x90 (read electronic signature) MAMR: 0xE0005070 pat_offset: 0x00000010 (write_address) MAR: 0xE0005068 cmd: 0x00 (1st cycle) But the read_byte() function doesnt change my #R pin (LGPL2) From nand's datasheet, they said we need to perform two bus read operations, so this shouldnt be throught UPM? Something like this: run_pattern(0x00000000, 0x00); // not sure about second arg nand_maf_id = this->read_byte(mtd); run_pattern(0x00000000, 0x00); nand_dev_id = this->read_byte(mtd); I based my comments in this: #define NAND_CMD_READ0 0x00 #define NAND_CMD_READID 0x90 UPM Routine Pattern offset Transaction ----------------- ----------------- --------------- Read single 0x0 read_data Read burst 0x8 write_command 0x10 write_address Write single 0x18 write_data - 0x20?0x3F for others if needed On Tue, Jul 29, 2008 at 10:22 AM, Alemao <xcarandiru@gmail.com> wrote: > Im using MPC8360E and NAND512W32BN6E, and they are connected like in > mpc8360e-rdk (same pins). > > About the waveform, i did the tests considering "reading the electronic > signature" from the nand flash. I put the code below in a loop > (nand_base.c): > > --- > /* Select the device */ > this->select_chip(mtd, 0); > > /* Send the command for reading device ID */ > this->cmdfunc(mtd, NAND_CMD_READID, 0x00, -1); > > /* Read manufacturer and device IDs */ > nand_maf_id = this->read_byte(mtd); > nand_dev_id = this->read_byte(mtd); > --- > > From nand datasheet, figure 28, when CL goes from LOW to HIGH, #W goes > from HIGH to LOW, and in I/O the value for reading the electronic > signature is passed. > > But here with my board, CL is already in HIGH and then goes LOW. > > As im using u-boot-1.1.4, i tried import the code from u-boot-1.3.3 and > u-boot-1.3.4-rc1. Both i got the same result. > > So, as my board is _based_ in mpc8360e-rdk, i was wondering if > other configuration can affect the UPM. > > Looking at the this->cmdfunc(...) (fun_cmdfunc at fsl_upm.c) it has some > calls to fsl_upm_start_pattern, fsl_upm_run_pattern... and this > functions activates the UPM. So it seems to be simple: > > command(READID) > > upm_start_pattern() > upm_run_pattern(READID) > upm_end_pattern() > > read_byte() > > Im really curious to know what is causing the CL inversion. > > Right now im trying to understand the UPM array. But its not so simple. > > I have my doubts if my problem is the UPM array, since its working on > mpc8360e-rdk and the same array is in App Note from Freescale. > > Cheers, > > -- > Alemao > > > On Fri, Jul 25, 2008 at 2:33 PM, Anton Vorontsov > <avorontsov@ru.mvista.com> wrote: >> On Fri, Jul 25, 2008 at 01:50:41PM -0300, Alemao wrote: >>> Hi all, >>> >>> I have a board based on the MPC8360E-RDK, and im trying to >>> make NAND at local bus works with UPM. I put the scope to >>> see what was going wrong and I got this: >>> >>> >>> ___ >>> - the waveform in LGPL1/3 (nand CLE/ALE) should be ___| |___ >>> ___ ___ >>> but was |__| >> >> The ascii art attempt failed. ;-) >> >> [...] >>> One detail, im using u-boot-1.1.4 and i got the codes for UPM and NAND >>> from u-boot-1.3.4-rc1. >> >> Since the boards are pretty the same, I guess you can just compile >> the u-boot-1.3.3 (please try release instead of -rc, to be sure), >> and see if NAND will work. Maybe it will need really small code >> modifications for your board though. >> >> Otherwise it is hard to say where is problem is (maybe the problem in >> the 1.1.4 nand core code, not in UPM setup?). >> >> Also, you didn't mention what kind of chip the board is using. >> >> Thanks, >> >> -- >> Anton Vorontsov >> email: cbouatmailru at gmail.com >> irc://irc.freenode.net/bd2 >> > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-07-29 21:09 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-07-25 16:50 [U-Boot-Users] Strange behavior in UPM Alemao 2008-07-25 17:33 ` Anton Vorontsov 2008-07-29 13:22 ` Alemao 2008-07-29 21:09 ` Alemao
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox