Re: [ES40-developers] Patch: scsi page code 0
Status: Alpha
Brought to you by:
iamcamiel
From: Camiel V. <iam...@gm...> - 2008-02-18 14:55:15
|
Hello Brian, It's been added to CVS. Camiel. On Feb 18, 2008 3:34 PM, Brian Wheeler <bdw...@in...> wrote: > Tru64 needed scsi page code 0 for it to boot up properly, so here's a > patch that adds it. Its basically a list of page codes supported, so if > any others are added, make sure to insert them in the proper place in > page 0's list and increase the page length. > > Brian > > Index: Disk.cpp > =================================================================== > RCS file: /cvsroot/es40/es40/src/Disk.cpp,v > retrieving revision 1.23 > diff -u -r1.23 Disk.cpp > --- Disk.cpp 18 Feb 2008 12:58:33 -0000 1.23 > +++ Disk.cpp 18 Feb 2008 14:31:09 -0000 > @@ -732,23 +732,30 @@ > if (state.scsi.cmd.data[1] & 0x01) > { > // Vital Product Data > - if (state.scsi.cmd.data[2] == 0x80) > - { > - char serial_number[20]; > - sprintf(serial_number,"SRL%04x",scsi_initiator_id[0]*0x0101); > - // unit serial number page > - state.scsi.dati.data[1] = 0x80; // page code: 0x80 > - state.scsi.dati.data[2] = 0x00; // reserved > - state.scsi.dati.data[3] = (u8)strlen(serial_number); > - > memcpy(&state.scsi.dati.data[4],serial_number,strlen(serial_number)); > - } > - else > - { > - printf("Don't know format for vital product data page %02x!! > \n",state.scsi.cmd.data[2]); > - FAILURE("SCSI Command Failed"); > - state.scsi.dati.data[1] = state.scsi.cmd.data[2]; // page > code > - state.scsi.dati.data[2] = 0x00; // reserved > - } > + switch(state.scsi.cmd.data[2]) > + { > + case 0x00: > + state.scsi.dati.data[1] = 0x00; // page code 0 > + state.scsi.dati.data[2] = 0x00; // reserved > + state.scsi.dati.data[3] = 0x02; // page length > + state.scsi.dati.data[4] = 0x00; // page 0 is supported. > + state.scsi.dati.data[5] = 0x80; // page 0x80 is supported. > + break; > + case 0x80: > + char serial_number[20]; > + sprintf(serial_number,"SRL% > 04x",scsi_initiator_id[0]*0x0101); > + // unit serial number page > + state.scsi.dati.data[1] = 0x80; // page code: 0x80 > + state.scsi.dati.data[2] = 0x00; // reserved > + state.scsi.dati.data[3] = (u8)strlen(serial_number); > + > memcpy(&state.scsi.dati.data[4],serial_number,strlen(serial_number)); > + break; > + default: > + printf("Don't know format for vital product data page %02x!! > \n",state.scsi.cmd.data[2]); > + FAILURE("SCSI Command Failed"); > + state.scsi.dati.data[1] = state.scsi.cmd.data[2]; // page > code > + state.scsi.dati.data[2] = 0x00; // reserved > + } > } > else > { > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Es40-developers mailing list > Es4...@li... > https://lists.sourceforge.net/lists/listinfo/es40-developers > |