Home | History | Annotate | Download | only in flash
History log of /src/sys/dev/flash/flash.c
RevisionDateAuthorComments
 1.19  25-Sep-2022  thorpej Remove unnecessary include of <sys/malloc.h>.
 1.18  31-Mar-2022  pgoyette For device modules that provide both auto-config and /dev/xxx
interfaces, make sure that initialization and destruction
follow the proper sequence. This is triggered by the recent
changes to the devsw stuff; per riastradh@ the required call
sequence is:

devsw_attach()
config_init_component() or config_cf*_attach()
...
config_fini_component() or config_cf*_detach()
devsw_detach()

While here, add a few missing calls to some of the detach
routines.

Testing of these changes has been limited to:
1. compile without build break
2. no related test failures from atf
3. modload/modunload work as well as
before.

No functional device testing done, since I don't have any
of these devices. Let me know of any damage I might cause
here!

XXX Some of the modules affected by this commit are already
XXX broken; see kern/56772. This commit does not break
any additional modules (as far as I know).
 1.17  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.16  24-Apr-2021  thorpej branches: 1.16.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.15  26-Dec-2019  msaitoh branches: 1.15.10;
s/lenght/length/
 1.14  13-Nov-2017  jmcneill branches: 1.14.4;
Add support for defining partitions using a Linux-style "mtdparts" string.
 1.13  28-Oct-2017  riastradh Kill some more extern struct cfdriver declarations.

Down with externs in .c!
 1.12  25-Jul-2014  dholland branches: 1.12.18;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.11  25-Jul-2014  dholland Add d_discard to all struct bdevsw instances I could find.

I've set them all to nodiscard. Some of them (wd, dk, vnd, ld,
raidframe, maybe cgd) should be implemented for real.
 1.10  13-Sep-2013  joerg branches: 1.10.2;
GC flash_get_part_offset.
 1.9  29-Jul-2011  ahoka branches: 1.9.2; 1.9.8; 1.9.14; 1.9.18;
add a function to get the size of the flash device
 1.8  15-Jul-2011  cliff branches: 1.8.2;
Add support for CFI NOR, using MPC8536DS as initial example.
Only AMD/Fujitsu command set is suported so far.
This is still work in progress, be advised.
 1.7  28-Jun-2011  ahoka Refactor flash and nand driver, so we can reuse the io thread code
in the future nor driver (and any other future driver).

Also simplify some of the code in the process, eg. saner flash attachment.
 1.6  28-Jun-2011  ahoka use nosize
 1.5  12-Jun-2011  matt Use %# instead of 0x%
 1.4  26-Apr-2011  ahoka branches: 1.4.2; 1.4.4;
remove some debug printf leftover
 1.3  04-Apr-2011  ahoka Fix badblock checking
Replace flash_addr_t with flash_off_t and use it to address flash everywhere
 1.2  30-Mar-2011  uebayasi Whitespace.
 1.1  26-Feb-2011  ahoka branches: 1.1.2; 1.1.4;
Import the Flash and NAND subsytem code contributed by the University
of Szeged, Hungary.

The commit includes:
- Flash layer, which gives a common API to access flash devices
- NAND controller subsystem for the flash layer
- An example OMAP driver which is used on BeagleBoard or alike ARM boards
 1.1.4.4  31-May-2011  rmind sync with head
 1.1.4.3  21-Apr-2011  rmind sync with head
 1.1.4.2  05-Mar-2011  rmind sync with head
 1.1.4.1  26-Feb-2011  rmind file flash.c was added on branch rmind-uvmplock on 2011-03-05 20:53:09 +0000
 1.1.2.2  05-Mar-2011  bouyer Sync with HEAD
 1.1.2.1  26-Feb-2011  bouyer file flash.c was added on branch bouyer-quota2 on 2011-03-05 15:10:18 +0000
 1.4.4.2  06-Jun-2011  jruoho Sync with HEAD.
 1.4.4.1  26-Apr-2011  jruoho file flash.c was added on branch jruoho-x86intr on 2011-06-06 09:07:48 +0000
 1.4.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.8.2.2  26-Jul-2011  matt Backport flash/nand/nor subsystem from -HEAD.
 1.8.2.1  15-Jul-2011  matt file flash.c was added on branch matt-nb5-pq3 on 2011-07-26 03:22:26 +0000
 1.9.18.1  18-May-2014  rmind sync with head
 1.9.14.2  03-Dec-2017  jdolecek update from HEAD
 1.9.14.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.8.2  27-Dec-2011  matt Merge flash/nand/nor infrastruct from matt-nb5-pq3.
 1.9.8.1  29-Jul-2011  matt file flash.c was added on branch matt-nb5-mips64 on 2011-12-27 17:35:47 +0000
 1.9.2.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.10.2.1  10-Aug-2014  tls Rebase.
 1.12.18.2  29-Apr-2017  pgoyette Revise previous. Rather than explicitly including <sys/localcount.h>
in all the places where {b,c}devsw is initialized, just include it
from <sys/conf.h>. This avoids an include-sequence dependancy.
 1.12.18.1  29-Apr-2017  pgoyette Add DEVSW_MODULE_INIT to existing device-driver modules, so that they
willl have a localcount defined and thus be permitted to load. Without
a localcount, loading the module will return EINVAL.

XXX the dtrace and drm stuff might need to be fed back upstream?
 1.14.4.1  08-Apr-2020  martin Merge changes from current as of 20200406
 1.15.10.1  02-Apr-2021  thorpej config_found_ia() -> config_found() w/ CFARG_IATTR.
 1.16.8.1  04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed