64-Bit PCI space on OpenSolaris

** As a disclaimer, I am working on OpenSolaris, not Solaris, so I am not sure if this is the right place to post. **
Hello,
I've been trying a new feature on my BIOS that allows to memory map PCI device registers to spaces above 4G.
However, when I booted in Solaris, it failed to load some devices, and pci_boot also reported:
"unsupported 64-bit prefetch memory on pci-pci bridge [%d/%d/%d]" (copy pasted that line from pci_boot.c)
Digging further I also found some comments in npe.c in a register mapping function:
case PCI_ADDR_MEM64:
     * We can't handle 64-bit devices that are mapped above
     * 4G or that are larger than 4G.
I am in the process of rewriting the driver code right now, but I am wondering how deep will I have to go or if a fix already exists in Solaris.
If you are wondering why I need all this, it is because I have a device that requires a very large space of prefetchable memory (>4G) and I need those BIOS settings to make it boot.
Thanks

Remember that by definition, the bus is an interrupt driven mechanism, and if each HBA is attempting an operation, it gets the bus for a time slice to the exclusion of the other HBAs. Sounds like your servers are trying to pump a lot of data through one bus, and having a lot of contention doing so.
You should see if the servers have a split bus structure. For example, some servers have a bus for PCI slots 0-3, then another separate bus for slots 4-7, etc. You'd have to dig out the specs to determine this. Placing your HBAs across these separate buses might eliminate the contention you are seeing (for example, HBA0 and 1 would go into slots 0, 1, then HBA2 and 3 would go into slots 4,5).

