ASUS EAH6450 Silent lỗi không hoạt động - thay thế chip

Moderator
Thành viên BQT
Bài viết
2,450
Điểm tương tác
198
Điểm
63

Sửa chữa card màn hình ASUS EAH6450 có lắp chip video 216-0809024 từ máy tính xách tay.​

- STRIDER · Đã xuất bản 01/09/2018 · Đã cập nhật01/09/2018


Xin chào, bài viết hôm nay nhằm kiểm tra khả năng lý thuyết và thực tiễn của việc cài đặt bộ xử lý đồ họa di động 216-0809024 vào card màn hình của máy tính để bàn. Mục đích của bài viết: kiểm tra khả năng tương thích phần cứng của chip, nghiên cứu sửa đổi phần mềm cần thiết của Video BIOS. Đối tượng thử nghiệm sẽ là một card màn hình bị lỗi từ máy tính để bàn - ASUS EAH6450 Silent .
ea6450_top


Thẻ video này đã bị xóa khỏi thiết bị hệ thống của khách hàng do lỗi GPU và sau đó đã được thay thế. Nhưng vì khách hàng từ chối nhận card màn hình cũ, bị lỗi. Đề cập đến sự vắng mặt của một nhu cầu như vậy. Cô ấy sẽ đóng vai trò là đối tượng thử nghiệm của chúng tôi.

Nội dung của bài viết

Vẻ bề ngoài.​

Card màn hình được sản xuất ở phiên bản cấu hình thấp với hệ thống làm mát thụ động. Bộ xử lý đồ họa AMD 215-0804000 và bộ nhớ video DDR3 512Mb được cài đặt.
eah6450_marking


Bức ảnh dưới đây cho thấy hệ thống làm mát được tháo dỡ. Bên cạnh bộ xử lý đồ họa bị hàn, bị lỗi 215-0804000 còn có một con chip 216-0809024, trước đó đã được tháo ra khỏi bo mạch chủ của máy tính xách tay của nhà tài trợ.
eah6450_rasborka


Dưới đây là hình ảnh lớn hơn của cả hai vi mạch. Có thể nhận thấy một loại chất nền hoàn toàn giống hệt nhau, một tinh thể silicon. Mặc dù có sự khác biệt đáng kể về dấu hiệu, cả hai vi mạch đều dựa trên cùng một lõi đồ họa - Caicos, phiên bản di động của nó được gọi là Seymour. Giải pháp này được giới thiệu ra thị trường vào năm 2011 để thay thế cho giải pháp đã lỗi thời - Cedar.
eah6450_bad_chip_215-0804000


Cả phiên bản di động (Seymour) và phiên bản dành cho máy tính để bàn (Caicos) đều có thành phần chức năng và tính toán giống hệt nhau của vi mạch. Có sự khác biệt 50 MHz trong tần số xung nhịp của các đơn vị đổ bóng, nhưng điều này không đáng kể và cũng có thể được sửa đổi ở cấp độ phần mềm nếu cần thiết.
Trong trường hợp có sự khác biệt đáng kể về kiến trúc và tần số mặc dù có bao bì chip giống hệt nhau. Cần phải thực hiện các sửa đổi phần cứng quan trọng hơn, chẳng hạn như thêm chip bộ nhớ, tăng sức mạnh của bộ chuyển đổi dc\dc, cải thiện khả năng làm mát, v.v. Những thay đổi đáng kể thường là không thể và theo tôi là vô nghĩa.
Về card màn hình của chúng tôi, chúng tôi cần thay thế GPU bằng việc chỉnh sửa Video BIOS. Để hỗ trợ và chạy chip di động 216-0809024, có ID phần cứng khác. Điều này hoàn toàn có thể thực hiện được.

Cài đặt GPU 216-0809024.​

Hãy bắt đầu! Đầu tiên, hãy thay đổi bộ xử lý đồ họa. Ảnh bên dưới hiển thị chip di động 216-0809024 được cài đặt trên card màn hình của máy tính để bàn. Và bên cạnh nó (bên phải) là một vi mạch bị lỗi đã bị tháo dỡ.
eah6450_good_chip_216-0809024


