Jump to content

Cardbus/PCMCIA Controller ID 104C:8039 Texas Instruments PCIxx12


  • Please log in to reply
418 replies to this topic

#1
solu

solu

    InsanelyMac Protégé

  • Members
  • PipPip
  • 61 posts
UPDATE: 1.6.4 of this kext (which belongs to Darwin 9/Leopard) already contains references to the xx12 chip, so it probably has been updated to include xx12 support "out of the box". See for yourself:
strings /System/Library/Extensions/IOPCCardFamily.kext/Contents/MacOS/IOPCCardFamily | grep XX
TI XX12
So the method below is probably outdated now. Simply editing the plist should be sufficient (use the computer name from the 2nd line of ioreg).

Here is a driver patching method for the Cardbus/PCMCIA Controller ID 104C:8039 Texas Instruments PCIxx12 for Darwin.

For Source Code and License, please see
http://darwinsource....CCardFamily-45/

If you like this driver, please consider making a donation to a charitable organization.

How to use?
  • Backup your original IOPCCardFamily driver
  • Replace your IOPCCardFamily driver with the attached one that contains all necessary modifications
  • Reboot
  • As root, type "dmesg | grep PC"; you should see something about TI xx12 being found
How was it done?

In a nutshell:

First, identified the card under Linux (the same information can also be found in the Windows device manager)

0000:02:06.0 CardBus bridge: Texas Instruments: Unknown device 8039
Flags: bus master, medium devsel, latency 168, IRQ 201
Memory at f4200000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=02, secondary=03, subordinate=06, sec-latency=176
Memory window 0: 40000000-41fff000 (prefetchable)
Memory window 1: 42000000-43fff000
I/O window 0: 00005000-000050ff
I/O window 1: 00005400-000054ff
16-bit legacy interface ports at 0001


Second, entered the correct values for I/O window and the Memory window into Info.plist using a plist editor (the values are Base64 encoded in the file, so a text editor is not sufficient)

Third, repaced the name of a similar TI bridge ("TI 7610"/ID "AC48" in this example) with "xx12" so that it is correctly recognized:
perl -pi -e 's|TI 7610|TI xx12|g' IOPCCardFamily


Fourth (important): Used a hex editor to edit the device ID into the binary driver. Important: device ID "8039" becomes hex "3980". In the following example, ID "AC48" will be replaced with "8039":
perl -pi -e 's|\x48\xAC\x00\x00|\x39\x80\x00\x00|g' IOPCCardFamily

Afterwards, your Cardbus slot should be working in Darwin, you should see a message during verbose boot mentioning your PCMCIA slot.

Attached Files



#2
Ruud

Ruud

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 142 posts
  • Gender:Male
  • Location:The Netherlands
is there a way to make this one work with the PCIxx21 from Texas Instruments as well?

This one is used in an acer 5024 series and i saw that more people are looking for this because ther built in wireless doenst work and want to use the cardbus for a wireless pcmcia card.

I also like it to use it for that purpose.


Great work by the way for the driver, many people will like it i think.

Ruud

#3
BugsB

BugsB

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,513 posts
  • Gender:Male
  • Location:Kauai, Hawai'i
Hi probono,

