u-boot 에서 커널로 점프할 때는 부팅 파라메터등을 넘긴다.
go 명령어는 걍 PC 점프이고,
bootm은 부팅 파라메터와 머신 ID를 넘긴다.
머신 ID가 맞지 않으면 부팅에 실패하도록 되어 있는데 참으로 쓸데 없는 기능이다.
커스텀 펌웨어의 부팅을 막기 위한 일종의 보안 기능이라고 할 수는 있지만..
에휴 됐고,
arch/arm/kernel/head.S 에서 79라인 쯤 보면 머신 ID를 가져온다.
u-boot 에서 r1 을 통해 넘기므로 r1에 걍 상수값을 때려 박으면 머신 ID를 바로 넣을 수가 있다.
ldr r1, =0x1770 // 상수로 때려박은 머신아이디 이런 16비트 상수는 mov 로 넘기면 에러나니까 주의.
bl __lookup_machine_type @ r5=machinfo */
movs r8, r5 @ invalid machine (r5=0)?
beq __error_a @ yes, error 'a'
bl __vet_atags