Symbol: cfi
sys/arch/mips/ralink/ralink_cfi.c
100
cfi.cfi_bst = ma->ma_memt;
sys/arch/mips/ralink/ralink_cfi.c
101
int error = bus_space_map(cfi.cfi_bst, addr, tmpsize, 0, &cfi.cfi_bsh);
sys/arch/mips/ralink/ralink_cfi.c
108
if (! cfi_probe(&cfi)) {
sys/arch/mips/ralink/ralink_cfi.c
116
bus_space_unmap(cfi.cfi_bst, cfi.cfi_bsh, tmpsize);
sys/arch/mips/ralink/ralink_cfi.c
63
struct cfi sc_cfi;
sys/arch/mips/ralink/ralink_cfi.c
87
struct cfi cfi;
sys/arch/powerpc/booke/dev/pq3cfi.c
102
bus_space_unmap(cfi.cfi_bst, cfi.cfi_bsh, tmpsize);
sys/arch/powerpc/booke/dev/pq3cfi.c
61
struct cfi sc_cfi;
sys/arch/powerpc/booke/dev/pq3cfi.c
76
struct cfi cfi;
sys/arch/powerpc/booke/dev/pq3cfi.c
87
cfi.cfi_bst = ga->ga_bst;
sys/arch/powerpc/booke/dev/pq3cfi.c
88
int error = bus_space_map(cfi.cfi_bst, addr, tmpsize, 0, &cfi.cfi_bsh);
sys/arch/powerpc/booke/dev/pq3cfi.c
94
if (! cfi_probe(&cfi)) {
sys/arch/sandpoint/sandpoint/flash_cfi.c
53
struct cfi sc_cfi;
sys/arch/sandpoint/sandpoint/flash_cfi.c
67
struct cfi cfi;
sys/arch/sandpoint/sandpoint/flash_cfi.c
75
cfi.cfi_bst = ma->ma_bst;
sys/arch/sandpoint/sandpoint/flash_cfi.c
78
error = bus_space_map(cfi.cfi_bst, 0xffe00000, qrysize, 0,
sys/arch/sandpoint/sandpoint/flash_cfi.c
79
&cfi.cfi_bsh);
sys/arch/sandpoint/sandpoint/flash_cfi.c
87
if (!cfi_probe(&cfi)) {
sys/arch/sandpoint/sandpoint/flash_cfi.c
94
bus_space_unmap(cfi.cfi_bst, cfi.cfi_bsh, qrysize);
sys/dev/ic/ndisreg.h
381
#define NDIS_VLAN_INFO_MAKE(id, pri, cfi) \
sys/dev/ic/ndisreg.h
383
(((cfi) & 0x1) << 3) | (((id) & 0xfff) << 4))
sys/dev/nor/cfi.c
252
#define CFI_QRY_UNPACK_COMMON(cfi, data, type) \
sys/dev/nor/cfi.c
254
struct cfi_query_data * const qryp = &cfi->cfi_qry_data; \
sys/dev/nor/cfi.c
293
cfi_chip_query_1(struct cfi * const cfi)
sys/dev/nor/cfi.c
297
bus_space_read_region_1(cfi->cfi_bst, cfi->cfi_bsh, 0, data,
sys/dev/nor/cfi.c
300
CFI_QRY_UNPACK_COMMON(cfi, data, uint8_t);
sys/dev/nor/cfi.c
304
cfi_chip_query_2(struct cfi * const cfi)
sys/dev/nor/cfi.c
308
bus_space_read_region_2(cfi->cfi_bst, cfi->cfi_bsh, 0, data,
sys/dev/nor/cfi.c
311
CFI_QRY_UNPACK_COMMON(cfi, data, uint16_t);
sys/dev/nor/cfi.c
315
cfi_chip_query_4(struct cfi * const cfi)
sys/dev/nor/cfi.c
319
bus_space_read_region_4(cfi->cfi_bst, cfi->cfi_bsh, 0, data,
sys/dev/nor/cfi.c
322
CFI_QRY_UNPACK_COMMON(cfi, data, uint32_t);
sys/dev/nor/cfi.c
326
cfi_chip_query_8(struct cfi * const cfi)
sys/dev/nor/cfi.c
331
bus_space_read_region_8(cfi->cfi_bst, cfi->cfi_bsh, 0, data,
sys/dev/nor/cfi.c
334
CFI_QRY_UNPACK_COMMON(cfi, data, uint64_t);
sys/dev/nor/cfi.c
344
cfi_chip_query(struct cfi * const cfi)
sys/dev/nor/cfi.c
351
KASSERT(cfi != NULL);
sys/dev/nor/cfi.c
352
KASSERT(cfi->cfi_bst != NULL);
sys/dev/nor/cfi.c
356
cfi_reset_default(cfi);
sys/dev/nor/cfi.c
357
cfi_cmd(cfi, cfi_query_offset[j], CFI_QUERY_DATA);
sys/dev/nor/cfi.c
359
if (cfi_read_qry(cfi, 0x10) == 'Q' &&
sys/dev/nor/cfi.c
360
cfi_read_qry(cfi, 0x11) == 'R' &&
sys/dev/nor/cfi.c
361
cfi_read_qry(cfi, 0x12) == 'Y') {
sys/dev/nor/cfi.c
362
switch(cfi->cfi_portwidth) {
sys/dev/nor/cfi.c
364
cfi_chip_query_1(cfi);
sys/dev/nor/cfi.c
367
cfi_chip_query_2(cfi);
sys/dev/nor/cfi.c
370
cfi_chip_query_4(cfi);
sys/dev/nor/cfi.c
373
cfi_chip_query_8(cfi);
sys/dev/nor/cfi.c
377
__func__, cfi->cfi_portwidth);
sys/dev/nor/cfi.c
380
switch (cfi->cfi_qry_data.id_pri) {
sys/dev/nor/cfi.c
382
cfi->cfi_unlock_addr1 = CFI_AMD_UNLOCK_ADDR1;
sys/dev/nor/cfi.c
383
cfi->cfi_unlock_addr2 = CFI_AMD_UNLOCK_ADDR2;
sys/dev/nor/cfi.c
387
__func__, cfi->cfi_qry_data.id_pri));
sys/dev/nor/cfi.c
391
cfi->cfi_emulated = false;
sys/dev/nor/cfi.c
411
cfi_probe(struct cfi * const cfi)
sys/dev/nor/cfi.c
415
KASSERT(cfi != NULL);
sys/dev/nor/cfi.c
418
cfi->cfi_unlock_addr1 = CFI_AMD_UNLOCK_ADDR1;
sys/dev/nor/cfi.c
419
cfi->cfi_unlock_addr2 = CFI_AMD_UNLOCK_ADDR2;
sys/dev/nor/cfi.c
423
cfi->cfi_portwidth = pw;
sys/dev/nor/cfi.c
424
cfi->cfi_chipwidth = cw;
sys/dev/nor/cfi.c
425
found = cfi_chip_query(cfi);
sys/dev/nor/cfi.c
426
cfi_jedec_id(cfi);
sys/dev/nor/cfi.c
428
found = cfi_emulate(cfi);
sys/dev/nor/cfi.c
435
cfi_reset_default(cfi); /* exit QRY mode */
sys/dev/nor/cfi.c
440
cfi_identify(struct cfi * const cfi)
sys/dev/nor/cfi.c
442
const bus_space_tag_t bst = cfi->cfi_bst;
sys/dev/nor/cfi.c
443
const bus_space_handle_t bsh = cfi->cfi_bsh;
sys/dev/nor/cfi.c
445
KASSERT(cfi != NULL);
sys/dev/nor/cfi.c
448
memset(cfi, 0, sizeof(struct cfi)); /* XXX clean slate */
sys/dev/nor/cfi.c
449
cfi->cfi_bst = bst; /* restore bus space */
sys/dev/nor/cfi.c
450
cfi->cfi_bsh = bsh; /* " " " */
sys/dev/nor/cfi.c
452
return cfi_probe(cfi);
sys/dev/nor/cfi.c
461
struct cfi * const cfi = (struct cfi * const)sc->sc_nor_if->private;
sys/dev/nor/cfi.c
462
KASSERT(cfi != NULL);
sys/dev/nor/cfi.c
464
sc->sc_nor_if->access_width = cfi->cfi_portwidth;
sys/dev/nor/cfi.c
466
chip->nc_manf_id = cfi->cfi_id_data.id_mid;
sys/dev/nor/cfi.c
467
chip->nc_dev_id = cfi->cfi_id_data.id_did[0]; /* XXX 3 words */
sys/dev/nor/cfi.c
468
chip->nc_size = 1 << cfi->cfi_qry_data.device_size;
sys/dev/nor/cfi.c
471
chip->nc_line_size = 1 << cfi->cfi_qry_data.pri.cmd_0002.page_size;
sys/dev/nor/cfi.c
478
chip->nc_lun_blocks = cfi->cfi_qry_data.erase_blk_info[0].y + 1;
sys/dev/nor/cfi.c
479
chip->nc_block_size = cfi->cfi_qry_data.erase_blk_info[0].z ?
sys/dev/nor/cfi.c
480
cfi->cfi_qry_data.erase_blk_info[0].z * 256 : 128;
sys/dev/nor/cfi.c
482
switch (cfi->cfi_qry_data.id_pri) {
sys/dev/nor/cfi.c
484
cfi_0002_init(sc, cfi, chip);
sys/dev/nor/cfi.c
575
cfi_cmd(struct cfi * const cfi, bus_size_t off, uint32_t val)
sys/dev/nor/cfi.c
577
const bus_space_tag_t bst = cfi->cfi_bst;
sys/dev/nor/cfi.c
578
bus_space_handle_t bsh = cfi->cfi_bsh;
sys/dev/nor/cfi.c
582
off >>= 3 - cfi->cfi_portwidth;
sys/dev/nor/cfi.c
584
pw = 1 << cfi->cfi_portwidth;
sys/dev/nor/cfi.c
585
cw = 1 << cfi->cfi_chipwidth;
sys/dev/nor/cfi.c
595
switch (cfi->cfi_portwidth) {
sys/dev/nor/cfi.c
612
__func__, 1 << cfi->cfi_portwidth);
sys/dev/nor/cfi.c
617
cfi_read_qry(struct cfi * const cfi, bus_size_t off)
sys/dev/nor/cfi.c
619
const bus_space_tag_t bst = cfi->cfi_bst;
sys/dev/nor/cfi.c
620
bus_space_handle_t bsh = cfi->cfi_bsh;
sys/dev/nor/cfi.c
623
off <<= cfi->cfi_portwidth;
sys/dev/nor/cfi.c
625
switch (cfi->cfi_portwidth) {
sys/dev/nor/cfi.c
649
cfi_reset_default(struct cfi * const cfi)
sys/dev/nor/cfi.c
652
cfi_cmd(cfi, CFI_ADDR_ANY, CFI_RESET_DATA);
sys/dev/nor/cfi.c
653
cfi_cmd(cfi, CFI_ADDR_ANY, CFI_ALT_RESET_DATA);
sys/dev/nor/cfi.c
66
static uint8_t cfi_read_qry(struct cfi * const, bus_size_t);
sys/dev/nor/cfi.c
660
cfi_reset_std(struct cfi * const cfi)
sys/dev/nor/cfi.c
663
cfi_cmd(cfi, CFI_ADDR_ANY, CFI_RESET_DATA);
sys/dev/nor/cfi.c
67
static bool cfi_jedec_id(struct cfi * const);
sys/dev/nor/cfi.c
670
cfi_reset_alt(struct cfi * const cfi)
sys/dev/nor/cfi.c
673
cfi_cmd(cfi, CFI_ADDR_ANY, CFI_ALT_RESET_DATA);
sys/dev/nor/cfi.c
677
cfi_jedec_id_1(struct cfi * const cfi)
sys/dev/nor/cfi.c
679
struct cfi_jedec_id_data *idp = &cfi->cfi_id_data;
sys/dev/nor/cfi.c
68
static bool cfi_emulate(struct cfi * const);
sys/dev/nor/cfi.c
682
bus_space_read_region_1(cfi->cfi_bst, cfi->cfi_bsh, 0, data,
sys/dev/nor/cfi.c
69
static const struct cfi_jedec_tab * cfi_jedec_search(struct cfi *);
sys/dev/nor/cfi.c
70
static void cfi_jedec_fill(struct cfi * const,
sys/dev/nor/cfi.c
701
cfi_jedec_id_2(struct cfi * const cfi)
sys/dev/nor/cfi.c
703
struct cfi_jedec_id_data *idp = &cfi->cfi_id_data;
sys/dev/nor/cfi.c
706
bus_space_read_region_2(cfi->cfi_bst, cfi->cfi_bsh, 0, data,
sys/dev/nor/cfi.c
728
cfi_jedec_id_4(struct cfi * const cfi)
sys/dev/nor/cfi.c
730
struct cfi_jedec_id_data *idp = &cfi->cfi_id_data;
sys/dev/nor/cfi.c
733
bus_space_read_region_4(cfi->cfi_bst, cfi->cfi_bsh, 0, data,
sys/dev/nor/cfi.c
758
cfi_jedec_id(struct cfi * const cfi)
sys/dev/nor/cfi.c
763
cfi_reset_default(cfi);
sys/dev/nor/cfi.c
764
cfi_cmd(cfi, cfi->cfi_unlock_addr1, 0xaa);
sys/dev/nor/cfi.c
765
cfi_cmd(cfi, cfi->cfi_unlock_addr2, 0x55);
sys/dev/nor/cfi.c
766
cfi_cmd(cfi, cfi->cfi_unlock_addr1, 0x90);
sys/dev/nor/cfi.c
768
switch(cfi->cfi_portwidth) {
sys/dev/nor/cfi.c
770
cfi_jedec_id_1(cfi);
sys/dev/nor/cfi.c
773
cfi_jedec_id_2(cfi);
sys/dev/nor/cfi.c
776
cfi_jedec_id_4(cfi);
sys/dev/nor/cfi.c
780
cfi_jedec_id_8(cfi);
sys/dev/nor/cfi.c
785
__func__, 1 << cfi->cfi_portwidth);
sys/dev/nor/cfi.c
792
cfi_emulate(struct cfi * const cfi)
sys/dev/nor/cfi.c
795
const struct cfi_jedec_tab *jt = cfi_jedec_search(cfi);
sys/dev/nor/cfi.c
798
cfi->cfi_emulated = true;
sys/dev/nor/cfi.c
799
cfi_jedec_fill(cfi, jt);
sys/dev/nor/cfi.c
808
cfi_jedec_search(struct cfi *cfi)
sys/dev/nor/cfi.c
810
struct cfi_jedec_id_data *idp = &cfi->cfi_id_data;
sys/dev/nor/cfi.c
826
cfi_jedec_fill(struct cfi *cfi, const struct cfi_jedec_tab *jt)
sys/dev/nor/cfi.c
829
cfi->cfi_name = jt->jt_name;
sys/dev/nor/cfi.c
831
struct cfi_query_data *qryp = &cfi->cfi_qry_data;
sys/dev/nor/cfi.c
854
cfi_print(device_t self, struct cfi * const cfi)
sys/dev/nor/cfi.c
857
struct cfi_query_data * const qryp = &cfi->cfi_qry_data;
sys/dev/nor/cfi.c
860
if (cfi->cfi_emulated) {
sys/dev/nor/cfi.c
862
cfi->cfi_name, pbuf,
sys/dev/nor/cfi.c
870
cfi->cfi_id_data.id_mid,
sys/dev/nor/cfi.c
871
cfi->cfi_id_data.id_did[0],
sys/dev/nor/cfi.c
872
cfi->cfi_id_data.id_did[1],
sys/dev/nor/cfi.c
873
cfi->cfi_id_data.id_did[2]);
sys/dev/nor/cfi.c
875
8 << cfi->cfi_portwidth, 8 << cfi->cfi_chipwidth);
sys/dev/nor/cfi.c
877
cfi->cfi_id_data.id_swb_lo,
sys/dev/nor/cfi.c
878
cfi->cfi_id_data.id_swb_hi);
sys/dev/nor/cfi.c
892
switch (cfi->cfi_qry_data.id_pri) {
sys/dev/nor/cfi.c
894
cfi_0002_print(self, cfi);
sys/dev/nor/cfi.h
123
struct cfi; /* fwd ref */
sys/dev/nor/cfi.h
126
void (*cfi_reset)(struct cfi *);
sys/dev/nor/cfi.h
127
int (*cfi_busy)(struct cfi *, flash_off_t);
sys/dev/nor/cfi.h
128
int (*cfi_program_word)(struct cfi *, flash_off_t);
sys/dev/nor/cfi.h
129
int (*cfi_erase_sector)(struct cfi *, flash_off_t);
sys/dev/nor/cfi.h
155
extern void cfi_0002_stats_reset(struct cfi *);
sys/dev/nor/cfi.h
156
extern void cfi_0002_stats_print(struct cfi *);
sys/dev/nor/cfi.h
157
#define CFI_0002_STATS_INIT(dev, cfi) \
sys/dev/nor/cfi.h
159
aprint_normal_dev(dev, "cfi=%p\n", cfi); \
sys/dev/nor/cfi.h
160
cfi_0002_stats_reset(cfi); \
sys/dev/nor/cfi.h
162
#define CFI_0002_STATS_INC(cfi, field) (cfi)->cfi_0002_stats.field++
sys/dev/nor/cfi.h
166
#define CFI_0002_STATS_INIT(dev, cfi)
sys/dev/nor/cfi.h
167
#define CFI_0002_STATS_INC(cfi, field)
sys/dev/nor/cfi.h
237
cfi_reset(struct cfi * const cfi)
sys/dev/nor/cfi.h
239
KASSERT(cfi->cfi_ops.cfi_reset != NULL);
sys/dev/nor/cfi.h
240
cfi->cfi_ops.cfi_reset(cfi);
sys/dev/nor/cfi.h
244
cfi_erase_sector(struct cfi * const cfi, flash_off_t offset)
sys/dev/nor/cfi.h
246
KASSERT(cfi->cfi_ops.cfi_erase_sector != NULL);
sys/dev/nor/cfi.h
247
return cfi->cfi_ops.cfi_erase_sector(cfi, offset);
sys/dev/nor/cfi.h
251
cfi_program_word(struct cfi * const cfi, flash_off_t offset)
sys/dev/nor/cfi.h
253
KASSERT(cfi->cfi_ops.cfi_program_word != NULL);
sys/dev/nor/cfi.h
254
return cfi->cfi_ops.cfi_program_word(cfi, offset);
sys/dev/nor/cfi.h
259
extern bool cfi_probe(struct cfi * const);
sys/dev/nor/cfi.h
260
extern bool cfi_identify(struct cfi * const);
sys/dev/nor/cfi.h
261
extern void cfi_print(device_t, struct cfi * const);
sys/dev/nor/cfi.h
262
extern void cfi_reset_default(struct cfi * const);
sys/dev/nor/cfi.h
263
extern void cfi_reset_std(struct cfi * const);
sys/dev/nor/cfi.h
264
extern void cfi_reset_alt(struct cfi * const);
sys/dev/nor/cfi.h
265
extern void cfi_cmd(struct cfi * const, bus_size_t, uint32_t);
sys/dev/nor/cfi_0002.c
105
cfi_0002_time_write_nbyte(struct cfi *cfi)
sys/dev/nor/cfi_0002.c
107
u_int shft = cfi->cfi_qry_data.write_nbyte_time_typ;
sys/dev/nor/cfi_0002.c
108
shft += cfi->cfi_qry_data.write_nbyte_time_max;
sys/dev/nor/cfi_0002.c
117
cfi_0002_time_erase_blk(struct cfi *cfi)
sys/dev/nor/cfi_0002.c
119
u_int shft = cfi->cfi_qry_data.erase_blk_time_typ;
sys/dev/nor/cfi_0002.c
120
shft += cfi->cfi_qry_data.erase_blk_time_max;
sys/dev/nor/cfi_0002.c
129
cfi_0002_time_erase_all(struct cfi *cfi)
sys/dev/nor/cfi_0002.c
131
u_int shft = cfi->cfi_qry_data.erase_chip_time_typ;
sys/dev/nor/cfi_0002.c
132
shft += cfi->cfi_qry_data.erase_chip_time_max;
sys/dev/nor/cfi_0002.c
144
cfi_0002_time_dflt(struct cfi *cfi)
sys/dev/nor/cfi_0002.c
146
return cfi_0002_time_erase_all(cfi);
sys/dev/nor/cfi_0002.c
150
cfi_0002_init(struct nor_softc * const sc, struct cfi * const cfi,
sys/dev/nor/cfi_0002.c
153
CFI_0002_STATS_INIT(sc->sc_dev, cfi);
sys/dev/nor/cfi_0002.c
155
cfi_0002_version_init(cfi);
sys/dev/nor/cfi_0002.c
157
cfi->cfi_ops.cfi_reset = cfi_reset_std;
sys/dev/nor/cfi_0002.c
158
cfi->cfi_yield_time = 500; /* 500 usec */
sys/dev/nor/cfi_0002.c
162
1 << cfi->cfi_qry_data.write_nbyte_size_max;
sys/dev/nor/cfi_0002.c
184
cfi_0002_version_init(struct cfi * const cfi)
sys/dev/nor/cfi_0002.c
186
const uint8_t major = cfi->cfi_qry_data.pri.cmd_0002.version_maj;
sys/dev/nor/cfi_0002.c
187
const uint8_t minor = cfi->cfi_qry_data.pri.cmd_0002.version_min;
sys/dev/nor/cfi_0002.c
191
cfi->cfi_ops.cfi_busy = cfi_0002_busy_dq7;
sys/dev/nor/cfi_0002.c
193
cfi->cfi_ops.cfi_erase_sector = cfi_0002_erase_sector_q;
sys/dev/nor/cfi_0002.c
194
cfi->cfi_ops.cfi_program_word = cfi_0002_program_word_ub;
sys/dev/nor/cfi_0002.c
197
cfi->cfi_ops.cfi_busy = cfi_0002_busy_reg;
sys/dev/nor/cfi_0002.c
198
cfi->cfi_ops.cfi_erase_sector = cfi_0002_erase_sector_1;
sys/dev/nor/cfi_0002.c
199
cfi->cfi_ops.cfi_program_word = cfi_0002_program_word_no_ub;
sys/dev/nor/cfi_0002.c
210
cfi_0002_print(device_t self, struct cfi * const cfi)
sys/dev/nor/cfi_0002.c
213
struct cmdset_0002_query_data *pri = &cfi->cfi_qry_data.pri.cmd_0002;
sys/dev/nor/cfi_0002.c
238
struct cfi *cfi = (struct cfi * const)sc->sc_nor_if->private;
sys/dev/nor/cfi_0002.c
239
KASSERT(cfi != NULL);
sys/dev/nor/cfi_0002.c
245
KASSERT((chip->nc_page_size & ((1 << cfi->cfi_portwidth) - 1)) == 0);
sys/dev/nor/cfi_0002.c
247
CFI_0002_STATS_INC(cfi, read_page);
sys/dev/nor/cfi_0002.c
249
bus_size_t count = chip->nc_page_size >> cfi->cfi_portwidth;
sys/dev/nor/cfi_0002.c
252
int error = cfi_0002_busy_wait(cfi, offset, cfi_0002_time_dflt(cfi));
sys/dev/nor/cfi_0002.c
256
switch(cfi->cfi_portwidth) {
sys/dev/nor/cfi_0002.c
258
bus_space_read_region_1(cfi->cfi_bst, cfi->cfi_bsh, offset,
sys/dev/nor/cfi_0002.c
262
bus_space_read_region_2(cfi->cfi_bst, cfi->cfi_bsh, offset,
sys/dev/nor/cfi_0002.c
266
bus_space_read_region_4(cfi->cfi_bst, cfi->cfi_bsh, offset,
sys/dev/nor/cfi_0002.c
270
panic("%s: bad port width %d\n", __func__, cfi->cfi_portwidth);
sys/dev/nor/cfi_0002.c
282
struct cfi *cfi = (struct cfi * const)sc->sc_nor_if->private;
sys/dev/nor/cfi_0002.c
283
KASSERT(cfi != NULL);
sys/dev/nor/cfi_0002.c
289
KASSERT((chip->nc_page_size & ((1 << cfi->cfi_portwidth) - 1)) == 0);
sys/dev/nor/cfi_0002.c
291
CFI_0002_STATS_INC(cfi, program_page);
sys/dev/nor/cfi_0002.c
293
bus_size_t count = chip->nc_page_size >> cfi->cfi_portwidth;
sys/dev/nor/cfi_0002.c
295
bus_size_t sa = offset << (3 - cfi->cfi_portwidth);
sys/dev/nor/cfi_0002.c
299
int error = cfi_0002_busy_wait(cfi, offset, cfi_0002_time_dflt(cfi));
sys/dev/nor/cfi_0002.c
303
cfi_cmd(cfi, cfi->cfi_unlock_addr1, 0xaa);
sys/dev/nor/cfi_0002.c
304
cfi_cmd(cfi, cfi->cfi_unlock_addr2, 0x55);
sys/dev/nor/cfi_0002.c
305
cfi_cmd(cfi, sa, 0x25); /* Write To Buffer */
sys/dev/nor/cfi_0002.c
306
cfi_cmd(cfi, sa, wc);
sys/dev/nor/cfi_0002.c
308
switch(cfi->cfi_portwidth) {
sys/dev/nor/cfi_0002.c
310
bus_space_write_region_1(cfi->cfi_bst, cfi->cfi_bsh, offset,
sys/dev/nor/cfi_0002.c
314
bus_space_write_region_2(cfi->cfi_bst, cfi->cfi_bsh, offset,
sys/dev/nor/cfi_0002.c
318
bus_space_write_region_4(cfi->cfi_bst, cfi->cfi_bsh, offset,
sys/dev/nor/cfi_0002.c
322
panic("%s: bad port width %d\n", __func__, cfi->cfi_portwidth);
sys/dev/nor/cfi_0002.c
325
cfi_cmd(cfi, sa, 0x29); /* Write Buffer Program Confirm */
sys/dev/nor/cfi_0002.c
327
error = cfi_0002_busy_wait(cfi, offset, cfi_0002_time_write_nbyte(cfi));
sys/dev/nor/cfi_0002.c
338
struct cfi *cfi = (struct cfi * const)sc->sc_nor_if->private;
sys/dev/nor/cfi_0002.c
339
KASSERT(cfi != NULL);
sys/dev/nor/cfi_0002.c
341
CFI_0002_STATS_INC(cfi, erase_all);
sys/dev/nor/cfi_0002.c
343
int error = cfi_0002_busy_wait(cfi, 0, cfi_0002_time_dflt(cfi));
sys/dev/nor/cfi_0002.c
347
cfi_cmd(cfi, cfi->cfi_unlock_addr1, 0xaa);
sys/dev/nor/cfi_0002.c
348
cfi_cmd(cfi, cfi->cfi_unlock_addr2, 0x55);
sys/dev/nor/cfi_0002.c
349
cfi_cmd(cfi, cfi->cfi_unlock_addr1, 0x80); /* erase start */
sys/dev/nor/cfi_0002.c
350
cfi_cmd(cfi, cfi->cfi_unlock_addr1, 0xaa);
sys/dev/nor/cfi_0002.c
351
cfi_cmd(cfi, cfi->cfi_unlock_addr2, 0x55);
sys/dev/nor/cfi_0002.c
352
cfi_cmd(cfi, cfi->cfi_unlock_addr1, 0x10); /* erase chip */
sys/dev/nor/cfi_0002.c
354
error = cfi_0002_busy_wait(cfi, 0, cfi_0002_time_erase_all(cfi));
sys/dev/nor/cfi_0002.c
365
struct cfi *cfi = (struct cfi * const)sc->sc_nor_if->private;
sys/dev/nor/cfi_0002.c
366
KASSERT(cfi != NULL);
sys/dev/nor/cfi_0002.c
368
CFI_0002_STATS_INC(cfi, erase_block);
sys/dev/nor/cfi_0002.c
370
bus_size_t sa = offset << (3 - cfi->cfi_portwidth);
sys/dev/nor/cfi_0002.c
372
int error = cfi_0002_busy_wait(cfi, offset, cfi_0002_time_dflt(cfi));
sys/dev/nor/cfi_0002.c
376
cfi_cmd(cfi, cfi->cfi_unlock_addr1, 0xaa);
sys/dev/nor/cfi_0002.c
377
cfi_cmd(cfi, cfi->cfi_unlock_addr2, 0x55);
sys/dev/nor/cfi_0002.c
378
cfi_cmd(cfi, cfi->cfi_unlock_addr1, 0x80); /* erase start */
sys/dev/nor/cfi_0002.c
379
cfi_cmd(cfi, cfi->cfi_unlock_addr1, 0xaa);
sys/dev/nor/cfi_0002.c
380
cfi_cmd(cfi, cfi->cfi_unlock_addr2, 0x55);
sys/dev/nor/cfi_0002.c
381
cfi_cmd(cfi, sa, 0x30); /* erase sector */
sys/dev/nor/cfi_0002.c
383
error = cfi_0002_busy_wait(cfi, offset, cfi_0002_time_erase_blk(cfi));
sys/dev/nor/cfi_0002.c
397
struct cfi * const cfi = (struct cfi * const)sc->sc_nor_if->private;
sys/dev/nor/cfi_0002.c
399
CFI_0002_STATS_INC(cfi, busy);
sys/dev/nor/cfi_0002.c
401
return cfi_0002_busy_wait(cfi, offset, usec);
sys/dev/nor/cfi_0002.c
408
cfi_0002_busy_wait(struct cfi * const cfi, flash_off_t offset, u_long usec)
sys/dev/nor/cfi_0002.c
417
if (usec > cfi->cfi_0002_stats.busy_usec_max)
sys/dev/nor/cfi_0002.c
418
cfi->cfi_0002_stats.busy_usec_max = usec;
sys/dev/nor/cfi_0002.c
419
if (usec < cfi->cfi_0002_stats.busy_usec_min)
sys/dev/nor/cfi_0002.c
420
cfi->cfi_0002_stats.busy_usec_min = usec;
sys/dev/nor/cfi_0002.c
423
if (usec > cfi->cfi_yield_time) {
sys/dev/nor/cfi_0002.c
424
error = cfi_0002_busy_yield(cfi, offset, usec);
sys/dev/nor/cfi_0002.c
427
cfi->cfi_0002_stats.busy_yield++;
sys/dev/nor/cfi_0002.c
430
&cfi->cfi_0002_stats.busy_yield_tv,
sys/dev/nor/cfi_0002.c
431
&cfi->cfi_0002_stats.busy_yield_tv);
sys/dev/nor/cfi_0002.c
434
error = cfi_0002_busy_poll(cfi, offset, usec);
sys/dev/nor/cfi_0002.c
437
cfi->cfi_0002_stats.busy_poll++;
sys/dev/nor/cfi_0002.c
440
&cfi->cfi_0002_stats.busy_poll_tv,
sys/dev/nor/cfi_0002.c
441
&cfi->cfi_0002_stats.busy_poll_tv);
sys/dev/nor/cfi_0002.c
451
cfi_0002_busy_poll(struct cfi * const cfi, flash_off_t offset, u_long usec)
sys/dev/nor/cfi_0002.c
457
if (! cfi->cfi_ops.cfi_busy(cfi, offset))
sys/dev/nor/cfi_0002.c
469
cfi_0002_busy_yield(struct cfi * const cfi, flash_off_t offset, u_long usec)
sys/dev/nor/cfi_0002.c
479
if (! cfi->cfi_ops.cfi_busy(cfi, offset)) {
sys/dev/nor/cfi_0002.c
480
CFI_0002_STATS_INC(cfi, busy_yield_hit);
sys/dev/nor/cfi_0002.c
483
CFI_0002_STATS_INC(cfi, busy_yield_miss);
sys/dev/nor/cfi_0002.c
491
if (! cfi->cfi_ops.cfi_busy(cfi, offset))
sys/dev/nor/cfi_0002.c
495
CFI_0002_STATS_INC(cfi, busy_yield_timo);
sys/dev/nor/cfi_0002.c
509
cfi_0002_busy_dq7(struct cfi * const cfi, flash_off_t offset)
sys/dev/nor/cfi_0002.c
51
static void cfi_0002_version_init(struct cfi * const);
sys/dev/nor/cfi_0002.c
511
bus_space_tag_t bst = cfi->cfi_bst;
sys/dev/nor/cfi_0002.c
512
bus_space_handle_t bsh = cfi->cfi_bsh;
sys/dev/nor/cfi_0002.c
515
switch(cfi->cfi_portwidth) {
sys/dev/nor/cfi_0002.c
537
__func__, cfi->cfi_portwidth);
sys/dev/nor/cfi_0002.c
551
cfi_0002_busy_reg(struct cfi * const cfi, flash_off_t offset)
sys/dev/nor/cfi_0002.c
553
bus_space_tag_t bst = cfi->cfi_bst;
sys/dev/nor/cfi_0002.c
554
bus_space_handle_t bsh = cfi->cfi_bsh;
sys/dev/nor/cfi_0002.c
557
cfi_cmd(cfi, cfi->cfi_unlock_addr1, 0x70); /* Status Register Read */
sys/dev/nor/cfi_0002.c
559
switch(cfi->cfi_portwidth) {
sys/dev/nor/cfi_0002.c
57
static int cfi_0002_busy_wait(struct cfi * const, flash_off_t, u_long);
sys/dev/nor/cfi_0002.c
571
__func__, cfi->cfi_portwidth);
sys/dev/nor/cfi_0002.c
58
static int cfi_0002_busy_poll(struct cfi * const, flash_off_t, u_long);
sys/dev/nor/cfi_0002.c
580
cfi_0002_stats_reset(struct cfi *cfi)
sys/dev/nor/cfi_0002.c
582
memset(&cfi->cfi_0002_stats, 0, sizeof(struct cfi_0002_stats));
sys/dev/nor/cfi_0002.c
583
cfi->cfi_0002_stats.busy_usec_min = ~0;
sys/dev/nor/cfi_0002.c
587
cfi_0002_stats_print(struct cfi *cfi)
sys/dev/nor/cfi_0002.c
589
printf("read_page %lu\n", cfi->cfi_0002_stats.read_page);
sys/dev/nor/cfi_0002.c
59
static int cfi_0002_busy_yield(struct cfi * const, flash_off_t, u_long);
sys/dev/nor/cfi_0002.c
590
printf("program_page %lu\n", cfi->cfi_0002_stats.program_page);
sys/dev/nor/cfi_0002.c
591
printf("erase_all %lu\n", cfi->cfi_0002_stats.erase_all);
sys/dev/nor/cfi_0002.c
592
printf("erase_block %lu\n", cfi->cfi_0002_stats.erase_block);
sys/dev/nor/cfi_0002.c
593
printf("busy %lu\n", cfi->cfi_0002_stats.busy);
sys/dev/nor/cfi_0002.c
596
cfi->cfi_qry_data.write_nbyte_time_typ);
sys/dev/nor/cfi_0002.c
598
cfi->cfi_qry_data.write_nbyte_time_max);
sys/dev/nor/cfi_0002.c
60
static int cfi_0002_busy_dq7(struct cfi * const , flash_off_t);
sys/dev/nor/cfi_0002.c
601
cfi->cfi_qry_data.erase_blk_time_typ);
sys/dev/nor/cfi_0002.c
603
cfi->cfi_qry_data.erase_blk_time_max);
sys/dev/nor/cfi_0002.c
606
cfi->cfi_qry_data.erase_chip_time_typ);
sys/dev/nor/cfi_0002.c
608
cfi->cfi_qry_data.erase_chip_time_max);
sys/dev/nor/cfi_0002.c
610
printf("time_write_nbyte %lu\n", cfi_0002_time_write_nbyte(cfi));
sys/dev/nor/cfi_0002.c
611
printf("time_erase_blk %lu\n", cfi_0002_time_erase_blk(cfi));
sys/dev/nor/cfi_0002.c
612
printf("time_erase_all %lu\n", cfi_0002_time_erase_all(cfi));
sys/dev/nor/cfi_0002.c
614
printf("busy_usec_min %lu\n", cfi->cfi_0002_stats.busy_usec_min);
sys/dev/nor/cfi_0002.c
615
printf("busy_usec_max %lu\n", cfi->cfi_0002_stats.busy_usec_max);
sys/dev/nor/cfi_0002.c
618
cfi->cfi_0002_stats.busy_poll_tv.tv_sec,
sys/dev/nor/cfi_0002.c
619
cfi->cfi_0002_stats.busy_poll_tv.tv_usec);
sys/dev/nor/cfi_0002.c
62
static int cfi_0002_busy_reg(struct cfi * const, flash_off_t);
sys/dev/nor/cfi_0002.c
621
cfi->cfi_0002_stats.busy_yield_tv.tv_sec,
sys/dev/nor/cfi_0002.c
622
cfi->cfi_0002_stats.busy_yield_tv.tv_usec);
sys/dev/nor/cfi_0002.c
623
printf("busy_poll %lu\n", cfi->cfi_0002_stats.busy_poll);
sys/dev/nor/cfi_0002.c
624
printf("busy_yield %lu\n", cfi->cfi_0002_stats.busy_yield);
sys/dev/nor/cfi_0002.c
625
printf("busy_yield_hit %lu\n", cfi->cfi_0002_stats.busy_yield_hit);
sys/dev/nor/cfi_0002.c
626
printf("busy_yield_miss %lu\n", cfi->cfi_0002_stats.busy_yield_miss);
sys/dev/nor/cfi_0002.c
627
printf("busy_yield_timo %lu\n", cfi->cfi_0002_stats.busy_yield_timo);
sys/dev/nor/cfi_0002.h
66
struct cfi;
sys/dev/nor/cfi_0002.h
70
extern void cfi_0002_init(struct nor_softc * const, struct cfi * const,
sys/dev/nor/cfi_0002.h
72
extern void cfi_0002_print(device_t, struct cfi * const);
tests/net/can/t_canfilter.c
200
struct can_filter cfi[2];
tests/net/can/t_canfilter.c
215
cfilen = sizeof(cfi);
tests/net/can/t_canfilter.c
217
&cfi, &cfilen) < 0) {
tests/net/can/t_canfilter.c
273
struct can_filter cfi[2];
tests/net/can/t_canfilter.c
284
cfi[0].can_id = MY_ID;
tests/net/can/t_canfilter.c
285
cfi[0].can_mask = CAN_SFF_MASK | CAN_EFF_FLAG;
tests/net/can/t_canfilter.c
286
cfi[1].can_id = MY_ID + 1;
tests/net/can/t_canfilter.c
287
cfi[1].can_mask = CAN_SFF_MASK | CAN_EFF_FLAG;
tests/net/can/t_canfilter.c
289
&cfi, sizeof(cfi)) < 0) {
tests/net/can/t_canfilter.c
400
struct can_filter cfi[2];
tests/net/can/t_canfilter.c
411
cfilen = sizeof(cfi);
tests/net/can/t_canfilter.c
414
&cfi, &cfilen) < 0) {
tests/net/can/t_canfilter.c
419
ATF_CHECK_MSG(cfi[0].can_id == 0 && cfi[0].can_mask == 0,
tests/net/can/t_canfilter.c
421
cfi[0].can_id, cfi[0].can_mask);
tests/net/can/t_canfilter.c
425
cfi[0].can_id = MY_ID;
tests/net/can/t_canfilter.c
426
cfi[0].can_mask = CAN_SFF_MASK | CAN_EFF_FLAG;
tests/net/can/t_canfilter.c
427
cfi[1].can_id = MY_ID + 1;
tests/net/can/t_canfilter.c
428
cfi[1].can_mask = CAN_SFF_MASK;
tests/net/can/t_canfilter.c
430
&cfi, sizeof(cfi)) < 0) {
tests/net/can/t_canfilter.c
435
cfilen = sizeof(cfi);
tests/net/can/t_canfilter.c
436
memset(cfi, 0, cfilen);
tests/net/can/t_canfilter.c
438
&cfi, &cfilen) < 0) {
tests/net/can/t_canfilter.c
443
ATF_CHECK_MSG(cfi[0].can_id == MY_ID &&
tests/net/can/t_canfilter.c
444
cfi[0].can_mask == (CAN_SFF_MASK | CAN_EFF_FLAG),
tests/net/can/t_canfilter.c
446
cfi[0].can_id, cfi[0].can_mask);
tests/net/can/t_canfilter.c
447
ATF_CHECK_MSG(cfi[1].can_id == MY_ID + 1 &&
tests/net/can/t_canfilter.c
448
cfi[1].can_mask == CAN_SFF_MASK,
tests/net/can/t_canfilter.c
450
cfi[1].can_id, cfi[1].can_mask);
tests/net/can/t_canfilter.c
74
struct can_filter cfi;
tests/net/can/t_canfilter.c
85
cfi.can_id = MY_ID;
tests/net/can/t_canfilter.c
86
cfi.can_mask = CAN_SFF_MASK | CAN_EFF_FLAG;
tests/net/can/t_canfilter.c
88
&cfi, sizeof(cfi)) < 0) {