u-boot-2015.10을 JZ2440 개발판에 이식(二)--norflash 지원
flash_detect_legacy()에는 다음 코드가 있습니다.
flash_read_jedec_ids(info);
debug("JEDEC PROBE: ID %x %x %x
",
info->manufacturer_id,
info->device_id,
info->device_id2);
if (jedec_flash_match(info, info->start[0]))
break;
flash_read_jedec_ids 함수는 제조업체 ID, 장치 ID 등을 읽고 debug는 출력할 수 있기 때문에 ID가 잘 읽혔는지 확인하려면 smdk2410.h에서 DEBUG 매크로를 인쇄하도록 정의합니다.
컴파일 및 쓰기를 변경한 결과 읽은 공급업체 ID 및 장치 ID가 정확합니다.그래서 다시 제덱flash_match 함수, 읽은 ID 및 jedec테이블을 비교해 보면 이 항목이 존재하는지 확인합니다. 표에 우리의norflash 형식이 없습니다. 그래서 우리는 다른 항목을 본떠서 다음과 같이 추가합니다.
{
.mfr_id = (u16)MX_MANUFACT,
.dev_id = 0x2249,
.name = "MX29LV160D",
.uaddr = {
[1] = MTD_UADDR_0x0555_0x02AA /* x16 */
},
.DevSize = SIZE_2MiB,
.CmdSet = CFI_CMDSET_AMD_LEGACY,
.NumEraseRegions= 4,
.regions = {
ERASEINFO(0x10000, 31),
ERASEINFO(0x08000, 1),
ERASEINFO(0x02000, 2),
ERASEINFO(0x04000, 1),
}
},
컴파일 및 쓰기 오류too many flash sectors, 코드에서 검색, CONFIG 발견SYS_MAX_FLASH_SECT 이 매크로는 19로 정의되었고, 우리의norflash 섹터 수는 35로 19보다 많습니다. 그래서 이 매크로를 64로 바꾸고, 다시 컴파일하여 2M으로 정확하게 식별했습니다.우리는norflash가 정확하게 읽기와 쓰기를 할 수 있는지,cp.b 0 30000000 80;cmp.b 0 30000000 80, 위의 두 명령으로 norflash를 읽는 데 문제가 없음을 발견.다음 몇 가지 명령으로norflash:mw를 테스트합니다.b 30000000 12 3; protect off all; erase 0 ffff; cp.b 30000000 0 3; md.b 0 3;발견도 121212;따라서 norflash를 성공적으로 썼습니다. u-boot에서는 norflash를 지원합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.