From nobody Fri Apr 3 08:27:07 2026 Received: from pdx-out-005.esa.us-west-2.outbound.mail-perimeter.amazon.com (pdx-out-005.esa.us-west-2.outbound.mail-perimeter.amazon.com [52.13.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90D1533C1A7 for ; Wed, 18 Feb 2026 14:35:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=52.13.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771425336; cv=none; b=GcgMSCGZYORjajmz4cjBdLaXsdpetbKBHu/lRMGzmej6ojbMD4XraeXUvhESsGCBymVCd4hs2KyWBUQerf9twE7Bt0QMDEvcSx1zwov4z0ajYNjFMbMFTUvemEnUTXWmx+0n5SPlO9vExiRkv1kPS8vqEpK8e7mMqkTfQtsLUJc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771425336; c=relaxed/simple; bh=3MVUv24cGfD+vB7lNZwE7/YAhH3hJaWXEt0RUyV77e8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=miaX21lo+pkOzl29iZkj0+43CzOV8jC3KlhmrnD881m2GEOMfe29DucF6astK6DSxaBjgNAs7+TM6CXDR0umE6mcy7m+6k2u2stBgowhhSGAHsjpE+On6IzM+Glfe0oLVVxWS4xZ/zODuLJMmQ4wXXD5fwiBF1z1DAEoLUFU494= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amazon.com; spf=pass smtp.mailfrom=amazon.com; dkim=pass (2048-bit key) header.d=amazon.com header.i=@amazon.com header.b=fGoBHG8d; arc=none smtp.client-ip=52.13.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amazon.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=amazon.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=amazon.com header.i=@amazon.com header.b="fGoBHG8d" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazoncorp2; t=1771425335; x=1802961335; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=b4nAwwP9kKL9flULqfozPlWT1GSVAHqt8b0l1p7ovGQ=; b=fGoBHG8dRKdeVsPTxrGQ+IEoHJzCuf4v+O6WpZ+tI9qgWNPnFKn+iZJK wmfSGgnAf7y9lC2WCmC8pXrCBOYZV5nOcWli+LgSJyqVT4zbseJ/fYdc1 TZNovw3iadC18RrwjzxWMnGz1iJEpFR0TP2Mm6BOQug+fl8UxQHx1Ey6l 9udgcSF9DyVbORDpuGyDprydQCPYnnvNqOoAVZ+q7XNiPUKxxE1/llQXp CUBgpzqlkJYn8Ehv1046nnYc+12D1XTFxGYrP1LV7eL0RwpfzqrI4GcNc yWREAO3FYvCk411df3a/hLySffZ4ch/iYFC8GjLHNPRG0+MidLdRJxF/r Q==; X-CSE-ConnectionGUID: RQP3LO31SpiU+o41FX21fw== X-CSE-MsgGUID: U8LcRvs4TA6klofjpwj24g== X-IronPort-AV: E=Sophos;i="6.21,298,1763424000"; d="scan'208";a="13290663" Received: from ip-10-5-0-115.us-west-2.compute.internal (HELO smtpout.naws.us-west-2.prod.farcaster.email.amazon.dev) ([10.5.0.115]) by internal-pdx-out-005.esa.us-west-2.outbound.mail-perimeter.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2026 14:35:31 +0000 Received: from EX19MTAUWB002.ant.amazon.com [205.251.233.48:8957] by smtpin.naws.us-west-2.prod.farcaster.email.amazon.dev [10.0.39.194:2525] with esmtp (Farcaster) id 00709b63-fb83-4df5-a64e-073fb2d7c1fb; Wed, 18 Feb 2026 14:35:31 +0000 (UTC) X-Farcaster-Flow-ID: 00709b63-fb83-4df5-a64e-073fb2d7c1fb Received: from EX19D001UWA001.ant.amazon.com (10.13.138.214) by EX19MTAUWB002.ant.amazon.com (10.250.64.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.35; Wed, 18 Feb 2026 14:35:31 +0000 Received: from dev-dsk-farbere-1a-46ecabed.eu-west-1.amazon.com (172.19.116.181) by EX19D001UWA001.ant.amazon.com (10.13.138.214) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.35; Wed, 18 Feb 2026 14:35:29 +0000 From: Eliav Farber To: , , , , , , , CC: Subject: [PATCH v2 1/3] mtd: spi-nor: winbond: Fix locking support for w25q256jwm Date: Wed, 18 Feb 2026 14:35:21 +0000 Message-ID: <20260218143523.17467-2-farbere@amazon.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260218143523.17467-1-farbere@amazon.com> References: <20260218143523.17467-1-farbere@amazon.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: EX19D042UWA002.ant.amazon.com (10.13.139.17) To EX19D001UWA001.ant.amazon.com (10.13.138.214) Content-Type: text/plain; charset="utf-8" The Winbond w25q256jwm device supports four Block Protect (BP) bits and uses Status Register bit 6 as the Top/Bottom (TB) protect bit. Update the flash parameters by enabling SPI_NOR_4BIT_BP and SPI_NOR_TB_SR_BIT6. Without these flags, the locking configuration is incorrect. Reference: https://www.winbond.com/hq/support/documentation/levelOne.jsp?__locale=3Den= &DocNo=3DDA00-W25Q256JW.1 Signed-off-by: Eliav Farber --- This flash is populated on the al11_k2v6_jrd10 board and was tested at 35700000 frequency using the amazon,alpine-dw-apb-ssi SPI controller. root@alpine:~# cat /sys/bus/spi/devices/spi3.0/spi-nor/partname w25q256jwm root@alpine:~# cat /sys/bus/spi/devices/spi3.0/spi-nor/jedec_id=20 ef8019 root@alpine:~# cat /sys/bus/spi/devices/spi3.0/spi-nor/manufacturer=20 winbond root@alpine:~# xxd -p /sys/bus/spi/devices/spi3.0/spi-nor/sfdp=20 53464450060101ff00060110800000ff84000102d00000ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffe520fbffffffff0f44eb086b083b42bbfeffffffffff 0000ffff40eb0c200f5210d800003602a60082ea14d3e96376337a757a75 f7bdd55c19f75dffe970f9a5ffffffffffffffffffffffffffffffffff0a f0ff21ffdcff=20 root@alpine:~# cat /sys/kernel/debug/spi-nor/spi3.0/capabilities Supported read modes by the flash 1S-1S-1S opcode 0x13 mode cycles 0 dummy cycles 0 1S-1S-2S opcode 0x3c mode cycles 0 dummy cycles 8 1S-2S-2S opcode 0xbc mode cycles 2 dummy cycles 2 1S-1S-4S opcode 0x6c mode cycles 0 dummy cycles 8 1S-4S-4S opcode 0xec mode cycles 2 dummy cycles 4 4S-4S-4S opcode 0xec mode cycles 2 dummy cycles 0 Supported page program modes by the flash 1S-1S-1S opcode 0x12 1S-1S-4S opcode 0x34 root@alpine:~# cat /sys/kernel/debug/spi-nor/spi3.0/params name w25q256jwm id ef 80 19 00 00 00 size 32.0 MiB write size 1 page size 256 address nbytes 4 flags HAS_SR_TB | 4B_OPCODES | HAS_4BAIT | HAS_LOCK | HAS_16BIT_S= R | HAS_SR_TB_BIT6 | HAS_4BIT_BP | SOFT_RESET opcodes read 0x13 dummy cycles 0 erase 0x21 program 0x12 8D extension none protocols read 1S-1S-1S write 1S-1S-1S register 1S-1S-1S erase commands 21 (4.00 KiB) [1] dc (64.0 KiB) [3] c7 (32.0 MiB) sector map region (in hex) | erase mask | overlaid ------------------+------------+---------- 00000000-01ffffff | [ 1 ] | no root@alpine:~# dd if=3D/dev/urandom of=3D./spi_test bs=3D65536 count=3D1 1+0 records in 1+0 records out 65536 bytes (66 kB, 64 KiB) copied, 0.0002316 s, 283 MB/s root@alpine:~# mtd_debug erase /dev/mtd22 0 65536 Erased 65536 bytes from address 0x00000000 in flash root@alpine:~# mtd_debug read /dev/mtd22 0 65536 spi_read Copied 65536 bytes from address 0x00000000 in flash to spi_read root@alpine:~# hexdump spi_read 0000000 ffff ffff ffff ffff ffff ffff ffff ffff * 0010000 root@alpine:~# sha256sum spi_read 71189f7fb6aed638640078fba3a35fda6c39c8962e74dcc75935aac948da9063 spi_read root@alpine:~# mtd_debug write /dev/mtd22 0 65536 spi_test Copied 65536 bytes from spi_test to address 0x00000000 in flash root@alpine:~# mtd_debug read /dev/mtd22 0 65536 spi_read Copied 65536 bytes from address 0x00000000 in flash to spi_read=09 root@alpine:~# sha256sum spi* b16b45f0cb74ba65d81766e9007d8cd1fbd3ac7ca7fbbd76fa4d181c3c1d52c0 spi_read b16b45f0cb74ba65d81766e9007d8cd1fbd3ac7ca7fbbd76fa4d181c3c1d52c0 spi_test root@alpine:~# mtd_debug erase /dev/mtd22 0 65536 Erased 65536 bytes from address 0x00000000 in flash root@alpine:~# mtd_debug read /dev/mtd22 0 65536 spi_read Copied 65536 bytes from address 0x00000000 in flash to spi_read root@alpine:~# sha256sum spi* 71189f7fb6aed638640078fba3a35fda6c39c8962e74dcc75935aac948da9063 spi_read b16b45f0cb74ba65d81766e9007d8cd1fbd3ac7ca7fbbd76fa4d181c3c1d52c0 spi_test root@alpine:~# mtd_debug info /dev/mtd22 mtd.type =3D MTD_NORFLASH mtd.flags =3D MTD_CAP_NORFLASH mtd.size =3D 65536 (64K) mtd.erasesize =3D 4096 (4K) mtd.writesize =3D 1=20 mtd.oobsize =3D 0=20 regions =3D 0 drivers/mtd/spi-nor/winbond.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mtd/spi-nor/winbond.c b/drivers/mtd/spi-nor/winbond.c index fb855fe44733..55f1209936d5 100644 --- a/drivers/mtd/spi-nor/winbond.c +++ b/drivers/mtd/spi-nor/winbond.c @@ -337,7 +337,7 @@ static const struct flash_info winbond_nor_parts[] =3D { .id =3D SNOR_ID(0xef, 0x80, 0x19), .name =3D "w25q256jwm", .size =3D SZ_32M, - .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, + .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB | SPI_NOR_TB_SR_BIT6 | SPI_= NOR_4BIT_BP, .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, { .id =3D SNOR_ID(0xef, 0x80, 0x20), --=20 2.47.3