SlideShare uma empresa Scribd logo
1 de 5
(mango64:s3c6410& u-boot) u-boot 업그레이드 하기-1<br />삼성에서 받은 u-boot를 소스를 망고64보드에 맞게 끔 수정을 해 보겠습니다. <br />SD card인식이 됩니다. <br />다른 기능은 포팅을 하면서 살펴 보겠습니다. <br />우선 <br />소스 압축을 풀어서, 소스에 가장 Top 디렉토리에 있는 Makefile에서 <br />아래와 같이 추가를 합니다. <br />mango6410_config :       unconfig        @$(MKCONFIG) $(@:_config=) arm s3c64xx mango6410 crztech s3c6410        @echo quot;
TEXT_BASE = 0x57e00000quot;
 > $(obj)board/crztech/mango6410/config.mk<br />참조자료는 <br />http://cafe.naver.com/embeddedcrazyboys/7000<br />디렉토리를 추가 및 아래와 같이 copy합니다. <br />mkdir -p board/crztech/mango6410cp -a board/samsung/smdk6410/* board/crztech/mango6410/mv board/crztech/mango6410/smdk6410.c mango6410.cmkdir board/crztech/commoncp -a board/samsung/common/* board/crztech/common/<br />“board/crztech/mango6410/Makefile”을 열어서 수정<br />OBJS    := mango6410.o flash.o<br />“vi board/crztech/mango6410/u-boot.lds” 수정<br />board/crztech/mango6410/lowlevel_init.o       (.text)<br />“common/cmd_onenand.c” 수정 (망고6410은 onenand가 없으므로)<br />COBJS-$(CONFIG_CMD_ONENAND) += cmd_onenand.o<br />그리고, “include/configs”에 mango6410.h을 만듭니다. 만드는 방법 <br />cp include/configs/smdk6410.h include/configs/mango6410.h<br />“vi board/crztech/mango6410/mango6410.c” 파일 수정<br />/* ------------------------------------------------------------------------- */#define SMSC9220_Tacs(0x0)// 0clkaddress set-up#define SMSC9220_Tcos(0x4)// 4clkchip selection set-up#define SMSC9220_Tacc(0xE)// 14clkaccess cycle#define SMSC9220_Tcoh(0x1)// 1clkchip selection hold#define SMSC9220_Tah(0x4)// 4clkaddress holding time#define SMSC9220_Tacp(0x6)// 6clkpage mode access cycle#define SMSC9220_PMC(0x0)// normal(1data)page mode configurationstatic inline void delay(unsigned long loops){__asm__ volatile (quot;
1:quot;
 quot;
subs %0, %1, #1quot;
 quot;
bne 1bquot;
:quot;
=rquot;
 (loops):quot;
