Flash를 연결하지 않고 U-Boot 환경 변수 저장

Flash를 연결하지 않고 U-Boot 환경 변수 저장

U-Boot bootdelay 0 환경 변수를 사용하여 U-Boot CLI에 접근하는 사람들의 여러 블로그 게시물을 보았습니다. 예는 다음과 같습니다여기. 제가 이해하는 일반적인 프로세스는 다음과 같습니다.

  1. U-Boot가 액세스할 수 없도록 납땜 제거/짧은 플래시 칩
  2. 장치 전원 켜기
  3. U-Boot가 플래시 칩을 찾을 수 없어 CLI로 이동합니다.

    eth1 up
    eth0, eth1
    Qualcomm Atheros SPI NAND Driver, Version 0.1 (c) 2014  Qualcomm Atheros Inc.
    ath_spi_nand_ecc: Couldn't enable internal ECC
    Setting 0x181162c0 to 0x3061a100
    Hit any key to stop autoboot:  0 
    ** Device 0 not available
    ath>
    
  4. bootdelay를 0이 아닌 값으로 변경합니다.

    ath> setenv bootdelay 3
    ath> saveenv
    Saving Environment to Flash...
    Protect off 9F040000 ... 9F04FFFF
    Un-Protecting sectors 4..4 in bank 1
    Un-Protected 1 sectors
    Protect off 9F050000 ... 9F05FFFF
    Un-Protecting sectors 5..5 in bank 1
    Un-Protected 1 sectors
    Erasing Flash... 9F050000 ... 9F05FFFF ...Erasing flash... 
    First 0x5 last 0x5 sector size 0x10000 5
    Erased 1 sectors
    Writing to Flash...  9F050005 ... 9F060000 ...write addr: 9f050000
    write addr: 9f040004
    done
    Protecting sectors 5..5 in bank 1
    Protected 1 sectors
    Protecting sectors 4..4 in bank 1
    Protected 1 sectors
    ath>
    
  5. 장치의 전원을 끄고 플래시 칩을 다시 연결하십시오.

내가 아는 한, U-Boot와 해당 환경 변수는 플래시에 있습니다. 플래시 칩이 CPU에서 분리된 경우 U-Boot는 어떻게 로드되며 bootdelay 변수는 어떻게 영구 저장소에 저장될 수 있습니까?

답변1

이것은 매우 구체적인 예입니다. 이 특정 예에서 진행 중인 작업은 U-Boot가 NOR 플래시(1개의 칩)에 있고 Linux 커널이 NAND 플래시(두 번째 칩)에 있다는 것입니다. 참조된 가이드에서는 부팅이 실패하도록 보드에서 NAND 칩을 제거하고 U-Boot 명령줄로 이동한 다음 U-Boot가 NOR에 환경을 저장하도록 구성되어 있으므로 부팅 지연을 변경하고 저장할 수 있습니다. 플래시도 그렇고.

관련 정보