· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
SKKU2006

1. u-boot porting to PXA270

1.1. ÀÌ ¹®¼­ÀÇ ¸ñÀû

ÀÌ ¹®¼­´Â ±è±â¿À´ÔÀÇ U-boot 1.1.2 Porting Guide to PXA270À» Âü°íÇÏ¿© ½ÇÁ¦·Î pxa270 º¸µå¿¡ u-boot¸¦ Æ÷Æà ÀÛ¾÷À» ÇÏ´Â °úÁ¤À» ¸Þ¸ðÇÑ °ÍÀÔ´Ï´Ù. ÇöÀç ÁøÇàÁßÀÔ´Ï´Ù.

1.2. START

  • u-boot-1.1.4ÀÇ lubbock board¸¦ ¼öÁ¤ÇÏ¿© pxa270 ¼³Á¤ÆÄÀϵéÀ» »ý¼º.
  • boot.bin ÆÄÀÏ »ý¼º ¼º°ø
  • ±×·¯³ª lubbock´Â pxa250À» »ç¿ëÇϹǷΠ³»°¡ »ç¿ëÇÒ pxa270 SKKUº¸µå¿Í´Â Â÷ÀÌ°¡ ÀÖ´Ù.
    • ¸Þ¸ð¸® ¸Ê ¼³Á¤, ¸Þ¸ð¸® ÄÁÆ®·Ñ·¯ ¼³Á¤, ³×Æ®¿öÅ© µð¹ÙÀ̽º ¼³Á¤ ¼öÁ¤
    • ÇÁ·Î¼¼¼­ ¼Óµµ°¡ »¡¶óÁ³°í ¸Þ¸ð¸® Ŭ·°µµ »¡¶óÁ³À¸¹Ç·Î Ŭ·°°ü·Ã ÄÚµå ¼öÁ¤

1.3. 2006.03.03

  • Äڵ带 ¼öÁ¤Çϱ⿡ ¾Õ¼­ Çϵå¿þ¾î¿¡ °üÇÑ ÀÌÇØ°¡ ±âº»µÇ¾î¾ß ÇÔ.
    • ÂüÁ¶ : PXA27x Processor Family Developer's Manual
    • SDRAM : K4S561632C_TL75(64MByte = 32MByte X 2)
      ½ÃÀÛÁÖ¼Ò0xa400 0000
      Å©±â 64MByte
      • ¼Óµµ¼³Á¤ : PXA270Àº ÃÖ´ë 104MHzÀÇ ¸Þ¸ð¸® Ŭ·°À» Áö¿ø
      • ÇÁ·Î¼¼¼­´Â 520MHzÀÇ Åͺ¸¸ðµå°¡ µÇ¾î¾ß ÇÏ°í ½Ã½ºÅÛ¹ö½º´Â 208MHz
      • ¸Þ¸ð¸® ÄÁÆ®·Ñ·¯¿¡ ÀԷµǴ Ŭ·°ÀÌ 208MHz°¡ µÇ¾î¾ß SDRAMŬ·°ÀÌ 104MHz
    • Ç÷¡½Ã ¸Þ¸ð¸®
    • ÇÁ·Î¼¼¼­ÀÇ ¼Óµµ
  • ¼³¸íÀ» ºÁµµ ¹«½¼ ¼Ò¸®ÀÎÁö Àß ¸ð¸£°ÚÁö¸¸ ÀÏ´Ü ÄÚµå¼öÁ¤Çϸ鼭 ÀÌÇØÇϵµ·Ï ÇÑ´Ù.