0quot;
(loops));}/* * Miscellaneous platform dependent initialisations *//* mango64 use SROM bank 4 for Ethernet */#define SMSC9220_SROM_BANK_4static void smsc9220_pre_init(void){#if defined(SMSC9220_SROM_BANK_1)SROM_BW_REG &= ~(0xf << 4);SROM_BW_REG |= (1<<7) | (1<<6) | (1<<4);SROM_BC1_REG = ((SMSC9220_Tacs<<28)+(SMSC9220_Tcos<<24)+(SMSC9220_Tacc<<16)+(SMSC9220_Tcoh<<12)+(SMSC9220_Tah<<8)+(SMSC9220_Tacp<<4)+(SMSC9220_PMC));#elif defined(SMSC9220_SROM_BANK_2)SROM_BW_REG &= ~(0xf << 8);SROM_BW_REG |= (1<<11) | (1<<10) | (1<<8);SROM_BC2_REG = ((SMSC9220_Tacs<<28)+(SMSC9220_Tcos<<24)+(SMSC9220_Tacc<<16)+(SMSC9220_Tcoh<<12)+(SMSC9220_Tah<<8)+(SMSC9220_Tacp<<4)+(SMSC9220_PMC));#elif defined(SMSC9220_SROM_BANK_3)SROM_BW_REG &= ~(0xf << 12);SROM_BW_REG |= (1<<15) | (1<<14) | (1<<12);SROM_BC3_REG = ((SMSC9220_Tacs<<28)+(SMSC9220_Tcos<<24)+(SMSC9220_Tacc<<16)+(SMSC9220_Tcoh<<12)+(SMSC9220_Tah<<8)+(SMSC9220_Tacp<<4)+(SMSC9220_PMC));#elif defined(SMSC9220_SROM_BANK_4)SROM_BW_REG &= ~(0xf << 16);SROM_BW_REG |= (1<<19) | (1<<18) | (1<<16);SROM_BC4_REG = ((SMSC9220_Tacs<<28)+(SMSC9220_Tcos<<24)+(SMSC9220_Tacc<<16)+(SMSC9220_Tcoh<<12)+(SMSC9220_Tah<<8)+(SMSC9220_Tacp<<4)+(SMSC9220_PMC));#elif defined(SMSC9220_SROM_BANK_5)SROM_BW_REG &= ~(0xf << 20);SROM_BW_REG |= (1<<23) | (1<<22) | (1<<20);SROM_BC5_REG = ((SMSC9220_Tacs<<28)+(SMSC9220_Tcos<<24)+(SMSC9220_Tacc<<16)+(SMSC9220_Tcoh<<12)+(SMSC9220_Tah<<8)+(SMSC9220_Tacp<<4)+(SMSC9220_PMC));#endif}int board_init(void){DECLARE_GLOBAL_DATA_PTR;smsc9220_pre_init();gd->bd->bi_arch_number = MACH_TYPE;gd->bd->bi_boot_params = (PHYS_SDRAM_1+0x100);#if 0icache_enable();dcache_enable();#endifreturn 0;}<br />망고6410(S3C6410) 하드웨어 맞게 “include/configs/mango6410.h”을 수정을 합니다. <br />수정 부분은 <br />//#define CONFIG_ENABLE_MMU#define CONFIG_SERIAL2          1/* we use SERIAL 1 on mango6410 */#define USBD_DOWN_ADDR0x50000000//#undef CONFIG_NET_MULTI#define CONFIG_DRIVER_SMC911X1 // MANGO64#ifdef CONFIG_DRIVER_SMC911X#define CONFIG_DRIVER_SMC911X_16_BIT#undefCONFIG_DRIVER_CS8900#define CONFIG_DRIVER_SMC911X_BASE0x30000300#define CFG_PROMPTquot;
MANGO64 # quot;
/* Monitor Command Prompt*/#define CONFIG_IDENT_STRINGquot;
 for MANGO6410quot;
//#define CFG_NAND_HWECC#undefCFG_NAND_FLASH_BBT//#define CONFIG_NAND_BL1_8BIT_ECC#define USE_MMC1//#define CONFIG_CMD_ONENAND//#define DEBUG_S3C_HSMMC<br />USB OTG로 다운로드 기능 추가<br />자세한 내용은 Mango64 & U-boot)DNW(usb-otg)로 이미지 다운로드 하기 를 참조하세요<br />수정한 소스만 넣어 보겠습니다. <br />“./cpu/s3c64xx/usbd-otg-hs.c” 파일에 아래와 같이 수정을 합니다. <br />void s3c_usb_init_phy(void){writel(0x0, S3C_OTG_PHYPWR);   //if 48Mhz Oscillator is used                  //writel(0x20, S3C_OTG_PHYCTRL);    //if 48Mhz X-tal is used              writel(0x00, S3C_OTG_PHYCTRL);writel(0x1, S3C_OTG_RSTCON);udelay(10);writel(0x0, S3C_OTG_RSTCON);udelay(10);}int s3c_usbctl_init(void){u8 ucMode;DBG_SETUP0(quot;
USB Control Initquot;
);OTHERS_REG |= (1<<16);/*unmask usb signal *///by crazyboy begin        writel(readl(GPNPUD) & ~(3<<12), GPNPUD); // GPN6 Pull-up/dn disable - (00 - disable)        writel((readl(GPNCON) & ~(3<<12)) | (1<<12), GPNCON); //set GPN6 to output (01)        writel(readl(GPNDAT) | (1<<6), GPNDAT); //set GPN6 to high//by crazyboy end<br />수정 후 컴파일 해서 Target에 올려보겠습니다.<br />컴파일 순서 <br />#make mango6410_config#make <br />원본 소스 다운로드<br />업데이트 된 소스 다운로드 <br />두개의 소스를 비교하면, 재미있을 것입니다. <br />푸우님이 작성한 u-boot 포팅하기를 참조하시면, 많은 도움이 될 것입니다.  <br />(ARM S3C6410) 망고64에 u-boot 포팅하기 (1) HYPERLINK quot;
http://cafe.naver.com/embeddedcrazyboys/5271(ARMquot;
  quot;
