Índice
Uma das reclamações mais comuns sobre placas chinesas LGA2011‑3/X99 é a falta de controles manuais de timing de memória na BIOS. Essa funcionalidade quase sempre está presente dentro do firmware — ela só está oculta e inacessível pelos menus normais do Setup. Este guia mostra como expô-la.
Esta é a versão em texto do guia em vídeo do Koshak, disponível neste link (YouTube).
⚠️ Isenção de responsabilidade. Como sempre, não há garantia de resultados, e você assume total responsabilidade pelo que faz na sua própria placa.
Esteja ciente de que, se algo der errado, gravar uma BIOS com defeito muito provavelmente vai brickar a placa; a recuperação só será possível com um programador de hardware — não existe fallback por software depois que uma imagem defeituosa é gravada.
Para quem é este guia
Placas que usam o firmware AMI Aptio V em placas-mãe chinesas X99 (LGA2011‑3) — Huananzhi, Jingsha, Kllisre, Machinist, Qiyida, JGINYUE, e os diversos rebrandings/clones que compartilham as mesmas bases de firmware. Muitas dessas placas saem de fábrica a partir do mesmo punhado de imagens de BIOS base, e é por isso que exatamente os mesmos QuestionIDs e padrões hexadecimais deste guia (0xC05/0xC06, 6710/9000) aparecem em placas de marcas completamente diferentes.
Por que isso funciona
No firmware AMI Aptio V, a interface de usuário “Setup” da BIOS é um conjunto de formulários descritos por IFR (Internal Forms Representation) dentro do módulo Setup/Platform. Cada controle tem um QuestionID, e o AMITSESetupdata informa ao Text Setup Engine (TSE) quais formulários estão visíveis e como estão vinculados na árvore de menus. Em muitas placas X99 chinesas, o formulário “Memory Timings & Voltage Override” existe no firmware, mas simplesmente não está vinculado a nenhum menu visível (e/ou seu acesso está restrito), então você não consegue alcançá-lo.
- Este guia extrai os módulos relevantes (Platform e AMITSESetupdata), lê o IFR para encontrar os QuestionIDs corretos e edita alguns identificadores de 16 bits para que o formulário oculto seja vinculado em “Memory Configuration”.
- Não estamos adicionando código novo; estamos expondo um formulário já existente ao alterar o roteamento/visibilidade do menu. É por isso que funciona em muitas bases de BIOS semelhantes, desde que você localize os IDs corretos para a sua build.
- IDs e offsets exatos variam entre revisões de BIOS. Por isso o processo começa com a análise do IFR para descobrir seus próprios QuestionIDs antes de fazer o patch dos padrões de bytes no AMITSESetupdata e no Platform.
Antes de começar
- Faça backup da sua imagem de BIOS completa (16 MB) usando qualquer método suportado pela sua placa — seja via software (Intel FPT, AFUWIN, AFUDOS) ou um programador SPI externo.
- Confirme seu método de gravação com antecedência. Certifique-se de que consegue tanto ler quanto gravar no seu chip usando a ferramenta escolhida antes de aplicar qualquer modificação.
- Baixe os softwares necessários.
Softwares necessários
| Ferramenta | Finalidade | Versão usada neste guia |
|---|---|---|
| AMIBCP 5 | Navegar pela árvore de menus do Setup, verificar o estado antes/depois | 5.02.0034 |
| Editor hexadecimal | Aplicar o patch nos módulos extraídos | HxD (qualquer editor hexadecimal confiável funciona) |
| UEFITool | Extrair/substituir módulos dentro da imagem da BIOS | 0.28.0 |
| IFRExtractor | Extrair formulários IFR em texto, encontrar QuestionIDs | 0.3.6 |
Você pode encontrar todos os softwares necessários neste canal do Telegram.
Passo 1 — Confirme que o menu de timing de memória existe, mas está oculto
No AmiBCP, abra o dump da sua BIOS, expanda o nó “IntelRCSetup” e você verá o padrão típico de firmwares chineses: o item “Memory Timings & Voltage Override” está visível em “IntelRCSetup”, mas o acesso a ele está bloqueado — não é possível alcançá-lo pelo menu principal.
O nosso objetivo é mover “Memory Timings & Voltage Override” para o menu “Memory Configuration”.
Passo 2 — Extraia os dois módulos com o UEFITool
Abra o dump da sua BIOS no UEFITool. Estamos interessados em dois módulos: “Platform” e “AMITSESetupdata”. Ambos os módulos ficam em “Intel Image” > “Bios Region” > o penúltimo ramo expansível.
Algumas versões do UEFITool/firmwares de placas rotulam o ramo de nível superior como “UEFI image” em vez de “Intel Image”. Se você não vir “Intel Image”, procure por “UEFI image” — é a mesma coisa com outro nome.
Encontre o módulo “Platform”, expanda-o até chegar em “PE32 image”. Depois clique com o botão direito e escolha “Extract body”. Salve o arquivo como “pl.bin”.
Encontre o módulo “AMITSESetupdata”, expanda-o até chegar em “Freeform subtype GUID”. Depois clique com o botão direito e escolha “Extract body”. Salve o arquivo como “fe.bin”.
É melhor não fechar o UEFITool — vamos precisar dele novamente no Passo 5.
Passo 3 — Encontre seus QuestionIDs com o IFRExtractor
Abra o IFRExtractor e carregue o arquivo “pl.bin” que você salvou no passo anterior. Depois de clicar em “Extract”, o utilitário salvará um arquivo de texto chamado “pl IFR.txt” na mesma pasta.

