Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
102 user(s) are online (71 user(s) are browsing Forums)

Members: 0
Guests: 102

more...

Headlines

Forum Index


Board index » All Posts (Spirantho)




Re: DMAing between PCI cards
Quite a regular
Quite a regular


@Rogue

Quote:

Does the chip not support a scatter/gather list?

Have you looked at the PCI device, whether it has a PCI pin and line assigned?


To be honest I'm not exactly sure, as my knowledge of such things is rather limited (this is the first proper driver I've written, after all). I do know that I can program exactly where I want each pixel to be put in memory, though, which is how I'm working round the lack of a contiguous lump of memory.

As for the PCI pin and line... how can I tell for sure if it's assigned? Certainly the code which worked on the Bt8x8 chipset doesn't work on the Cx2388x chipset even though they're practically the same hardware. How can you diagnose these problems?

Sorry for so many questions, I'm a bit in the dark here but there's not very much documentation on writing device drivers under AmigaOS 4 (not surprisingly given how you're too busy writing the OS itself!)

Thanks again!

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: Techie questions regarding the nuw Amiga OS4 update
Quite a regular
Quite a regular


@Hans

Quote:

Hans wrote:
@Spirantho

So large allocvec allocations might be fragmented physically in memory? I didn't realize that; although it's only important when you're writing a driver.


I think so. Certainly I know that if you do a StartDMA() on anything larger than a few KB then StartDMA() fails.

In the old SDK you could use AllocMem() with a "contiguous" tag, and then StartDMA would succeed on large blocks, but since AllocMem was deprecated in favour of AllocVecTags you can't do that any more and you can't ever do a StartDMA unless you happen to be dealing in a small enough chunk.

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: Techie questions regarding the nuw Amiga OS4 update
Quite a regular
Quite a regular


@Rogue

Quote:

Darn, I wasn't aware that AllocVecTags wasn't out there yet... that is indeed a problem.


Why d'you think I've been yelling so noisily about the lack of SDK since January? :)

It means that absolutely no way anyone outside of the people with the Beta SDK can allocate a contiguous chunk of memory - which isn't good for device drivers like I'm writing!

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: DMAing between PCI cards
Quite a regular
Quite a regular


@Rogue

Quote:

Rogue wrote:
@Spirantho

I am not aware that there should be any kind of problem with the DMA buffer size. For starters, 4k should be safe since that is the page size.


It's not a problem per se, it's just a side-effect of not being able to allocate contiguous blocks of memory. Once I can do that it should just work. I hope!


Quote:

Quote:
Now if I could just work out why the interrupt routine isn't being triggered even when the interrupt is being raised... but that's a different matter entirely I'll worry about when I've got things displaying again.


What machine is this card in? Does it have a bridge?


Bog standard A1XE G4@800. Interrupts worked fine when I was using the Bt8x8 chipset, but the CX2388x chipset raises the interrupt from what I can see but the interrupt routine never gets called. The registers on the Cx2388x say it's raised, I can read the interrupt register and it's triggered - it just never calls the routine. It may be a peculiarity of the Cx2388x chipset though.

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: Techie questions regarding the nuw Amiga OS4 update
Quite a regular
Quite a regular


@Rogue

Great, that'll help a lot. Debugging a library is very difficult without DebugPrintF!

Quote:

Rogue wrote:
@Spirantho
I am sorry for the delay of the SDK, but one major factor in this is a problem with binutils stripping too much for the shared object support, resulting in unusable binaries when you strip them.

Since my time is limited, and my knowledge of binutils is even more limited, this is dragging on. Just releasing the autodocs and includes will not do much good.


It's actually just the includes I need. I need to be able to allocate a contiguous lump of memory, approximately 432KB (768x576 - PAL resolution, in other words) and it's impossible without AllocVecTags(). The function's there in the library, I just can't use it without the correct include.

I've found a way of making it use one DMA chunk per line but that means 576 different DMA lists. Yummy. I think a contiguous lump would make life rather easier...

Quote:

(edit) I am not aware of any problem with DMA with buffers of more than 2k. As a matter of fact, I am very sure that the IDE devices use larger DMA transfers.


No, but they're using AllocVecTags() whereas I'm using AllocMem() and hoping for the best as there's no alternative!

Many thanks for your quick replies!

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: DMAing between PCI cards
Quite a regular
Quite a regular


