Commit graph

8363 commits

Author SHA1 Message Date
Abhishek Sahu
698a7e98e0 mtd: nand: qcom: store the number of spare, ecc and bbm bytes
This patch does minor code reorganization to store spare, ecc and
bbm bytes in nand device structure which will be useful in
subsequent patches.

Change-Id: Id44c53e204a874569968764798c346a609695acf
Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
2017-11-07 03:33:49 -08:00
Abhishek Sahu
e2d3adc527 mtd: nand: qcom: reorganize read page error handling
Following are the major issues in current implementation for
checking the read errors

1. For checking the erased CW, NAND_ERASED_CW_DETECT_STATUS
   is being read inside qpic_nand_check_status. The
   qpic_nand_check_status will be called after complete page read
   so reading status register won’t help in getting the register
   value after each CW reads.
2. The mtd layer expects the driver to return non-negative
   integer representing the maximum number of bitflips that were
   corrected on any one ecc region. The mtd layer takes care of
   returning EUCLEAN based on returned number.
3. mtd->ecc_stats is only applicable when ECC engine is
   doing ECC correction. For raw reads, the stats should not be
   incremented.

Now the changes have been done to reorganize the error handling

1. schedule the NAND_ERASED_CW_DETECT_STATUS reading after
   every CW read and check the same if ECC engine generates
   uncorrectable error.
2. For raw read, the ECC engine will never generate the
   uncorrectable error or erased CW so check only
   NAND_FLASH_STATUS.
3. The qpic_nand_read_oob should return the maximum number
   of bitflips that were corrected on any one ecc region so
   introduce the max_bitflips for maintaining the same.
4. The read should return the complete data in case of
   BADMSG so move the BADMSG check in the main read function.

Change-Id: Ibef56294ace00d7cd67b501f623fb1d3aeb2c6ec
Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
2017-11-07 03:33:45 -08:00
Abhishek Sahu
136a1cd106 mtd: nand: qcom: init mtd ecc strength and bitflip_threshold
1. ecc strength can be assigned in mtd structure itself so
   remove the ecc_width from qpic nand dev structure
2. Initialize bitflip_threshold with 3*4 of ecc strength so
   that MTD layer will return EUCLEAN if number of ecc correction
   are more than bitflip_threshold.

Change-Id: Ieafd1957b89a05f9dd0fdfe829712d8891bd6a48
Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
2017-11-07 03:33:40 -08:00
Abhishek Sahu
7ac43aedb3 mtd: nand: qcom: remove unused status code for bad page
NANDC_RESULT_BAD_PAGE is not being returned by any operation, so
it can be removed.

Change-Id: Ia90e4e6b7ef7577d069d312d51083b50f49bf980
Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
2017-11-07 03:33:34 -08:00
Vasudevan Murugesan
7fd4f44ace ipq807x: mmc: Enabled SDHCI ADMA support
This patch enables SDHCI mode and also supports
data transfer using ADMA method.

Change-Id: Ia3187fec9024ad0972ca720cf0b9ddc6a59b906c
Signed-off-by: Vasudevan Murugesan <vmuruges@codeaurora.org>
2017-11-03 02:52:37 -07:00
Sham Muthayyan
2035a079c5 ipq807x: Download firmware only if board has AQ PHY
Change-Id: I4c375367137ffdc3de00fd26882835e47eca86c5
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-11-01 06:01:14 -07:00
Sham Muthayyan
db4516262a qcom: nand: Issue the Reset command before probe
Reset command must be the first command issued to all
targets after the NAND flash device is powered on.

Change-Id: I617dc5b0ad8d72705dcf20f1cb554134b166e533
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-10-25 23:45:34 -07:00
Sham Muthayyan
23f9381f86 ipq807x: Add 4byte mode support for Winbond nor flash
Change-Id: I4f31612091bff4f03527fbfd41f02f4a7267f248
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-10-25 04:25:04 -07:00
Sham Muthayyan
0ed8d4aa87 ipq807x: Fixed port mac for qsgmii mode
Change-Id: I190eb0e11ba17724b5bd6fa7ccf85c5dad9afb09
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-10-24 08:33:31 -07:00
Saravanan Jaganathan
6f9aa43a88 ipq807x : Added support for AQR111
Change-Id: I06ccac361c71d6bd9868fc4c3230c13088123e1f
Signed-off-by: Saravanan Jaganathan <sjaganat@codeaurora.org>
2017-10-21 07:04:36 -07:00
Ramesh Muthusamy
040da09949 IPQ807x: AQ Phy Fw download from flash
Change-Id: I55ecb7ab61476c497ae565597396556e4f074e8e
Signed-off-by: Ramesh Muthusamy <rmuthusa@codeaurora.org>
Signed-off-by: Saravanan Jaganathan <sjaganat@codeaurora.org>
2017-10-13 10:50:23 -07:00
Sham Muthayyan
e216c7f3ab ipq807x: Added the support for aquantia firmware download
Change-Id: Iebef6426e6ffdef7e3c5fb8c6a04c2c6f494a664
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
Signed-off-by: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
2017-10-12 04:46:10 -07:00
Gokul Sriram Palanisamy
0f0ae124bb ARM: QCA: Fast MDIO support for Aquantia port
MDIO clock divider is set to 0x7 (counts to 8)
to produce 12.5MHz (100MHz/8) MDC frequency.

