aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/cfi
Commit message (Collapse)AuthorAgeFilesLines
* Follow up to r225617. In order to maximize the re-usability of kernel codeDavide Italiano2014-10-161-1/+1
| | | | | | | | | | | in userland rename in-kernel getenv()/setenv() to kern_setenv()/kern_getenv(). This fixes a namespace collision with libc symbols. Submitted by: kmacy Tested by: make universe Notes: svn path=/head/; revision=273174
* Follow r261352 by updating all drivers which are children of simplebusIan Lepore2014-02-021-0/+3
| | | | | | | | | | | | | | | | to check the status property in their probe routines. Simplebus used to only instantiate its children whose status="okay" but that was improper behavior, fixed in r261352. Now that it doesn't check anymore and probes all its children; the children all have to do the check because really only the children know how to properly interpret their status property strings. Right now all existing drivers only understand "okay" versus something- that's-not-okay, so they all use the new ofw_bus_status_okay() helper. Notes: svn path=/head/; revision=261410
* Set BUS_PROBE_NOWILDCARD on this attachment as a stopgap. UnconditionallyNathan Whitehorn2013-10-221-2/+13
| | | | | | | | poking at registers in unknown devices is not the best probe mechanism. This should be reverted and a better solution found later. Notes: svn path=/head/; revision=256900
* MFP4: 1136252Brooks Davis2013-10-181-0/+4
| | | | | | | | | | | Add an option ATSE_CFI_HACK to allow memory mapped CFI devices to have their address range allocated sharable so that atse(4) can find it's Ethernet address in the expected location. We intend to remove this hack once the BERI platform has a loader. Notes: svn path=/head/; revision=256753
* MFP4 217312, 222008, 222052, 222053, 222673, 231484, 231491, 231565, 570643Brooks Davis2013-09-046-47/+340
| | | | | | | | | | | | | | | | | | | | | | | | | | | Rework the timeout code to use actual time rather than a DELAY() loop and to use both typical and maximum to allow logging of timeout failures. Also correct the erase timeout, it is specified in milliseconds not microseconds like the other timeouts. Do not invoke DELAY() between status queries as this adds significant latency which in turn reduced write performance substantially. Sanity check timeout values from the hardware. Implement support for buffered writes (only enabled on Intel/Sharp parts for now). This yields an order of magnitude speedup on the 64MB Intel StrataFlash parts we use. When making a copy of the block to modify, also keep a clean copy around until we are ready to commit the block and use it to avoid unnecessary erases. In the non-buffer write case, also use it to avoid unnecessary writes when the block has not been erased. This yields a significant speedup when doing things like zeroing a block. Sponsored by: DARPA, AFRL Reviewed by: imp (previous version) Notes: svn path=/head/; revision=255207
* Use direct custom implementations instead of g_handleattr() for CFI and NANDAlexander Motin2013-06-121-8/+7
| | | | | | | | | d_getattr(). Since these drivers use disk(9) KPI and not directly GEOM, use of that function means KPI layering violation, causing extra g_io_deliver() call for the request. Notes: svn path=/head/; revision=251651
* MFP4 @217311Brooks Davis2013-05-302-0/+23
| | | | | | | | | Intel and Sharp flash power on with their blocks in a "locked" state. Unlocked them before attempting to perform an erase or write action and relock when the action is complete. Notes: svn path=/head/; revision=251118
* MFP4 @222836Brooks Davis2013-05-301-0/+28
| | | | | | | | | Add support for partitioning CFI disks from FDT using geom_flashmap. Sponsored by: DARPA, AFRL Notes: svn path=/head/; revision=251117
* MFP4 change 222060:Brooks Davis2013-04-301-0/+19
| | | | | | | | | | On Intel devices, put the Factory PPR in kenv. On some FPGA boards it may be the only software accessable unique ID. Sponsored by: DARPA, AFRL Notes: svn path=/head/; revision=250115
* MFP4 changes 222065 and 222068:Brooks Davis2013-04-301-0/+1
| | | | | | | | | | Add a simplebus attachment for cfi(4)'s FDT support and move cfi_bus_fdt.c to sys/conf/files so non-ppc architectures are supported. Sponsored by: DARPA, AFRL Notes: svn path=/head/; revision=250114
* MFP4 change 217313 and part of 222068:Brooks Davis2013-04-031-0/+66
| | | | | | | Add a simple nexus attachment for cfi(4). Notes: svn path=/head/; revision=249072
* Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on ↵Sofian Brabez2013-01-302-2/+2
| | | | | | | | | | device_method_t arrays Reviewed by: cognet Approved by: cognet Notes: svn path=/head/; revision=246128
* CFI fixes for big endian archs.Jayachandran C.2012-03-274-8/+36
| | | | | | | | | | | | | The flash commands and responses are little-endian and have to be byte swapped on big-endian systems. However the raw read of data need not be swapped. Make the cfi_read and cfi_write do the swapping, and provide a cfi_read_raw which does not byte swap for reading data from flash. Notes: svn path=/head/; revision=233553
* Merge r221614,221696,221737,221840 from largeSMP project branch:Attilio Rao2011-05-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | Rewrite atomic operations for powerpc in order to achieve the following: - Produce a type-clean implementation (in terms of functions arguments and returned values) for the primitives. - Fix errors with _long() atomics where they ended up with the wrong arguments to be accepted. - Follow the sys/type.h specifics that define the numbered types starting from standard C types. - Let _ptr() version to not auto-magically cast arguments, but leave the burden on callers, as _ptr() atomic is intended to be used relatively rarely. Fix cfi in order to support the latest point. In collabouration with: bde Tested by: andreast, nwhitehorn, jceel MFC after: 2 weeks Notes: svn path=/head/; revision=222198
* Convert Freescale PowerPC platforms to FDT convention.Rafal Jaworowski2010-07-111-21/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The following systems are affected: - MPC8555CDS - MPC8572DS This overhaul covers the following major changes: - All integrated peripherals drivers for Freescale MPC85XX SoC, which are currently in the FreeBSD source tree are reworked and adjusted so they derive config data out of the device tree blob (instead of hard coded / tabelarized values). - This includes: LBC, PCI / PCI-Express, I2C, DS1553, OpenPIC, TSEC, SEC, QUICC, UART, CFI. - Thanks to the common FDT infrastrucutre (fdtbus, simplebus) we retire ocpbus(4) driver, which was based on hard-coded config data. Note that world for these platforms has to be built WITH_FDT. Reviewed by: imp Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=209908
* Move from using devclass_find_free_unit(cfi_diskclass, 0) to -1, sinceWarner Losh2009-06-101-2/+1
| | | | | | | they have the same basic behavior. Notes: svn path=/head/; revision=193936
* choose the size of the last region for d_stripsize instead of the first;Sam Leffler2009-03-101-3/+10
| | | | | | | | | this fixes geom_redboot on boards that have multiple parts/regions as it uses the value to locate the FIS directory which is in the last erase region of flash Notes: svn path=/head/; revision=189654
* Add cfid, a disk interface to CFI flash devices; this enables constructionSam Leffler2009-03-094-2/+329
| | | | | | | | | of flash-based filesystems. Note this is not interlocked against the raw CFI device. Notes: svn path=/head/; revision=189606
* fix whitespaceSam Leffler2009-02-171-1/+1
| | | | Notes: svn path=/head/; revision=188741
* fix typoSam Leffler2009-02-081-1/+1
| | | | | | | Submitted by: Christoph Mallon <christoph.mallon@gmx.de> Notes: svn path=/head/; revision=188332
* fix building w/o CFI_ARMEDANDDANGEROUSSam Leffler2009-02-071-4/+5
| | | | Notes: svn path=/head/; revision=188268
* expand CFI_ARMEDANDDANGEROUS to include writing the user segmentSam Leffler2009-02-071-3/+12
| | | | | | | | of the PR; this register is actually write-once so deserves the safety-belt as much as the PLR Notes: svn path=/head/; revision=188267
* Add support for frobbing Intel StrataFlash Protection Registers:Sam Leffler2009-02-054-15/+211
| | | | | | | | | | | | | | | | | o add CFI_SUPPORT_STRATAFLASH compile option to enable support o add new ioctls to get/set the factory and user/oem segments of the PR and to get/set Protection Lock Register that fuses the user segment o add #defines for bits in the status register o update cfi_wait_ready to take an offset so it can be used to wait for PR write completion and replace constants w/ symbolic names Note: writing the user segment isn't correct; committing now to get review. Sponsored by: Carlson Wireless Reviewed by: imp, Chris Anderson Notes: svn path=/head/; revision=188156
* add Roel's copyright as he did the initial versionSam Leffler2009-02-031-0/+1
| | | | Notes: svn path=/head/; revision=188089
* honor any interface width (e.g. setup by the bus shim) and don't probe;Sam Leffler2009-02-032-5/+89
| | | | | | | this is needed for the moment to workaround bus shim issues Notes: svn path=/head/; revision=188087
* reorg ioctl code to simplify adding new requestsSam Leffler2009-02-031-16/+21
| | | | Notes: svn path=/head/; revision=188086
* Add a driver for flash memory that implements to the Common FlashMarcel Moolenaar2008-10-255-0/+973
Memory Interface (CFI). The flash memory can be read and written to through /dev/cfi# and an ioctl() exists so processes can read the query information. The driver supports the AMD and Intel command set, though only the AMD command has been tested. Obtained from: Juniper Networks, Inc. Notes: svn path=/head/; revision=184251