20160621_jeffrey - silenceuncrio/diary GitHub Wiki

Index

0930

morris 提到關於 NAND Flash 的 issue

SW601 boot device settings

image

SW601 boot device settings - table

image

NAND Boot Fusemap

image

由 M300 的線路圖可以知道 SW601 boot device settings 與 BOOT_CFG1 之間的關係如下

  • BOOT_CFG1[0] - SW601 D1
  • BOOT_CFG1[1]
  • BOOT_CFG1[2]
  • BOOT_CFG1[3]
  • BOOT_CFG1[4]
  • BOOT_CFG1[5] - SW601 D2
  • BOOT_CFG1[6] - SW601 D3
  • BOOT_CFG1[7] - SW601 D4

需要注意的是 BOOT_CFG1[5:4] - Pages in Block:

  • 00 - 128
  • 01 - 64
  • 10 - 32
  • 11 - 256

EVK 預設是 BOOT_CFG1[5:4] - 11 - 256 pages in block

但我們使用的並不是 EVK 所建議的 Flash, 我們用的是 MX30LF1G18AC - 3V, 1G-bit NAND Flash Memory

The MX30LF1G18AC array is organized as thousands of blocks, which is composed by 64 pages of (2,048+64) byte in two NAND strings structure with 32 serial connected cells in each string.

搭配的 BOOT_CFG1[5:4] 應該是 01 - 64 pages in block
亦即 BOOT_CFG1[5], 也就是 SW601 D2 應該是 0

1025

先 review 昨天做了什麼

1125

Managing flash storage with Linux 這篇文章真的讓我獲益良多

該作者的另一篇文章 mkenvimage: a tool to generate a U-Boot environment binary image 裡有我想要的資訊

Many embedded devices these days use the U-Boot bootloader.
This bootloader stores its configuration into an area of the flash called the environment that can be manipulated from within U-Boot using the printenv, setenv and saveenv commands, or from Linux using the fw_printenv and fw_setenv userspace utilities provided with the U-Boot source code.

我們可以從 Linux 的 userspace 使用 fw_printenvfw_setenv 來修改 U-Boot 的 configuration
這樣我們就可以得到一種 U-Boot 與 Linux 雙向溝通的方式

禮拜五的 proposal 應該可以交的出來了
不過更應該利用這個 proposal 來收集實作的方式並把 proposal 當成是一個 checking list
這一陣子真的可以感受到 Linux 的博大精深

1305

繼續寫 proposal - m300_proposal_uboot_imageLayout_NANDFlash_jeffrey

1505

剛剛看了這個視頻 - U-Boot: Hush Shell, Scripting
體會到 U-Boot 能做的事
不過自己需要多練習才能熟悉怎麼去讓 U-Boot 做事情

1720

Efm Bridge 上面的 mac filter 功能需要我幫忙 - target date 是六月底

1725

jammy 好情報分享 - How-To use NAND boot on i.MX6UL EVK board