เคอร์เนลไม่รู้จักบล็อกที่เสียหายของ NAND ที่ทำเครื่องหมายโดย u-boot

ขณะที่คุณบูตบอร์ดที่ใช้ ARM ของฉัน (DM368) ฉันทำเครื่องหมายเคอร์เนลพาร์ติชั่นบล็อกด้วยตนเองว่าแย่ U-boot บอกว่ามันถูกทำเครื่องหมายไว้ และตัวอย่างเช่น ในขณะที่เขียน/อ่านอิมเมจเคอร์เนล ฉันเห็นว่ามันข้ามบล็อกที่ไม่ดีนี้ไป

แต่เมื่อฉันพยายามเขียนพาร์ติชันเดียวกันจากภายใน Linux (โหลดผ่าน NFS) ฉันเห็นว่าคำสั่ง Linux nandwrite ใช้บล็อกที่ไม่ดีนี้! ฉันตรวจสอบสิ่งนี้หลายวิธี - Linux เพิกเฉยต่อเครื่องหมายบล็อกที่ไม่ดี 100% แต่ทุกที่ในอินเทอร์เน็ตมีการกล่าวกันว่า BBT เป็นหนึ่งสำหรับทั้ง u-boot และ Linux

แล้วที่จับอยู่ที่ไหน?


person leonp    schedule 10.10.2012    source แหล่งที่มา
comment
คุณเขียนพาร์ติชันอย่างไรและระบบไฟล์ที่อยู่ด้านบนคืออะไร?   -  person marko    schedule 10.10.2012
comment
ตกลง ฉันอยากจะสั้น...:-) ฉันต้องการอัปเดตเคอร์เนลจากภายในเคอร์เนล เคอร์เนลเริ่มต้นถูกเขียนโดย u-boot ซึ่งข้ามบล็อกที่ไม่ดี - ทดสอบโดยการทำเครื่องหมายบล็อกว่าไม่ดีและเขียนรูปภาพใหม่ ตอนนี้จากภายในเคอร์เนล (โหลดผ่าน NFS) ฉันอิมเมจเคอร์เนล nanddump3 ที่มี OOB โดยมี -bb=skipbad หนึ่งครั้งและไม่มี -bb - ผลลัพธ์ก็เหมือนกันทุกประการ ฉันยังสร้าง nandwrite3 -o แล้วเขียนกลับด้วย เมื่อไม่มีบล็อกที่ไม่ดีที่ถูกทำเครื่องหมายว่าเป็นการปลอมแปลง ทุกอย่างทำงานได้ดี แต่ตอนนี้เมื่อมีการทำเครื่องหมายบล็อกที่ไม่ถูกต้อง u-boot ไม่สามารถโหลดเคอร์เนลได้ - ข้อผิดพลาด CRC ขอขอบคุณสำหรับเวลาของคุณ.   -  person leonp    schedule 10.10.2012


คำตอบ (1)


ตกลงพบคำตอบแล้ว ด้วยเหตุผลบางอย่างที่ไม่ชัดเจน Texas Instruments ซึ่งเป็นผู้ผลิตบอร์ด DM365EVM ที่ฉันใช้สำหรับการพัฒนา ได้จัดเตรียมเคอร์เนลที่มีโครงสร้าง BBT ที่แตกต่างกัน พวกเขากำหนดออฟเซ็ต BBT เป็น 2 ในขณะที่ทั่วโลก รวมถึง u-boot ที่ให้มา ให้นิยามออฟเซ็ตนี้เป็น 8 ฉันขอให้พวกเขามีสุขภาพที่ดีไปหลายปี

person leonp    schedule 11.10.2012
comment
มีโอกาสใดบ้างที่คุณจะชี้ให้เราไปที่ไฟล์/บรรทัด/กำหนดตำแหน่งที่คุณต้องการทำการเปลี่ยนแปลง ฉันก็รู้ถึงความเจ็บปวดของโค้ดเบส SDK ของ Ti เช่นกัน และหวังว่าพวกเขาจะได้รับพรมากมาย - person John U; 24.01.2018
comment
ลองเข้าไปดูในไฟล์ board-dm365-dvr.c. มีคำจำกัดความของ struct nand_bbt_descr... - person leonp; 24.01.2018