Mercurial > nand-ecoscentric
changeset 3387:c1cbf062a826
io/nand: Add CYGINT_IO_NAND_TEST_PARTITION to specify which partition the tests should use.
| author | Ross Younger <wry@ecoscentric.com> |
|---|---|
| date | Sat, 27 Sep 2014 12:35:37 +1200 |
| parents | 3ec9445648cd |
| children | 77f93339ffd8 |
| files | packages/io/nand/current/ChangeLog packages/io/nand/current/cdl/nand.cdl packages/io/nand/current/src/nand.c packages/io/nand/current/tests/nand_readlimits.c packages/io/nand/current/tests/nand_readwrite.c packages/io/nand/current/tests/nand_rwbenchmark.c |
| diffstat | 6 files changed, 19 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/io/nand/current/ChangeLog +++ b/packages/io/nand/current/ChangeLog @@ -1,3 +1,9 @@ +2014-09-27 Ross Younger <wry@ecoscentric.com> + * cdl/nand.cdl src/nand.c tests/nand_readlimits.c + tests/nand_readwrite.c tests/nand_rwbenchmark.c: + Create CYGINT_IO_NAND_TEST_PARTITION to specify which partition the + tests should use. + 2014-09-26 Ross Younger <wry@ecoscentric.com> * tests/nand_rwbenchmark.c: Cope with CYGNUM_KERNEL_COUNTERS_RTC_PERIOD
--- a/packages/io/nand/current/cdl/nand.cdl +++ b/packages/io/nand/current/cdl/nand.cdl @@ -293,6 +293,15 @@ cdl_package CYGPKG_IO_NAND { library tests (and utilities, if enabled) to build." } + cdl_option CYGINT_IO_NAND_TEST_PARTITION { + display "The NAND partition to use for tests." + flavor data + default_value 0 + legal_values 0 to CYGNUM_NAND_MAX_PARTITIONS-1 + description "Some of the NAND library tests need to write to + a device. This controls which partition to use." + } + cdl_option CYGSEM_IO_NAND_ECC_SPLIT_FUNCTION { flavor bool calculated 1
--- a/packages/io/nand/current/src/nand.c +++ b/packages/io/nand/current/src/nand.c @@ -300,7 +300,7 @@ done: /* Device access */ #define DEV_INIT_CHECK(dev) do { if (!dev->is_inited) return -ENXIO; } while(0) -#define PARTITION_CHECK(p) do { if (!p->dev) return -ENXIO; } while(0) +#define PARTITION_CHECK(p) do { if (!p) return -EBADF; if (!p->dev) return -ENXIO; } while(0) // Partition-to-Device and Device-to-Partition address xlation #define BLOCK_P_TO_D(_part,_block) ((_block) + (_part)->first)
--- a/packages/io/nand/current/tests/nand_readlimits.c +++ b/packages/io/nand/current/tests/nand_readlimits.c @@ -106,7 +106,7 @@ int cyg_user_start(void) diag_printf("Using NAND device %s\n", cyg_nanddevtab->devname); CYG_TEST_CHECK(0==cyg_nand_lookup(cyg_nanddevtab->devname, &dev),"lookup failed"); - prt = cyg_nand_get_partition(dev, 0); + CYG_TEST_CHECK( NULL != (prt = cyg_nand_get_partition(dev, CYGINT_IO_NAND_TEST_PARTITION)), "partition not present" ); /* Check we can read the first page of the partition, and the page * before it (which might be off the start of the device) */
--- a/packages/io/nand/current/tests/nand_readwrite.c +++ b/packages/io/nand/current/tests/nand_readwrite.c @@ -107,7 +107,7 @@ int cyg_user_start(void) CYG_TEST_INFO(cyg_nanddevtab->devname); CYG_TEST_CHECK(0==cyg_nand_lookup(cyg_nanddevtab->devname, &dev),"lookup failed"); - prt = cyg_nand_get_partition(dev, 0); + CYG_TEST_CHECK( NULL != (prt = cyg_nand_get_partition(dev, CYGINT_IO_NAND_TEST_PARTITION)), "partition not present" ); /* Now select a usable block in the partition to base ourselves around. */ blk = 0;
--- a/packages/io/nand/current/tests/nand_rwbenchmark.c +++ b/packages/io/nand/current/tests/nand_rwbenchmark.c @@ -94,8 +94,6 @@ extern unsigned char _stext[], _etext[]; #define DEVICE "onboard" #endif -#define PARTITION 0 - #define MUST(what) do { \ if (0 != what) { \ perror(#what); \ @@ -568,7 +566,7 @@ void rwbenchmark_main(void) cyg_nand_lookup(DEVICE, &dev); if (!dev) CYG_TEST_FAIL_EXIT("can't get device "DEVICE); - part = cyg_nand_get_partition(dev, PARTITION); + part = cyg_nand_get_partition(dev, CYGINT_IO_NAND_TEST_PARTITION); if (!part) CYG_TEST_FAIL_EXIT("can't get partition");
