Archive for the uboot Category

Announce U-Boot for Kontron SAMX6I

Posted in ARM, uboot with tags , , , , on 2016 年 07 月 07 日 by Kun-Yi

bToday I have push an u-boot for support Kontron sAMX6i  iMX6Q

The version just verify on IMX6Q with 1GB configuration for booting success original Linux system

you can following the  below instructions to build up your binary to replace default bootloader

git clone https://github.com/KunYi/uboot-samx6i
cd uboot-samx6i
# setup cross compiler environments, use Yocto toolchains
source ~/yocto/toolchain/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
make distclean
make samx6i_defconfig
make -j8

Okay,  you can get u-boot.imx now, I use the below method to replace original bootloader

  1. connect UART1 to host computer and run minicom for operation u-boot commands
  2. format Micro SD for FAT, the put u-boot.imx file on the micro sdcard
  3. plug the Micro SD into slot of carrier board
  4. power on system and press any key on host to interrupt booting
  5. run the below commands for upgrade bootloader
  • mmc dev 1
  • fatload mmc 1:0 0x10800000 u-boot.imx
  • sf probe
  • sf erase 0 0xc0000
  • sf write 0x10800000 0x400 $filesize
  • reset

all complete, should be reboot from new bootloader now

Note: U-Boot update read from SD card then write into SPI Flash

Posted in ARM, uboot, 未分類 with tags , on 2015 年 11 月 30 日 by Kun-Yi

這兩天拿到一張 IMX 的 SMARC 版子,想要弄Android 但是只有Freescale 的codebase ,所以從u-boot 開始搞起。

接上 console 後,測試版上的u-boot 發現需要更新到新版本,研究一下u-boot 現在可以自我更新,嘗試了一下發現按照下面的command 順序即可

  1. mmc dev 1  # 切換mmc 到那一個slot
  2. mmcinfo   # 可以確認是否有認到sdcard
  3. fatload mmc 1 0x10800400 u-boot.bin # 讀SD card 上的u-boot.bin 到DRAM中, 讀完會有檔案大小
  4. sf probe
  5. sf erase 0 0x200000 # erase all
  6. sf write 0x10800000  0 0x58000 # 0x58000 是檔案大小 + 1024(0x400), 注意第三步已經偏移了 0x400, 這是IMX6的需求
  7. reset

Note: Build U-boot for Panda board

Posted in ARM, OMAP4, uboot on 2011 年 02 月 14 日 by Kun-Yi

Sourcery G++ Lite 2010.09-50 (gcc 4.5.1)去 build u-boot, 會發現console顯示的記憶體大小都為零, 追了一下code, 發現問題出現在 int dram_init(void)/omap4.c 內, 當程式設定 gd->bd->bi_dram[0] 都無正確的結果, 但是取address是正確的,

之後用cast pointer去寫值驗證是成功, 但是用 gd->bd->bi_dram[0] 將會不正常, 推測是 u-boot用的optimazation 的技巧(keyword: DECLARE_GLOBAL_DATA_PTR ), 在新的gcc 4.5.1上產生了問題, 這問題, 基本上可以用 objdump 去double check, 但是懶的查, 就換了成舊的 Sourcery G++ Lite 2009q1-203 (gcc 4.3.3), 換成該版是因為很多人說 gcc 4.4的版本問題也很多

  • make distclean  # clean all objects
  • make CROSS_COMPILER=arm-none-linux-gnueabi- omap4430panda_config # setting config file for Pandaboard
  • make CROSS_COMPILER=arm-none-linux-gnueabi- # build u-boot.bin

然後在u-boot目錄內執行上述指令就可以得到 u-boot.bin

使用的 u-boot repository 是 git://git.omapzoom.org/repo/u-boot.git

目前Ti 正在implement from EFI Partitions load OS image, 所以這邊待修正