lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7bca8089-09ad-4550-93d1-35a365bcd167@iopsys.eu>
Date: Thu, 21 Aug 2025 14:13:14 +0300
From: Mikhail Kshevetskiy <mikhail.kshevetskiy@...sys.eu>
To: Lorenzo Bianconi <lorenzo@...nel.org>
Cc: Ray Liu <ray.liu@...oha.com>, Mark Brown <broonie@...nel.org>,
 linux-arm-kernel@...ts.infradead.org, linux-spi@...r.kernel.org,
 linux-kernel@...r.kernel.org, Frieder Schrempf <frieder.schrempf@...tron.de>
Subject: Re: [PATCH v3 00/14] spi: airoha: driver fixes & improvements


On 21.08.2025 09:58, Lorenzo Bianconi wrote:
>> This patch series greatly improve airoha snfi driver and fix a
>> number of serious bug.
>>
>> Fixed bugs:
>>  * Fix reading/writing of flashes with more than one plane per lun
>>  * Fix inability to read/write oob area
>>  * Fill the buffer with 0xff before writing
>>  * Fix reading of flashes supporting continuous reading mode
>>  * Fix error paths
>>
>> Improvements:
>>  * Add support of dual/quad wires spi modes in exec_op().
>>  * Support of dualio/quadio flash reading commands
>>  * Remove dirty hack that reads flash page settings from SNFI registers
>>    during driver startup
>>
>> Unfortunately I am unable to test the driver with linux at the moment,
>> so only the following testing was done:
> It seems to me this is quite an important rework of the driver. I would prefer
> to have some test results for this series. Are you able to run mtd_test kernel
> module for testing?

I'll try to build latest openwrt with this patches  and mtd_test kernel
module and try it on one of our boards.

Actually patches can be divided on to parts:
* fixes of current driver (patches 1-10)
* change of behavior to avoid reading flash page settings from SNFI
registers during driver startup (patches 11-14)

The changes are based on the code we are using for more than 3 years. I
adapt it to latest linux/u-boot code.

Up to now the only known issue appears on en7523 chips only. Here a
corresponding patch description (not added to this series)
====================================================== spi: airoha:
en7523: workaround flash damaging if UART_TXD was short to GND We found
that some serial console may pull TX line to GROUND during board boot
time. Airoha uses TX line as one of it's BOOT pins. This will lead to
booting in RESERVED boot mode. It was found that some flashes operates
incorrectly in RESERVED mode. Micron and Skyhigh flashes are definitely
affected by the issue, Winbond flashes are NOT affected. Details:
-------- DMA reading of odd pages on affected flashes operates
incorrectly. Page reading offset (start of the page) on hardware level
is replaced by 0x10. Thus results in incorrect data reading. Usage of
UBI make things even worse. Any attempt to access UBI leads to ubi
damaging. As result OS loading becomes impossible. Non-DMA reading is
OK. =======================================================

Regards,
Mikhail


>
> Regards,
> Lorenzo
>
>>  * Driver compiles without error.
>>  * All changes were tested with corresponding u-boot driver. U-Boot
>>    SpiNAND driver was modified as well to match linux-6.17-rc2 with
>>    additional fixes for continuous mode.
>>
>> Changes v2:
>>  * minor fix
>>  * add comments to code
>>
>> Changes v3:
>>  * add patch to prevent continuous reading
>>
>> Mikhail Kshevetskiy (14):
>>   spi: airoha: return an error for continuous mode dirmap creation cases
>>   spi: airoha: remove unnecessary restriction length
>>   spi: airoha: add support of dual/quad wires spi modes
>>   spi: airoha: remove unnecessary switch to non-dma mode
>>   spi: airoha: unify dirmap read/write code
>>   spi: airoha: switch back to non-dma mode in the case of error
>>   spi: airoha: fix reading/writing of flashes with more than one plane
>>     per lun
>>   spi: airoha: support of dualio/quadio flash reading commands
>>   spi: airoha: allow reading/writing of oob area
>>   spi: airoha: buffer must be 0xff-ed before writing
>>   spi: airoha: avoid setting of page/oob sizes in REG_SPI_NFI_PAGEFMT
>>   spi: airoha: reduce the number of modification of REG_SPI_NFI_CNFG and
>>     REG_SPI_NFI_SECCUS_SIZE registers
>>   spi: airoha: set custom sector size equal to flash page size
>>   spi: airoha: avoid reading flash page settings from SNFI registers
>>     during driver startup
>>
>>  drivers/spi/spi-airoha-snfi.c | 508 +++++++++++++++++-----------------
>>  1 file changed, 260 insertions(+), 248 deletions(-)
>>
>> -- 
>> 2.50.1
>>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