Change-Id: Ic7969aebf9fcbb14601ba8e56563959ab0b25657
Signed-off-by: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
2017-10-12 04:45:52 -07:00
Sham Muthayyan
a5b2a4c4cb ipq807x: Padding minimum packets before send to EDMA
The EDMA HW is unable to process packets less than MIN_PKT_SIZE(33) bytes,
then the EDMA stalls. This is to pad the packets up to MIN_PKT_SIZE.

Change-Id: I473831a759ad6a764fefa095cf7ab347ba95ee97
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-09-20 11:50:22 +05:30
Sham Muthayyan
da2e958e58 ipq807x: Added the W25Q256JW flash support
Change-Id: Iee648d783567ed2b6ff09addbb000709fa6461ff
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-09-14 01:56:40 -07:00
Sham Muthayyan
b89040defa ipq807x: Added the USXMII speed and clock
Change-Id: Ieb3e01eef27807091e0a1670d6b7c25334bed396
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-09-13 23:24:38 -07:00
Sham Muthayyan
92f52b796e ipq807x: Aquantia phy init support
Change-Id: I0f714e0862c8002aa49497af0b65e5d5e61a8b64
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-09-13 23:24:33 -07:00
Sham Muthayyan
f08292a724 ipq807x: Added the UXSGMII mode support
Change-Id: I69363bd2c8f2fcaf5a41f63b7d509799353ac686
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-09-13 23:24:26 -07:00
Sham Muthayyan
546ffbe6c8 ipq807x: Added the Aquantia phy support
Change-Id: I4c61cd57cf02a97b6410ac4488e2dbe6e6a3cfd3
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-09-13 23:24:20 -07:00
Sham Muthayyan
643f0acddf ipq807x: Enabled the 8033 phy support for DB-HK02
Change-Id: Ifa9fcb7ee3f9263e97d81dd8ea984a2c9923af2a
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-09-13 23:24:00 -07:00
Sham Muthayyan
a3abb0f382 ipq807x: Add the 8033 phy support
Change-Id: If834f2ec2424a05c7ec2b6b26224a1d753551af8
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-09-13 23:23:49 -07:00
Sham Muthayyan
6a012e63d6 ipq807x: Add the multiple phy support
Change-Id: I8d22e267ccad0f8f14532e46f379e45faf32bad5
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-09-13 23:23:44 -07:00
Sham Muthayyan
11d70f9af5 ipq: Fix the 8033 phy driver
Change-Id: I99462cf2cfe820bb2b59b186dd9c13317c780670
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-09-13 23:23:37 -07:00
Sham Muthayyan
37be3e378e ipq: Move qca8033 phy driver into common
ipq40xx, ipq807x hardware share the qca8033 phy. So the qca8033 phy
driver has been moved to common directory for use by both the
hardware.

Change-Id: Ic972f00770c9e3cbaf4d727df21f19cd926ddce2
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-09-13 23:23:29 -07:00
Sham Muthayyan
856945d0de ipq807x: Add the PPE interface mode support
This patch added the uniphy interface mode and port mux select
for PSGMII and SGMII.

Change-Id: I26f18a855b9972a358583d706d3f8a8bf09401cc
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-09-13 23:23:19 -07:00
Stefan Wahren
b77ce142bb mmc: add MMC_VERSION_5_1
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
(cherry picked from commit 1a3619cf82)