http://cafe.naver.com/embeddedcrazyboys/5271(ARMquot;
 S3C6410) 망고64에 u-boot 포팅하기 (2)(ARM S3C6410) 망고64에 u-boot 포팅하기 (3)(ARM S3C6410) 망고64에 u-boot 포팅하기 (4)(ARM S3C6410) 망고64에 u-boot 포팅하기 (5) HYPERLINK quot;
http://cafe.naver.com/embeddedcrazyboys/5307quot;
  quot;
http://cafe.naver.com/embeddedcrazyboys/5307quot;
 (ARM S3C6410) 망고64에 u-boot 포팅하기 (6) - 최종<br />
Upgrading u-boot for Mango64 board
Upgrading u-boot for Mango64 board
Upgrading u-boot for Mango64 board
Upgrading u-boot for Mango64 board

Mais conteúdo relacionado

Mais procurados

LLVM Backend の紹介
LLVM Backend の紹介LLVM Backend の紹介
LLVM Backend の紹介Akira Maruoka
 
One page app with AngularJS
One page app with AngularJSOne page app with AngularJS
One page app with AngularJSAdam Štipák
 
関西Vim勉強会#5 vimrcの書き方
関西Vim勉強会#5 vimrcの書き方関西Vim勉強会#5 vimrcの書き方
関西Vim勉強会#5 vimrcの書き方tsukkee _
 
start_printf: dev/ic/com.c comstart()
start_printf: dev/ic/com.c comstart()start_printf: dev/ic/com.c comstart()
start_printf: dev/ic/com.c comstart()Kiwamu Okabe
 
プログラム実行の話と
OSとメモリの挙動の話
プログラム実行の話と
OSとメモリの挙動の話プログラム実行の話と
OSとメモリの挙動の話
プログラム実行の話と
OSとメモリの挙動の話tatsunori ishikawa
 
Show innodb status
Show innodb statusShow innodb status
Show innodb statusjustlooks
 
Михаил Епихин — Бутылочное горлышко. как найти узкие места сервиса и увеличит...
Михаил Епихин — Бутылочное горлышко. как найти узкие места сервиса и увеличит...Михаил Епихин — Бутылочное горлышко. как найти узкие места сервиса и увеличит...
Михаил Епихин — Бутылочное горлышко. как найти узкие места сервиса и увеличит...Yandex
 
Templating In Buildout
Templating In BuildoutTemplating In Buildout
Templating In BuildoutQuintagroup
 
2c astable monostable
2c astable monostable2c astable monostable
2c astable monostableyeksdech
 
システムコールトレーサーの動作原理と実装 (Writing system call tracer for Linux/x86)
システムコールトレーサーの動作原理と実装 (Writing system call tracer for Linux/x86)システムコールトレーサーの動作原理と実装 (Writing system call tracer for Linux/x86)
システムコールトレーサーの動作原理と実装 (Writing system call tracer for Linux/x86)Masashi Shibata
 
Monitoramento ambiental e alertas visuais com Zabbix - 3º Zabbix Meetup do In...
Monitoramento ambiental e alertas visuais com Zabbix - 3º Zabbix Meetup do In...Monitoramento ambiental e alertas visuais com Zabbix - 3º Zabbix Meetup do In...
Monitoramento ambiental e alertas visuais com Zabbix - 3º Zabbix Meetup do In...Zabbix BR
 
NYU hacknight, april 6, 2016
NYU hacknight, april 6, 2016NYU hacknight, april 6, 2016
NYU hacknight, april 6, 2016Mikhail Sosonkin
 
ipython notebook poc memory forensics
ipython notebook poc memory forensicsipython notebook poc memory forensics
ipython notebook poc memory forensicsVincent Ohprecio
 
ZeroNights: Automating iOS blackbox security scanning
ZeroNights: Automating iOS blackbox security scanningZeroNights: Automating iOS blackbox security scanning
ZeroNights: Automating iOS blackbox security scanningMikhail Sosonkin
 

Mais procurados (20)