Sau khi cài đặt chip, hãy đợi cho nó nguội hoàn toàn. Chúng tôi kiểm tra điện trở so với mặt đất dọc theo các mạch cung cấp chính và đường tín hiệu. Để tránh làm hỏng các thiết bị khác. Chúng tôi kết nối card màn hình với bo mạch chủ của máy tính để bàn. Bật lên... Và, im lặng. Không có hình ảnh trên màn hình, không có tín hiệu từ bo mạch chủ cho biết không có card màn hình. Tại sao? Tất cả là về các mã nhận dạng phần cứng được gắn vào chính con chip, hay nói đúng hơn là sự khác biệt của chúng. Vì chip đang được cài đặt là id6760 và chip có trên bo mạch trước khi thay thế là id6779.
Do đó, để chạy ID mới, bạn cần thay đổi BIOS Video. Được ghi trong ROM của card màn hình. Đây là một con chip nhỏ, riêng biệt trong gói SOIC-8 phẳng.
eah6450_eeprom


Để đọc, thay đổi và ghi chương trình cơ sở Video BIOS mới. Bạn sẽ cần phải hàn nó lại và làm việc với lập trình viên. Hỗ trợ làm việc với EEPROM và SPI-FLASH.

Sửa đổi phần mềm của Video BIOS.​

Lý thuyết​

Bằng cách đọc phần sụn được ghi trong ROM của card màn hình. Nó phải được mở trong trình soạn thảo Hex. Trong bài viết này tôi đã sử dụng cái miễn phí - HxD. Nhưng bạn có thể sử dụng bất kỳ cái nào bạn đã quen.
Chúng tôi có Video BIOS, chúng tôi có chương trình chỉnh sửa. Chúng tôi biết mình cần thay đổi điều gì. Vẫn còn phải hiểu nơi để tìm những giá trị này và những gì cần thay đổi. Trên thực tế, đây là một chủ đề khá sâu sắc. Tôi sẽ cố gắng giải thích các tiêu chuẩn và nguyên tắc hoạt động chung của thiết bị PCI một cách ngắn gọn nhất có thể. Để hiểu những gì chúng ta sẽ thay đổi trong mã.
Trên mỗi card mở rộng yêu cầu thao tác trước khi tải hệ điều hành chính. Có một mô-đun ROM mô tả loại, kiểu máy và chức năng của thiết bị. Đối với hoạt động của nó trong hoặc sau thủ tục POST.
Hình dáng của nó được quyết định bởi tiêu chuẩn PCI ROM và có cấu trúc được trình bày trong bảng. Các giá trị offset được trình bày bắt đầu bằng chữ ký " PCIR " để tìm kiếm dễ dàng hơn. Chức năng của thiết bị được mô tả từ chữ ký này. Điều này phải được ghi nhớ!
thiên vịĐộ dài tính bằng byteMục đích
0 giờ2ID nhà sản xuất
2 giờ2ID thiết bị
4 giờ2Trạng thái thiết bị
6h2Lệnh thiết bị
8h1Sửa đổi thiết bị
9h1Đăng ký cấp độ lập trình
À1Lớp con thiết bị
Bh1Lớp thiết bị
ch1Kích thước bộ đệm hệ thống cho thiết bị
Dh1Giá trị hẹn giờ trễ
Ơ1Số lượng chức năng của thiết bị
Fh1đăng ký BIST
10h4Địa chỉ cơ sở #0 (BAR0)
14h4Địa chỉ cơ sở số 1 (BAR1)
18h4Địa chỉ cơ sở số 2 (BAR2)
1Ch4Địa chỉ cơ sở số 3 (BAR3)
20h4Địa chỉ cơ sở số 4 (BAR4)
24 giờ4Địa chỉ cơ sở số 5 (BAR5)
28h4Dành cho thiết bị Bus Card PCI + kết hợp
2Ch4Mã định danh đã đăng ký PCI SIG


Dựa trên dữ liệu từ bảng, chúng ta có thể hiểu rằng chúng ta quan tâm đến byte định danh thiết bị. Độ lệch của chúng so với chữ ký “PCIR” là 2h, kích thước là 2 byte. Theo đó, chúng tôi sẽ xem xét và chỉnh sửa một đoạn có độ lệch là 2h-4h.












Đối với các địa chỉ đã cho, chúng tôi có giá trị thập lục phân “7967”. Nhưng vì dữ liệu được trình bày theo thứ tự Little-endian (từ nhỏ nhất đến lớn nhất). Khi đó, giá trị thực của mã nhận dạng thiết bị ở dạng thông thường của chúng ta sẽ trông giống như “6779”, tương ứng với mã nhận dạng phần cứng của chip 215-0804000.
Big-endian - thứ tự byte từ lớn đến nhỏ. Thứ tự byte này quen thuộc hơn với cách đọc của chúng ta và được sử dụng cho mục đích sử dụng cấp cao. Ví dụ: trong Windows hoặc giao thức TCP/IP .
Little-endian - sắp xếp từ nhỏ nhất đến lớn nhất. Thứ tự này không quen thuộc với con người. Nhưng nó được chấp nhận và sử dụng trong RAM của máy tính dựa trên kiến trúc x86, tức là Intel hoặc AMD .

