summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* MIPS: cache: reimplement dcache_[status, enable, disable]Daniel Schwierzeck2018-09-222-46/+20
| | | | | | | | | | | Those functions are not needed during cache init and can be implemented in C. Only support the safe disabling of caches when this is required for booting an OS. Reenabling caches is much harder to implement if an optional coherency manager must be supported. As there is no real use-case anyway, dcache_enable is implemented with an error message. Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
* MIPS: start.S: make boot config at offset 0x10 configurableDaniel Schwierzeck2018-09-224-22/+28
| | | | | | | | | | | | Some MIPS systems store some board-specific boot configuration in the U-Boot binary at offset 0x10. This is used by Malta boards and by Lantiq/Intel SoC's when booting from parallel NOR flash. Convert the hard-coded values to Kconfig options to remove such board-specific stuff out of the generic start.S code. This also deprecates the config option CONFIG_SYS_XWAY_EBU_BOOTCFG. Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
* bcm968380gerg: enable pinctrlPhilippe Reynes2018-09-221-0/+1
| | | | Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
* dt: bcm6838: add pinctrlPhilippe Reynes2018-09-221-0/+12
| | | | | | Add pinctrl node and related syscon node for broadcom bcm6838 SoC. Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
* pinctrl: bcm6838: add pinctrl supportPhilippe Reynes2018-09-224-0/+205
| | | | | | Add pinctrl support for broadcom bcm6838 SoC. Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
* Merge git://git.denx.de/u-boot-imxTom Rini2018-09-1915-104/+536
|\ | | | | | | | | - changes in pico-* boards - fix imx6ull pinmux
| * pico-imx7d: Add a new defconfig with PICO-Hobbit selectedOtavio Salvador2018-09-182-0/+66
| | | | | | | | | | | | | | This adds a new defconfig which pre-selects the PICO-Hobbit baseboard allowing a completely non-interactive boot process. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * pico-imx7d: Add PICO-Hobbit baseboard supportOtavio Salvador2018-09-181-1/+4
| | | | | | | | | | | | This adds the device tree to the DFU and bootmenu environment setting. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * pico-imx7d: Fix TechNexion spelling on MAINTAINERS fileOtavio Salvador2018-09-181-2/+2
| | | | | | | | Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * pico-imx6ul: Add a new defconfig with PICO-Pi selectedOtavio Salvador2018-09-182-0/+58
| | | | | | | | | | | | | | This adds a new defconfig which pre-selects the PICO-Pi baseboard allowing a completely non-interactive boot process. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * pico-imx6ul: Add PICO-Pi baseboard supportOtavio Salvador2018-09-181-0/+3
| | | | | | | | | | | | This adds the device tree to the DFU and bootmenu environment setting. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * pico-imx6ul: Fix TechNexion spelling on MAINTAINERS fileOtavio Salvador2018-09-181-2/+2
| | | | | | | | Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * Merge branch 'master' of git://git.denx.de/u-boot into masterStefano Babic2018-09-1883-723/+1043
| |\ | | | | | | | | | Signed-off-by: Stefano Babic <sbabic@denx.de>
| * | pico-imx6ul: Add instructions for booting in Falcon modeFabio Estevam2018-09-141-0/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Falcon mode allows the SPL to load and jump directly to the kernel, without loading U-Boot proper. Add detailed step by step on how to use Falcon mode on pico-imx6ul. Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * | pico-imx6ul: Add Falcon mode supportOtavio Salvador2018-09-143-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Falcon mode boots the kernel directly from SPL, without loading the full U-Boot. As pico-imx6ul does not have a GPIO for selecting Falcon versus normal mode, enter in Falcon mode when the customer selects the CONFIG_SPL_OS_BOOT option in menuconfig. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * | wandboard: README: Include the mx6qp variant in the listFabio Estevam2018-09-141-1/+1
| | | | | | | | | | | | | | | | | | The mx6qp Wandboard variant is also supported, so add it to the list. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
| * | ARM: bootscript: For nfsargs only use rootpath (and remove not needed serverip)Lukasz Majewski2018-09-141-1/+1
| | | | | | | | | | | | | | | | | | | | | The serverip part is provided from DHCP server with 'option root-path "192.168.3.1:/srv/tftp/rootfs";' parameter in dhcpd.conf Signed-off-by: Lukasz Majewski <lukma@denx.de>
| * | ARM: bootscript: Fix the nfsargs and addip in K+P's tpcboot.cmdLukasz Majewski2018-09-141-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The quotes around ${bootargs} were missing as we elaborate those variables twice - once when we "setenv" the command and secondly when we "run" it. Without quotes we have just empty string in the second call. Moreover there is an issue with line breaks - as the original commands got truncated. Signed-off-by: Lukasz Majewski <lukma@denx.de>
| * | ARM: bootscript: Replace tftpboot with dhcp when downloading kernelLukasz Majewski2018-09-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'dhcp' command is more versatile as it allows working with the DHCP server to obtain serverip, ipaddress and other network parameters. The configuration necessary to obtain the serverip (dhcpd.conf): option option-150 code 150 = ip-address; and in the subnet definition: option option-150 192.168.X.Y; Signed-off-by: Lukasz Majewski <lukma@denx.de>
| * | ARM: bootscript: Remove hard-coded rootpath from K+P's tpcboot.cmdLukasz Majewski2018-09-141-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'rootpath' can be provided by DHCP server. Removing this line prevents from overwriting it. To do that on the DHCP server side (isc-dhcp-server) modify dhcpd.conf and add 'option root-path "192.168.X.Y:/srv/tftp/rootfs";' Signed-off-by: Lukasz Majewski <lukma@denx.de>
| * | imx: imx6ull: fix pinmux input_val for uart5 rx pinHeiko Schocher2018-09-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | just try to bring up an imx6ull board with console on uart5 and found, that input_val for pin MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX is 7 and not 5 on imx6ull. With this patch rx works now. Signed-off-by: Heiko Schocher <hs@denx.de>
| * | pico-imx6ul: Remove CONFIG_FSL_USDHC from .hOtavio Salvador2018-09-141-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | The CONFIG_FSL_USDHC is defined inside "mx6_common.h", which is already included in this file. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Reviewed-by: Fabio Estevam <festevam@gmail.com>
| * | pico-imx6ul: Add new pico-hobbit configOtavio Salvador2018-09-142-0/+58
| | | | | | | | | | | | | | | | | | | | | | | | The new config skips the boot menu which asks which board is in use. This is useful to allow direct booting of image without user iteration. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * | pico-imx6ul: Sync README with pico-imx7dOtavio Salvador2018-09-141-13/+9
| | | | | | | | | | | | Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * | pico-imx6ul: Improve default DFU settingsOtavio Salvador2018-09-141-5/+6
| | | | | | | | | | | | | | | | | | | | | This rework the DFU settings so it supports the SPL and U-Boot image, as well as the single partition layout we are using by default. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * | pico-imx6ul: Add bootmenu to choose the baseboardOtavio Salvador2018-09-142-2/+13
| | | | | | | | | | | | | | | | | | | | | Currently the baseboards do not offer a way to autodetect which one is in use, so we ask the user if no value has been set. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * | pico-imx6ul: Sync defconfig with new changesOtavio Salvador2018-09-141-16/+4
| | | | | | | | | | | | | | | | | | | | | Due the changes in previous commits, we need to resync the defconfig to reduce noise in next commits. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * | pico-imx6ul: Update the README fileFabio Estevam2018-09-141-6/+20
| | | | | | | | | | | | | | | | | | | | | | | | Update the README file to take into accound the switch to SPL. Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * | pico-imx6ul: Add support for the 512MB moduleFabio Estevam2018-09-141-3/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently only the module with 256MB of RAM is supported. Add support for the 512MB of RAM variant as well. Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * | pico-imx6ul: Add bmode supportFabio Estevam2018-09-141-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'bmode' command is helpful for switching the boot media. In the case of pico-imx6ul there are two possible boot media: eMMC or USB. To boot from eMMC: => bmode emmc To boot from USB (via Serial Download Protocol): => bmode usb Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * | pico-imx6ul: Add fastboot supportFabio Estevam2018-09-141-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fastboot tool is a convenient way to flash the eMMC, so add support for it. Examples of usages: On the pico-imx6ul U-Boot prompt: => fastboot 0 On the Linux PC connected via USB: 1. Retrieving the U-Boot version $ sudo fastboot getvar bootloader-version -i 0x0525 bootloader-version: U-Boot 2018.07-rc2-00130-g0881835-dirty finished. total time: 0.000s 2. Resetting the board $ sudo fastboot reboot -i 0x0525 (this causes the pico-imx6ul to reboot) Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * | pico-imx6ul: Convert to SPLFabio Estevam2018-09-145-2/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two versions of imx6ul pico SOMs: one with 256MB and another one with 512MB of RAM. Convert to SPL so that both versions can be supported. This patch doesn't rework the clock initialization to avoid changing the behavior in this same patch, so it will be cleaned up in future. Currently only the 256MB is tested/supported. Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| * | pico-imx6ul: Convert to distro configFabio Estevam2018-09-142-50/+21
| | | | | | | | | | | | | | | | | | | | | | | | Instead of keeping a custom environment, use a more generic approach by switching to distro config. Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
* | | Merge git://git.denx.de/u-boot-marvellTom Rini2018-09-1925-199/+664
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Multiples updates to the turris boards / platform - Changes / enhancements to the Marvell PHY drivers, mainly to support the turris platform - Many fixes and enhancements to the pxa3xx NAND driver - Fixes for the UART boot mode in kwboot - Misc minor changes to other 32bit and 64bit boards
| * | | arm: mvebu: clearfog: enable eMMC boot partitions supportBaruch Siach2018-09-191-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Clearfog SOM can optionally have eMMC installed. Enable support for eMMC boot partitions by default. Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | phy: marvell: add SATA comphy RX/TX polarity invert supportRabeeh Khoury2018-09-192-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support to Armada 7k/8k comphy RX/TX lane swap. The 'phy-invert' DT property defines the inverted signals. Signed-off-by: Rabeeh Khoury <rabeeh@solid-run.com> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | fix: cmd: mvebu: Exclude mvebu commands from SPL buildsKonstantin Porotchkin2018-09-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Exclude mvebu commands from SPL builds Signed-off-by: Konstantin Porotchkin <kostap@marvell.com> Cc: Igal Liberman <igall@marvell.com> Cc: Stefan Roese <sr@denx.de> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | fix: mvebu: Add SPI parameters for environment setupKonstantin Porotchkin2018-09-191-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add definitions for CONFIG_ENV_SPI_BUS and CONFIG_ENV_SPI_CS to Armada-388-GP board configuration Signed-off-by: Konstantin Porotchkin <kostap@marvell.com> Cc: Igal Liberman <igall@marvell.com> Cc: Stefan Roese <sr@denx.de> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | fix: env: Fix the SPI flash device setup for DM modeKonstantin Porotchkin2018-09-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some reason the spi_flash_probe_bus_cs() is called inside the setup_flash_device() with zero values in place of configurated SPI flash mode and maximum flash speed. This code causes HALT error during startup environment relocation on some platforms - namely Armada-38x-GP board. Fix the function call by replacing zeros with the appropriate values - CONFIG_ENV_SPI_MAX_HZ and CONFIG_ENV_SPI_MODE. Signed-off-by: Konstantin Porotchkin <kostap@marvell.com> Cc: Igal Liberman <igall@marvell.com> Cc: Stefan Roese <sr@denx.de> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | fix: nand: pxa3xx: Add WA for eliminating flash ready timeoutDavid Sniatkiwicz2018-09-191-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add delay before processing the status flags in pxa3xx_nand_irq(). Signed-off-by: David Sniatkiwicz <davidsn@marvell.com> Reviewed-by: Igal Liberman <igall@marvell.com> Reviewed-by: Kostya Porotchkin <kostap@marvell.com> c: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | nand: pxa3xx: Add support for 8KB page 4 and 8 bit ECC NANDKonstantin Porotchkin2018-09-191-6/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for NAND chips with 8KB page, 4 and 8 bit ECC (ONFI). Signed-off-by: Konstantin Porotchkin <kostap@marvell.com> Reviewed-by: Ofer Heifetz <oferh@marvell.com> Cc: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | nand: pxa3xx: cosmetic: add comments to the timing layout structuresKonstantin Porotchkin2018-09-191-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add comments with timing parameter names and some details about nand layout fileds. Remove unneeded definition. Signed-off-by: Konstantin Porotchkin <kostap@marvell.com> Reviewed-by: Igal Liberman <igall@marvell.com> Cc: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | fix: nand: Replace hardcoded page chunk size with calculated oneKonstantin Porotchkin2018-09-191-22/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace the hardcoded value of page chink with value that depends on flash page size and ECC strength. This fixes nand access errors for 2K page flashes with 8-bit ECC. Move the initial flash commannd function assignment past the ECC structures initialization for eliminating usage of hardcoded page chunk size value. Signed-off-by: Konstantin Porotchkin <kostap@marvell.com> Reviewed-by: Igal Liberman <igall@marvell.com> Cc: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | mtd: nand: pxa3xx: add support for Toshiba flashKonstantin Porotchkin2018-09-191-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add timings and device ID for Toshiba TC58NVG1S3HTA00 flash Signed-off-by: Konstantin Porotchkin <kostap@marvell.com> Reviewed-by: Igal Liberman <igall@marvell.com> Cc: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | mtd: nand: pxa3xx: add support for 2KB 8-bit flashVictor Axelrod2018-09-191-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for 2KB page 8-bit ECC strength flash layout Signed-off-by: Victor Axelrod <victora@marvell.com> Reviewed-by: Igal Liberman <igall@marvell.com> Cc: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | mtd: nand: pxa3xx: Fix READOOB implementationBoris Brezillon2018-09-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the current driver, OOB bytes are accessed in raw mode, and when a page access is done with NDCR_SPARE_EN set and NDCR_ECC_EN cleared, the driver must read the whole spare area (64 bytes in case of a 2k page, 16 bytes for a 512 page). The driver was only reading the free OOB bytes, which was leaving some unread data in the FIFO and was somehow leading to a timeout. We could patch the driver to read ->spare_size + ->ecc_size instead of just ->spare_size when READOOB is requested, but we'd better make in-band and OOB accesses consistent. Since the driver is always accessing in-band data in non-raw mode (with the ECC engine enabled), we should also access OOB data in this mode. That's particularly useful when using the BCH engine because in this mode the free OOB bytes are also ECC protected. Fixes: 43bcfd2bb24a ("mtd: nand: pxa3xx: Add driver-specific ECC BCH support") Cc: stable@vger.kernel.org Reported-by: Sean Nyekjær <sean.nyekjaer@prevas.dk> Tested-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> Acked-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Tested-by: Sean Nyekjaer <sean.nyekjaer@prevas.dk> Acked-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Richard Weinberger <richard@nod.at> Signed-off-by: Ofer Heifetz <oferh@marvell.com> Reviewed-by: Igal Liberman <igall@marvell.com> Cc: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | mtd: nand: pxa3xx_nand: add support for partial chunksOfer Heifetz2018-09-191-55/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is needed to properly support the 8-bits ECC configuration with 4KB pages. When pages larger than 2 KB are used on platforms using the PXA3xx NAND controller, the reading/programming operations need to be split in chunks of 2 KBs or less because the controller FIFO is limited to about 2 KB (i.e a bit more than 2 KB to accommodate OOB data). Due to this requirement, the data layout on NAND is a bit strange, with ECC interleaved with data, at the end of each chunk. When a 4-bits ECC configuration is used with 4 KB pages, the physical data layout on the NAND looks like this: | 2048 data | 32 spare | 30 ECC | 2048 data | 32 spare | 30 ECC | So the data chunks have an equal size, 2080 bytes for each chunk, which the driver supports properly. When a 8-bits ECC configuration is used with 4KB pages, the physical data layout on the NAND looks like this: | 1024 data | 30 ECC | 1024 data | 30 ECC | 1024 data | 30 ECC | 1024 data | 30 ECC | 64 spare | 30 ECC | So, the spare area is stored in its own chunk, which has a different size than the other chunks. Since OOB is not used by UBIFS, the initial implementation of the driver has chosen to not support reading this additional "spare" chunk of data. Unfortunately, Marvell has chosen to store the BBT signature in the OOB area. Therefore, if the driver doesn't read this spare area, Linux has no way of finding the BBT. It thinks there is no BBT, and rewrites one, which U-Boot does not recognize, causing compatibility problems between the bootloader and the kernel in terms of NAND usage. To fix this, this commit implements the support for reading a partial last chunk. This support is currently only useful for the case of 8 bits ECC with 4 KB pages, but it will be useful in the future to enable other configurations such as 12 bits and 16 bits ECC with 4 KB pages, or 8 bits ECC with 8 KB pages, etc. All those configurations have a "last" chunk that doesn't have the same size as the other chunks. In order to implement reading of the last chunk, this commit: - Adds a number of new fields to the pxa3xx_nand_info to describe how many full chunks and how many chunks we have, the size of full chunks and partial chunks, both in terms of data area and spare area. - Fills in the step_chunk_size and step_spare_size variables to describe how much data and spare should be read/written for the current read/program step. - Reworks the state machine to accommodate doing the additional read or program step when a last partial chunk is used. This commit is taken from Linux: 'commit c2cdace755b' ("mtd: nand: pxa3xx_nand: add support for partial chunks") Signed-off-by: Chris Packham <judge.packham@gmail.com> Signed-off-by: Ofer Heifetz <oferh@marvell.com> Reviewed-by: Igal Liberman <igall@marvell.com> Cc: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | mtd: pxa3xx_nand: Simplify pxa3xx_nand_scanOfer Heifetz2018-09-191-16/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit simplifies the initial configuration performed by pxa3xx_nand_scan. No functionality change is intended. This commit is taken from Linux: 'commit 154f50fbde53' ("mtd: pxa3xx_nand: Simplify pxa3xx_nand_scan") Signed-off-by: Chris Packham <judge.packham@gmail.com> Signed-off-by: Ofer Heifetz <oferh@marvell.com> Reviewed-by: Igal Liberman <igall@marvell.com> Cc: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | mtd: pxa3xx_nand: Fix initial controller configurationOfer Heifetz2018-09-191-12/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Data Flash Control Register (NDCR) contains two types of parameters: those that are needed for device identification, and those that can only be set after device identification. Therefore, the driver can't set them all at once and instead needs to configure the first group before nand_scan_ident() and the second group later. Let's split pxa3xx_nand_config in two halves, and set the parameters that depend on the device geometry once this is known. This commit is taken from Linux: 'commit 66e8e47eae65' ("mtd: pxa3xx_nand: Fix initial controller configuration") Signed-off-by: Chris Packham <judge.packham@gmail.com> Signed-off-by: Ofer Heifetz <oferh@marvell.com> Reviewed-by: Igal Liberman <igall@marvell.com> Cc: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Stefan Roese <sr@denx.de>
| * | | mtd: pxa3xx_nand: Increase the initial chunk sizeOfer Heifetz2018-09-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The chunk size represents the size of the data chunks, which is used by the controllers that allow to split transferred data. However, the initial chunk size is used in a non-split way, during device identification. Therefore, it must be large enough for all the NAND commands issued during device identification. This includes NAND_CMD_PARAM which was recently changed to transfer up to 2048 bytes (for the redundant parameter pages). Thus, the initial chunk size should be 2048 as well. On Armada 370/XP platforms (NFCv2) booted without the keep-config devicetree property, this commit fixes a timeout on the NAND_CMD_PARAM command: [..] pxa3xx-nand f10d0000.nand: This platform can't do DMA on this device pxa3xx-nand f10d0000.nand: Wait time out!!! nand: device found, Manufacturer ID: 0x2c, Chip ID: 0x38 nand: Micron MT29F8G08ABABAWP nand: 1024 MiB, SLC, erase size: 512 KiB, page size: 4096, OOB size: 224 This commit is taken from Linux: 'commit c7f00c29aa8' ("mtd: pxa3xx_nand: Increase the initial chunk size") Signed-off-by: Chris Packham <judge.packham@gmail.com> Signed-off-by: Ofer Heifetz <oferh@marvell.com> Reviewed-by: Igal Liberman <igall@marvell.com> Cc: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Stefan Roese <sr@denx.de>