[PATCH 3/3] PPC440EP: MTD support for the Bamboo Board

Josh Boyer jwboyer at jdub.homelinux.org
Thu Apr 7 10:58:52 EST 2005


On Wed, 2005-04-06 at 10:33 -0700, Wade Farnsworth wrote:

Cool beans.  Can't wait to test this out tomorrow.  Just a couple comments.

<snip>

> +struct ppc440ep_ndfc_regs {
> +       uint cmd;
> +       uint addr;
> +       uint data;
> +       uint reserved1;
> +       uint ecc0;
> +       uint ecc1;
> +       uint ecc2;
> +       uint ecc3;
> +       uint ecc4;
> +       uint ecc5;
> +       uint ecc6;
> +       uint ecc7;
> +       uint b0cr;
> +       uint b1cr;
> +       uint b2cr;
> +       uint b3cr;
> +       uint cr;
> +       uint sr;
> +       uint hwctl;
> +       uint reserved2;
> +       uint revid;
> +};

These ecc registers actually have a use...

<snip>

> +
> +       /* Set address of NAND IO lines (Using Linear Data Access Region) */
> +       this->IO_ADDR_R = (void __iomem *) ((ulong) bamboo_ndfc + 0x1000);
> +       this->IO_ADDR_W = (void __iomem *) ((ulong) bamboo_ndfc + 0x1000);
> +       /* Reference hardware control function */
> +       this->hwcontrol  = bamboo_nand0_hwcontrol;
> +       /* Set command delay time */
> +       this->chip_delay = 12;
> +       this->eccmode    = NAND_ECC_SOFT;
> +       this->write_byte = bamboo_nand0_write_byte;
> +       this->read_byte  = bamboo_nand0_read_byte;
> +       this->write_buf  = bamboo_nand0_write_buf;
> +       this->read_buf   = bamboo_nand0_read_buf;
> +       this->verify_buf = bamboo_nand0_verify_buf;
> +       this->dev_ready  = bamboo_dev_ready;

<snip>

> +       /* Link the private data with the MTD structure */
> +       bamboo_nand1_mtd->priv = this;
> +
> +       /* Set address of NAND IO lines (Using Linear Data Access Region) */
> +       this->IO_ADDR_R = (void __iomem *) ((ulong) bamboo_ndfc + 0x1000);
> +       this->IO_ADDR_W = (void __iomem *) ((ulong) bamboo_ndfc + 0x1000);
> +       /* Reference hardware control function */
> +       this->hwcontrol  = bamboo_nand1_hwcontrol;
> +       /* Set command delay time */
> +       this->chip_delay = 25;
> +       this->eccmode    = NAND_ECC_SOFT;
> +       this->write_byte = bamboo_nand1_write_byte;
> +       this->read_byte  = bamboo_nand1_read_byte;
> +       this->write_buf  = bamboo_nand1_write_buf;
> +       this->read_buf   = bamboo_nand1_read_buf;
> +       this->verify_buf = bamboo_nand1_verify_buf;
> +       this->dev_ready  = NULL;

... so any reason why NAND_ECC_SOFT is used instead of making use of the
ECC registers that come with the NDFC?

Overall, I think the patch looks good.  Care to send it to the MTD
maintainers so it gets in their CVS tree?

thx,
josh



More information about the Linuxppc-embedded mailing list