Emacs Key Bindings
Emacs Key BindingsEmacs Key Bindings
Emacs Key Bindings
 
Network
NetworkNetwork
Network
 
LLVM Backend の紹介
LLVM Backend の紹介LLVM Backend の紹介
LLVM Backend の紹介
 
One page app with AngularJS
One page app with AngularJSOne page app with AngularJS
One page app with AngularJS
 
Embedding perl
Embedding perlEmbedding perl
Embedding perl
 
関西Vim勉強会#5 vimrcの書き方
関西Vim勉強会#5 vimrcの書き方関西Vim勉強会#5 vimrcの書き方
関西Vim勉強会#5 vimrcの書き方
 
Tripwyre
TripwyreTripwyre
Tripwyre
 
start_printf: dev/ic/com.c comstart()
start_printf: dev/ic/com.c comstart()start_printf: dev/ic/com.c comstart()
start_printf: dev/ic/com.c comstart()
 
プログラム実行の話と
OSとメモリの挙動の話
プログラム実行の話と
OSとメモリの挙動の話プログラム実行の話と
OSとメモリの挙動の話
プログラム実行の話と
OSとメモリの挙動の話
 
Show innodb status
Show innodb statusShow innodb status
Show innodb status
 
root-ksk-2010
root-ksk-2010root-ksk-2010
root-ksk-2010
 
Михаил Епихин — Бутылочное горлышко. как найти узкие места сервиса и увеличит...
Михаил Епихин — Бутылочное горлышко. как найти узкие места сервиса и увеличит...Михаил Епихин — Бутылочное горлышко. как найти узкие места сервиса и увеличит...
Михаил Епихин — Бутылочное горлышко. как найти узкие места сервиса и увеличит...
 
Templating In Buildout
Templating In BuildoutTemplating In Buildout
Templating In Buildout
 
2c astable monostable
2c astable monostable2c astable monostable
2c astable monostable
 
システムコールトレーサーの動作原理と実装 (Writing system call tracer for Linux/x86)
システムコールトレーサーの動作原理と実装 (Writing system call tracer for Linux/x86)システムコールトレーサーの動作原理と実装 (Writing system call tracer for Linux/x86)
システムコールトレーサーの動作原理と実装 (Writing system call tracer for Linux/x86)
 
Monitoramento ambiental e alertas visuais com Zabbix - 3º Zabbix Meetup do In...
Monitoramento ambiental e alertas visuais com Zabbix - 3º Zabbix Meetup do In...Monitoramento ambiental e alertas visuais com Zabbix - 3º Zabbix Meetup do In...
Monitoramento ambiental e alertas visuais com Zabbix - 3º Zabbix Meetup do In...
 
NYU hacknight, april 6, 2016
NYU hacknight, april 6, 2016NYU hacknight, april 6, 2016
NYU hacknight, april 6, 2016
 
ipython notebook poc memory forensics
ipython notebook poc memory forensicsipython notebook poc memory forensics
ipython notebook poc memory forensics
 
Sysprog17
Sysprog17Sysprog17
Sysprog17
 
ZeroNights: Automating iOS blackbox security scanning
ZeroNights: Automating iOS blackbox security scanningZeroNights: Automating iOS blackbox security scanning
ZeroNights: Automating iOS blackbox security scanning
 

Semelhante a Upgrading u-boot for Mango64 board

Embedded JavaScript
Embedded JavaScriptEmbedded JavaScript
Embedded JavaScriptJens Siebert
 
망고100 보드로 놀아보자 7
망고100 보드로 놀아보자 7망고100 보드로 놀아보자 7
망고100 보드로 놀아보자 7종인 전
 
Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Macpaul Lin
 
GPU Programming on CPU - Using C++AMP
GPU Programming on CPU - Using C++AMPGPU Programming on CPU - Using C++AMP
GPU Programming on CPU - Using C++AMPMiller Lee
 
How do I draw the Labview code for pneumatic cylinder(air pistion). .pdf
How do I draw the Labview code for pneumatic cylinder(air pistion). .pdfHow do I draw the Labview code for pneumatic cylinder(air pistion). .pdf
How do I draw the Labview code for pneumatic cylinder(air pistion). .pdffootstatus
 
Karasikov android behind the scenes
Karasikov   android behind the scenesKarasikov   android behind the scenes
Karasikov android behind the scenesDefconRussia
 
