[U-Boot] IMX27 NAND Probe Problem
Alessandro Chies
alessandro.chies at libero.it
Wed Jan 14 23:25:38 CET 2009
Hello again, I would like to add more infos on my problem:
When I try to register the device nand0, the call stack arrives to the
function in the file nand-imx.c in uboot v2.
static int __init imxnd_probe(struct device_d *dev)
{
struct nand_chip *this;
struct mtd_info *mtd;
struct imx_nand_platform_data *pdata = dev->platform_data;
struct imx_nand_host *host;
u16 tmp;
int err = 0;
#ifdef CONFIG_ARCH_MX27
PCCR1 |= PCCR1_NFC_BAUDEN;
#endif
/* Allocate memory for MTD device structure and private data
*/
host = kzalloc(sizeof(struct imx_nand_host), GFP_KERNEL);
if (!host)
return -ENOMEM;
host->dev = dev;
/* structures must be linked */
this = &host->nand;
mtd = &host->mtd;
mtd->priv = this;
/* 50 us command delay time */
this->chip_delay = 5;
this->priv = host;
this->dev_ready = imx_nand_dev_ready;
this->cmdfunc = imx_nand_command;
this->select_chip = imx_nand_select_chip;
this->read_byte = imx_nand_read_byte;
this->read_word = imx_nand_read_word;
this->write_buf = imx_nand_write_buf;
this->read_buf = imx_nand_read_buf;
this->verify_buf = imx_nand_verify_buf;
#if 0
host->clk = clk_get(&pdev->dev, "nfc_clk");
if (IS_ERR(host->clk))
goto eclk;
clk_enable(host->clk);
#endif
host->regs = (void __iomem *)dev->map_base;
tmp = readw(host->regs + NFC_CONFIG1);
tmp |= NFC_INT_MSK;
writew(tmp, host->regs + NFC_CONFIG1);
.
And it locks at tmp = readw(host->regs + NFC_CONFIG1);
If I exclude the nand, UBoot boots up very well from RAM but If I try
Md 0xd8000e1a+0x2
I receive a value that is not real (most of the times, the result of the
previous md instruction).
Please, can someone give me any type of help on what is happening?
Best regards
Alessandro
More information about the U-Boot
mailing list