1.3.1. include/configs/skku.h

  • ÀÌ ÆÄÀÏÀ» ÀÌÇØÇϱâ À§ÇØ ºêÆ®·Î´õ ¼Ò½º¿¡ ÀÖ´Â README¸¦ Àо´Ù.
  • Àǹ®Á¡
    • ¿Ö Ä¿³ÎÀÌ ·ÎµåµÉ ÁÖ¼Ò°¡ 0xa4008000 ~ 0xa4080000Àΰ¡?
      • SDRAMÀÇ ½ÃÀÛÁÖ¼Ò´Â 0xa4000000Àε¥ ARM°è¿­ ÇÁ·Î¼¼¼­¿¡¼­´Â ¹Ýµå½Ã SDRAMÀÇ ½ÃÀÛ ¹°¸®ÁÖ¼Ò + 0x8000À¸·Î ÇؾßÇÑ´Ù.
  • ¼öÁ¤¿Ï·á

1.3.2. ÃʱâÈ­ ÄÚµå ¼öÁ¤Çϱâ

  • board/skku/memsetup.S : ¸Þ¸ð¸® ÄÁÆ®·Ñ·¯ ¼³Á¤.
    • SDRAM¼Óµµ, ¸®ÇÁ·¹½Ã ÁÖ±â, Ç÷¡½Ã ¸Þ¸ð¸® µ¿ÀÛ ¼³Á¤
  • board/skku/skku.c : ƯÁ¤ º¸µå¿¡ ¸Â´Â Çϵå¿þ¾î ¼³Á¤
    • Ä¿³Î¿¡ ³Ñ±â±â À§ÇÑ ºÎÆà ÆĶó¹ÌÅÍÀÇ ÁÖ¼Ò ¼³Á¤
    • SDRAMÀÇ ½ÃÀÛ ÁÖ¼Ò¿Í Å©±â¸¦ ¼³Á¤(ARM¿ë ¸®´ª½ºÄ¿³Î¿¡¼­´Â SDRAM½ÃÀÛÁÖ¼Ò + 0x100¹øÁö¿¡)
  • board/skku/flash.c : º¸µå¿¡¼­ »ç¿ëÇÏ´Â Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ µ¿ÀÛ¿¡ °ü·ÃµÈ ÇÔ¼öµé
    • u-boot¿¡¼­´Â flash_init, flash_erase, flash_print_info, write_buff¸¦ °øÅëÀ¸·Î ÀÛ¼º
    • common/flash.c & common/cmd_flash.c¿¡¼­ ÇÔ¼ö »ç¿ë
  • cpu/pxa270/start.S : ÇÁ·Î¼¼¼­ÀÇ ¼Óµµ¼³Á¤°ú SDRAMÀ¸·Î ºÎÆ®·Î´õ ÀÚ½ÅÀ» º¹»ç

  • ½ÇÇà¼ø¼­
    • start.S¿¡¼­ memsetup.S È£Ãâ, ¸Þ¸ð¸® ÄÁÆ®·Ñ·¯ ¼³Á¤
    • ºÎÆ®·Î´õ ÀÚ½ÅÀ» SDRAMÀ¸·Î º¹»çÇÏ°í SDRAMÀ¸·Î Á¡ÇÁ.
    • lib_arm/board.cÀÇ start_armbootÇÔ¼ö°¡ ½ÇÇà
    • include/configs/skku.h¿¡¼­ ¼³Á¤ÇÑ ³»¿ë¿¡ µû¶ó ³ª¸ÓÁö Çϵå¿þ¾îµé¿¡ ´ëÇÑ ¼³Á¤
    • »ç¿ëÀÚÀÇ ¸í·É ´ë±â
    • »ç¿ëÀÚ°¡ Ä¿³ÎÀ» ·ÎµåÇϵµ·Ï ¸í·É
    • lib_arm/armlinux.c¿¡ ÀÖ´Â do_bootm_linuxÇÔ¼ö°¡ È£Ãâ
    • Ä¿³Î À̹ÌÁö¸¦ ·ÎµåÇÏ°í Ä¿³Î·Î Á¡ÇÁÇÑ´Ù.

1.3.2.1. cpu/pxa270/start.S

.globl _start
_start:
    b    reset
