Jump to content

CardBus/PCMCIA PC Cards for Tiger


~Eureka
 Share

161 posts in this topic

Recommended Posts

Hi Chun-Nan,

 

Your rev 2 of IOPCI still causing error in my comp. It is about USBF AppleUSBUHCI: UIMInitialize - ioMap is NULL unable to initialize UIM something... just like error generated by the rev 1 IOPCI...

 

regards

 

Barbie

 

Hi Barbie,

 

Can you boot with rev2 but without AGPGart loaded and see if the error is still there? I would like to know if the AGPGart caused the problem. BTW, did your system crash this time?

 

Which version of IOUSBFamily are you using now? Can you boot into single user mode to get the dmesg information?

 

Thanks.

 

Chun-Nan

Link to comment
Share on other sites

About bus numbering, here is the sample link. I am sure you can search more on the internet.

http://www.science.unitn.it/~fiorella/guid...100000000000000

Thanks for explanation

About "kIOPCIResetKey", it should be defined in IOPCIPrivate.h.

OK! It is Leo property that I have no.

About "getFreeCount()", it relates to the problem of "IOPCCardBridge::checkBridgeBusIDs invalid sub/cardbus/pci settings of 0x0". Because it doesn't have free bus/range resources, it cause "0x0".

You can check this message on your dmesg "PCI configuration changed (BUS free=0 needed=1 added=1)".

I think you are wrong. getFreeCount() good ONLY if zero. You might use getFragmentCount()

Then I put "if (0 & gIOPCISkip)". Therefore, if gIOPCISkip != 0, it will skip the following command while if gIOPCISkip = 0, it won't.

NO! :D The result always 0. So you always skip command.

You might write if(!gIOPCISkip)

 

2 EqUaTe

This warning means that we compare Ranges and Counts. Both is integer so warning only, but they have different sense :P Linux will never be good :(

Link to comment
Share on other sites

I can't agree - linux is already very good, and a large percentage of 3rd party drivers have been ported from linux to OSX.. (Though why we're not porting from BSD, I'm not really sure..).

 

And if I'm reading what Chun-Nan said, actually it will NEVER skip the command.

 

 

Anyway - the important thing about my post is that I have agpgart & Chun-Nan's IOPCIFamily/IOPCCardFamily working happily together.

Link to comment
Share on other sites

Hi Barbie,

 

Can you boot with rev2 but without AGPGart loaded and see if the error is still there? I would like to know if the AGPGart caused the problem. BTW, did your system crash this time?

 

Which version of IOUSBFamily are you using now? Can you boot into single user mode to get the dmesg information?

 

Thanks.

 

Chun-Nan

 

Hi Chun-Nan,

 

Good news, with rev2 but without AGPGart loaded, computer boot well.

with AGPGart loaded, my comp get freeze after some long list message on the screen (verbose mode), but it can boot into single user mode and here is the dmesg result as attached.

My version of IOUSBFamily is 2.7.7

 

regards,

 

Barbie

with_agp.txt

Link to comment
Share on other sites

I can't agree - linux is already very good, and a large percentage of 3rd party drivers have been ported from linux to OSX.. (Though why we're not porting from BSD, I'm not really sure..).

I use Ubuntu during half a year. Every weeks download 100Mb patches. When it finished? System became spagetti because of thousand libs in one place with incompatible versions.

 

You are right. Linux world have more developers with more experience about drivers then HackOSX.

And if I'm reading what Chun-Nan said, actually it will NEVER skip the command.

if(0 & gIOPCISkip) is the same as if(0) that means NEVER EXEC, always SKIP.

Anyway - the important thing about my post is that I have agpgart & Chun-Nan's IOPCIFamily/IOPCCardFamily working happily together.

Interesting news. I think it depends on PCI hardware configuration.

I also trying to resolve the issue.

AGPGart 2.2 and 2.4 have a difference in ATI RS300 bus support. For you it is probably the same.

Link to comment
Share on other sites

I use Ubuntu during half a year. Every weeks download 100Mb patches. When it finished? System became spagetti because of thousand libs in one place with incompatible versions.

Sounds like you did an upgrade from one release to another. They only just really got that working, and imo it's still a bit hacky.

I don't like Ubuntu. Debian is far better :)

 

You are right. Linux world have more developers with more experience about drivers then HackOSX.

 

if(0 & gIOPCISkip) is the same as if(0) that means NEVER EXEC, always SKIP.

Hrm.. Yet it does seem to allocate bridges?

 

Interesting news. I think it depends on PCI hardware configuration.

I also trying to resolve the issue.

AGPGart 2.2 and 2.4 have a difference in ATI RS300 bus support. For you it is probably the same.

 

Well, I haven't tried your one.. But this is fairly old hardware.. Dell C640. Intel chipset board, radeon 7500m..

But no crashes, at all.

 

Might be worth having a look at yourself..

 

 

EqUaTe

Link to comment
Share on other sites

Hi Slice,

 

I think you are right with "(0 & gIOPCISkip)". I will fix it in the next revision. However, I did want to skip it. Otherwise, it will set all command to "0".

 

Chun-Nan

 

========

 

Hi Barbie,

 

Can you post the dmesg without AGPGart loadded? Thanks.

 

Chun-Nan

Link to comment
Share on other sites

Hi All!

I found a mistake in AGPGart all version from 2.2 and later.

Tomorrow I'll give you new one after own testing.

the mistake in rewriting getBridgeSpace() method... ;)

