반응형
rebis 보드에서 커널로딩, 동작메모리 수정한내역정리
이전 2.6 커널기준 이며, 최신커널에서는 해당내용들에 해당하지 않습니다.
메모리 구역수정을 위한 커널수정 (rebis 보드 기준)
include/asm-arm/arch-s3c2410/map.h
에서 s3c2410_cs6 를 수정한다.- 부팅시 boot_param 으로 사용하게 된다.
- ram영역은 메모리 뱅크 6번에 링크되어있음.
include/asm-arm/arch-s3c2410/memory.h
의 PHY_OFFSET 를 수정한다. - 커널단에서 여러가지로 쓰는 매크로 (특히 메모리 주소결정시 많이쓰이더군요?)arch/arm/mach-s3c2410/Makefile.boot
수정- 요기에있는 주소들을 모두 수정해줍니다.
- zImage가 풀릴위치? 같은걸 정해주는것 같습니다.
- 좀더 자세히 살펴보면
arch/arm/boot/compress/head.S
소스를 보다보면.. LC0 라는 라벨에.. 각 커널의 풀릴위치 / zImage 시작주소 등등.. 여러가지 부팅에 필요한 요소가 들어가게 되는데요.. arch/arm/mach-s3c2410/vmlinux.lds.S
에 LC0 에 들어갈 데이터를 정의하고있는듯.. 링커에 의해 그위치에 데이터가 들어가는 모양입니다.
위의 세군데를 수정한후 돌리면 원하는 메모리 주소에서 리눅스가 동작하게 됩니다.
반응형