@Rogue

Excellent... so I should just need to IMMU->GetPhysicalAddress( OverlayBitmapAddress ) or whatever, and then I should be able to StartDMA() on it?

Ironically enough had I been able to do that already I probably wouldn't be needing to wait for the updated SDK as the Framebuffer should be contiguous anyway.

In the meantime I'll just carry on what I'm doing at the moment (DMAing into main memory, then copying into frame buffer overlay memory). Or at least what I'm trying to do at the moment, albeit in 2K DMA chunks!

Now if I could just work out why the interrupt routine isn't being triggered even when the interrupt is being raised... but that's a different matter entirely I'll worry about when I've got things displaying again.

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


DMAing between PCI cards
Quite a regular
Quite a regular


Hi everybody,

One of the things about doing WinTV card development is that I need to find the best speed, and I think that the usual way is for the WinTV card (which is a BusMastering card) to dump its output straight into the graphics card memory.

How can you go about doing this?
I've created an overlay surface and got the address of the bitmap associated with it. When I tried to StartDMA on it, though, the system kind of went kablooie a bit (i.e. it hung solid).
Do I need to mess around with Physical Addresses and the like?

Anyone got any advice? Thanks!

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: Techie questions regarding the nuw Amiga OS4 update
Quite a regular
Quite a regular


@abalaban

Quote:

abalaban wrote:
Also it's sad SDK is delayed further, because it's a long time now since it's been last updated Even a small update with new include and autodocs at least for Final would be good.


Quite..... I've just about given up waiting and I'm having to work around the fact that DMA doesn't work on buffers larger than about 2K.

Incidentally, this post isn't just a *grump*-where's-my-SDK-*grump* posting, but I noticed that I'm no longer getting any serial debug output when I use IExec->DebugPrintF(). Did something change or have I just forgotten to enable something...?

Pleeeease though, new SDK? Even if just enough to deal with the parts that were broken?

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: Sam440 and Hyperion's AOS4.x
Quite a regular
Quite a regular


I certainly intend to get a Sam440.... I still suspect the A1 hardware of causing lock-ups in the interrupt handling for TV card drivers, but I won't know for sure until I get my grubby mitts on another OS4 capable machine, i.e. OS 4 for my 4000 (and the appropriate upgrade to my Prometheus), or probably the SAM.

'course I'll never get anything done unless an up-tp-date SDK comes out....

Go to top


Re: Picasso96 PIP support
Quite a regular
Quite a regular


Good good, I know where to look now!

Thanks for the quick help, guys....!

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: Picasso96 PIP support
Quite a regular
Quite a regular


@rwo

That did it. I had to lock the workbench screen and pass the Screen * structure into the P96 call.

The debug string I used was actually a %p (as pointers are ULONGs aren't they?), but I changed it to %lx just to be sure and it still returned 2.

I now have a PIP window!

Is there proper documentation for this sort of thing? I can't find any info about needing to pass in the screen pointer or anything like that, nor about error codes. Error 2 therefore appears to be "Don't know what screen to use" and error 3 appears to be "PIP window already open".

I'm still stuck without DMA though. I was almost hoping that I could bypass AllocVecTags() completely and call StartDMA on the bitmap created by P96PIP_OpenTags(), but alas, no. Calling StartDMA on the PIP Bitmap just hung the machine solid.

Looks like I'm back to waiting on that SDK then.....

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Picasso96 PIP support
Quite a regular
Quite a regular


Hi everybody,

Figured while I was waiting for a working SDK I'd play around with overlay mode a bit.....

Can't get it to work, though. The documentation very helpfully says "See Includes for possible failure reasons". Which would be great if I could find anything at all anywhere.

The function I'm calling is:
mWindow = IP96->p96PIP_OpenTags( P96PIP_ErrorCode, &tError, WA_Left, 10, WA_Top, 10, P96PIP_SourceFormat, RGBFF_YUV422, P96PIP_SourceWidth, mPrefs->Width, P96PIP_SourceHeight, mPrefs->Height, WA_InnerWidth, mPrefs->Width, WA_InnerHeight, mPrefs->Height, WA_IDCMP, IDCMP_RAWKEY | IDCMP_MOUSEBUTTONS | IDCMP_INTUITICKS | IDCMP_NEWSIZE, TAG_DONE );

mWindow is set to NULL afterwards, and P96PIP_ErrorCode fills tError with 0x02. What this means I haven't a clue. It may mean that the Radeon hasn't had any breakfast today and doesn't feel like co-operating for all I know.
Is there better documentation on P96 PIP stuff? Or even examples anywhere?

Can anyone help? Ta!

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: Hello Amigans!
Quite a regular
Quite a regular


Excellent.... another Amiga addict in Wales...! :)

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: Radeon cards - please list your config here
Quite a regular
Quite a regular