Link to comment
Share on other sites

Hi Chun-Nan!

 

I have a problem.

AGPGart started repeatedly many times with

PCI configuration changed...

many USB errors (bus 38 is already talken) and finally kernel panic even in -s mode.

Seems it is not only my problem or I can't understand what is happen.

 

Your changes influence on all bridges but may be restrict it to CardBus?

 

(0 & gIOPCISkip) - not influence in any combinations

always 0

always 1

gIOPCISkip

!gIOPCISkip

Link to comment
Share on other sites

Hi slice,

 

I am working on iopcifamily for leopard right now. Hopefully, it will fix the firewire issue and maybe agpgart issue. If the test is ok, I will update the tiger version. Be positive! :D

 

Chun-Nan

I want to prevent you from bad effort. You try to reconfigure PCI bus but this operation is very dangerous for other drivers.

Two day I waste to reformatting my HDD because IOPCIFamily raise an error in ATA driver and system is destroyed.

After reinstalling the system I'll contunue to work on the problem.

Link to comment
Share on other sites

Slice,

 

No offense, but you need to think about it if it took you two days to reinstall.

 

Also, try and be more positive about things! Negative attitudes inevitably lead to defeat.

Has it occurred to you that this work will benefit us all in the long-run, potentially for much more than just PCCard & FW ?

Link to comment
Share on other sites

I repeat. I think that bus renumbering is a wrong way because of conflicts.

 

Why so long no success?

Why Apple exclude these codes from version 2.x being in version 1.x?

 

I am working too but I am very far from full understanding the process. Chun-Nan is more advanced.

Link to comment
Share on other sites

I have some advances.

	// Probe I/O base and limit

end = configRead32(bridge->space, kPCI2PCIIORange);
//Slice
//	if (end && ((end & (0x0f0f)) == 0))
if (end && ((end & (0x0e0e)) == 0))

This correction already made for Leo but not for Tiger.

It resolves my problem with "Bridge IO Range" for Video Card.

 

  //Slice
//	err = getDTNubAddressing( nub );  //V22
err = getNubAddressing( nub );  //V16

First method for getting address better but only for system with all devices supported, i.e. Real Mac.

Second method give me perfect sound without delays and overall improvements.

 

Some other changes.

 

This driver is still compatible with AGRGart but don't give me good IODeviceMemory for CardBridge. To be continued...

Link to comment
Share on other sites

I repeat. I think that bus renumbering is a wrong way because of conflicts.

 

Why so long no success?

Why Apple exclude these codes from version 2.x being in version 1.x?

 

I am working too but I am very far from full understanding the process. Chun-Nan is more advanced.

 

Why so long with no success? Because Chun-Nan doesn't have AGP, and everything on his system has worked perfectly for some time.

 

Ever tried to code something and test it entirely on other peoples hardware? It ain't easy :blink:

 