ÀÌ ºÎºÐÀº ÆÄÀÏÀÇ ½ÃÀÛ ÁöÁ¡À¸·Î ¹°¸®ÀûÀ¸·Î 0x00000000¹øÁö¿¡ ³õÀÌ°Ô µÈ´Ù. 0x00000000¹øÁö¿¡´Â Ç÷¡½¬ ¸Þ¸ð¸®°¡ ³õ¿© ÀÖ´Ù. Áï, _start ÁöÁ¡ÀÌ 0x00000000 ¹øÁö¿¡ ³õÀÌ°Ô µÇ¸ç, "b reset" ¸í·É¾î´Â 0x00000000 ¹øÁö¿¡ ³õÀÌ´Â ÃÖÁ¶ÀÇ ¸í·É¾î°¡ µÈ´Ù. ÀÌ ¸í·É¾î¿¡ ÀÇÇØ CPU´Â reset À§Ä¡·Î ¶Ú´Ù. ".globl _start"¿¡¼­ .globlÀº Àüü ¸ñÀû ÆÄÀÏÀ» ¸µÅ©ÇÒ ¶§ _start ½É¹úÀ» ¸µÄ¿,·Î´õ°¡ º¼¼ö ÀÖµµ·Ï ÇÏ´Â ¿ªÈ°À» ÇÑ´Ù.

    .balignl 16,0xdeadbeef
ÀÌ ºÎºÐÀº ´ÙÀ½¿¡ ¿Ã Äڵ带 16 ¹ÙÀÌÆ® °æ°è(¹ÙÀδõ¸®ÀÎÁö ¸ðÀÎÁö, word´ÜÀ§·Î ¸ÂÃߴ°Í)¿¡ ³õ°í Áß°£¿¡ ºñ°Ô µÇ´Â ºÎºÐÀ» 4¹ÙÀÌÆ® Å©±âÀÇ 0xdeadbeef°ªÀ¸·Î ä¿ì¶ó´Â ¾î¼Àºí·¯ Áö½Ã¾î.
reset:
    mrs r0,cpsr      
    bic r0,r0,#0x1f
    orr r0,r0,#0xd3
    msr cpsr,r0
¿©±â´Â cpsr ·¹Áö½ºÅÍÀÇ °ªÀ» r0 ·¹Áö½ºÅÍ·Î Àоî¿ÂÈÄ, r0 ·¹Áö½ºÅÍÀÇ ÇÏÀ§ ´Ù¼¸ ºñÆ®¸¦ ÀÌÁø¼ö 00000À¸·Î ä¿ì°í ´Ù½Ã ÇÏÀ§ 5 ºñÆ®¿Í 5,6,7¹ø ºñÆ®¸¦ ÀÌÁø¼ö 11010011(0xd3) °ªÀ¸·Î ä¿îÈÄ, ¼öÁ¤ÇÑ r0 ·¹Áö½ºÅÍÀÇ °ªÀ» cpsr ·¹Áö½ºÅÍ¿¡ ¾²´Â ºÎºÐÀÌ´Ù. ÀÌ ºÎºÐÀº CPU¸¦ SVC32 mode·Î ÀüȯÀ» Çϸç, IRQ¿Í FIQ¸¦ ²ô´Â ¿ªÈ°À» ÇÑ´Ù.

1.4. 2006.03.04

  • start.S ÄÚµå ¼öÁ¤ ¿Ï·á.