trying to dig what you did here :(

Second, entered the correct values for I/O window and the Memory window into Info.pist using a plist editor (the values are Base64 encoded in the file, so a text editor is not sufficient)

Now I am stunned a bit: for editing plist files under Windows I use Win32Pad which automatically detects the unix format of these files (should be Base64 encoding from what I know). I have the Info.plist just loaded, but cannot find ANY of the strings you mentioned (00005000-000050ff, 00005400-000054ff, 40000000-41fff000, 42000000-43fff000), not even with my hex editor. Are those lines hidden - do I need a special editor to find and edit them? Which plist editor do you use?

Thanks for the driver,
Bugs (don't have a PCMCIA card at hand so cannot test it right now ..)

#4
BugsB

BugsB

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,513 posts
  • Gender:Male
  • Location:Kauai, Hawai'i
[EDIT] me stupid - you translated the values, right?:

I/O Port Ranges: 00005000-000050ff & 00005400-000054ff --> AD/AAAA//8 & AAD+AAAA/v8

Memory Ranges: 40000000-41fff000 & 42000000-43fff000 --> 9CAAAPQgD/8 & /+/wAP/v//8 & 3AAAAN////8 & AA3wAAAN//8=

couple of questions:

1. why are there 4 Memory ranges in the info.plist?

2a. which program do you use to translate the ranges from one format into the other, and what are these formats called?
2b. do you know of a platform independent web interface that can do that?

#5
BugsB

BugsB

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,513 posts
  • Gender:Male
  • Location:Kauai, Hawai'i

As root, type "dmesg | PC"; you should see something about TI xx12 being found

--> -sh: PC: command not found

dmesg

--> IOPCCardBridge::start failed :thumbsdown_anim:

however, in System Profiler: IOPCCardFamily: Dependencies satisfied

In terminal I did everything correctly before reboot:
sudo -s

(give password and hit ENTER; if your password is blank then just hit ENTER)

chown -R root:wheel /System/Library/Extensions/*.kext

diskutil repairpermissions /

rm /System/Library/Extensions.mkext /System/Library/Extensions.kextcache

kextcache -k /System/Library/Extensions/

reboot
My Toshiba Laptop does have the Cardbus/PCMCIA Controller ID 104C:8039 Texas Instruments PCIxx12. I'll boot into Windows again later on to compare all the ranges you mentioned.

#6
nethak

nethak

    InsanelyMac Protégé

  • Members
  • Pip
  • 6 posts
Thanks for your hard work to get the TI xx12 up and running. It definitely works for me and my Acer Aspire 3680. The only problem I'm having is that after I sleep the notebook, the PC Card slots are dead until next reboot. Since this is the ONLY problem I experience when sleeping my notebook, I'm wondering if the problem lies with the xx12 driver or my ACPI files?

#7
Ruud

Ruud

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 142 posts
  • Gender:Male
  • Location:The Netherlands

Thanks for your hard work to get the TI xx12 up and running. It definitely works for me and my Acer Aspire 3680. The only problem I'm having is that after I sleep the notebook, the PC Card slots are dead until next reboot. Since this is the ONLY problem I experience when sleeping my notebook, I'm wondering if the problem lies with the xx12 driver or my ACPI files?


This is because of the acpi files, i have this problem with usb also.



First step would be to find out the information about the card from Linux. Boot a Linux Live CD (such as Knoppix), and use the command "lspci -v". Then, post the output of the relevant block (should be very similar to above).



I wil take a look at it tomorrow, have to download the live cd first.

Ruud

#8
BugsB

BugsB

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,513 posts
  • Gender:Male
  • Location:Kauai, Hawai'i
hi probono,

here are the specs from my Laptop. In Windows PCMCIA is split up in controller and device, and the values are definitely different, too:
Class: PCMCIA adapters | Device: Generic CardBus Controller
Device ID: PCI\VEN_104C&DEV_8039&SUBSYS_FF311179&REV_00\4&6B16D5B&0&20F0
IRQ: [00000017]
MEM: [000DB000 - 000DBFFF]
MEM: [D0000000 - D3FFFFFF]
MEM: [F2BF9000 - F2BF9FFF]
MEM: [F2BFA000 - F2BFAFFF]
IO: [0000FA00 - 0000FAFF]
IO: [0000FD00 - 0000FDFF]

---------------

Class: PCMCIA and Flash memory devices | Device: Texas Instruments PCIxx12 Integrated FlashMedia Controller
Device ID: PCI\VEN_104C&DEV_803B&SUBSYS_FF311179&REV_00\4&6B16D5B&0&22F0
IRQ: [00000017]
MEM: [F2BF8000 - F2BF8FFF]

:(

what to do now? I would really like to use a 108 Mbit PCMCIA WLAN Card from Netgear ..

Greetz,
Bugs.

#9
BugsB

BugsB

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,513 posts
  • Gender:Male
  • Location:Kauai, Hawai'i
I see. Right now the SD memory card slot does not have any priority. What bugs me is that NONE of the values from my machine matches your IDs.

How can we make them match (either you or, if you tell me how to, me) :blink: ?

#10
BugsB

BugsB

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,513 posts
  • Gender:Male
  • Location:Kauai, Hawai'i

Your ranges indeed are different, maybe you have the PCIxx21 rather than the PCIxx12?

Nope :blink: :

Device: Texas Instruments PCIxx12 Integrated FlashMedia Controller
Device ID: PCI\VEN_104C&DEV_803B&SUBSYS_FF311179&REV_00\4&6B16D5B&0&22F0
IRQ: [00000017]
MEM: [F2BF8000 - F2BF8FFF]

There is a free download from Apple called XCode and Developer Tools which contains a little utility for editing plist files (very similar to regedit on Windows). This utility automatically takes care of converting the values in the right way. Use this to enter your memory ranges.

I have XCode 2.4 from the Leopard Pre-DVD, can I use that? Can you tell me the name of the "little utility for editing plist files" once I have XCode 2.x installed? Oh BTW, for editing Plist files I have been using PlistEdit Pro - do you have any idea if that tool can do the translation, too?

Thanks for your input so far, I should be able to get your driver going, shouldn't I ;) !!

#11
hyde

hyde

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts
Hi everyone

First of all, thank you Probono for your work.

I've got a Pavillion zd8000 with PCIxx21.

My output when I boot on Knoppix and use the command "lspci -v" is :

0000:0b:00.0 CardBus bridge: Texas Instruments: Unknown device 8031
Subsystem: Hewlett-Packard Company: Unknown device 3082
Flags: bus master, medium devsel, latency 168, IRQ 16
Memory at 40000000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=0b, secondary=0c, subordinate=0f, sec-latency=176
Memory window 0: 40400000-407ff000 (prefetchable)
Memory window 1: 40800000-40bff000
I/O window 0: 00005400-000054ff
I/O window 1: 00005800-000058ff
16-bit legacy interface ports at 0001


As you said, it's quite similar except the second line.

I've got some questions:

- Should I take device id 8031 or 3082 ?

- Which is the file where I have to put my device id ?

- Could someone tell us exactly which program to use to translate the ranges from one format into the other to enter the correct values for I/O window and the Memory window into Info.plist ?

Thanks for the answer

#12
Ruud

Ruud

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 142 posts
  • Gender:Male
  • Location:The Netherlands

Hi everyone

First of all, thank you Probono for your work.

I've got a Pavillion zd8000 with PCIxx21.

My output when I boot on Knoppix and use the command "lspci -v" is :

0000:0b:00.0 CardBus bridge: Texas Instruments: Unknown device 8031
Subsystem: Hewlett-Packard Company: Unknown device 3082
Flags: bus master, medium devsel, latency 168, IRQ 16
Memory at 40000000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=0b, secondary=0c, subordinate=0f, sec-latency=176
Memory window 0: 40400000-407ff000 (prefetchable)
Memory window 1: 40800000-40bff000
I/O window 0: 00005400-000054ff
I/O window 1: 00005800-000058ff
16-bit legacy interface ports at 0001
As you said, it's quite similar except the second line.

I've got some questions:

- Should I take device id 8031 or 3082 ?

- Which is the file where I have to put my device id ?

- Could someone tell us exactly which program to use to translate the ranges from one format into the other to enter the correct values for I/O window and the Memory window into Info.plist ?

Thanks for the answer



I have the same ti device ( now i dont have do download de knoppix cd ::D )
If someony could help with making this driver it would be awesome.


Ruud

#13
hyde

hyde

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts
Maybe it's possible to put a range for the Memory window and I/O window values instead of the values for only one device.

If we can do that there will be no problem if people have the same device id but differents values for Memory window and I/O window.

#14
BugsB

BugsB

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,513 posts
  • Gender:Male
  • Location:Kauai, Hawai'i
Check out this thread, there is some interesting information about ranges. However it is not exactly about memory ranges ..

#15
MikhaiL

MikhaiL

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts
Hi i have a toshiba a100 sk9 with the same device and vendor id for my cardbus controller , but when i type in dmesg | grep PC - i get errors and nothing is loading. Is there anything i can do to fix that?

#16
BugsB

BugsB

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,513 posts
  • Gender:Male
  • Location:Kauai, Hawai'i

Hi i have a toshiba a100 sk9 with the same device and vendor id for my cardbus controller , but when i type in dmesg | grep PC - i get errors and nothing is loading. Is there anything i can do to fix that?

.. verify (as we had to do, too) that the ranges of your controller are the same, too (as explained in probono's first posting) ..

#17
fingerr

fingerr

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 260 posts
  • Gender:Male
  • Location:Poland
Hi all,

I have Tecra A7 and Windows reports VEN_104 and DEV_8039, so I've made changes (except hexedit binary file) but I got message during startup:

IOPPCard info: Intel PCIC probe: TI xx12 rev 00

and my system hangs after that.

Anyone know such a situation?

p.s.
Where/How can I find string that should be hexedited in binary file? (I use HexEdit)

Thanks in advance and best regards!

#18
BugsB

BugsB

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,513 posts
  • Gender:Male
  • Location:Kauai, Hawai'i
@ Mariusz : inside the IOPCCardFamily.kext (/Contents/MacOS) there are two files: IOPCCardFamily~ and IOPCCardFamily. The first one is the unedited original. Just compare these two files in your hex app (I use Hex Workshop 4.23), that way you will find the two instances that have to be edited.

Good luck :-) !

#19
fingerr

fingerr

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 260 posts
  • Gender:Male
  • Location:Poland
@BugsBunny

Thanks for info Bugs.

So it means that IOPCCardFamily is suitable for my device.

Still waiting for someone who solved problem similiar to mine.

#20
MikhaiL

MikhaiL

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts
um, in device manager, i looked and found 4 different memory ranges, so, could you help me which go where. and where would i insert them in plist?

Attached Files







0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy