No lado da arquitetura, você precisa de mais do que um conjunto de instruções e uma arquitetura de computador. Você também precisa ter:
- Uma CPU de alguma forma (emulador, FPGA, silício…).
- Uma maneira de inicializar esse processador: uma maneira de colocar o sistema operacional na memória que o processador executa no momento da inicialização. A maioria dos processadores inicializa o código armazenado na ROM, que ativa algum tipo de memória flash e ramifica para ele, ou que carrega algum código de alguma mídia de armazenamento na RAM e ramifica para ele. O próximo estágio é um gerenciador de inicialização do sistema operacional.
- Alguns periféricos - no mínimo, RAM, algum tipo de controlador de armazenamento e alguns dispositivos de entrada / saída.
No lado do software, você precisará:
- Um compilador. Como você está usando a arquitetura MIPS, qualquer compilador existente que esteja segmentando o MIPS deve ser suficiente. Se o seu conjunto de instruções estender o conjunto básico de instruções MIPS (por exemplo, com registros extras), você pode precisar estender o montador de acordo.
- Um kernel. O Linux para MIPS já existe. Você terá que adicionar suporte para o que você personalizou em sua arquitetura: boot, MMU,…
- Drivers. Você precisará criar drivers para todas as partes da arquitetura do computador que não foram desenvolvidas off-the-shelf.
- Um gerenciador de inicialização. Geralmente há coisas no bootloader que são muito específicas da arquitetura, mas você provavelmente pode adicionar o suporte necessário a um gerenciador de inicialização existente, por exemplo, adicionando uma definição de máquina a U-Boot .
- E isso é tudo. Uma vez que você tenha um kernel e um gerenciador de inicialização, os programas de usuário devem funcionar. Atualize o kernel e o carregador de inicialização de uma distribuição existente, faça a compilação cruzada no seu PC e instale. O Ubuntu não suporta MIPS, mas o Debian faz ( mips ou mipsel dependendo do endianness).