Change-Id: I7884f7b58cadb6935ffa266d35af64a4e5ca68cb
Signed-off-by: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
2017-09-12 15:25:15 +05:30
Gokul Sriram Palanisamy
bc7a78c941 ipq807x: Fix various KW warnings in drivers
Change-Id: I7c5c61beeeb00cb9266464a7a084e105a224357d
Signed-off-by: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
2017-09-07 04:17:21 -07:00
Abhishek Sahu
3813ce677b ubi: fix data aborts in case of NAND bit flips during block read
The UBI layer generates the following data aborts if any of the
NAND block contains bit flips

    ubi0: attaching mtd2
    ubi0: fixable bit-flip detected at PEB 149
    ubi0: scanning is finished
    ubi0: fixable bit-flip detected at PEB 149
    data abort
    pc : [<4a934cc8>]          lr : [<4a933aec>]
    reloc pc : [<4a934cc8>]    lr : [<4a933aec>]
    sp : 4a77f2e0  ip : 00000095     fp : 00000075
    r10: 000001b7  r9 : 4a77fea0     r8 : 00000001
    r7 : 0001f000  r6 : 0001f000     r5 : 4a785e40  r4 : 4a7c4180
    r3 : 00000000  r2 : 00000075     r1 : 4a7860b8  r0 : 4a7c49c0
    Flags: nzcv  IRQs off  FIQs off  Mode SVC_32
    Resetting CPU ...

UBI layer will move the data from original block to some other
block in case of bit flips in the function ubi_eba_copy_leb. This
function uses volume EBA table vol->eba_tbl. The current UBI code
calls ubi_wl_init followed by ubi_eba_init but the ubi_eba_init
only initializes the volume EBA table. In case of bit failure,
the ubi_wl_init calls function __schedule_ubi_work which will
call ubi_eba_copy_leb and triggers data abort.

ubi_attach() {
    ubi_wl_init ->  __schedule_ubi_work -> ubi_eba_copy_leb
    ubi_eba_init
}

The UBI code has been written for Linux kernel and it has been
ported to UBOOT. Since UBOOT does not support threads so all the
thread functions are being called in uboot synchronously.
In Linux kernel, the UBI background thread starts
after the initialization, which is being controlled by
thread_enabled variable which will be set to true after all
initialization.

Now this patch checks for thread_enabled variable and call the
do_work only if the thread is enabled.

Change-Id: I4b2b40031dbd5f16ceefef541248973ca326cd9c
Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
2017-09-05 16:52:06 +05:30
Ramesh Muthusamy
0afdc8209b ipq807x : Enabling MDIO C45 and Uniphy3 support
Change-Id: I9236aa2861a004a030e7e88403302d5e09949ad7
Signed-off-by: Ramesh Muthusamy <rmuthusa@codeaurora.org>
2017-08-22 15:00:18 +05:30
Linux Build Service Account
9c30999bb6 Merge "qcom: nand: fix NAND dummy spare area programming" 2017-08-03 05:36:34 -07:00
Linux Build Service Account
16562b7f20 Merge "qcom: nand: fixed the 8 bit NAND ECC support" 2017-08-03 05:36:34 -07:00
xiaofeis
4077f42d0a uboot: make port 5 work on 1000Mhz speed
Change-Id: Ic7e2724ae2ce08895c779ed166fca2a9a0dd6868
Signed-off-by: xiaofeis <xiaofeis@codeaurora.org>
2017-07-31 00:28:35 -07:00
Vasudevan Murugesan
6ebedacfc5 ipq807x: Fixed flash ID for MX25U3235F
Change-Id: Ie9e2224b963428386f6970ef5950a9d04ac3cad8
Signed-off-by: Vasudevan Murugesan <vmuruges@codeaurora.org>
2017-07-27 02:15:14 -07:00
Sham Muthayyan
380e06a648 ipq807x: Set the NSS ports clock and MAC speed dynamically
Change-Id: If4cbff1a939fb165b2aef04d81e93b531789c8ed
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-07-24 07:52:00 -07:00
Sham Muthayyan
9841ffefc8 ipq807x: Added the baud rates support
Change-Id: I099488e7a0a74669b974c6892022922c3f14610a
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-07-06 23:57:02 -07:00
Sham Muthayyan
129c2856e1 qca: Add additional UART support
Change-Id: Iddcf30d232f1a7767e3523791b5f34d4d2cbcc0c
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-07-05 06:02:51 -07:00
Sham Muthayyan
6f1452c953 ipq807x: Deinit pcie before loading kernel
Change-Id: I22fe87dac2fd8f55978481fae71ee65281dfd204
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-06-29 08:53:06 -07:00
Abhishek Sahu
98c1c8e9db qcom: nand: fix NAND dummy spare area programming
NAND_CMD_PRG_PAGE_ALL uses the spare data from buffer itself
which is not applicable. The spare area in NAND page for
QPIC are dummy bytes so 0xff should be written to these
spare area. NAND_CMD_PRG_PAGE does the same thing and HLOS
driver uses this command for all page program
operations.  The actual spare data is being written along
with every codeword since the codewords size is 516 in which
512 bytes are user data and 4 bytes are spare data.

