struct nand_chip이요....
커널 2.6.11에서의 struct nand_chip구조체와
커널 2.6.18에서의 struct nand_chip구조체가
다르네요......
struct nand_chip {
void __iomem *IO_ADDR_R;
void __iomem *IO_ADDR_W;
uint8_t (*read_byte)(struct mtd_info *mtd);
u16 (*read_word)(struct mtd_info *mtd);
void (*write_buf)(struct mtd_info *mtd, const uint8_t *buf, int len);
void (*read_buf)(struct mtd_info *mtd, uint8_t *buf, int len);
int (*verify_buf)(struct mtd_info *mtd, const uint8_t *buf, int len);
void (*select_chip)(struct mtd_info *mtd, int chip);
int (*block_bad)(struct mtd_info *mtd, loff_t ofs, int getchip);
int (*block_markbad)(struct mtd_info *mtd, loff_t ofs);
void (*cmd_ctrl)(struct mtd_info *mtd, int dat,
unsigned int ctrl);
int (*dev_ready)(struct mtd_info *mtd);
void (*cmdfunc)(struct mtd_info *mtd, unsigned command, int column, int page_addr);
int (*waitfunc)(struct mtd_info *mtd, struct nand_chip *this);
void (*erase_cmd)(struct mtd_info *mtd, int page);
int (*scan_bbt)(struct mtd_info *mtd);
int (*errstat)(struct mtd_info *mtd, struct nand_chip *this, int state, int status, int page);
int chip_delay;
unsigned int options;
int page_shift;
int phys_erase_shift;
int bbt_erase_shift;
int chip_shift;
int numchips;
unsigned long chipsize;
int pagemask;
int pagebuf;
int badblockpos;
nand_state_t state;
uint8_t *oob_poi;
struct nand_hw_control *controller;
struct nand_ecclayout *ecclayout;
struct nand_ecc_ctrl ecc;
struct nand_buffers buffers;
struct nand_hw_control hwcontrol;
struct mtd_oob_ops ops;
uint8_t *bbt;
struct nand_bbt_descr *bbt_td;
struct nand_bbt_descr *bbt_md;
struct nand_bbt_descr *badblock_pattern;
void *priv;
};
2.6.11은
struct nand_chip {
void __iomem *IO_ADDR_R;
void __iomem *IO_ADDR_W;
u_char (*read_byte)(struct mtd_info *mtd);
void (*write_byte)(struct mtd_info *mtd, u_char byte);
u16 (*read_word)(struct mtd_info *mtd);
void (*write_word)(struct mtd_info *mtd, u16 word);
void (*write_buf)(struct mtd_info *mtd, const u_char *buf, int len);
void (*read_buf)(struct mtd_info *mtd, u_char *buf, int len);
int (*verify_buf)(struct mtd_info *mtd, const u_char *buf, int len);
void (*select_chip)(struct mtd_info *mtd, int chip);
int (*block_bad)(struct mtd_info *mtd, loff_t ofs, int getchip);
int (*block_markbad)(struct mtd_info *mtd, loff_t ofs);
void (*hwcontrol)(struct mtd_info *mtd, int cmd);
int (*dev_ready)(struct mtd_info *mtd);
void (*cmdfunc)(struct mtd_info *mtd, unsigned command, int column, int page_addr);
int (*waitfunc)(struct mtd_info *mtd, struct nand_chip *this, int state);
int (*calculate_ecc)(struct mtd_info *mtd, const u_char *dat, u_char *ecc_code);
int (*correct_data)(struct mtd_info *mtd, u_char *dat, u_char *read_ecc, u_char *calc_ecc);
void (*enable_hwecc)(struct mtd_info *mtd, int mode);
void (*erase_cmd)(struct mtd_info *mtd, int page);
int (*scan_bbt)(struct mtd_info *mtd);
int eccmode;
int eccsize;
int eccbytes;
int eccsteps;
int chip_delay;
spinlock_t chip_lock;
wait_queue_head_t wq;
nand_state_t state;
int page_shift;
int phys_erase_shift;
int bbt_erase_shift;
............................................대충이런대요...
int eccmode, int eccsize, int eccbyte등등 이러한 변수들이 2.6.18에는 없네요..
void (*hwcontrol)(struct mtd_info *mtd, int cmd);는 다른 구조체에 선언되있구요...
nand_chip 이라는 구조체가 무슨 기능을 하는지 아니면.....mtd나 nand에 대해알고싶은데.
관련자료라도 알려주시면 고맙겠습니다.
파일시스템등등이
파일시스템등등이 NAND flash 혹은 controller 의 OOB 구조를 몰라도 되도록 변경됐습니다.
문서는 딱히 없습니다.
정 찾고 싶으면 linux-mtd 메일링 리스트에서 linux-2.6.17 ~ linux-2.6.19 사이의 메시지들을 훑어보시거나,
mtd-2.6.git 에서 log 를 찾아보실 수 있습니다.
(제 기억엔... 2.6.17 부터 변경이 시작되어서 2.6.19 에서 완전히 정착됐던 걸로 기억합니다)
nand_chip 자체에 대한 설명은 nand_chip 구조체가 정의된 헤더파일의 코멘트를 보시고,
예제야 수두룩하니...
OTL
답변감사합니다~~
2.6.17 부터 바뀐거군요....
흠...영어에 매우약한데....
일단 사전켜놓구...함봐봐야겠네요.....
이사이트를 말씀하시는거죠??http://lists.infradead.org/pipermail/linux-mtd/2006-May/subject.html
일단 한번 봐야겠네요....
답변 감사드립니다^^
그리고...외람된 질문이오나..ㅎ
파이어폭스에 관한 질문인데요...예를 들어서...어떤홈페이지에 들어갔습니다. 여러가지 메뉴(네비게이터??라고하나...ㅡㅡ;)
선택이있고 그메뉴를 클릭하면 해당페이지로 이동하잖아요..예를들어..
---------
|Q&A|
---------
위와같은 저버튼에 마우스포인터를 올려놓으면....익스플로러에서는 두갈래로
----------
|Q&A|
----------
------------- -----------
|winCE|__|Linux| <----------하위 메뉴(네비게이터??)
------------- -----------
이런식으로 하위 선택버튼 두개가나오는데....파이어폭스에서는
하위선택버튼이 나타나질않는데요 .....그래서
디폴트로정해진 메뉴밖에는 볼수없습니다. 그러니까 디폴트가 winCE버튼으로 되어있다면 Q&A를 클릭할경우
winCE로 이동합니다. linux 페이지를 볼수 없는 거죠ㅡㅡ;
이건 플러그인설치 문제인가요???
해당 페이지가
해당 페이지가 IE전용페이지로 만들어졌을 가능성이 높습니다. 만약 그렇다면 사용자측에서 할수 있는건 홈페이지관리자에게 크로스브라우징이 가능하도록 요청하는 수외에는 없습니다.
그런가요;;
달리 방법이 없는거군요...ㅜㅜ
답변감사합니다~~
댓글 달기