Abra-o e procure pela string “memory frequency”. Ela pode aparecer várias vezes no arquivo; estamos interessados na primeira ocorrência.
Anote o valor do QuestionID (no nosso exemplo, é 0xC05). Também vamos precisar do próximo “QuestionID”, no nosso caso 0xC06.
Se você também vir 0xC05 e 0xC06 na sua placa, é bem provável que esteja em uma das bases de BIOS chinesas mais comuns (compartilhada por muitas placas derivadas de Jingsha/Kllisre) — e o restante deste guia deve se aplicar quase byte a byte.
Convertendo o QuestionID para o padrão hexadecimal que você vai procurar
Você precisa de cada QuestionID como uma string hexadecimal de 4 dígitos com bytes invertidos:
- Complete o QuestionID com zeros até ter 4 dígitos hexadecimais (zero à esquerda, se necessário): 0xC05 → 0C05.
- Divida em pares de bytes: 0C 05.
- Inverta a ordem dos bytes: 05 0C.
- Concatene: 050C.
Alguns exemplos para clarear: 0xC36 → 360C; 0xC78 → 780C; 0xCB3 → B30C.
Vamos usar uma tabela para acompanhar esses valores — certifique-se de criar sua própria tabela e preenchê-la com os IDs exatos que você descobrir na sua BIOS, para não se confundir depois.
| Célula | O que é | Valor |
|---|---|---|
| V1 | QuestionID #1 (0xC05, convertido) | 050C |
| V2 | QuestionID #2 (0xC06, convertido) | 060C |
Passo 4 — Aplique o patch em ambos os módulos no editor hexadecimal
Abra os dois módulos salvos anteriormente: pl.bin e fe.bin.
4a. Faça primeiro o patch do fe.bin
Procure pelo valor hexadecimal “81000000”.
Observe os 12 caracteres à direita do valor encontrado. No nosso caso, são 6710, 9000 e 1D00 (seus valores podem ser diferentes).
Anote 6710 na sua tabela de acompanhamento. Ao lado, adicione 6910 — calculado somando 0x200 a 6710. Você também vai precisar anotar 9000 (sem necessidade de cálculo aqui) e 1D00 para os próximos passos.
💡 Como Funciona a Soma Hexadecimal (+0x200)
O sistema hexadecimal (base 16) usa os números 0–9 e as letras A–F. Somar 0x200 simplesmente aumenta em 2 o segundo dígito a partir da esquerda:
6710+200=6910(7 + 2 = 9)6D10+200=6F10(D + 2 = F, onde D=13 e F=15)
📌 Dica: Se tiver dúvidas, abra a Calculadora do Windows, mude para o modo Programador, selecione HEX e faça a soma por lá.
Os mesmos dados em forma de tabela (valores V1–V2 mantidos do Passo 3, mais os novos deste passo):
| Célula | O que é | Valor |
|---|---|---|
| V1 | QuestionID #1 (0xC05, convertido) | 050C |
| V2 | QuestionID #2 (0xC06, convertido) | 060C |
| V3 | Valor encontrado no fe.bin (à direita de 81000000) | 6710 |
| V4 | V3 + 0x200 | 6910 |
| V5 | Segundo valor encontrado no fe.bin (à direita de 81000000) | 9000 |
| V6 | Terceiro valor encontrado no fe.bin (à direita de 81000000) | 1D00 |
Volte ao editor hexadecimal. Agora procure pelo valor salvo anteriormente 050C (Célula V1), mas antes converta-o para 0000050C0000, adicionando quatro zeros no início e quatro zeros no final.
Agora observe com atenção a imagem abaixo e faça as áreas próximas ao valor hexadecimal encontrado corresponderem exatamente a ela. Note que os valores destacados em vermelho vêm da nossa tabela, enquanto os valores destacados em azul devem ser definidos exatamente como no screenshot, independentemente da sua placa.
Agora faça a mesma operação para o valor 060C (Célula V2), que também convertemos para 0000060C0000.
Em seguida, procure novamente por 0000050C0000 (Célula V1 com quatro zeros antes e quatro zeros depois). Desta vez, preste atenção aos quatro caracteres destacados com uma moldura verde: 8A00. Adicione-os à tabela.
| Célula | O que é | Valor |
|---|---|---|
| V1 | QuestionID #1 (0xC05, convertido) | 050C |
| V2 | QuestionID #2 (0xC06, convertido) | 060C |
| V3 | Valor encontrado no fe.bin (à direita de 81000000) | 6710 |
| V4 | V3 + 0x200 | 6910 |
| V5 | Segundo valor encontrado no fe.bin (à direita de 81000000) | 9000 |
| V6 | Terceiro valor encontrado no fe.bin (à direita de 81000000) | 1D00 |
| V7 | Valor da moldura verde (encontrado ao procurar pela Célula V1 com quatro zeros antes e quatro zeros depois) | 8A00 |
Lembra do valor hexadecimal “81000000” que buscamos antes? Procure por ele novamente.
À direita do valor encontrado, ainda temos 6710 (Célula V3), 9000 (Célula V5) e 1D00 (Célula V6). Substitua 1D00 (Célula V6) por 8A00 (Célula V7).
Com isso, finalizamos as alterações no “fe.bin”. Salve o arquivo e siga para o “pl.bin”.
4b. Faça o patch do pl.bin
Procure pelo valor hexadecimal “050C” (Célula V1). Ele vai aparecer várias vezes no arquivo; precisamos da instância que é precedida por caracteres semelhantes ao nosso “67106910” (Célula V3 e V4).
Tenha em mente que dificilmente você verá esses valores exatos. Você deve selecionar a entrada que mais se parece com os seus próprios valores extraídos na sua tabela.
Depois de pesquisar um pouco, encontramos a seção correta:
Substitua os caracteres por “67106910” (Célula V3 e V4):
Agora repita todo o procedimento de busca e substituição, mas para o valor hexadecimal “060C” (Célula V2):
Isso conclui as alterações no arquivo “pl.bin”. Salve suas alterações.
Passo 5 — Reinsira os módulos com patch usando o UEFITool
Volte ao UEFITool e localize os dois módulos: “Platform” e “AMITSESetupdata”.
Para o módulo “Platform”, expanda-o até “PE32 image”. Depois clique com o botão direito e escolha “Replace body”. Selecione o “pl.bin” recém-modificado.
Para o módulo “AMITSESetupdata”, expanda-o até “Freeform subtype GUID”. Depois clique com o botão direito e escolha “Replace body”. Selecione o “fe.bin” recém-modificado.
Agora salve sua BIOS modificada com um novo nome (File > Save image file) — não sobrescreva o seu dump original.
Passo 6 — Verifique no AMIBCP antes de gravar
Abra a BIOS que você acabou de salvar e confirme que o menu de controle de timing de memória apareceu e está acessível a partir do item “Memory Configuration”.