Change-Id: I5651caf5ea95f046570e8318f59e140398869ece
Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
2017-06-26 04:33:46 -07:00
Abhishek Sahu
25137add04 qcom: nand: fixed the 8 bit NAND ECC support
1. This driver is directly being registered with MTD
   layer so for OOB operations, the device OOB size will be
   passed. QPIC can’t handle the complete OOB so calculate QPIC
   supported OOB size and overwrite the device OOB size with
   QPIC supported OOB size.

2. OOB available calculation was wrong. The available OOB’s are
   4 bytes per codeword.

3. Raw configuration codeword size was hardcoded to 528 while 8
   bit ECC codeword size is 532.

Change-Id: Idc118e2fdd9882758da9dc6b1e977e04697a5640
Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
2017-06-26 04:33:36 -07:00
Abhishek Sahu
4d61ddbda3 qcom: nand: configure QPIC XFER STEPS registers
The QPIC XFER STEPS will not be configured in non NAND boot
mode and the data transfer speed will be very slow. Now this
patch reads the timing parameter from ONFI page and configures
the NAND XFER STEPS registers for highest supported ONFI mode.
For NON ONFI device, it will configure to default mode.

Change-Id: I2daf4a92255307efc53db9bb7fe2f02e8c00c3fa
Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
2017-06-22 23:48:48 -07:00
Varadarajan Narayanan
3d9a317333 spi: qcom: Fix spi probe issue
Cleared dynamically allocated region for spi global data
to avoid garbage values causing data abort.

Change-Id: Ie278cb3a1374d347d7dfb20b59059dfbf9a7ae42
Signed-off-by: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
2017-06-15 15:34:37 +05:30
Gokul Sriram Palanisamy
3a93d3ccb9 ARM: qup_spi: Enabled bam support for spi-nor
Change-Id: I7bf9335ed5c0e6a439c5a4169319f1d422e1ae7d
Signed-off-by: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
Signed-off-by: Gopinath Sekar <gsekar@codeaurora.org>
2017-06-08 12:45:42 +05:30
Gokul Sriram Palanisamy
f5993e4346 ARM: qca: Added bam support for spi devices
Change-Id: I7f43c4a4d817fd727a43eb767aeae3fc001ca37c
Signed-off-by: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
2017-06-07 06:26:13 -07:00
smuthayy
639c27e64e ipq807x: Fixed the PCIE linkup failure leads to crash
If the PCIE cards are not connected, executing the pci
commands lead to the crash.

Change-Id: Id68ab1a39bfc3319d17af2fe6a3c8d4c1af039b0
Signed-off-by: smuthayy <smuthayy@codeaurora.org>
2017-06-02 14:47:25 -07:00
smuthayy
7c309ca403 ipq807x: Added the PCIE phy support
Change-Id: I30212d0b82a28c131ec35ec8eeada3b91f8369a1
Signed-off-by: smuthayy <smuthayy@codeaurora.org>
2017-06-02 14:45:56 -07:00
Jaiganesh Narayanan
c4a6f7d62f ipq807x: enable ethernet address assignment from ART partition
Change-Id: I37541ff581f677d5a6c04adedb68bb0e2416b4ac
Signed-off-by: Jaiganesh Narayanan <njaigane@codeaurora.org>
2017-06-01 06:16:04 -07:00
Jaiganesh Narayanan
6fe9db26ac ipq807x: enable net, qca8075 phy reset and link detection code
Change-Id: I978f5a16da7ecf56f006e0e7757a52c7d31b22cf
Signed-off-by: Jaiganesh Narayanan <njaigane@codeaurora.org>
2017-05-29 20:15:48 -07:00
Jaiganesh Narayanan
428fc1d379 ipq: move qca8075 mdio, phy driver into common directory
ipq40xx, ipq807x hardware share the qca8075 phy. So the qca8075 phy
mdio, driver has been moved to common directory for use by both the
hardware.

Change-Id: Id6e9342438ffbdf8599860df6fbb39bba30429b3
Signed-off-by: Jaiganesh Narayanan <njaigane@codeaurora.org>
2017-05-29 08:02:40 -07:00
Sham Muthayyan
cad4eba461 mmc: eMMC add Secured Trim command support
Secured Trim command does eMMC erase for  unalligned block size.

Change-Id: I4dc7bea15c8fcb57e07d19c398b1c8e2289da100
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
2017-04-11 23:55:40 -07:00
Gokul Sriram Palanisamy
674e652750 ARM: qca: qup-spi: Removed unused registers from structure
Change-Id: I028018a6d9bc237ce257ee9f60bbe1ebc662eca7
Signed-off-by: Gokul Sriram Palanisamy <gpalan@codeaurora.org>
2017-03-14 22:51:51 +05:30