[Linuxtrent] Idee per un bootloader ...

  • From: Paolo Accordini <skaary@xxxxxxxxxxxx>
  • To: Linuxtrent <linuxtrent@xxxxxxxxxxxxx>
  • Date: Fri, 10 Jan 2003 12:53:20 +0100

Sto scrivendo un piccolo, anzi piccolissimo, bootloader per un mio microkernel in modalita protetta . Tutto il codice è scritto per andare sotto x86.
Ho già progettato il microkernel, ma sono bloccato al bootloader. Il bootloader (per adesso) consiste in un settore di avvio che a sua volta carica
un elf32 a 0x100000 . Con ld gli aggiunto la rilocazione (-Ttext=0x100000) e lo ho compilato in formato completamente binario (--oformat=binary) .
Soltanto che quando jumpo nel codice del stage2 del bootloader, bochs esce con un errore del genere: Prefetch queue running in bogus memory .
Penso significhi che il mio programma va per le verze ....
Ma non capisco il perche . Per ora lo Stage2 è formato da una sola funzione (_start) con dentro queste linee di codice:
void _start()
{
unsigned char* VideoMem = (unsigned char*)0xB8000; // Puntatore alla memoria video
// Stampa sul video la scritta 'PM'
VideoMem[0] = 'P';
VideoMem[1] = 0x7;
VideoMem[2] = 'M';
VideoMem[3] = 0x7;


// Loop forever
for (;;) { };
};
In questa funzione chiamo niente e non faccio niente ... Insomma, proprio non so perchè non debba andare. Dimenticavo: nella GDT ci sono solo 2
entry: un segmento lineare da 4gb, 32bit, data e un segmento lineare da 4gb,32bit, code . Entrambi con priv 0 ... Tutti i registri dati sono caricati con il
segmento dati lineare. Non ho abilitato il paging ...
Se qualcuno è in grado di darmi una mano, ne sarei molto molto molto felice ...
Grazie in anticipo ....


Paolo

--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: