AnsweredAssumed Answered

Custom LS1043A-RGW Board and NAND issues

Question asked by Thomas Morrison on Apr 9, 2020
Latest reply on Apr 12, 2020 by Yiping Wang

Hi,

 

We have a custom board - largely based upon the NXP LS1043A-RGW Development board

 

Due to the parts availability, the NAND is 512MB instead of 128MB.

 

The device tree for the Development board puts the memory in a weird spot, this is the

u-boot version (difference with the linux version is that it defines the partition:

 

   &ifc {
       status = "okay";
       #address-cells = <2>;
       #size-cells = <1>;
   /* NAND Flash on board 128MB */
           ranges = <0x0 0x0 0x0 0x7e800000 0x00010000>;
           nand@0,0 {
               compatible = "fsl,ifc-nand";
               #address-cells = <1>;
               #size-cells = <1>;
               reg = <0x1 0x0 0x10000>;
           };

   };

 

Question 1: Maybe I don't understand something here - but 0x7e800000 + 512MB would put the

                     memory space into DDR?

 

But, U-Boot isn't using the NAND, so it continues to boot linux. This is the relevant part of the boot log for NAND

 

   [    2.588917] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xac
   [    2.595485] nand: Micron MT29F4G08ABBFAH4
   [    2.599746] nand: 512 MiB, SLC, erase size: 256 KiB, page size: 4096, OOB size: 256
   [    2.607423] nand: WARNING: 7e800000.flash: the ECC used on your system is too weak compared to the one required by the NAND chip
   [    2.620121] Bad block table not found for chip 0
   [    2.625787] Bad block table not found for chip 0
   [    2.630399] Scanning device for bad blocks
   [    2.634542] Bad eraseblock 0 at 0x000000000000
   [    2.639031] Bad eraseblock 1 at 0x000000040000

     <snipped>

   [   12.241291] Bad eraseblock 2042 at 0x00001fe80000
   [   12.246040] Bad eraseblock 2043 at 0x00001fec0000
   [   12.250789] Bad eraseblock 2044 at 0x00001ff00000
   [   12.255538] Bad eraseblock 2045 at 0x00001ff40000
   [   12.260287] Bad eraseblock 2046 at 0x00001ff80000
   [   12.265035] Bad eraseblock 2047 at 0x00001ffc0000
   [   12.269734] No space left to write bad block table
   [   12.274518] nand_bbt: error while writing bad block table -28
   [   12.280270] fsl,ifc-nand: probe of 7e800000.nand failed with error -28
   [   12.287152] ------------[ cut here ]------------
   [   12.291758] kernel BUG at /home/tom/lsdk/packages/linux/linux/drivers/base/devres.c:105!

Question 2: Is this the result of not having the nand located correctly.

 

Question 3: If I need to change the location, I know I will have to change in device tree, but

                     it seems that 0x7e800000 is in config files (at least in u-boot).

 

Question 4: How do I change the size in the device tree for this NAND Device?

 

Thanks in advance!

 

Tom

Outcomes