Luyện tập.​

Nhưng chúng tôi đã cài đặt một con chip có mã định danh “6760” trên bo mạch. Và chúng ta sẽ thay đổi giá trị 79 67 thành 60 67 cho phù hợp . Chúng tôi tìm kiếm chữ ký “ PCIR ”, đếm 2 byte và thay đổi giá trị “79” thành “60”. Có, chỉ cần thay đổi hai số như trong ảnh bên dưới!
eah6450_mod_bios_id


Nói chung, mọi thứ đã sẵn sàng! Lưu tập tin, flash chip và kiểm tra. Nhưng không! Khi sửa đổi mô-đun, phần sụn, v.v. Theo thông lệ, người ta thường điều chỉnh tổng kiểm tra theo giá trị đã có trước khi mã được sửa đổi. Làm sao tôi có thể giải thích điều này...
Nói một cách đơn giản, điều này là cần thiết trong trường hợp kiểm tra tính toàn vẹn của phần sụn và trong trường hợp sửa đổi cấu trúc mô-đun đã được đóng gói. Vì việc thực thi nhiều lệnh cấp thấp được gắn với một khoảng bù cụ thể. Đôi khi bạn có thể làm mà không cần nó. Nhưng việc sửa nó ngay sẽ dễ dàng hơn là hàn lại chip và vẫn chỉnh sửa tổng kiểm tra.

Tổng kiểm tra.​

Để chỉnh sửa nó, đương nhiên cần phải biết ý nghĩa của nó trước khi sửa đổi. Việc này do lập trình viên thực hiện nhưng bạn cũng có thể tính toán bằng chương trình - File\Analysis\Checksums\Checksum-16\OK.
eah6450_mod_bios_src_Checksum-16


Kết quả sẽ là một khung ở cuối chương trình với số tiền được tính toán. Đối với chúng tôi đó là “0D00”.
eah6450_mod_bios_src_Checksum-16_0D00


Và theo đó, sau khi sửa đổi sẽ có kết quả tương tự.
Để làm điều này, chúng tôi nhớ lại những thay đổi đã thực hiện. Chúng tôi đã đổi “79” thành “60”. Ký tự đầu tiên của byte đã thay đổi một giá trị trở xuống và ký tự thứ hai là 9.
Điều này có nghĩa là để sửa số lượng trong tệp của chúng tôi, cần phải tăng ký tự đầu tiên của một trong các byte lên một giá trị và ký tự thứ hai lên 9. Có, để nó không ảnh hưởng đến hoạt động của phần sụn. Để làm điều này, tôi sử dụng byte chứa thông tin văn bản về ngày phát hành hoặc phiên bản chương trình cơ sở
Trong ảnh bên dưới, tôi thay đổi byte “30” thành “49”. Và chúng ta thấy rằng trong trường văn bản bên phải, số 0 đã đổi thành chữ “I” viết hoa. Nhưng điều này sẽ không ảnh hưởng đến hoạt động của thiết bị, đó là điều bắt buộc.
eah6450_mod_bios_src


Chúng tôi tính toán tổng kiểm tra một lần nữa. Nếu mọi thứ đều chính xác, hãy lưu tệp kết quả. Chúng tôi flash nó vào vi mạch. Sau khi flash firmware, lập trình viên lịch sự báo cáo tổng kiểm tra.
eah6450_programming.jpg


Chúng tôi hàn lại chip ROM vào card màn hình của mình. Chúng tôi lắp nó vào bo mạch chủ của máy tính và thử bật nó lên.
Card màn hình đã bắt đầu hoạt động, đây là ảnh chụp màn hình của AIDA trong phần “bộ xử lý đồ họa”. Nhân tiện, hãy chú ý đến “Phiên bản BIOS” trong ảnh chụp màn hình. Ở đó, thay vì chỉ định phiên bản kỹ thuật số, chữ “I” của chúng tôi xuất hiện, nhờ đó chúng tôi đã điều chỉnh tổng kiểm tra phần sụn.
eah6450_aida


Dưới đây là các bãi chứa được mô tả trong bài viết. Bạn có thể tải chúng xuống và tự làm quen với những thay đổi.
Tải xuống kết xuất eah6450_dump.zip

Phần kết luận.​

Có thể cài đặt bộ xử lý đồ họa di động trên card màn hình của máy tính để bàn. Máy tính của tôi với card màn hình này vẫn hoạt động cho đến ngày nay (2 tháng), mọi thứ đều ổn định. Bài viết này chỉ được viết trên đó.
 
Top