중복 U-Boot 이미지

중복 U-Boot 이미지

저는 현재 NAND 플래시 메모리를 기본 스토리지로 사용하는 임베디드 시스템을 개발 중입니다. Bootloader + Kernel + rootfs가 여기에 작성되며 우리는 NAND와 관련된 많은 문제에 대해 시스템을 더욱 강력하게 만드는 방법을 찾고 있습니다.

현재 JFFS2 위에 커널과 rootfs 파티션이 있고, 부트로더 파티션을 보호할 수 있는 방법을 찾으려고 노력하고 있습니다(우리는 SPL과 U-Boot를 사용하고 있습니다).

우리 프로세서는 플래시 메모리의 처음 4개 블록을 자동으로 확인하여 손상되지 않은 SPL 이미지를 얻을 수 있으며 U-Boot에도 비슷한 기능이 있었으면 좋겠습니다. 그러나 U-Boot 코드를 확인했지만 그러한 기능을 활성화할 방법을 찾지 못했습니다.

U-Boot가 지원하나요? 이를 위해 내 코드를 해킹하려고 시도했지만 지금까지 성공하지 못했습니다.

너무 길어요.:NAND에 손상된 U-Boot 이미지가 있는지 감지하고, 그렇다면 손상되지 않은 다른 파티션에서 부팅할 수 있기를 원합니다.

답변1

일반적으로 U-Boot SPL은 ECC를 수행하지만 NAND를 업데이트하지는 않습니다. 하지만 이는 여러분이 이미 알고 계시리라 확신합니다.
좋은 방법은 U-Boot를 NOR에 저장하고 커널, FS 및 중복 U-Boot 환경 변수를 NAND에 저장하는 것입니다.
이제 커널에 대해 말씀드리겠습니다. 이전 Linux 커널 이미지(uImage)는 CRC32 체크섬이 더 약합니다. 저는 서명이 가능하고 구성 가능한 체크섬 알고리즘과 기타 유용한 기능이 포함된 fitImage를 선택하겠습니다.

답변2

그래서 간단한 검사를 구현하고 중복 이미지에서 부팅할 수 있었습니다. 당신이 해야 할 일은 호출의 반환 코드를 캡처하여 ecc.correct()함수에서 처리하는 것뿐입니다 spl_nand_load_image(). 패치를 발표했어요여기.

관련 정보