Module Name:    src
Committed By:   jmcneill
Date:           Mon Nov 13 17:37:02 UTC 2017

Modified Files:
        src/sys/arch/arm/sunxi: sunxi_nand.c

Log Message:
Use nand_attach_mtdparts


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/sunxi/sunxi_nand.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/sunxi/sunxi_nand.c
diff -u src/sys/arch/arm/sunxi/sunxi_nand.c:1.3 src/sys/arch/arm/sunxi/sunxi_nand.c:1.4
--- src/sys/arch/arm/sunxi/sunxi_nand.c:1.3	Mon Nov 13 14:14:25 2017
+++ src/sys/arch/arm/sunxi/sunxi_nand.c	Mon Nov 13 17:37:02 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_nand.c,v 1.3 2017/11/13 14:14:25 jmcneill Exp $ */
+/* $NetBSD: sunxi_nand.c,v 1.4 2017/11/13 17:37:02 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_nand.c,v 1.3 2017/11/13 14:14:25 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_nand.c,v 1.4 2017/11/13 17:37:02 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -40,6 +40,8 @@ __KERNEL_RCSID(0, "$NetBSD: sunxi_nand.c
 #include <dev/nand/nand.h>
 #include <dev/nand/onfi.h>
 
+#include <arm/bootconfig.h>
+
 #define	NDFC_CTL		0x00
 #define	 NDFC_CTL_CE_SEL		__BITS(27,24)
 #define	 NDFC_CTL_PAGE_SIZE		__BITS(11,8)
@@ -432,7 +434,7 @@ sunxi_nand_attach_chip(struct sunxi_nand
     struct sunxi_nand_chip *chip, int phandle)
 {
 	struct nand_interface *nand = &chip->chip_nand;
-	const char *ecc_mode;
+	const char *ecc_mode, *mtdparts;
 
 	chip->chip_sc = sc;
 	chip->chip_phandle = phandle;
@@ -514,6 +516,17 @@ sunxi_nand_attach_chip(struct sunxi_nand
 #endif
 
 	chip->chip_dev = nand_attach_mi(nand, sc->sc_dev);
+	if (chip->chip_dev == NULL)
+		return;
+
+	mtdparts = get_bootconf_string(boot_args, "mtdparts");
+	if (mtdparts != NULL) {
+		char mtd_id[strlen("sunxi-nand.X") + 1];
+		snprintf(mtd_id, sizeof(mtd_id), "sunxi-nand.%u",
+		    device_unit(sc->sc_dev));
+
+		nand_attach_mtdparts(chip->chip_dev, mtd_id, mtdparts);
+	}
 }
 
 static int

Reply via email to