Android: Behind the scenes
Android: Behind the scenesAndroid: Behind the scenes
Android: Behind the scenesNarkozzz
 
PBL1-v1-002j.pptx
PBL1-v1-002j.pptxPBL1-v1-002j.pptx
PBL1-v1-002j.pptxNAIST
 
망고100 보드로 놀아보자 15
망고100 보드로 놀아보자 15망고100 보드로 놀아보자 15
망고100 보드로 놀아보자 15종인 전
 
rrxv6 Build a Riscv xv6 Kernel in Rust.pdf
rrxv6 Build a Riscv xv6 Kernel in Rust.pdfrrxv6 Build a Riscv xv6 Kernel in Rust.pdf
rrxv6 Build a Riscv xv6 Kernel in Rust.pdfYodalee
 
Introduction to Debuggers
Introduction to DebuggersIntroduction to Debuggers
Introduction to DebuggersSaumil Shah
 
2.1 ### uVision Project, (C) Keil Software .docx
2.1   ### uVision Project, (C) Keil Software    .docx2.1   ### uVision Project, (C) Keil Software    .docx
2.1 ### uVision Project, (C) Keil Software .docxtarifarmarie
 
Udp socket programming(Florian)
Udp socket programming(Florian)Udp socket programming(Florian)
Udp socket programming(Florian)Flor Ian
 
建構嵌入式Linux系統於SD Card
建構嵌入式Linux系統於SD Card建構嵌入式Linux系統於SD Card
建構嵌入式Linux系統於SD Card艾鍗科技
 

Semelhante a Upgrading u-boot for Mango64 board (20)

Embedded JavaScript
Embedded JavaScriptEmbedded JavaScript
Embedded JavaScript
 
망고100 보드로 놀아보자 7
망고100 보드로 놀아보자 7망고100 보드로 놀아보자 7
망고100 보드로 놀아보자 7
 
Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)
 
GPU Programming on CPU - Using C++AMP
GPU Programming on CPU - Using C++AMPGPU Programming on CPU - Using C++AMP
GPU Programming on CPU - Using C++AMP
 
Gps c
Gps cGps c
Gps c
 
How do I draw the Labview code for pneumatic cylinder(air pistion). .pdf
How do I draw the Labview code for pneumatic cylinder(air pistion). .pdfHow do I draw the Labview code for pneumatic cylinder(air pistion). .pdf
How do I draw the Labview code for pneumatic cylinder(air pistion). .pdf
 
CompilersAndLibraries
CompilersAndLibrariesCompilersAndLibraries
CompilersAndLibraries
 
Karasikov android behind the scenes
Karasikov   android behind the scenesKarasikov   android behind the scenes
Karasikov android behind the scenes
 
Android: Behind the scenes
Android: Behind the scenesAndroid: Behind the scenes
Android: Behind the scenes
 
PBL1-v1-002j.pptx
PBL1-v1-002j.pptxPBL1-v1-002j.pptx
PBL1-v1-002j.pptx
 
망고100 보드로 놀아보자 15
망고100 보드로 놀아보자 15망고100 보드로 놀아보자 15
망고100 보드로 놀아보자 15
 
P sim.val
P sim.valP sim.val
P sim.val
 
PIC and LCD
PIC and LCDPIC and LCD
PIC and LCD
 
Osol Pgsql
Osol PgsqlOsol Pgsql
Osol Pgsql
 
rrxv6 Build a Riscv xv6 Kernel in Rust.pdf
rrxv6 Build a Riscv xv6 Kernel in Rust.pdfrrxv6 Build a Riscv xv6 Kernel in Rust.pdf
rrxv6 Build a Riscv xv6 Kernel in Rust.pdf
 
Sysprog 13
Sysprog 13Sysprog 13
Sysprog 13
 
Introduction to Debuggers
Introduction to DebuggersIntroduction to Debuggers
Introduction to Debuggers
 
2.1 ### uVision Project, (C) Keil Software .docx
2.1   ### uVision Project, (C) Keil Software    .docx2.1   ### uVision Project, (C) Keil Software    .docx
2.1 ### uVision Project, (C) Keil Software .docx
 
Udp socket programming(Florian)
Udp socket programming(Florian)Udp socket programming(Florian)
Udp socket programming(Florian)
 