É isso. Tudo o que resta é gravar sua BIOS modificada usando qualquer método adequado para a sua placa.
Verificações após a gravação
- Desligue completamente, limpe a CMOS (jumper ou bateria), depois ligue e entre na BIOS.
- Carregue as configurações otimizadas padrão (Optimized Defaults), salve e saia (Save & Exit), depois entre novamente na BIOS.
- Navegue até Advanced → Memory Configuration e confirme que “Memory Timings & Voltage Override” agora está visível e selecionável.
- Abra o menu e confirme que os campos de timing (por exemplo, tCL, tRCD, tRP, tRAS, Command Rate) estão presentes e editáveis — não apenas um menu suspenso de frequência.
- Se o menu estiver ausente ou abrir uma página em branco, volte para a sua BIOS de backup e reconfira os IDs/offsets que você editou (veja a Solução de Problemas abaixo).
- Depois de aplicar timings personalizados e salvar as alterações na BIOS, inicie o sistema operacional e verifique se os novos valores foram realmente aplicados usando ferramentas como o CPU-Z (aba Memory) ou o AIDA64. Depois de confirmar, rode um teste de estabilidade para garantir que o sistema está completamente estável.
Solução de problemas
Não consigo encontrar o módulo “Platform” no UEFITool.
Verifique em um ramo chamado “UEFI image” em vez de “Intel Image” — algumas combinações de firmware/UEFITool usam esse rótulo. Se nenhum dos dois existir, sua placa pode usar uma base de firmware diferente da que este guia aborda.
O menu aparece depois de gravar, mas mostra apenas um menu suspenso de frequência — sem timings reais.
Provavelmente você vinculou o formulário errado. Volte ao Passo 3 e confirme que usou a primeira ocorrência de “memory frequency” no dump do IFR.
O AMIBCP mostra a aba Setup Configuration como ausente/corrompida depois do patch.
Isso indica uma edição hexadecimal desalinhada — na maioria das vezes, uma contagem errada de bytes ao preencher/substituir um dos padrões de busca. Refaça o Passo 4 a partir de uma cópia nova dos módulos extraídos, em vez de tentar aplicar o patch sobre um arquivo já parcialmente editado.
Os valores encontrados na minha placa não correspondem aos dos screenshots (por exemplo, 6D10 em vez de 6710).
Isso é esperado — esses valores são específicos da sua build de BIOS. Use o que o seu editor hexadecimal realmente encontrar, aplique a regra +0x200 para obter o segundo valor e leve os seus próprios valores pelo resto do guia, em vez dos valores de exemplo.
A placa não dá POST (ou não liga) após a gravação.
Limpe a CMOS novamente (jumper ou remoção da bateria, com desconexão total da energia por um minuto). Se ainda assim não inicializar, restaure o seu backup com um programador de hardware (por exemplo, CH341A) — esse é o único caminho de recuperação depois que a placa é brickada.
Créditos e leitura complementar
- Guia original em vídeo: Koshak, YouTube
- Imagens de BIOS já modificadas para diversos modelos X99: Koshak1013/HuananzhiX99_BIOS_mods no GitHub
- Guia base em russo: e5450.com



