Similar Messages

  • Unable to handle 64-bit address space

    MDS 9216i keeps rebooting and getting the following message:
    Starting kernel...
    PCI: Unable to handle 64-bit address space for
    PCI: Cannot allocate resource region 7 of bridge 02:01.0
    PCI: Cannot allocate resource region 0 of device 02:01.0
    PCI: Error while updating region
    PCI: Failed to allocate resource
    PCI: Error while updating region
    Any suggestion..?

    I don't believe that CDETs is open against the 9216. If you are seeing this error occur on the MDS console, then I suspect a hardware error on the 9216. Software failures would land you at a BIOS prompt, or at a 'LOADER>' prompt. I suggest you contact your 9216 hardware service provider.

  • Sound Blaster Live 24-bit PCI Sound Card and Creative Sound Blaster PCI Card not detect

    Ok here is my problem. I bought a Creative Sound Blaster PCI sound card a while back and it was working fine but recently when I would boot up my computer and try to play music say off of Winamp it says Bad DirectSound Driver. When I check device manager it shows no sound card there and in sounds and audio devices it says no audio device. Now my brother believed this to be a card fault so we went to Frys and bought a Sound Blaster Li've 24-bit PCI card. I uninstalled the old drivers and installed this new one but yet it's the same problem. My assumption was that Windows XP had something conflicting so I reinstalled the OS. It found the card and I installed the latest drivers?off of this site but now it does the same thing yet again with a fresh install of Windows XP. The card has been in all 3 of my PCI slots and it will detect it for a moment but then acts like as if the card was never installed. Like I never installed a sound card into the computer. The onboard audio has been disabled for a while now but I do not know what the problem could be. I did Scan for hardware changes but it doesn't show up. Sometimes when the card is detected if I do scan for hardware changes and the card is there it will just magically disappear from the device manager as if it was never there. Even when I try to load music and I see the card is detected it will not play the music and ends up locking up Winamp to the point that sometimes will go BSOD. Now I would really like to find out what the issue is because I am planning this weekend to swap out my motherboard with a duplicate board to see if that will end up fixing the problem but I want to find out if there is any other way to fix this issue. Thank you.Message Edited by AuXoIs on 02-25-200808:28 PM

    Hmm what other options is there for the bios on PCI slots?Also anything you connect to the motherboard can have oxidization (I think its that) build up on the connection. Check the connector on the card and get a eraser (Pen eraser is better) and give it a good cleaning. The connector might have alot of build-up on it and you can see it by a dark yellowy colour. I cleaned my graphics card and ram connectors after they got alot of the build-up on them. On a older computer my graphics stopped working and this fixed it. Also I went away for a while (like a month) and came back to see that my puter didn't display anything. Opened it up and saw that the graphic card had alot of corrosion? on the card connector and in the slot. Does that if you computer is turned of for a long time. Had a heck of time trying to clean the slot out. One other thing that it could be is the sound card is faulty. I had an audigy 2 and it died a while back . It picks it up and then try and use it computer freezes and the after restart it's not there anymore. Hope it's not that problem. Hope this gives you something to go by.

  • 4GB HBAs on a 66mhz 64-bit PCI-X Bus

    I have some older servers that are having issues and I believe the bus speed might be the cause. I'm actually a storage guy, not a UNIX admin. I'm trying to identify why I have some slow-drain devices on my switches and I believe the Bus speed on some of our older Sun servers might be the issue.
    Slow-drains are quite annoying, as they drive response times up across my fabric. When we run backups, I can see my response times go way up across all servers. Basically my fabric is waiting on these servers to send their acknowledgement that they received frames. No issues with Switches, Arrays, or Cables.
    Here's the main server that seems to be giving issues
    Server1
    Sunfire V890
    4 Emulex LP11002 4gb HBAs - Plugged into 66mhz 64-bit PCI-X slots (all the same bus)
    Data is on 80 - 15k FC Disks
    Here are 2 other servers which also give issues.
    Server2
    Sunfire v890
    2 Emulex LP10000 2gb HBAs - Plugged into 33mhz PCI-X Slots
    Data is on 15 - 15k FC Disks
    Server3
    e2900
    4 Emulex LP11002 4GB HBAs - Plugged into 100mhz 64-bit PCI-X slots (all the same bus)
    Data is on 100 - 15k FC disks
    When I run backups on any of these servers (server3 isn't that bad) I see response times increase on every server SAN attached. I've done extensive research on my array and the array is not the problem. I constantly get latency alerts on my switch (host not responding quick enough and sucking up all the buffer credits)
    So when this issue happens, Server1 is pulling around 530megabytes/s (~265 tx, ~265rx) through those HBAs. That is close to the upper-limit of a 64-bit 66mhz PCI-X bus.
    When I see that issue happen on Server2, it's pulling around 220MB/s (110 tx, 110 rx) through those HBAs. That's close to the upper-limit of a 33 mhz PCI-X bus.
    So I guess what I want to know is... Has anyone had issues before by using HBAs that are a higher speed than the Bus can handle? Would this be expected? Am I missing something, or am I completely wrong here? I thought about dropping these HBAs down to 2GB or 1Gb to see if it fixes the issue. I was using 4 paths to my backup array and dropped it down to 2 (reducing the bandwidth to the backup array by 50%) and that seemed to help a bit.

    Remember that by definition, the bus is an interrupt driven mechanism, and if each HBA is attempting an operation, it gets the bus for a time slice to the exclusion of the other HBAs. Sounds like your servers are trying to pump a lot of data through one bus, and having a lot of contention doing so.
    You should see if the servers have a split bus structure. For example, some servers have a bus for PCI slots 0-3, then another separate bus for slots 4-7, etc. You'd have to dig out the specs to determine this. Placing your HBAs across these separate buses might eliminate the contention you are seeing (for example, HBA0 and 1 would go into slots 0, 1, then HBA2 and 3 would go into slots 4,5).

  • 64-bit PCI vs 32-bit

    I have a lan card that I am developing a driver for, which works under
    Solaris 7 sparc in a 32-bit PCI slot. On a machine with 64-bit slots
    and running Solaris 7, the cards fails its self test. We are hypothesizing
    that Openboot is disabling the card for some reason. Does anyone know of
    issues with regard to 64-bit PCI?
    Thanks, Mike Barley

    Hi Jared,
    I would suggest that repost a new thread on
    Visual Studio Development      >    
    Visual Studio Setup and Installation forum.
    Have a nice day!
    Kristin
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Windows 7 - 64 bits PCI devices

    We are upgrading all computers and OS to Windows 7 with 64 bits.  The M&A does not recognize the PCI interface but Windows does.
    Using CVI 9.0 and NI_DAQ 8.9.
    Looking at other posts, it appears that NI does not support Windows 7.  If this is true, when will they.
    Solved!
    Go to Solution.

    What is your PCI device?
    Did NI-MAX recognize it under your previous version of Windows?
    Can your application software talk to the PCI device?
    What version of NI-MAX are you using?  This table (http://digital.ni.com/public.nsf/allkb/EE0FB9EB80A​E148686257336006CED22) shows that NI-MAX 4.5 shipped with NI-DAQmx 8.9 that you said you were using.  NI's table on Windows 7 compatibility shows you need NI-MAX 4.6.2.  You may need to ugrade your NI_DAQmx to a minimum of 8.9.5 and your NI-MAX to 4.6.2.
    You can get NI-DAQmx here: http://www.ni.com/nisearch/app/main/p/bot/no/ap/te​ch/lang/en/pg/1/sn/catnav:du,n8:3478.41.181.5495,s​...
    The Windows 7 compatibility table does include a note that NI-MAX 4.6.2 will run in the Windows On Windows emulation layer, but that should be transparent to you and shouldn't affect its ability to recognize devices.

  • Missing Windows 7 64-bit PCI Memory Controller Driver on X61

    I'm sure this has already been discussed but I could not find the thread.  Does anyone have any information on why I cannot find a Windows 7 64-bit compatible PCI Memory Controller Driver for my X61 7675 CTO?
    Thanks,
    -Ron

    PCI Memory controller is Turbo Memory:- http://support.lenovo.com/en_US/downloads/detail.page?LegacyDocID=MIGR-67820
    Maliha (I don't work for lenovo)
    ThinkPads:- T400[Win 7], T60[Win 7], IBM 240[Win XP]
    IdeaPad: U350
    Apple:- Macbook Air [Snow Leopard]
    Did someone help you today? Compliment them with a Kudos!
    Was your question answered today? Mark it as an Accepted Solution! 
      Lenovo Deutsche Community     Lenovo Comunidad en Español 
    Visit my YouTube Channel

  • SB Live! 24 Bit PCI No mixer with latest driv

    Hi!
    I just recently reinstalled my SB Li've 24 Bit card that I had not used in awhile. I found new drivers in the download which said they were for a complete package for Vista and XP. (I am running XP.) I have to say the card still sounds fantastic... even beats the latest and greatest onboard "HD Audio" so much better definition in the sound.
    However, I miss the mixer feature that was a part of my original package. Do I need to go back to the original CD and download it's Will it be compatible with the new drivers I just downloaded from July of 07?
    Perhaps I should uninstall the latest drivers and go back to the orignal CD, but I hate to do that.
    Thanks for any help.

    I bought a SB Li've 24-bit card, and meet the same problem. I use a pair of sound boxes and or earphones. When I switch them. The sound probability disappear. Then I pull out and plug the connector several times, and then...the sound come back. I think maybe it's the problem of the sound card's sound box setup. Maybe it have the function of "sound box auto check"(Sorry, my English is so......poor). I suggest you change your earphones for a test. Or pull out, plug,pull out, plug........ I think the sound should come back

  • A bit of space please

    hi to all
    i have an all in one psc 1410 but actully i use only scanner, on a asus eeepc 4gb, so y can understand what meaning disk space for me,....
    which of these can I uninstall
    -hp imaging device function 5.3
    -hp solution centre imaging support tools...
    -hp psc & officejet
    -hp image zone express

    Hi,
    No Answer from any one???????????????????????
    Strange !!!!!

  • Do 875p neo's 32-bit PCI slots,support 66Mhz speed?

    I have the 875p neo motherboard and I would like to knlow if the PCI slots on this motherboard support 66Mhz speed or just the basic 32bit/33Mhz.
    Can anyone help me with this?

    Thanks guys.I knew about the server motherboards but I was hoping that modern mobos like the 875p neo would have such a feature as 66 Mhz.
    Guess I was wrong!!!

  • Color Space and Bit Depth - What Makes Sense?

    I'm constantly confused about which color space and bit depth to choose for various things.
    Examples:
    - Does it make any sense to choose sRGB and 16-bits? (I thought sRGB was 8-bit by nature, no?)
    - Likewise for AdobeRGB - are the upper 8-bits empty if you use 16-bits?
    - What is the relationship between Nikon AdobeWide RGB, and AdobeRGB? - if a software supports one, will it support the other?
    - ProPhoto/8-bits - is there ever a reason?...
    I could go on, but I think you get the idea...
    Any help?
    Rob

    So, it does not really make sense to use ProPhoto/8 for output (or for anything else I guess(?)), even if its supported, since it is optimized for an extended gamut, and if your output device does not encompass the gamut, then you've lost something since your bits will be spread thinner in the "most important" colors.
    Correct, you do not want to do prophotoRGB 8bit anything. It is very easy to get posterization with it. Coincidentally, if you print from Lightroom and let the driver manage and do not check 16-bit output, Lightroom outputs prophotoRGB 8bits to the driver. This is rather annoying as it is very easy to get posterizaed prints this way.
    It seems that AdobeRGB has been optimized more for "important" colors and so if you have to scrunch down into an 8-bit jpeg, then its the best choice if supported - same would hold true for an 8-bit tif I would think (?)
    Correct on both counts. If there is color management and you go 8 bits adobeRGB is a good choice. This is only really true for print targets though as adobeRGB encompasses more of a typical CMYK gamut than sRGB. For display targets such as the web you will be better off always using sRGB as 99% of displays are closer to that and so you don't gain anything. Also, 80% of web browsers is still not color managed.
    On a theoretical note: I still don't understand why if image data is 12 or 14 bits and the image format uses 16 bits, why there has to be a boundary drawn around the gamut representation. But for practical purposes, maybe it doesn't really matter.
    Do realitze hat the original image in 12 to 14 bits is in linear gamma as that is how the sensor reacts to light. However formats for display are always gamma corrected for efficiency, because the human eye reacts non-linearly to light and because typical displays have a gamma powerlaw response of brightness/darkness. Lightroom internally uses a 16-bit linear space. This is more bits than the 12 or 14 bits simply to avoid aliasing errors and other numeric errors. Similarly the working space is chosen larger than the gamut cameras can capture in order to have some overhead that allows for flexibility and avoids blowing out in intermediary stages of the processing pipeline. You have to choose something and so prophotoRGB, one of the widest RGB spaces out there is used. This is explained quite well here.
    - Is there any reason not to standardize 8-bit tif or jpg files on AdobeRGB and leave sRGB for the rare cases when legacy support is more important than color integrity?
    Actually legacy issues are rampant. Even now, color management is very spotty, even in shops oriented towards professionals. Also, arguably the largest destination for digital file output, the web, is almost not color managed. sRGB remains king unfortunately. It could be so much better if everybody used Safari or Firefox, but that clearly is not the case yet.
    - And standardize 16 bit formats on the widest gamut supported by whatever you're doing with it? - ProPhoto for editing, and maybe whatever gamut is recommended by other software or hardware vendors for special purposes...
    Yes, if you go 16 bits, there is no point not doing prophotoRGB.
    Personally, all my web photos are presented through Flash, which supports AdobeRGB even if the browser proper does not. So I don't have legacy browsers to worry about myself.
    Flash only supports non-sRGB images if you have enabled it yourself. NONE of the included flash templates in Lightroom for example enable it.
    that IE was the last browser to be upgraded for colorspace support (ie9)
    AFAIK (I don't do windows, so I have not tested IE9 myself), IE 9 still is not color managed. The only thing it does is when it encounters a jpeg with a ICC profile different than sRGB is translate it to sRGB and send that to the monitor without using the monitor profile. That is not color management at all. It is rather useless and completely contrary to what Microsoft themselves said many years ago well behaved browsers should do. It is also contrary to all of Windows 7 included utilities for image display. Really weird! Wide gamut displays are becoming more and more prevalent and this is backwards. Even if IE9 does this halfassed color transform, you can still not standardize on adobeRGB as it will take years for IE versions to really switch over. Many people still use IE6 and only recently has my website's access switched over to mostly IE8. Don't hold your breath for this.
    Amazingly, in 2010, the only correctly color managed browser on windows is still Safari as Firefox doesn't support v4 icc monitor profiles and IE9 doesn't color manage at all except for translating between spaces to sRGB which is not very useful. Chrome can be made to color manage on windows apparently with a command line switch. On Macs the situation is better since Safari, Chrome (only correctly on 10.6) and Firefox (only with v2 ICC monitor profiles) all color manage. However, on mobile platforms, not a single browser color manages!

  • Mac Pro 4,1 (Early-2009) - PCIe Fan Broken?

    Hi Everyone:
    I had a day off today and decided to do a bit of cleaning as its been a while (quite a while as far as my Mac Pro is concerrned).
    I shut it down, unplugged all the cables and placed it on the table.
    I removed the side cover, processor tray, all four drive bays, the GPU, and the PCIe Fan.
    I blasted everything with compressed air or give it a nice wipe, much better!
    I placed everything back inside the case and booted it up. It sounded slightly off, but I was going to check everything anyways. I looked at iStat Menu's and noticed that "Expansion Fan" was rated at 0rpm. Not good.
    Maybe the sensor got damaged? I removed the side cover and looked at the fan, it wasn't spinning.
    I unplugged everything, reset the SMC and tried again. Same thing. I reset the PRAM, same thing.
    I removed the 1st and 2nd drives, took out the fan and resetted it very slowly until I heard a nice click.
    Powered it up again and it still won't come to life.
    I have two worries:
    1. Did I damage the fan?
    2. Did I damage the connector on the motherboard?
    I'm most definitely out of Applecare (the machine is just over 3 years old, about 2 months over )
    I'm horrified to think what an out of warranty logic board replacement would cast me just to get this fan fixed.
    How important is this fan? I've only got one PCI card inside (the HD 4870) and its fan works fine.
    Thoughts?
    - D

    Daphoid wrote:
    ...I definitely need to get this fixed. The question is do I lug it into an apple store (awkward) or do I replace the fan and see if that solves it. Or third, do I have a local company do a house call (comvienent but more expensive).
    Back on track with the right Mac Pro version, maybe there's a fourth possibility, ugly but functional. The PCIe area fan in the '09 and '10 Mac Pros is a different setup from the the earlier ones. The early ones had the fan at one end of the PCIe area, forcing air through and out the back. The '09 fan has a space next to it on the door side so the PCIe space isn't pressurized in the same way. If the fan isn't working, you could attach a larger fan on the outside of the front grill and power it separately. If anything, that might be an improvement by forcing the air through. It wouldn't adjust for actual internal temperature but it would help cool the cards, HD's and video card. The non-functioning fan would be in the way but the air pushing through would get the job done.

  • Supporting 31 bit dma_attr_addr_hi address

    I am writing a Solaris Sparc 10 device driver for a pci express device. The driver has to pass a dma bus address of 31 bit to the device as the device do not support the full 32 bit address space. However I am not be able to specify the dma_attr_addr_hi with the address mask 0x7FFFFFFF and get the DDI_DMA_NOMAPPING error. Below is the code:
    ddi_dma_attr_t           dmaattr; /* used to allocate the handle */
           ddi_device_acc_attr_t devattr;
           ddi_dma_cookie_t      dmacookie;
           size_t                        real_length = 0;
           uint_t                         cntcookie   = 0;
           dev_info_t           *dip           = tag;
           int                      rc             = 0;
           caddr_t               kaddrp      = NULL;
           unsigned int          bytecount   = size
           dmaattr.dma_attr_version        = DMA_ATTR_V0; 
           dmaattr.dma_attr_addr_lo        = 0x0;         
           dmaattr.dma_attr_addr_hi        = 0x07fffffff; /* 31 bit mask  */ 
           dmaattr.dma_attr_count_max   = 0x0ffffffff;
           dmaattr.dma_attr_align            = 1;          
           dmaattr.dma_attr_burstsizes    = 0x01;        
           dmaattr.dma_attr_minxfer        = 0x01;        
           dmaattr.dma_attr_maxxfer       = 0x0ffffffff;
           dmaattr.dma_attr_seg             = 0x0ffffffff;
           dmaattr.dma_attr_sgllen          = 1;           
           dmaattr.dma_attr_granular       = 1;           
           dmaattr.dma_attr_flags            = 0;           
           rc = ddi_dma_alloc_handle(
            luna_p->tag,
            &dmaattr,
            DDI_DMA_SLEEP,
            NULL,
               &(dma_addr->m_handle));
           if (rc !=DDI_SUCCESS)
               switch (rc)
                  case DDI_DMA_BADATTR:
                    vip_log(NULL,
                            VIP_ERR,
                            "ddi_dma_alloc_handle failed (DDI_DMA_BADATTR)");
                    break;
                  case DDI_DMA_NORESOURCES:
                    vip_log(NULL,
                     VIP_ERR,
                       "ddi_dma_alloc_handle failed (DDI_DMA_NORESOURCES)");
                    break;
                  default:
                    vip_log(NULL,
                   VIP_ERR,
                   "ddi_dma_alloc_handle failed (%d)", rc);
                   break;
               return NULL; /* handle allocation failed and stop the allocation process */
           devattr.devacc_attr_version       = DDI_DEVICE_ATTR_V0;  
           devattr.devacc_attr_endian_flags  = DDI_NEVERSWAP_ACC;
           devattr.devacc_attr_dataorder     = DDI_STRICTORDER_ACC;  
           rc = ddi_dma_mem_alloc(
                    dma_addr->m_handle,
                    bytecount,
                    &devattr,
                    DDI_DMA_CONSISTENT,
                    DDI_DMA_SLEEP,
                    NULL,
                    &kaddrp,
                    &real_length,
                    &(dma_addr->m_acchandle)
           if (rc != DDI_SUCCESS)
              vip_log(NULL,
                      VIP_ERR,
                      "ddi_dma_mem_alloc failed");
              return NULL;
           else
    #ifdef DEBUG
              vip_log(NULL,
                      VIP_DBG,
                      "ddi_dma_mem_alloc request length= %d, real length= %d",
                      bytecount,
                      real_length);
    #endif
           rc = ddi_dma_addr_bind_handle(
                    dma_addr->m_handle,
                    NULL,
                    kaddrp,
                    real_length,
                    DDI_DMA_RDWR | DDI_DMA_CONSISTENT, /* Note: all dma bufs are read/write */
                    DDI_DMA_SLEEP,
                    NULL,
                    &dmacookie,
                    &cntcookie
    #ifdef DEBUG
           /* vip_log(NULL, VIP_DBG, "_AllocateDMABuffer: the return value is %x",rc); */
    #endif
           if (rc != DDI_DMA_MAPPED)
              switch (rc)
                   case DDI_DMA_PARTIAL_MAP:
                        vip_log(NULL,
                       VIP_ERR,
                       "ddi_dma_addr_bind_handle failed (DDI_DMA_PARTIAL_MAP)");
                        break;
                   case DDI_DMA_INUSE:
                        vip_log(NULL,
                       VIP_ERR,
                       "ddi_dma_addr_bind_handle failed (DDI_DMA_INUSE)");
                         break;
                   case DDI_DMA_NORESOURCES:
                        vip_log(NULL,
                       VIP_ERR,
                       "ddi_dma_addr_bind_handle failed (DDI_DMA_NORESOURCES)");
                        break;
                   case DDI_DMA_NOMAPPING:
                        vip_log(NULL,
                       VIP_ERR,
                           "ddi_dma_addr_bind_handle failed (DDI_DMA_NOMAPPING)");
                        break;
                   case DDI_DMA_TOOBIG:
                        vip_log(NULL,
                       VIP_ERR,
                       "ddi_dma_addr_bind_handle failed (DDI_DMA_TOOBIG)");
                         break;
                   default:
                        vip_log(NULL,
                       VIP_ERR,
                       "ddi_dma_addr_bind_handle failed (%d)", rc);
                        break;
              return NULL;
           if (cntcookie!=1)
              vip_log(NULL,
                VIP_ERR,
                "ddi_dma_addr_bind_handle returned %d cookies (!=1)", cntcookie);
              return NULL;
           bzero(kaddrp, bytecount);
           dma_addr->m_address      = dmacookie.dmac_address;
           dma_addr->m_kaddrp       = kaddrp;
           dma_addr->m_nbytes_req   = bytecount;
           dma_addr->m_nbytes_real  = real_length;
    /* #ifdef DEBUG */
    #if 0
           vip_log(NULL, VIP_DBG, "_AllocateDMABuffer: m_address = 0x%8x",dma_addr->m_address);
           vip_log(NULL, VIP_DBG, "_AllocateDMABuffer: m_kaddrp  = 0x%8x",dma_addr->m_kaddrp);
           vip_log(NULL, VIP_DBG, "_AllocateDMABuffer: dma_addr  = 0x%8x",dma_addr);
           vip_log(NULL, VIP_DBG, "_AllocateDMABuffer: *dma_addr  = 0x%8x",*dma_addr);
    #endif
           return kaddrp; /* kernel virtual address */
    }

    Sorry I click wrong button and post the in-completed message and I am re-doing the work again.
    I am writing a Solaris Sparc 10 device driver for a pci express device. The driver has to pass a dma bus address of 31 bit to the device as the device do not support the full 32 bit address space. However I am not be able to specify the dma_attr_addr_hi with the address mask 0x7FFFFFFF and get the DDI_DMA_NOMAPPING error. Below is the code:
    ddi_dma_attr_t dmaattr; /* used to allocate the handle */
    ddi_device_acc_attr_t devattr;
    ddi_dma_cookie_t dmacookie;
    size_t real_length = 0;
    uint_t cntcookie = 0;
    dev_info_t *dip           = tag;
    int rc = 0;
    caddr_t kaddrp = NULL;
    unsigned int bytecount = size
    dmaattr.dma_attr_version = DMA_ATTR_V0;
    dmaattr.dma_attr_addr_lo = 0x0;
    dmaattr.dma_attr_addr_hi = 0x07fffffff; /* 31 bit mask */
    dmaattr.dma_attr_count_max = 0x0ffffffff;
    dmaattr.dma_attr_align = 1;
    dmaattr.dma_attr_burstsizes = 0x01;
    dmaattr.dma_attr_minxfer = 0x01;
    dmaattr.dma_attr_maxxfer = 0x0ffffffff;
    dmaattr.dma_attr_seg = 0x0ffffffff;
    dmaattr.dma_attr_sgllen = 1;
    dmaattr.dma_attr_granular = 1;
    dmaattr.dma_attr_flags = 0;
    rc = ddi_dma_alloc_handle(
         dip,
         &dmaattr,
         DDI_DMA_SLEEP,
         NULL,
    &(dma_addr->m_handle));
    if (rc !=DDI_SUCCESS)
    switch (rc)
    case DDI_DMA_BADATTR:
    rc = DDI_DMA_BADATTR;
    break;
    case DDI_DMA_NORESOURCES:
    rc = DDI_DMA_NORESOURCES;
    break;
    default:
    break;
    return rc; /* handle allocation failed and stop the allocation process */
    devattr.devacc_attr_version = DDI_DEVICE_ATTR_V0;
    devattr.devacc_attr_endian_flags = DDI_NEVERSWAP_ACC;
    devattr.devacc_attr_dataorder = DDI_STRICTORDER_ACC;
    rc = ddi_dma_mem_alloc(
    dma_addr->m_handle,
    bytecount,
    &devattr,
    DDI_DMA_CONSISTENT,
    DDI_DMA_SLEEP,
    NULL,
    &kaddrp,
    &real_length,
    &(dma_addr->m_acchandle)
    if (rc != DDI_SUCCESS)
    return rc;
    rc = ddi_dma_addr_bind_handle(
    dma_addr->m_handle,
    NULL,
    kaddrp,
    real_length,
    DDI_DMA_RDWR | DDI_DMA_CONSISTENT,
    DDI_DMA_SLEEP,
    NULL,
    &dmacookie,
    &cntcookie
    if (rc != DDI_DMA_MAPPED)
    switch (rc)
    case DDI_DMA_PARTIAL_MAP:
    rc = DDI_DMA_PARTIAL_MAP;
    break;
    case DDI_DMA_INUSE:
    rc = DDI_DMA_INUSE;
         break;
    case DDI_DMA_NORESOURCES:
    rc = DDI_DMA_NORESOURCES;
    break;
    case DDI_DMA_NOMAPPING:
    rc = DDI_DMA_NOMAPPING;
    break;
    case DDI_DMA_TOOBIG:
    rc = DDI_DMA_TOOBIG;
         break;
    default:
    break;
    return rc;
    if (cntcookie!=1)
    return rc;
    bzero(kaddrp, bytecount);
    dma_addr->m_address = dmacookie.dmac_address;
    dma_addr->m_kaddrp = kaddrp;
    dma_addr->m_nbytes_req = bytecount;
    dma_addr->m_nbytes_real = real_length;
    return kaddrp; /* kernel virtual address */
    Please note that if I set dma_attr_addr_hi = 0xffffffff, I do not get the DDI_DMA_NOMAPPING error any more and get a 32 bit dma bus address which is not usable by the device. How can get around this problem? Any suggestion will be helpful and greatly appreciated.
    Best Regards,
    Ying

  • External Hard disk has space problem for Time Machine

    Im not sure this is the right place to post this, but I've just got OSX.5 so Time Machine is new to me. I've got a 500Gb Firewire Lacie Drive which I now have, as far as I can see, about 110GB of stuff in. I have a bout 300Gb to back up. Currently my mac can only see 260GB free, which means theres about 150GB that isnt explained. I have run Disk Inventory, which shows the dot files on the drive. There seem to be hardly any. Is there anything else that could be taking up such a large amount of disk space? Theres one movie file of 28GB that I cannot move off the drive.

    Tim Whelan2 wrote:
    Im not sure this is the right place to post this, but I've just got OSX.5 so Time Machine is new to me. I've got a 500Gb Firewire Lacie Drive which I now have, as far as I can see, about 110GB of stuff in.
    Let's see what Disk Utility (in your Applications/Utilities folder) says. When it starts, click the top line for your drive in the sidebar (should have size and make), then the Partition tab. Towards the bottom is a *Total Capacity* line, followed by two different numbers: one in GB, the other in bytes. The first will be about 465 GB, the second roughly 500 billion. This is the different way of counting: decimal vs. binary.
    There's also a *Partition Map Scheme* line. This should be followed by GUID or +Apple Partition Map.+ If your drive isn't one of those, you're going to have a problem using it with Time Machine. Report back what this says.
    In the center part of the display is a diagram showing all the partitions currently on the disk. Each is represented by a box, with a name in the center, and the amount used represented by light blue shading.
    If there's only one partition, it's total size and amount available will be in the center, shown in GB.
    If there are 2 or more, click each one in turn to see it's sizes. The Total of the sizes should be almost the same as the total at the bottom (the Partition Map takes a bit of space).
    It sounds like you may have 2 partitions, one for TM backups, one for your "other stuff". If so, each partition is treated separately for most purposes: there should be two icons on your desktop and/or Finder sidebar, for example.
    Report back what you find, and whether it makes sense to you or not. Then we can figure out what's going on and what you need to do.
    But note this: This drive is a bit small to use with Time Machine. TM works best if it has 2-3 times the space of what it's backing-up, so it can keep a few months of your backups. See item #1 of the Frequently Asked Questions post at the top of this forum.
    Even if you could use the entire 465 GB or so, that's less than twice the 300 gb you want to back up. That would work, for a while, but depending on how you use your Mac, TM may not be able to keep your backups for very long.

  • PCI 2.1 SLot on K7T Turbo Limited Edition?

    I'm about to get a Firewire Card but I'm not sure whether my MB :   K7T Turbo Limited Edition (MS-6330 v3.X) has a PCI 2.1 slot. I haven't found it in manual either. Can anybody help?
    Thanks
    minurec

    Welcome!
    My Turbo2 manual doesn't specify either, but specs on MSI site for mine shows 32 bit PCI 2.2, usually backward compatible. Your MB is just one very short edition back, and I bet your slots are probably the same and 2.1 compatible. MSI shows yours as 32 bit, but w/o the #version. To my memory the 2.1 standard predates our MBs by a couple of years or more. I think you're safe to go.

Maybe you are looking for