¶óÁ¸® ÆÄÀ̸¦ ÀÌ¿ëÇÑ Z620 ºÎÆ®ºí·° ¾÷µ¥ÀÌÆ®
책상위에서 먼지가 쌓여가는 라즈베리 파이에도 3.3V SPI가 제공됩니다.
민현기님께서 공유해주신 내용을 바탕으로.. (다시 한번 감사드립니다)
라즈베리 파이로 Z620 보드 부트블럭 업데이트하는 방법을 간단히 정리해봅니다.
1. 준비물
- 라즈베리 파이 (라즈비안 기준)
- SOP16 to DIP8 테스트 클립
- female to female 점퍼선 6개
- J61_0394.BIN 파일
2. 사전 작업
민현기님 글을 참고해서 BIOS와 ME FW를 업데이트하고, 전원을 분리 후 잔류 제거합니다.
라즈베리 파이 터미널에서 raspi-config를 사용하거나, GUI에서 Rasberry Pi Configuration을 이용해서 SPI를 활성화합니다.
3. 라즈베리 파이에 테스트 클립 연결
라즈베리 파이 pinout(40핀 B/B+ 기준)과 DIP8 쪽보드 pinout을 점퍼선으로 아래와 같이 연결합니다:
- 17 (3.3V) - 8 (VCC)
- 19 (SPI_MOSI) -> 5 (DI)
- 20 (GND) -> 4 (GND)
- 21 (SPI_MISO) -> 2 (DO)
- 23 (SPI_SCLK) -> 6 (CLK)
- 24 (SPI_CE0) -> 1 (/CS)
3번 7번 핀은 연결하지 않습니다.
4. 라즈베리 파이 터미널에서 업데이트 작업
먼저 flashrom utility가 없다면 설치합니다(네트웍 연결 필요):
$ sudo apt install flashrom
클립이 제대로 찝혔는지도 확인할 겸, chip detect를 30MHz로 시도해봅니다:
$ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=30000 -V
flashrom의 DB에는 Winbond 25Q128BVFG가 없는 것 같지만, 아래와 같은 내용이 출력되면 됩니다:
Found Winbond flash chip "W25Q128.V" (16384 kB, SPI)
일단 현재의 flash의 내용을 dump 해봅니다:
$ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=30000 -r flash-v1.bin
flash의 내용과 일치하는지 한번 비교도 해봅니다:
$ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=30000 -v flash-v1.bin
여기서 VERIFIED가 출력되어야 합니다. FAILED가 출력되면 클립을 다시 체결하고 다시 dump 합니다.
boot block 부분을 잘라낸 flash-v2.bin 파일을 생성합니다:
$ head -c 16320K flash-v1.bin > flash-v2.bin
J61_0394.BIN 파일에서 boot block 부분만 flash-v2.bin 파일에 추가합니다:
$ tail -c 64K J61_0394.BIN >> flash-v2.bin
아래와 같은 내용으로 layout.txt 파일을 생성합니다:
00000000:00feffff bios
00ff0000:00ffffff boot
flash-v2.bin 파일의 내용 중 boot block 부분만 업데이트합니다:
$ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=30000 -l layout.txt -i boot -w flash-v2.bin
제대로 업데이트가 됐는지 검사합니다:
$ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=30000 -v flash-v2.bin
VERIFIED가 출력되면 잘 된 것입니다. FAILED가 출력되면 처음 dump 부터 다시 시도해야 할 것 같습니다.
5. System Information 확인
전원을 넣고 BIOS에 들어가서 System Information의 Boot Block Date가 "03/06/2013"인지 확인합니다.
---
업데이트 한 보드에 E5-2643 v2 두개와 PC3-14900R 모듈 12개 풀로 장착해봤습니다. 아무 문제없이 잘 동작합니다.
À̰͵µ ¸ÚÁý´Ï´Ù. ÇÏÇÏÇÏ
·Ò¶óÀÌÆ®±â ±¸ÀÔÀ» ¾ÈÇصµ.... ÇÏÇÏÇÏ
¿ª½Ã ÀÌ °÷¿¡´Â °í¼ö´ÔµéÀÌ ¸¹½À´Ï´Ù. ÇÏÇÏÇÏ
̵̧!
Àú¹ø vpn¼¹ö¿¡ ÀÌ¾î ºÎÆ®ºí·Ï ¸®ÇÁ·¹½Ì±îÁö. ...
ÀÌÁ¦ ¶Ç ¾î¶² ÀÀ¿ëÀÌ ³ª¿Ã±î¿ä ¤»¤»
¾÷ÈúÀÔ´Ï´Ù.
Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0x80, id2 0x2020
Found Generic flash chip "unknown SPI chip (RDID)" (0 kB, SPI) on linux_spi.
Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0x0, id2 0x20
Found Generic flash chip "unknown SPI chip (RDID)" (0 kB, SPI).
ÀÌ·¸°Ô ¶ß´Âµ¥¿ä. ¹¹°¡ À߸ø µÇ¾ú´ÂÁö Ŭ¸³À» ´Ù½Ã °áÇÕÇصµ µ¿ÀÏÇϳ׿ä
Found Winbond flash chip "W25Q128.V" (16384 kB, SPI)
ÀÌ ¸Þ½ÃÁö°¡ ¾È³ª¿À³×¿ä
¶óÁ¸®ÆÄÀÌ ¿¡¼´Â °è¼Ó Àú »óÅ ÀÔ´Ï´Ù. (Found Generic flash chip "unknown SPI chip (RDID)" (0 kB, SPI). )
¿¬°á Çɵµ ÀçÂ÷ È®ÀÎ Çß±¸¿ä
Probing for Winbond unknown Winbond (ex Nexcom) SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0xef, id2 0x17
Found Winbond flash chip "W25Q128.V" (16384 kB, SPI).
id1, id2 °ªÀÌ ³Ê¹« ´Ù¸¥µ¥¿ä. Ȥ½Ã ¸ð¸£´Ï 30MHz ¸»°í.. Á» ³·Ãç¼ 10MHz Á¤µµ·Î ½ÃµµÇغ¸¼¼¿ä.
À̰͵µ ¿ª½Ã ¹Ýº¹ ÀÛ¾÷À» ÇØ ºÁ¾ß µÇ³×¿ä