建構嵌入式Linux系統於SD Card
建構嵌入式Linux系統於SD Card建構嵌入式Linux系統於SD Card
建構嵌入式Linux系統於SD Card
 

Mais de 종인 전

Quick start guide-mango-am335x
Quick start guide-mango-am335xQuick start guide-mango-am335x
Quick start guide-mango-am335x종인 전
 
망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324종인 전
 
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드종인 전
 
망고210 android fastboot nand write 방법
망고210 android fastboot nand write 방법망고210 android fastboot nand write 방법
망고210 android fastboot nand write 방법종인 전
 
망고210 매뉴얼 2010 12-30
망고210 매뉴얼 2010 12-30망고210 매뉴얼 2010 12-30
망고210 매뉴얼 2010 12-30종인 전
 
망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19종인 전
 
망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18종인 전
 
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌종인 전
 
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17종인 전
 
망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16종인 전
 
망고100 보드로 놀아보자 14
망고100 보드로 놀아보자 14망고100 보드로 놀아보자 14
망고100 보드로 놀아보자 14종인 전
 
망고100 보드로 놀아보자 13
망고100 보드로 놀아보자  13망고100 보드로 놀아보자  13
망고100 보드로 놀아보자 13종인 전
 
망고100 보드로 놀아보자 12
망고100 보드로 놀아보자  12망고100 보드로 놀아보자  12
망고100 보드로 놀아보자 12종인 전
 
망고100 보드로 놀아보자 11
망고100 보드로 놀아보자  11망고100 보드로 놀아보자  11
망고100 보드로 놀아보자 11종인 전
 
망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10종인 전
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9종인 전
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9종인 전
 
망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드종인 전
 
망고64 부품도
망고64 부품도망고64 부품도
망고64 부품도종인 전
 
망고100 보드로 놀아보자 8
망고100 보드로 놀아보자 8망고100 보드로 놀아보자 8
망고100 보드로 놀아보자 8종인 전
 

Mais de 종인 전 (20)

Quick start guide-mango-am335x
Quick start guide-mango-am335xQuick start guide-mango-am335x
Quick start guide-mango-am335x
 
망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324
 
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
 
망고210 android fastboot nand write 방법
망고210 android fastboot nand write 방법망고210 android fastboot nand write 방법
망고210 android fastboot nand write 방법
 
망고210 매뉴얼 2010 12-30
망고210 매뉴얼 2010 12-30망고210 매뉴얼 2010 12-30
망고210 매뉴얼 2010 12-30
 
망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19
 
망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18
 
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
 
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17
 
망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16
 
망고100 보드로 놀아보자 14
망고100 보드로 놀아보자 14망고100 보드로 놀아보자 14
망고100 보드로 놀아보자 14
 
망고100 보드로 놀아보자 13
망고100 보드로 놀아보자  13망고100 보드로 놀아보자  13
망고100 보드로 놀아보자 13
 
망고100 보드로 놀아보자 12
망고100 보드로 놀아보자  12망고100 보드로 놀아보자  12
망고100 보드로 놀아보자 12
 
망고100 보드로 놀아보자 11
망고100 보드로 놀아보자  11망고100 보드로 놀아보자  11
망고100 보드로 놀아보자 11
 
망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
 
망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드
 
망고64 부품도
망고64 부품도망고64 부품도
망고64 부품도
 
망고100 보드로 놀아보자 8
망고100 보드로 놀아보자 8망고100 보드로 놀아보자 8
망고100 보드로 놀아보자 8
 