He's also focusing on the leopard version for now. Once that is sorted, he'll move on to the tiger one - most of the changes should be backportable i suspect.

 

 

Glad you've seen a few things that help in your own trials though..

 

 

EqUaTe

Link to comment
Share on other sites

Hi all,

 

In oreder to find out the firewire issues and other issues, I need people to test the file and report the result.

 

Here is the test1 IOPCIFamily. Use this one with IOPCCardFamily on rev2.

 

Please follow these steps:

1. Backup your working IOPCCardFamily and IOPCCardFamily.

2. Replace those files with test1 IOPCIFamily and rev2 IOPCCardFamily.

3. Double-check the permessions of the files and delete the cache files (Extensions.mkext and Extensions.kextcache)

4. Shutdown the computer. (Don't just restart but turn it off)

5. Turn it back on after a while.

6. Boot with "-s" to enter single user mode. Let me know the dmesg result.

7. Boot with standard mode. Check if both firewire and pccard function correctly.

 

Again, don't forget to backup your original file before trying it. Thanks a lot.

 

Chun-Nan

 

IOPCIFamily.test1.zip

Link to comment
Share on other sites

I have strange observation.

in dmesg

PCI configuration changed (bridge=0 device=5 yenta=1)

Why yenta?

I have two devices N5

	| |   |   +-o NIC0@5  <class IOPCIDevice, registered, matched, active, busy 0, retain count 10>
| |   |   | | {
| |   |   | |   "IODeviceMemory" = (({"address"=0xffffffffc0204000,"length"=0x2000}))
| |   |   | |   "device-id" = <0c170000>
| |   |   | |   "IOChildIndex" = 0x3
| |   |   | |   "name" = "ethernet"

| |   |   +-o ATIM@5  <class IOPCIDevice, registered, matched, active, busy 0, retain count 12>
| |   |	 | {
| |   |	 |   "AAPL,gray-page" = <01000000>
| |   |	 |   "IODeviceMemory" = (({"address"=0xffffffffd0000000,"length"=0x10000000}),{"offset"=0x9000,"parent"=({"address"=0x0,"length"=0x10000}),"length"=0x100},({"address"=0xffffffffc0100000,"length"=0x10000}))
| |   |	 |   "device-id" = <"5X">
| |   |	 |   "IOChildIndex" = 0x1
| |   |	 |   "name" = "display"

With the same busNum and functionNum

 

About precautions.

Restart a system and then enter BIOS

Make RESET CONFIGURATION DATA! -- it is PCI bus configuration.

else I have kernel panic.

Link to comment
Share on other sites

I have strange observation.

in dmesg

 

Why yenta?

I have two devices N5

	| |   |   +-o NIC0@5  <class IOPCIDevice, registered, matched, active, busy 0, retain count 10>
 | |   |   | | {
 | |   |   | |   "IODeviceMemory" = (({"address"=0xffffffffc0204000,"length"=0x2000}))
 | |   |   | |   "device-id" = <0c170000>
 | |   |   | |   "IOChildIndex" = 0x3
 | |   |   | |   "name" = "ethernet"

 | |   |   +-o ATIM@5  <class IOPCIDevice, registered, matched, active, busy 0, retain count 12>
 | |   |	 | {
 | |   |	 |   "AAPL,gray-page" = <01000000>
 | |   |	 |   "IODeviceMemory" = (({"address"=0xffffffffd0000000,"length"=0x10000000}),{"offset"=0x9000,"parent"=({"address"=0x0,"length"=0x10000}),"length"=0x100},({"address"=0xffffffffc0100000,"length"=0x10000}))
 | |   |	 |   "device-id" = <"5X">
 | |   |	 |   "IOChildIndex" = 0x1
 | |   |	 |   "name" = "display"

With the same busNum and functionNum

 

About precautions.

Restart a system and then enter BIOS

Make RESET CONFIGURATION DATA! -- it is PCI bus configuration.

else I have kernel panic.

 

Hi Slice,

 

I have rewritten the way of fixing pccard on iopcifamily. If possible, you can try to help to test the test1 iopcifamily. Thanks.

 

Chun-Nan

Link to comment
Share on other sites

Hi Chun-Nan!

 

I tried your new version.

Boot in -v -s mode.

Saw many messages then system hangs so I can't show its for you (no photo at the moment)

The last

IOPCCard info: PCIC probe

IOPCCard notice: bad bridge mapping at 0xc0202000

not found

IOPCCardBridge::start failed

This is address of USB

	| |   |   +-o pci1033,35@6,1  <class IOPCIDevice, registered, matched, active, busy 0, retain count 9>
| |   |   | | {
| |   |   | |   "USBBusNumber" = 0x26
| |   |   | |   "IODeviceMemory" = (({"address"=0xffffffffc0202000,"length"=0x1000}))

With your previous revision all devices except AGP works.

 

Can you show me your sources?

I try another method of bus renumbering. Simply copy it from IOPCIFamily 1.7

All works except AGPGart. With it I have many problems with USB.

Link to comment
Share on other sites

Hi all!

 

Now I have own IOPCIFamily.

It is compiled for Tiger 10.4.6.

Test and check all your devices, especially hot-plug.

I have working Adaptec SlimSCSI 1480. Hot plug on and off.

 

Sorry AGPGart is still incompatible. I'll be rewrite it known how to work its superclass.

 

Here is my sources and ready to use kext for Tiger.

May be someone (for example Chun-Nan) rebuild it for rendevous kernel and for Leo.

All my codes is commented.

start -- //Slice

end -- //

Link to comment
Share on other sites

Hi all!

 

Now I have own IOPCIFamily.

It is compiled for Tiger 10.4.6.

Test and check all your devices, especially hot-plug.

I have working Adaptec SlimSCSI 1480. Hot plug on and off.

 

Sorry AGPGart is still incompatible. I'll be rewrite it known how to work its superclass.

 

Here is my sources and ready to use kext for Tiger.

May be someone (for example Chun-Nan) rebuild it for rendevous kernel and for Leo.

All my codes is commented.

start -- //Slice

end -- //

 

 

working on my ASUS P4R800-VM, pentium 4 with 10.4.8

I don't have hot plug devices to test it with, anyway dmesg and ioreg attached, if it can help

dmesg.txt

ioreg.txt

Link to comment
Share on other sites

2 toadspit

If you have no problem what to check?

 

I made test with PCIE computer. Works!

Moreover.

XBench increased!

OpenGL the same 202,5 vs 203,5

User Interface 495,1 vs 439 ;)

 

OpenMark don't slow down when I move mouse as before!

Link to comment
Share on other sites

Hi all,

 

In oreder to find out the firewire issues and other issues, I need people to test the file and report the result.

 

Here is the test2 IOPCIFamily. Use this one with IOPCCardFamily on rev2.

 

Please follow these steps:

1. Backup your working IOPCCardFamily and IOPCCardFamily.

2. Replace those files with test2 IOPCIFamily and rev2 IOPCCardFamily.

3. Double-check the permessions of the files and delete the cache files (Extensions.mkext and Extensions.kextcache)

4. Shutdown the computer. (Don't just restart but turn it off)

5. Turn it back on after a while.

6. Boot with "-s" to enter single user mode. Let me know the dmesg result.

7. Boot with standard mode. Check if both firewire and pccard function correctly.

 

Again, don't forget to backup your original file before trying it. Thanks a lot.

 

Chun-Nan

 

IOPCIFamily.test2.zip

Link to comment
Share on other sites

2 toadspit

If you have no problem what to check?

 

I made test with PCIE computer. Works!

Moreover.

XBench increased!

OpenGL the same 202,5 vs 203,5

User Interface 495,1 vs 439 :angel:

 

OpenMark don't slow down when I move mouse as before!

 

 

Slice: boh? :unsure: I thought that Debug info would make more sense to you than it does to me!

 

DEBUG name = P0P1, hdr = 0x1, parent [0 - 255], device(1, 0) pri 0 [1 - 1]

DEBUG name = P0P2, hdr = 0x81, parent [0 - 255], device(20, 4) pri 0 [2 - 2]

Link to comment
Share on other sites

 Share

×
×
  • Create New...