1.4.1. board/skku/memsetup.S

  • u-boot°¡ ¹öÀü¾÷ÀÌ µÇ¸é¼­ memsetup.S°¡ lowlevel_init.S·Î ÆÄÀϸíÀÌ º¯°æ됬À½. ÇÏÁö¸¸ ÄÚµåÀÇ ³»¿ëÀº Àü°ú µ¿ÀÏ.
  • Äڵ带 ±×´ë·Î µû¶ó¼­ ¼öÁ¤¸¸ ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¿Ö ÀÌ·± ½ÄÀ¸·Î ¼³Á¤ÀÌ µÇ´ÂÁö ÀÌÇØ°¡ ÇÊ¿ä. ÀÏ´Ü ¸Þ´º¾óÀ» º¸°í ÀÖÀ¸³ª ÀÌÇØ°¡ ¾È°¨.
  • ¸Þ¸ð¸®¸¦ ¼ÂÆÃÇϴµ¥ À־ SDRAM°ú FlashÀÇ Á¤È®ÇÑ µ¿ÀÛ¿ø¸®¿¡ ´ëÇÑ ÀÌÇØ°¡ ÇÊ¿äÇÔ.

1.4.1.1. Synchronous DRAM

Synchronous DRAM?
  • SDRAMÀº cpuÀÇ Å¸Àֿ̹¡ ¸ÂÃß¾î µ¿±âÈ­µÇµµ·Ï µðÀÚÀÎµÈ ÃÖÃÊÀÇ DRAM ±â¼úÀÌ´Ù. SDRAMÀº ±Ô°Ý SDRAM Äھ ¹ÙÅÁÀ¸·Î Çß°í, ±Ô°Ý DRAM°ú À¯»çÇÏ°Ô ÀÛµ¿ÇÏÁö¸¸, À̵éÀ» Çõ½ÅÀûÀ¸·Î ¸¸µå´Â ¸î°¡ÁöÀÇ ±¸º°µÇ´Â Ư¡µéÀ» °¡Áö°í ÀÖ´Ù.
    • Synchoronous Operation : Æò¹üÇÏ°í AsynchronousÀÎ DRAM°ú ´Þ¸® SDRAMÀº ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­ÀÇ ´Ü°èº° ¿î¿ëÀ» Á¶Á¤ÇÏ´Â ½Ã½ºÅÛ Å¬·°ÀÌ SDRAM¿î¿ëÀ» Á¶Á¤ÇÒ ¼ö ÀÖ°Ô Å¬·° ÀÔ·ÂÀÌ µÇ¾îÀÖ´Ù. ÀÌ°ÍÀº ¸Þ¸ð¸® ÄÜÆ®·Ñ·¯°¡ ¾ðÁ¦ ¿äûÇÑ Á¤º¸°¡ ¿Ï·áµÇ¾ú´Â°¡ÀÇ Á¤È®ÇÑ Å¬·° »çÀÌŬÀ» ¾Ë°í ÀÖ´Ù´Â °ÍÀ» ÀǸ¶ÇÑ´Ù. ÀÌ°ÍÀ¸·Î ÀÎÇØ, ÇÁ·Î¼¼¼­°¡ ¸Þ¸ð¸® ¿¢¼¼½º µ¿¾È ±â´Ù¸®´Â °ÍÀ» ¾ø¾Ö ÁØ´Ù.
    • ½ÇÁ¦·Î SKKU board¿¡¼­µµ PXA270¿¡¼­ SDCLK1À» SDRAM¿¡ °ø±ÞÇؼ­ SDRAMÀÇ ¼Óµµ¸¦ Á¶Á¤ÇÑ´Ù.
  • SDRAM Interface
    • CLK : clock ÇÁ·Î¼¼¼­¿¡¼­ »ý¼º
    • CLK : clock enable
    • nCS : chip selector
    • A0:A12 : addresss
    • BA0:BA1 : bank address
    • DQ0:DQ15 : data
    • nRAS : Row Strobe
    • nCAS : Column Strobe
    • nWE : write enable
    • DQM : DQ input/output Mask
  • »ç½Ç ÇÁ·Î¼¼¼­¿¡ SDRAM ÄÁÆ®·Ñ·¯°¡ ÀÖ¾î º¹ÀâÇÑ ³»ºÎ µ¿ÀÛÀº ¾Ë¾Æ¼­ ó¸®ÇØÁØ´Ù. ÇÁ·Î¼¼¼­¿¡´Â ÀÌ SDRAM ÄÁÆ®·Ñ·¯¸¦ Á¦¾îÇÏ´Â ½Ã½ºÅÛ ·¹Áö½ºÅÍ°¡ ÀÖ°í ÀÌ ·¹Áö½ºÅ͸¦ Á¶ÀÛÇÏ´Â ¹ýÀ» ¾Ë¾Æ¾ß ÇÑ´Ù.
