SNK NeoGeo X v370
build uboot
為了達到可以從NeoGeo X掌機的SDCard(SDCard1)開機,司徒決定開始研究北京君正釋出的UBoot程式,在開始研究UBoot程式前,必須先編譯一次官方UBoot程式查看有無問題,若沒有問題再使用此份UBoot程式做修改,這樣可以比較快速修改成司徒想要的功能。
下載如下檔案:
1. UBoot(v1.1.6)程式碼
2. JZ4770 Patch檔案
3. Toolchain工具
接著使用如下指令進行編譯(Ubuntu)
$ cp mipseltools-gcc412-glibc261.tar.bz2 /opt $ cp u-boot-1.1.6.tar.bz2 /tmp $ cp u-boot-1.1.6-jz-20110719-r1728-FR1.patch.gz /tmp $ cd /opt $ tar xjf mipseltools-gcc412-glibc261.tar.bz2 $ export PATH=/opt/mipseltools-gcc412-glibc261/bin:$PATH $ cd /tmp $ tar xjf u-boot-1.1.6.tar.bz2 $ cd u-boot-1.1.6 $ gzip -cd ../u-boot-1.1.6-jz-20110719-r1728-FR1.patch.gz | patch -p1 $ make pisces_msc_config $ make
若編譯成功,則在UBoot根目錄可以找到mbr-uboot-msc.bin檔案,該檔案就是UBoot的Binary檔案,使用者可以使用Windows的WinHEX或者Linux的dd指令Clone到MicroSD,並且從SDCard0開機測試,司徒測試後的結果如下(Baudrate: 57600bps)
MMC init ok
從上面的開機訊息可以知道是從Flash Memory啟動的訊息,但是,司徒目前只能先測試SDCard0,因此需要更改成SDCard0啟動的方式,修改的地方位於include/configs/pisces.h檔案中的第38行,改成如下定義並且重新編譯一次即可
#ifdef CONFIG_MSC_U_BOOT #define CONFIG_MSC_TYPE_SD #endif
再度燒錄測試的結果如下(Baudrate: 57600bps)
SD card found! init ok U-Boot 1.1.6 (Jan 17 2013 - 22:58:30) Board: Ingenic Pisces (CPU Speed 1008 MHz) DRAM: 512 MB Ram size > EMC_LOW_SDRAM_SPACE_SIZE, set ram size = EMC_LOW_SDRAM_SPACE_SIZE: 256 MB Error: Unknown flash ID, force set to 'SST_ID_39SF040' Flash: 512 kB NAND:nand_get_flash_type: No NAND device found!!! NAND device: dev_id: 0x0000 ext_id: 0x000000 not known! nand_scan: No NAND device found!!! 0 MiB SD init ok *** Warning - MMC/SD first load, using default environment In: serial Out: serial Err: serial Net: JZ ETHERNET Hit any key to stop autoboot: 0 MSC readSD init ok 3145728 bytes OK: ## Booting image at 80600000 ... Bad Magic Number F4770 #
由上面的輸出訊息可以得知,目前的UBoot程式已經可以從SDCard0啟動,接著司徒就可以開始測試如何從SDCard(SDCard1)載入Kernel檔案。