summaryrefslogtreecommitdiff
path: root/src/udev/mtd_probe
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2012-11-17 16:22:12 -0500
committerAnthony G. Basile <blueness@gentoo.org>2012-11-17 16:22:12 -0500
commit7730dfb5e1fc7e2f8b1df0eb9ef62c451a5f725f (patch)
tree1f96b7f42e8326d11be9a11f12c98ee4a30cfc70 /src/udev/mtd_probe
parentb0dd066bccc9bfabc3df290debc1d55dfb9596e5 (diff)
Restructure src/ as per lu_zero
Diffstat (limited to 'src/udev/mtd_probe')
-rw-r--r--src/udev/mtd_probe/Makefile.am23
-rw-r--r--src/udev/mtd_probe/mtd_probe.c54
-rw-r--r--src/udev/mtd_probe/mtd_probe.h49
-rw-r--r--src/udev/mtd_probe/probe_smartmedia.c96
4 files changed, 0 insertions, 222 deletions
diff --git a/src/udev/mtd_probe/Makefile.am b/src/udev/mtd_probe/Makefile.am
deleted file mode 100644
index 4b4db4f651..0000000000
--- a/src/udev/mtd_probe/Makefile.am
+++ /dev/null
@@ -1,23 +0,0 @@
-ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
-
-rootprefix=@rootprefix@
-udevlibexecdir=$(rootprefix)/lib/udev
-
-AM_CPPFLAGS = \
- -include $(top_builddir)/config.h \
- -DROOTPREFIX=\"$(rootprefix)\" \
- -DUDEVLIBEXECDIR=\"$(udevlibexecdir)\" \
- -I $(top_srcdir)/src/libudev \
- -I $(top_srcdir)/src/udev \
- -I $(top_srcdir)/src/include
-
-udevlibexec_PROGRAMS = \
- mtd_probe
-
-mtd_probe_SOURCES = \
- mtd_probe.c \
- mtd_probe.h \
- probe_smartmedia.c
-
-mtd_probe_CPPFLAGS = \
- $(AM_CPPFLAGS)
diff --git a/src/udev/mtd_probe/mtd_probe.c b/src/udev/mtd_probe/mtd_probe.c
deleted file mode 100644
index 70c04db40b..0000000000
--- a/src/udev/mtd_probe/mtd_probe.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2010 - Maxim Levitsky
- *
- * mtd_probe is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * mtd_probe is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with mtd_probe; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301 USA
- */
-#include "mtd_probe.h"
-#include <stdio.h>
-#include <sys/ioctl.h>
-#include <mtd/mtd-user.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdlib.h>
-
-int main(int argc, char** argv)
-{
- int mtd_fd;
- int error;
- mtd_info_t mtd_info;
-
- if (argc != 2) {
- printf("usage: mtd_probe /dev/mtd[n]\n");
- return 1;
- }
-
- mtd_fd = open(argv[1], O_RDONLY);
- if (mtd_fd == -1) {
- perror("open");
- exit(-1);
- }
-
- error = ioctl(mtd_fd, MEMGETINFO, &mtd_info);
- if (error == -1) {
- perror("ioctl");
- exit(-1);
- }
-
- probe_smart_media(mtd_fd, &mtd_info);
- return -1;
-}
diff --git a/src/udev/mtd_probe/mtd_probe.h b/src/udev/mtd_probe/mtd_probe.h
deleted file mode 100644
index 2a37ede578..0000000000
--- a/src/udev/mtd_probe/mtd_probe.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2010 - Maxim Levitsky
- *
- * mtd_probe is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * mtd_probe is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with mtd_probe; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301 USA
- */
-
-#include <mtd/mtd-user.h>
-
-/* Full oob structure as written on the flash */
-struct sm_oob {
- uint32_t reserved;
- uint8_t data_status;
- uint8_t block_status;
- uint8_t lba_copy1[2];
- uint8_t ecc2[3];
- uint8_t lba_copy2[2];
- uint8_t ecc1[3];
-} __attribute__((packed));
-
-
-/* one sector is always 512 bytes, but it can consist of two nand pages */
-#define SM_SECTOR_SIZE 512
-
-/* oob area is also 16 bytes, but might be from two pages */
-#define SM_OOB_SIZE 16
-
-/* This is maximum zone size, and all devices that have more that one zone
- have this size */
-#define SM_MAX_ZONE_SIZE 1024
-
-/* support for small page nand */
-#define SM_SMALL_PAGE 256
-#define SM_SMALL_OOB_SIZE 8
-
-
-void probe_smart_media(int mtd_fd, mtd_info_t *info);
diff --git a/src/udev/mtd_probe/probe_smartmedia.c b/src/udev/mtd_probe/probe_smartmedia.c
deleted file mode 100644
index feadb5076c..0000000000
--- a/src/udev/mtd_probe/probe_smartmedia.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2010 - Maxim Levitsky
- *
- * mtd_probe is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * mtd_probe is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with mtd_probe; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301 USA
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <mtd/mtd-user.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include "mtd_probe.h"
-
-static const uint8_t cis_signature[] = {
- 0x01, 0x03, 0xD9, 0x01, 0xFF, 0x18, 0x02, 0xDF, 0x01, 0x20
-};
-
-
-void probe_smart_media(int mtd_fd, mtd_info_t* info)
-{
- int sector_size;
- int block_size;
- int size_in_megs;
- int spare_count;
- char* cis_buffer = malloc(SM_SECTOR_SIZE);
- int offset;
- int cis_found = 0;
-
- if (!cis_buffer)
- return;
-
- if (info->type != MTD_NANDFLASH)
- goto exit;
-
- sector_size = info->writesize;
- block_size = info->erasesize;
- size_in_megs = info->size / (1024 * 1024);
-
- if (sector_size != SM_SECTOR_SIZE && sector_size != SM_SMALL_PAGE)
- goto exit;
-
- switch(size_in_megs) {
- case 1:
- case 2:
- spare_count = 6;
- break;
- case 4:
- spare_count = 12;
- break;
- default:
- spare_count = 24;
- break;
- }
-
- for (offset = 0 ; offset < block_size * spare_count ;
- offset += sector_size) {
- lseek(mtd_fd, SEEK_SET, offset);
- if (read(mtd_fd, cis_buffer, SM_SECTOR_SIZE) == SM_SECTOR_SIZE){
- cis_found = 1;
- break;
- }
- }
-
- if (!cis_found)
- goto exit;
-
- if (memcmp(cis_buffer, cis_signature, sizeof(cis_signature)) != 0 &&
- (memcmp(cis_buffer + SM_SMALL_PAGE, cis_signature,
- sizeof(cis_signature)) != 0))
- goto exit;
-
- printf("MTD_FTL=smartmedia\n");
- free(cis_buffer);
- exit(0);
-exit:
- free(cis_buffer);
- return;
-}