1.4.1.1.1. SDRAM ¾îµå·¹½Ì ±âº»¿ø¸®
  • column address, row address, bank address°¡ (x, y, z)°¡ µÇ¾î Á÷À°¸éüÀÇ ¾î´À ÇÑ°÷(=1Byte)¸¦ ÁöÁ¤ÇÏ°Ô µÈ´Ù. ±×¸®°í column°ú row µÎ ÁÖ¼Ò¸¦ ½Ã°£ Â÷À̸¦ µÎ¾î A0:A12 ÇÉ¿¡´Ù°¡ ½Ç¾îÁÖ°í(À̸¦ À§ÇØ RAS,CAS°¡ ÀÖ´Ù.) bank address´Â 2ÇÉÀÌ´Ï, BA0, BA1À» »ç¿ëÇÏ´Â °ÍÀÌ´Ù.
  • µ¿ÀÛ¼ø¼­´Â nCS¿Í RAS½ÅÈ£¸¦ È°¼ºÈ­ ½ÃÄѼ­ Row Address¸¦ ÁÖ¼Ò¹ö½º¿¡ ½Ç¾îÁØ´Ù. ±× ´ÙÀ½ RAS¸¦ ºñÈ°¼ºÈ­ ½ÃÅ°°í CAS½ÅÈ£¸¦ È°¼ºÈ­ ½ÃÅ°°í, Àб⳪ ¾²±â µ¿ÀÛ¿¡ µû¶ó¼­ nWE½ÅÈ£¸¦ ÁÖ¸é µÇ´Â °ÍÀÌ´Ù. °á±¹, ¿øÇϴ ƯÁ¤ÁÖ¼Ò¸¦ ÁöÁ¤ÇÏ°í ³ª¸é, °Å±â¼­ºÎÅÍ Column Address¸¦ Çϳª¾¿ Áõ°¡½ÃÄÑ°¡¸ç µ¥ÀÌÅ͸¦ ¹ö½ºÆ®ÇÏ°Ô ¾×¼¼½ºÇÏ´Â °ÍÀÌ´Ù.
¸ðµç µ¿ÀÛÀº CLKÀÇ positive edge¿¡ µ¿±âµÇ¾î µ¿ÀÛÇÑ´Ù.

1.5. 2006.03.08

  • ¿©ÀüÈ÷ ºÎÆ®·Î´õ µ¿ÀÛ ºÒ´É. ¼±¹è°¡ ¸¸µç À̹ÌÁö¸¦ ¿Ã·ÈÀ»¶§ Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏ´Â °ÍÀ¸·Î ºÁ¼­´Â ¿ª½Ã ÄÚµù»óÀÇ ½Ç¼öÀεí. ¹®¼­·Î µÇ¾îÀÖ´Â °ÍÀ» ±×´ë·Î º¸°í º£³¢´Âµ¥µµ ¾È µÈ´Ù´Ï... ´Ù½Ã Çѹø Äڵ带 º¸¸é¼­ Çϵå¿þ¾î ¼³Á¤¿¡ °üÇÑ ÀÌÇظ¦ ÇÏ°í, serial_test.S¸¦ ÂüÁ¶ÇÏ¿© ºÎÆ® ´Ü°è´Ü°è¸¶´Ù °£´ÜÇÑ ½Ã¸®¾ó Ãâ·ÂÇÏ´Â Äڵ带 Áý¾î³Ö¾î ¾î´À ´Ü°è°¡ À߸øµÇ¾ú´ÂÁö °ËÃâÇؾßÇÔ.
  • ¿ø·¡ÀÇ start.S¸¦ start.S_·Î ¹é¾÷Çسõ°í start.S¸¦ ¼öÁ¤ÇÔ.