Upgrading u-boot for Mango64 board

  • 1. (mango64:s3c6410& u-boot) u-boot 업그레이드 하기-1<br />삼성에서 받은 u-boot를 소스를 망고64보드에 맞게 끔 수정을 해 보겠습니다. <br />SD card인식이 됩니다. <br />다른 기능은 포팅을 하면서 살펴 보겠습니다. <br />우선 <br />소스 압축을 풀어서, 소스에 가장 Top 디렉토리에 있는 Makefile에서 <br />아래와 같이 추가를 합니다. <br />mango6410_config : unconfig @$(MKCONFIG) $(@:_config=) arm s3c64xx mango6410 crztech s3c6410 @echo quot; TEXT_BASE = 0x57e00000quot; > $(obj)board/crztech/mango6410/config.mk<br />참조자료는 <br />http://cafe.naver.com/embeddedcrazyboys/7000<br />디렉토리를 추가 및 아래와 같이 copy합니다. <br />mkdir -p board/crztech/mango6410cp -a board/samsung/smdk6410/* board/crztech/mango6410/mv board/crztech/mango6410/smdk6410.c mango6410.cmkdir board/crztech/commoncp -a board/samsung/common/* board/crztech/common/<br />“board/crztech/mango6410/Makefile”을 열어서 수정<br />OBJS := mango6410.o flash.o<br />“vi board/crztech/mango6410/u-boot.lds” 수정<br />board/crztech/mango6410/lowlevel_init.o (.text)<br />“common/cmd_onenand.c” 수정 (망고6410은 onenand가 없으므로)<br />COBJS-$(CONFIG_CMD_ONENAND) += cmd_onenand.o<br />그리고, “include/configs”에 mango6410.h을 만듭니다. 만드는 방법 <br />cp include/configs/smdk6410.h include/configs/mango6410.h<br />“vi board/crztech/mango6410/mango6410.c” 파일 수정<br />/* ------------------------------------------------------------------------- */#define SMSC9220_Tacs(0x0)// 0clkaddress set-up#define SMSC9220_Tcos(0x4)// 4clkchip selection set-up#define SMSC9220_Tacc(0xE)// 14clkaccess cycle#define SMSC9220_Tcoh(0x1)// 1clkchip selection hold#define SMSC9220_Tah(0x4)// 4clkaddress holding time#define SMSC9220_Tacp(0x6)// 6clkpage mode access cycle#define SMSC9220_PMC(0x0)// normal(1data)page mode configurationstatic inline void delay(unsigned long loops){__asm__ volatile (quot; 1:quot; quot; subs %0, %1, #1quot; quot; bne 1bquot; :quot; =rquot; (loops):quot; 0quot; (loops));}/* * Miscellaneous platform dependent initialisations *//* mango64 use SROM bank 4 for Ethernet */#define SMSC9220_SROM_BANK_4static void smsc9220_pre_init(void){#if defined(SMSC9220_SROM_BANK_1)SROM_BW_REG &= ~(0xf << 4);SROM_BW_REG |= (1<<7) | (1<<6) | (1<<4);SROM_BC1_REG = ((SMSC9220_Tacs<<28)+(SMSC9220_Tcos<<24)+(SMSC9220_Tacc<<16)+(SMSC9220_Tcoh<<12)+(SMSC9220_Tah<<8)+(SMSC9220_Tacp<<4)+(SMSC9220_PMC));#elif defined(SMSC9220_SROM_BANK_2)SROM_BW_REG &= ~(0xf << 8);SROM_BW_REG |= (1<<11) | (1<<10) | (1<<8);SROM_BC2_REG = ((SMSC9220_Tacs<<28)+(SMSC9220_Tcos<<24)+(SMSC9220_Tacc<<16)+(SMSC9220_Tcoh<<12)+(SMSC9220_Tah<<8)+(SMSC9220_Tacp<<4)+(SMSC9220_PMC));#elif defined(SMSC9220_SROM_BANK_3)SROM_BW_REG &= ~(0xf << 12);SROM_BW_REG |= (1<<15) | (1<<14) | (1<<12);SROM_BC3_REG = ((SMSC9220_Tacs<<28)+(SMSC9220_Tcos<<24)+(SMSC9220_Tacc<<16)+(SMSC9220_Tcoh<<12)+(SMSC9220_Tah<<8)+(SMSC9220_Tacp<<4)+(SMSC9220_PMC));#elif defined(SMSC9220_SROM_BANK_4)SROM_BW_REG &= ~(0xf << 16);SROM_BW_REG |= (1<<19) | (1<<18) | (1<<16);SROM_BC4_REG = ((SMSC9220_Tacs<<28)+(SMSC9220_Tcos<<24)+(SMSC9220_Tacc<<16)+(SMSC9220_Tcoh<<12)+(SMSC9220_Tah<<8)+(SMSC9220_Tacp<<4)+(SMSC9220_PMC));#elif defined(SMSC9220_SROM_BANK_5)SROM_BW_REG &= ~(0xf << 20);SROM_BW_REG |= (1<<23) | (1<<22) | (1<<20);SROM_BC5_REG = ((SMSC9220_Tacs<<28)+(SMSC9220_Tcos<<24)+(SMSC9220_Tacc<<16)+(SMSC9220_Tcoh<<12)+(SMSC9220_Tah<<8)+(SMSC9220_Tacp<<4)+(SMSC9220_PMC));#endif}int board_init(void){DECLARE_GLOBAL_DATA_PTR;smsc9220_pre_init();gd->bd->bi_arch_number = MACH_TYPE;gd->bd->bi_boot_params = (PHYS_SDRAM_1+0x100);#if 0icache_enable();dcache_enable();#endifreturn 0;}<br />망고6410(S3C6410) 하드웨어 맞게 “include/configs/mango6410.h”을 수정을 합니다. <br />수정 부분은 <br />//#define CONFIG_ENABLE_MMU#define CONFIG_SERIAL2 1/* we use SERIAL 1 on mango6410 */#define USBD_DOWN_ADDR0x50000000//#undef CONFIG_NET_MULTI#define CONFIG_DRIVER_SMC911X1 // MANGO64#ifdef CONFIG_DRIVER_SMC911X#define CONFIG_DRIVER_SMC911X_16_BIT#undefCONFIG_DRIVER_CS8900#define CONFIG_DRIVER_SMC911X_BASE0x30000300#define CFG_PROMPTquot; MANGO64 # quot; /* Monitor Command Prompt*/#define CONFIG_IDENT_STRINGquot; for MANGO6410quot; //#define CFG_NAND_HWECC#undefCFG_NAND_FLASH_BBT//#define CONFIG_NAND_BL1_8BIT_ECC#define USE_MMC1//#define CONFIG_CMD_ONENAND//#define DEBUG_S3C_HSMMC<br />USB OTG로 다운로드 기능 추가<br />자세한 내용은 Mango64 & U-boot)DNW(usb-otg)로 이미지 다운로드 하기 를 참조하세요<br />수정한 소스만 넣어 보겠습니다. <br />“./cpu/s3c64xx/usbd-otg-hs.c” 파일에 아래와 같이 수정을 합니다. <br />void s3c_usb_init_phy(void){writel(0x0, S3C_OTG_PHYPWR); //if 48Mhz Oscillator is used //writel(0x20, S3C_OTG_PHYCTRL); //if 48Mhz X-tal is used writel(0x00, S3C_OTG_PHYCTRL);writel(0x1, S3C_OTG_RSTCON);udelay(10);writel(0x0, S3C_OTG_RSTCON);udelay(10);}int s3c_usbctl_init(void){u8 ucMode;DBG_SETUP0(quot; USB Control Initquot; );OTHERS_REG |= (1<<16);/*unmask usb signal *///by crazyboy begin writel(readl(GPNPUD) & ~(3<<12), GPNPUD); // GPN6 Pull-up/dn disable - (00 - disable) writel((readl(GPNCON) & ~(3<<12)) | (1<<12), GPNCON); //set GPN6 to output (01) writel(readl(GPNDAT) | (1<<6), GPNDAT); //set GPN6 to high//by crazyboy end<br />수정 후 컴파일 해서 Target에 올려보겠습니다.<br />컴파일 순서 <br />#make mango6410_config#make <br />원본 소스 다운로드<br />업데이트 된 소스 다운로드 <br />두개의 소스를 비교하면, 재미있을 것입니다. <br />푸우님이 작성한 u-boot 포팅하기를 참조하시면, 많은 도움이 될 것입니다. <br />(ARM S3C6410) 망고64에 u-boot 포팅하기 (1) HYPERLINK quot; http://cafe.naver.com/embeddedcrazyboys/5271(ARMquot; quot; http://cafe.naver.com/embeddedcrazyboys/5271(ARMquot; S3C6410) 망고64에 u-boot 포팅하기 (2)(ARM S3C6410) 망고64에 u-boot 포팅하기 (3)(ARM S3C6410) 망고64에 u-boot 포팅하기 (4)(ARM S3C6410) 망고64에 u-boot 포팅하기 (5) HYPERLINK quot; http://cafe.naver.com/embeddedcrazyboys/5307quot; quot; http://cafe.naver.com/embeddedcrazyboys/5307quot; (ARM S3C6410) 망고64에 u-boot 포팅하기 (6) - 최종<br />