Index: firmware/export/config-e200.h =================================================================== --- firmware/export/config-e200.h (revision 20324) +++ firmware/export/config-e200.h (working copy) @@ -175,8 +175,8 @@ /* enable these for the experimental usb stack */ #define HAVE_USBSTACK #define USE_ROCKBOX_USB -#define USB_VENDOR_ID 0x0781 -#define USB_PRODUCT_ID 0x7421 +#define USB_VENDOR_ID 0x05ac +#define USB_PRODUCT_ID 0x1205 /* Virtual LED (icon) */ #define CONFIG_LED LED_VIRTUAL Index: firmware/usbstack/usb_core.c =================================================================== --- firmware/usbstack/usb_core.c (revision 20324) +++ firmware/usbstack/usb_core.c (working copy) @@ -117,29 +117,26 @@ static const struct usb_string_descriptor __attribute__((aligned(2))) usb_string_iManufacturer = { - 24, + 12, USB_DT_STRING, - {'R','o','c','k','b','o','x','.','o','r','g'} + {'A','p','p','l','e'} }; static const struct usb_string_descriptor __attribute__((aligned(2))) usb_string_iProduct = { - 42, + 20, USB_DT_STRING, - {'R','o','c','k','b','o','x',' ', - 'm','e','d','i','a',' ', - 'p','l','a','y','e','r'} + {'i','P','o','d',' ','m','i','n', + 'i'} }; static struct usb_string_descriptor __attribute__((aligned(2))) usb_string_iSerial = { - 84, + 34, USB_DT_STRING, - {'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0', - '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0', - '0','0','0','0','0','0','0','0','0'} + {'0','0','0','A','2','7','0','0','1','4','1','2','C','E','B','8'} }; /* Generic for all targets */ @@ -429,13 +426,6 @@ static void usb_core_set_serial_function_id(void) { - int id = 0; - int i; - for(i=0;i\ +\ +\ +\ +AppleDRMVersion\ +\ +Minimum\ +0\ +Maximum\ +4\ +Format\ +2\ +\ +AudioCodecs\ +\ +AIFF\ +\ +Mono\ +\ +Stereo\ +\ +Multichannel\ +\ +MaximumSampleRate\ +48000\ +MaximumBitDepth\ +16\ +\ +MP3\ +\ +Mono\ +\ +Stereo\ +\ +MaximumSampleRate\ +48000\ +MaximumDataRate\ +320\ +\ +WAV\ +\ +Mono\ +\ +Stereo\ +\ +Multichannel\ +\ +MaximumSampleRate\ +96000\ +MaximumBitDepth\ +16\ +\ +AppleLossless\ +\ +Mono\ +\ +Stereo\ +\ +Multichannel\ +\ +MaximumBitDepth\ +32\ +MaximumBitDepthUntruncated\ +16\ +MaximumSampleRate\ +48000\ +AppleDRM\ +\ +\ +Audible\ +\ +Type1\ +\ +Type2\ +\ +Type3\ +\ +Type4\ +\ +\ +\ +BuildID\ +6.1.2\ +ConnectedBus\ +USB\ +MaxTransferSpeed\ +61440\ +FamilyID\ +6\ +FireWireGUID\ +000A2700157501F8\ +FireWireVersion\ +1.62\ +ImageSpecifications\ +\ +1019\ +\ +FormatId\ +1019\ +DisplayWidth\ +720\ +RenderWidth\ +640\ +RenderHeight\ +480\ +PixelFormat\ +32767579\ +Interlaced\ +\ +ColorAdjustment\ +1\ +GammaAdjustment\ +2.2\ +Crop\ +\ +AlignRowBytes\ +\ +\ +1015\ +\ +FormatId\ +1015\ +RenderWidth\ +130\ +RenderHeight\ +88\ +PixelFormat\ +4C353635\ +Interlaced\ +\ +ColorAdjustment\ +0\ +GammaAdjustment\ +2.2\ +Crop\ +\ +AlignRowBytes\ +\ +BackColor\ +00000000\ +\ +1024\ +\ +FormatId\ +1024\ +RenderWidth\ +320\ +RenderHeight\ +240\ +PixelFormat\ +4C353635\ +Interlaced\ +\ +ColorAdjustment\ +0\ +GammaAdjustment\ +2.2\ +Crop\ +\ +AlignRowBytes\ +\ +Rotation\ +0\ +\ +1036\ +\ +FormatId\ +1036\ +RenderWidth\ +50\ +RenderHeight\ +41\ +PixelFormat\ +4C353635\ +Interlaced\ +\ +ColorAdjustment\ +0\ +GammaAdjustment\ +2.2\ +Crop\ +\ +AlignRowBytes\ +\ +BackColor\ +00000000\ +\ +\ +AlbumArt\ +\ +1028\ +\ +FormatId\ +1028\ +RenderWidth\ +100\ +RenderHeight\ +100\ +PixelFormat\ +4C353635\ +Interlaced\ +\ +ColorAdjustment\ +0\ +GammaAdjustment\ +2.2\ +Crop\ +\ +AlignRowBytes\ +\ +BackColor\ +FFFFFFFF\ +\ +1029\ +\ +FormatId\ +1029\ +RenderWidth\ +200\ +RenderHeight\ +200\ +PixelFormat\ +4C353635\ +Interlaced\ +\ +ColorAdjustment\ +0\ +GammaAdjustment\ +2.2\ +Crop\ +\ +AlignRowBytes\ +\ +BackColor\ +FFFFFFFF\ +\ +\ +PodcastsSupported\ +\ +ChapterImageSpecs\ +\ +1028\ +\ +FormatId\ +1028\ +RenderWidth\ +100\ +RenderHeight\ +100\ +PixelFormat\ +4C353635\ +Interlaced\ +\ +ColorAdjustment\ +0\ +GammaAdjustment\ +2.2\ +Crop\ +\ +AlignRowBytes\ +\ +BackColor\ +FFFFFFFF\ +\ +1029\ +\ +FormatId\ +1029\ +RenderWidth\ +200\ +RenderHeight\ +200\ +PixelFormat\ +4C353635\ +Interlaced\ +\ +ColorAdjustment\ +0\ +GammaAdjustment\ +2.2\ +Crop\ +\ +AlignRowBytes\ +\ +BackColor\ +FFFFFFFF\ +\ +\ +MinITunesVersion\ +6.0\ +SerialNumber\ +ROCKBOXiPOD\ +UpdaterFamilyID\ +20\ +VisibleBuildID\ +1.4.1\ +64Bit\ +3\ +OEMID\ +0\ +OEMV\ +8\ +PowerInformation\ +\ +WillFlash\ +\ +USB\ +\ +FireWire\ +\ +\ +VoiceMemosSupported\ +\ +VoiceMemoFormats\ +\ +WAV\ +\ +MaximumSampleRate\ +44100\ +\ +\ +AutoRebootAfterFirmwareUpdate\ +\ +VolumeFormat\ +FAT32\ +VolumeInformation\ +\ +HFSPLUS\ +\ +SupportedFormat\ +\ +ConversionSupported\ +\ +CurrentFormat\ +\ +\ +FAT32\ +\ +SupportedFormat\ +\ +ConversionSupported\ +\ +CurrentFormat\ +\ +\ +\ +ForcedDiskMode\ +\ +BangFolder\ +\ +CorruptDataPartition\ +\ +CorruptFirmwarePartition\ +\ +CanFlashBacklight\ +\ +CanHibernate\ +\ +RAM\ +32\ +HotPlugState\ +0\ +vCardWithJPEGSupported\ +\ +VideoCodecs\ +\ +H.264\ +\ +AppleVideoDRM\ +\ +MaximumEncryptionPercentage\ +12.5\ +\ +AAC\ +\ +AppleDRM\ +\ +MaximumSampleRate\ +48000\ +MaximumBitRate\ +160\ +LC\ +\ +VariableBitRate\ +\ +Multichannel\ +\ +\ +\ +Profile\ +B\ +Level\ +13\ +MaximumPeakBitRate\ +768\ +MaximumResolution\ +76800\ +MinimumWidth\ +16\ +MinimumHeight\ +16\ +MaximumWidth\ +4800\ +MaximumHeight\ +4800\ +\ +MPEG4\ +\ +AppleVideoDRM\ +\ +MaximumEncryptionPercentage\ +12.5\ +\ +AAC\ +\ +AppleDRM\ +\ +MaximumSampleRate\ +48000\ +MaximumBitRate\ +160\ +LC\ +\ +VariableBitRate\ +\ +Multichannel\ +\ +\ +\ +Profile-Level-ID\ +3\ +MaximumAverageBitRate\ +2500\ +MaximumPeakBitRate\ +0\ +MaximumBufferSize\ +0\ +MaximumResolution\ +230400\ +MinimumWidth\ +16\ +MinimumHeight\ +16\ +MaximumWidth\ +14400\ +MaximumHeight\ +14400\ +\ +\ +\ +"; + #ifdef USB_USE_RAMDISK static unsigned char* ramdisk_buffer; #endif @@ -759,10 +1211,44 @@ case SCSI_INQUIRY: logf("scsi inquiry %d",lun); - fill_inquiry(IF_MV(lun)); - length = MIN(length, cbw->command_block[4]); - send_command_result(tb.inquiry, - MIN(sizeof(struct inquiry_data), length)); + if(!(cbw->command_block[1] & 0x01)) + { + fill_inquiry(IF_MV(lun)); + length = MIN(length, cbw->command_block[4]); + send_command_result(tb.inquiry, + MIN(sizeof(struct inquiry_data), length)); + } + else + { + logf("cmdblck[2]=%x", cbw->command_block[2]); + if(cbw->command_block[2]==0xc0) + { + //itunes summary page + tb.transfer_buffer[0]=0; + tb.transfer_buffer[1]=0xc0; + tb.transfer_buffer[2]=0; + unsigned int i; + for(i=0;i*0xf8command_block[2]-0xc2; + tb.transfer_buffer[0]=0; + tb.transfer_buffer[1]=cbw->command_block[2]; + tb.transfer_buffer[2]=0; + unsigned int size=0xf8; + if((offset+1)*0xf8>sizeof(xmldata)) + size=sizeof(xmldata)-offset*0xf8; + memcpy(&tb.transfer_buffer[4],&xmldata[offset*0xf8],0xf8); + tb.transfer_buffer[3]=size; + send_command_result(tb.transfer_buffer,size+4); + } + } break; case SCSI_REQUEST_SENSE: { Index: firmware/target/arm/ata-sd-pp.c =================================================================== --- firmware/target/arm/ata-sd-pp.c (revision 20324) +++ firmware/target/arm/ata-sd-pp.c (working copy) @@ -1392,16 +1392,16 @@ #endif info->sector_size=card_info[drive].block_size; info->num_sectors=card_info[drive].numblocks; - info->vendor="Rockbox"; + info->vendor="Apple"; if(drive==0) { - info->product="Internal Storage"; + info->product="iPod"; } else { info->product="SD Card Slot"; } - info->revision="0.00"; + info->revision="1.62"; } #endif