1.5.1. start.S ¼öÁ¤

  • ¸ñÇ¥ : ¸Ç óÀ½¿¡ ÀÏ´Ü ½Ã¸®¾óÀ» ¼³Á¤ÇÏ°í ½Ã¸®¾ó Ãâ·ÂÀ» ÀÌ¿ëÇؼ­ °¢ ´Ü°è´Ü°è¸¦ È®ÀÎÇÑ´Ù.

1.6. 2006.03.10

  • Ãæ°Ý : FFUART¸¦ »ç¿ëÇϱâ À§Çؼ± GPIO¸¦ ¼³Á¤ÇØ¾ß Çϴµ¥ ±×³É ¹«Åδë°í FFUART¸¸ ¼³Á¤ÇÏ°í ¿Ö ½Ã¸®¾óÀÌ ¾È ³ª¿À³ª ÇÏ°í ÀÖ¾úÀ½.

1.7. 2006.03.15

  • u-boot µ¿ÀÛ ¼º°ø. ÀÏ´Ü Ä¿³ÎÀº ¿Ã¸®Áö ¾Ê°í ±×Àü±îÁöÀÇ µ¿ÀÛÀº ½Ã¸®¾óÀ» ÅëÇؼ­ È®ÀÎÇß½À´Ï´Ù.
  • µ¿ÀÛÀ» ¾È Çß´ø ¿øÀÎÀº
    • ÀÏ´Ü u-boot 1.1.2 porting guide to pxa270 ¹®¼­»ó¿¡´Â À߸øµÈ ¿À·ù¶óµçÁö ÇÏ´Â °ÍÀÌ ÀüÇô ¾ø½À´Ï´Ù.
    • À§¿¡ Á¦°¡ Âü°íÇÑ Æ÷Æù®¼­´Â u-boot-1.1.2¸¦ ±â¹ÝÀ¸·Î ÇÏ°í ¹®¼­¿¡ º¸½Ã¸é ELDK 3.1.1À» »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù. ±×·¯³ª Àú´Â ELDK 4.0 ÃֽŹöÀüÀ» »ç¿ëÇÏ¿© Æ÷ÆÃÀ» ÇÏ°íÀÚ Çß½À´Ï´Ù.
    • cpu/cpuname/config.mk ÆÄÀϾÈÀÇ °¢ cpuÀÇ Å¸ÀÔ¿¡ ¸Â°Ô cc flas¸¦ ¼³Á¤Çϴµ¥ ÀÌ·¯ÇÑ ¿É¼ÇµéÀÌ ¹öÀü¾÷ÀÌ µÇ¸é¼­ º¯°æÀÌ µÇ¾ú´Ù. ¹®¼­»óÀÇ ¿É¼ÇÀ» º¸ÀÚ¸é





2. °Ô½ÃÆÇ


captcha
Username:

¾ÆÁ÷µµ start.S ·Î ºÎÆÃÀÌ ºÒ°¡´ÉÇϽÅÁö¿ä? -- jachin 2006-03-13

ÀÏ´Ü ¼º°øÀº ÇϱäÇߴµ¥¿ä. Á» ÀÌ»óÇÑÁ¡ÀÌ ÀÖ±º¿ä. Áö±ÝÀº ÀÏ´Ü ¸®´ª½º µð¹ÙÀ̽º µå¶óÀ̹ö °øºÎ¿¡ ÁýÁßÀÔ´Ï´Ù. -- bluster 2006-04-08 04:01:13

ID
Password
Join
You have a deep appreciation of the arts and music.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2006-04-08 04:01:13
Processing time 0.0119 sec