1. 17 0x1002 0x5159 ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE]
2. INTERRUPT=YES
3. -
4. AmigaOne XE G4@800 512MB RAM

Go to top


Re: Where oh where can my SDK be....
Quite a regular
Quite a regular


@Rogue

Thanks for the reply. You'll have to excuse my impatience as I know there's a lot of work to do in an SDK and you're all very busy... but it's so frustrating seeing all these people deprived of software when there's people like myself who can't do any coding just because of one or two files which are being held up by stuff that I don't need (yet!).

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: Where oh where can my SDK be....
Quite a regular
Quite a regular


@Raziel

Thanks for that info....

... but I wish they'd prioritise a bit more developer-friendly. I'm not sure they realise that the lack of a complete SDK means that until it comes out no developer can write a driver - all because of one or two files.

I understand why they want to make the SDK encompass all the new stuff, but in doing so they're holding up development on other projects which have nothing to do with it. Kind of annoying....

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Where oh where can my SDK be....
Quite a regular
Quite a regular


Is there any update on a working SDK?

I think it's getting a bit silly now. The last update fundamentally broke some really important parts of the SDK for anyone wanting to do any drivers (which are pivotal for the OS), and we still don't have an update.

For four months now I've been wanting to work on getting more done on my TV card and I've not been able to because of the lack of an SDK.

I know SDKs don't grow on trees, but this is getting daft. Can't we at least have a diff to the parts of the docs/includes that are broken?

Sorry to sound impatient but how on earth are people expected to code for an OS when the only SDK that exists publically is out of date and useless when it comes to things like driver writing? It's getting incredibly frustrating.

(For those not in the know: the last update changed the function AllocMem() and a parameter was removed which was essential for allocating a contiguous DMA'able chunk of memory. You now need to use AllocVecTags() I think but that function doesn't exist in the latest 51.22 SDK. Hence it's impossible to DMA anything with the current SDK!)

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: Where is the SDK?
Quite a regular
Quite a regular


@ssolie

Sooner the better for the new SDK as far as I'm concerned as I can't do any TV-card work till I've got it...

so just make sure the new SDK is nice and clear on DMA and interrupts and the like, and I'll be happy!

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top


Re: Own up... who broke the UK locale?
Quite a regular
Quite a regular


@BillE
[quote="BillE"]

On the whole unless you are over 90 I think the metric settng is more relevant in the UK, after all anyone who did any science at school will tend to use metric units anyway.

Only in the USA do they still insist on using old "British" units in the modern era
[/quote]

Er... no. :)

You need both. After all, what's the national speed limit in this country? 60 miles per hour. That's one very obvious use of Imperial measurements, but there are others....

I know my weight is about 8.5 stone. No idea in Kg. But if I pick up an object I'll always estimate it in g or Kg.

I know my height is about 5'10" - 5'11"... but my pace is approximately a metre.

Ah, the joys of being British. And people say we're idiosyncratic.... strange.....

Go to top


Re: What happened to IExec->StartDMA()...?
Quite a regular
Quite a regular


@ssolie

Quote:

ssolie wrote:
@Spirantho
The AllocVecTags() function and other changes will be made available in the updated SDK.

@sg2
Are you sure you can do DMA drivers without the updated SDK on the new kernel?


Looks like that's what it needs. Kind of annoying really... spend ages waiting for overlay code and now I've got it I can't compile even a normal version yet. Hope the SDK doesn't take too long!

@sg2
The AllocVec returns the number I put in the debug output at the top.

--
Ian Gledhill
ian.gledhill@btinternit.com (except it should be internEt of course...!)
Check out my company's shop: http://www.mutant-caterpillar.co.uk/shop/ - specialising in Sinclair Spectrums but will be adding Amigas!
Go to top



TopTop
« 1 ... 22 23 24 (25) 26 »




Powered by XOOPS 2.0 © 2001-2023 The XOOPS Project