Helios, a FireWire stack for MorphOS
  • Paladin of the Pegasos
    Paladin of the Pegasos
    jcmarcos
    Posts: 1178 from 2003/3/13
    From: Pinto, Madrid ...
    Quote:

    Yomgui wrote:

    speed is an highly undefined thing.


    Marvellous explanation, one that illuminates one fact: Computers are complex.
  • »30.09.10 - 10:39
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Yomgui
    Posts: 348 from 2004/8/31
    From: Québec - Canada
    But anyway, I really need to profile my code to see where the bottleneck is.

    I've got a MiniMax, and transfering 700MB to RAM using Ambient copy, leads me to 21MB/s in best case. Using USB2.0 gives 23MB/s in best case.

    Even if Ambient copy process sends SCSI requests with 256KB buffers, I've found this FW limitation strange. That's why I really need to profile my code.
    And now... next project!
  • »30.09.10 - 12:59
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    Yomgui
    Posts: 348 from 2004/8/31
    From: Québec - Canada
    I've made some profiling and results show me that 96% of time is waiting the result from the HD. But I've seen also that the time between the moment where application send the io request and the time when this io request is processed was very long...

    I've found that increasing task priority for the sbp2 task (and also Helios task) give me extra time and I've reached the same speed as USB2.0 one (for my setup).

    Now, I try to see how to get more speed than USB ;-)
    And now... next project!
  • »01.10.10 - 01:23
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    Simon
    Posts: 809 from 2008/7/6
    From: Antwerp, Belgium
    Quote:


    Yomgui wrote:
    Quote:

    Can it be integrated in Poseidon


    Are you joking?
    /me slap twice jcmarcos !

    Helios is a Firewire stack, Poseidon is a USB stack and not more.
    Do you want that TinyGL handles AHI also ? :-D



    [ Edited by Yomgui on 2008/12/10 9:56 ]


    Maybe JCmarcos ment: can it be integrated in the Poseidon GUI ( or is that integrated in the stack, I know nothing about these things ) ? That wouldn't be a bad thing. But would it be possible ... I don't know.
    Proud member of the Belgian Amiga Club since 2003

  • »01.10.10 - 13:34
    Profile Visit Website
  • JJ
  • Acolyte of the Butterfly
    Acolyte of the Butterfly
    JJ
    Posts: 147 from 2010/7/7
    From: Wales
    Can you work on the Airport drivers next please :)
    We don't stop playing because we grow old; we grow old because we stop playing. - George Bernard Shaw


    Xbox Live: S0ulA55a551n2
  • »01.10.10 - 13:42
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Yomgui
    Posts: 348 from 2004/8/31
    From: Québec - Canada
    @Oepabakkes:

    No it's not related: not same options, not same classes, and so on.
    I can make something like Poseidon to have a continuity in the GUI.
    But it's a preference GUI outside Poseidon, for sure.

    @JJ: no, I don't want to touch something like this ;-)

    [ Edited by Yomgui on 2010/10/1 15:50 ]
    And now... next project!
  • »01.10.10 - 13:48
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    jcmarcos
    Posts: 1178 from 2003/3/13
    From: Pinto, Madrid ...
    > > Can it be integrated in Poseidon

    > Are you joking?
    > /me slap twice jcmarcos !

    Hey, don't slap me, I didn't even said that! ;-)

    I don't see how another connectivity stack can be "integrated" into Poseidon anyway. Well, if we let fantasy run wild, one could imagine Poseidon enumerating ALSO the IEEE 1394 controller (and all its connected junk), aside from the USB controller.

    But that can't happen. Let's concentrate again if Guillaume's achievements.
  • »01.10.10 - 16:10
    Profile
  • MorphOS Developer
    cyfm
    Posts: 537 from 2003/4/11
    From: Germany
    Quote:


    Yomgui schrieb:

    The USB doesn't have such software overhead.



    You would be surprised how much software overhead USB really has .... IMHO USB is a typical PC interface with the guideline: "We have enough CPU power, so let's try to waste as many CPU cycles as we can for the low level protocol even though we have DMA ...."
    OHCI1394 is definitely way more efficient there....
  • »01.10.10 - 17:12
    Profile Visit Website
  • Yokemate of Keyboards
    Yokemate of Keyboards
    magnetic
    Posts: 2129 from 2003/3/1
    From: Los Angeles
    Yomgui

    Ok got back to my place in LA. I tried to install the latest version and copied all classes, c: stuff, and devs as per readme and I dont think its working. Unit control doesnt see nor do any ohter hd tools. My Graid isnt coming up... the directions are confusing to me or I messed up or it doesnt work.. :(

    pega-1

    Do you think there is a chance of getting Helios integrated officially into Morphos? So that there is no need for user searching for files and downloading and configuring them?

    [ Edited by magnetic on 2010/10/3 3:48 ]
    Pegasos 2 Rev 2B3 w/ Freescale 7447 "G4" @ 1ghz / 1gb Nanya Ram
    Quad Boot: MorphOS 2.7 | Amiga OS4.1 U4 | Ubuntu PPC GNU/Linux | OS X 10.4
  • »03.10.10 - 02:09
    Profile Visit Website
  • Acolyte of the Butterfly
    Acolyte of the Butterfly
    Posts: 108 from 2005/4/3
    From: Netherlands
    Hi all, Yomgui,

    My Sony handycam camera, worlds first widescreen cam, it was recognized in FWInspect
    from the previous Helios release. This Helios, i see no prove it's plugged in. Tried
    with option ramdebug booting the bootimage.

    Grts Amigaharry
    http://www.angelfire.com/amiga/ex
  • »03.10.10 - 19:27
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    Yomgui
    Posts: 348 from 2004/8/31
    From: Québec - Canada
    @AmigaHarry:
    You DVcam is always seen by the FW chipset and Helios... just that there is no driver for it yet.

    I'm working on that, I've recently finished the Isochronous receive support and coded a small example to grab the dvcam stream into a file (depending on dvcam it's MPEG2-TS or DV stream).

    Today I've made modified this code and make a MUI gui using VLayer and FFMPEG to display the DV in realtime the video... it's quite impressive.

    mencoder is working to reencode it into x264 video (dv footage is a 100MB file)....
    When it finished I upload it on vimeo and edit this post when available.

    [ Edited by Yomgui on 2010/10/3 23:48 ]
    And now... next project!
  • »03.10.10 - 21:47
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    Yomgui
    Posts: 348 from 2004/8/31
    From: Québec - Canada
    For people that don't see anything, please to read carrefully the readme: you need to make sure to have run "helios_rom_start" binary BEFORE any other ones!

    In case to not have followed this strict rule: please reboot and try again!

    Now: please to check this video, I think it will be a BOMB :-)

    http://www.vimeo.com/15521285

    [ Edited by Yomgui on 2010/10/5 10:06 ]
    And now... next project!
  • »03.10.10 - 22:46
    Profile Visit Website
  • Yokemate of Keyboards
    Yokemate of Keyboards
    magnetic
    Posts: 2129 from 2003/3/1
    From: Los Angeles
    yomgui
    very exciting news on the dv video. And you did the famous screen within screen trick :P

    I ran helios_rom_start in shell with snoppium running and I tries to launch files and devs but all come up as FAIL!

    It would be cool if there was an installer as I may have not installed it right.
    Pegasos 2 Rev 2B3 w/ Freescale 7447 "G4" @ 1ghz / 1gb Nanya Ram
    Quad Boot: MorphOS 2.7 | Amiga OS4.1 U4 | Ubuntu PPC GNU/Linux | OS X 10.4
  • »05.10.10 - 06:38
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    Yomgui
    Posts: 348 from 2004/8/31
    From: Québec - Canada
    If ALL hardwares units are fails, please take a look to PCIScan output. And check if the FW unit is not taken by someone else.

    Be sure also that helios_rom_start has been launched as first after boot and only one time.

    Note also that your 1394 hw unit maybe broken, I've already seen that.
    Send me your log ;-)

    [ Edited by Yomgui on 2010/10/5 10:13 ]
    And now... next project!
  • »05.10.10 - 08:08
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    jcmarcos
    Posts: 1178 from 2003/3/13
    From: Pinto, Madrid ...
    Quote:

    Yomgui wrote:

    check if the FW unit is not taken by someone else, and also that helios_rom_start has been launched as first after boot


    Interesting details. Could you explain to us what's the required scenario for Helios at startup?

    It fascinates me, all this "run me before someone else grabs the harwdare", brings memories of Early MorphOS on Amigas...

    Very, very impressive job, by the way. Being firewire much less common than USB, perhaps we could live without lovely user interfaces.
  • »05.10.10 - 08:40
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Yomgui
    Posts: 348 from 2004/8/31
    From: Québec - Canada
    @jcmarcos:

    Helios uses PCIX library... just check how API is designed in the SDK, so :-)

    PCIX library gives you possibility to set an "owner" of the PCI board object. Well, it's not a strict keeper as any software can use the PCI API without checking if the object is owned or not. But it's not my case: if I see that the PCI object is already owned the HW unit init fails.

    Now, an other app setting this owning is the ohcimon of Frank Mariak, given in the morphos SDK.

    It possible also that the OHCI HW doesn't respond correctly to my requests (ex: a reset doens't occure).

    [ Edited by Yomgui on 2010/10/5 11:22 ]
    And now... next project!
  • »05.10.10 - 09:21
    Profile Visit Website
  • Yokemate of Keyboards
    Yokemate of Keyboards
    magnetic
    Posts: 2129 from 2003/3/1
    From: Los Angeles
    Yomgui

    I've used the fw ports on my peg2 with linux fine, so i know they work. (even had an ipod mounted over firewire with MOL and OSX!)

    I do have the SDK installed can that be a cause?
    And yes I always run the helios_start_rom command before anything on reboot.
    Pegasos 2 Rev 2B3 w/ Freescale 7447 "G4" @ 1ghz / 1gb Nanya Ram
    Quad Boot: MorphOS 2.7 | Amiga OS4.1 U4 | Ubuntu PPC GNU/Linux | OS X 10.4
  • »05.10.10 - 09:48
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    boot_wb
    Posts: 874 from 2007/4/9
    From: Kingston upon ...
    Quote:


    Yomgui wrote:
    I'm working on that, I've recently finished the Isochronous receive support and coded a small example to grab the dvcam stream into a file (depending on dvcam it's MPEG2-TS or DV stream).


    Great results - I saw Piru's post on Amiga.org whilst Morphzone was down. Shame about the thread pollution...

    (Humbly asks) Do you have any plans to add isochronous send support (ie for supporting FW audio devices?

    Quote:

    Today I've made modified this code and make a MUI gui using VLayer and FFMPEG to display the DV in realtime the video... it's quite impressive.


    Indeed!

    Quote:

    mencoder is working to reencode it into x264 video (dv footage is a 100MB file)....


    Out of interest, what MorphOS machine are you using (there are so many now :-D )?
    Just wondering if the lower-end Powermacs would be able to do this, or if you require a >2GHz G5 Powermac... (and, of course, a 3.x development branch)

    Best Regards



    Rich
    www.hullchimneyservices.co.uk

    UI: Powerbook 5,6 (1.67GHz, 128MB VRam): OS3.1, OSX 10.5.8
    HTPC: Mac Mini G4 (1,5GHz, 64MB VRam): OS3.1 (ZVNC)
    Audiophile: Efika 5200b (SB Audigy): OS3.1 (VNC + Virtual Monitor)

    Windows free since 2011!
  • »05.10.10 - 11:56
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    Yomgui
    Posts: 348 from 2004/8/31
    From: Québec - Canada
    @boot_wb: I'm using a MacMini G4@1.5GHz/64MB-VRAM (late2005).
    I've also a Peg1 G3 and a Peg2 G4.

    Yes I've planned to support FW iso tx, but I haven't any hw to check that (except my dv-cam maybe... but not sure and anyway need to implement AV/C class to support that).

    But forget h264 encoding! takes too much time, for just few % of compression.

    [ Edited by Yomgui on 2010/10/5 16:45 ]
    And now... next project!
  • »05.10.10 - 14:41
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    Yomgui
    Posts: 348 from 2004/8/31
    From: Québec - Canada
    Update:

    In one of my previous post, I've said that I've not reached the USB transfer speed (is 23MB/s to copy a 700MB file located on a SFS partition, into RAM:).

    I've supposed that was my code and I've tried to profile it.
    After analysing profile data, I've not found major issues in my code that could increase more than 1 or 2 % the speed.

    But yesterday I've found that I've forget to setup an important bus parameter: the GapCount.
    I'm not going to enter in technical explanations about this value, but just saying that the default value is the max, so the bus is in the most secure mode to handle data.

    Most secure = less speed rate.

    By descreasing this value to a suitable one using manual operations, I've finally reached a 30MB/s speed using default Ambient copy and even 36MB/s (!!!) by tweaking it using the copy shell command and 1MB per SCSI cmd.

    Now I need to make this value setup more automatic.

    [ Edited by Yomgui on 2010/10/15 11:32 ]
    And now... next project!
  • »15.10.10 - 09:32
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    jcmarcos
    Posts: 1178 from 2003/3/13
    From: Pinto, Madrid ...
    Interesting thingie, that "gap count"... How could Helios attempt to make it as lower as possible, and dynamically raise, if it (somehow) senses packets failures?
  • »15.10.10 - 11:40
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Posts: 423 from 2005/4/9
    From: magyarorszag/h...
    is it possible with morphos/helios to use a pmac booted in firewire mode as a mass storage device with firewire?
    DEAD pegII/G4@1000.1gb ram.radeon 9200pro
    240 gigz hd.nec dvdrw.MorphOS 2.4 DEAD
    -=-=-=-
    amiga1200T.blizzardppc@180/040@25.96megz ram
    -=-=-=-=-
    zx.spectrum@3.5
  • »15.10.10 - 11:55
    Profile Visit Website
  • Yokemate of Keyboards
    Yokemate of Keyboards
    magnetic
    Posts: 2129 from 2003/3/1
    From: Los Angeles
    saddam

    on paper yes, piru referenced to this a few times.. using powerbook as g4 target fw drive..

    Yomgui

    Very cool man i havent had a chance to use my peg lately, i just installed 2.6 on it i'll try the helios driver with my fw drives again.
    Pegasos 2 Rev 2B3 w/ Freescale 7447 "G4" @ 1ghz / 1gb Nanya Ram
    Quad Boot: MorphOS 2.7 | Amiga OS4.1 U4 | Ubuntu PPC GNU/Linux | OS X 10.4
  • »16.10.10 - 02:18
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    osco
    Posts: 680 from 2009/10/21
    From: Boston, USA
    Send me your log

    [INF][HELIOS-helios_process_bm : 338] ioerr = 1New OHCI bus generation: 248, Local NodeId: 1
    [INF][OHCI-ohci_UpdateTopologyMapping : 390] New topo: 0x24466848
    [INF][OHCI-ohci_UpdateTopologyMapping : 425] [unit 0] Node 0: 2 port(s), 0 connected children
    [INF][OHCI-ohci_UpdateTopologyMapping : 425] [unit 0] Node 1: 2 port(s), 1 connected children
    [INF][OHCI-topo_set_max_speed : 213] Node 1: max speed=2
    [INF][OHCI-topo_set_max_speed : 213] Node 0: max speed=2
    [INF][HELIOS-Helios_UpdateDevice :1328] Update dev 0x23392308 (0->1) @ tgen=13558, Rom-up-flags: IQ
    [INF][HELIOS-Helios_UpdateDevice :1328] Update dev 0x20e90c38 (1->0) @ tgen=13558, Rom-up-flags: Q
    [INF][OHCI-ohci_UpdateTopologyMapping : 551] [unit 0] Topo #13559 OK: NodeCnt=2, GapCount=63, local=1, IRM=1, root=1
    [INF][HELIOS-helios_process_bm : 316] Checking for BM...
    [INF][HELIOS-helios_process_bm : 338] ioerr = 0
    RptMsg: [BusManager] Send PHY cfg <GapCount=63>
    New OHCI bus generation: 249, Local NodeId: 0
    [INF][OHCI-ohci_UpdateTopologyMapping : 390] New topo: 0x2416f850
    [INF][OHCI-ohci_UpdateTopologyMapping : 425] [unit 0] Node 0: 2 port(s), 0 connected children
    [INF][OHCI-ohci_UpdateTopologyMapping : 425] [unit 0] Node 1: 2 port(s), 1 connected children
    [INF][OHCI-topo_set_max_speed : 213] Node 0: max speed=2
    [INF][OHCI-topo_set_max_speed : 213] Node 1: max speed=2
    [INF][HELIOS-Helios_UpdateDevice :1328] Update dev 0x23392308 (1->0) @ tgen=13559, Rom-up-flags: IQ
    [INF][HELIOS-Helios_UpdateDevice :1328] Update dev 0x20e90c38 (0->1) @ tgen=13559, Rom-up-flags: Q
    [INF][OHCI-ohci_UpdateTopologyMapping : 551] [unit 0] Topo #13560 OK: NodeCnt=2, GapCount=63, local=0, IRM=0, root=1
    [INF][HELIOS-helios_process_bm : 316] Checking for BM...

    [INF][HELIOS-helios_process_bm : 338] ioerr = 1
    RptMsg: [BusManager] Send PHY cfg <GapCount=63>
    New OHCI bus generation: 108, Local NodeId: 1
    [INF][OHCI-ohci_UpdateTopologyMapping : 390] New topo: 0x23887890
    [INF][OHCI-ohci_UpdateTopologyMapping : 425] [unit 0] Node 0: 2 port(s), 0 connected children
    [INF][OHCI-ohci_UpdateTopologyMapping : 425] [unit 0] Node 1: 2 port(s), 1 connected children
    [INF][OHCI-topo_set_max_speed : 213] Node 1: max speed=2
    [INF][OHCI-topo_set_max_speed : 213] Node 0: max speed=2
    [INF][HELIOS-Helios_UpdateDevice :1328] Update dev 0x23392308 (0->1) @ tgen=14698, Rom-up-flags: IQ
    [INF][HELIOS-Helios_UpdateDevice :1328] Update dev 0x20e90c38 (1->0) @ tgen=14698, Rom-up-flags: Q
    [INF][OHCI-ohci_UpdateTopologyMapping : 551] [unit 0] Topo #14699 OK: NodeCnt=2, GapCount=63, local=1, IRM=1, root=1
    [INF][HELIOS-helios_process_bm : 316] Checking for BM...
    [INF][HELIOS-helios_process_bm : 338] ioerr = 0
    RptMsg: [BusManager] Send PHY cfg <GapCount=63>
    OHCI1394 Monitor port not found.

    -- Opening serial device failed --
    Mac Mini 1.5GHz, 1G, 250G Drive, Apple Cinema Display, MorphOS 3.1 registered, MacOS 10 PowerBook (5,8) 1.67Hz, 2G, 80G Drive,........Waiting
    PowerBook (5,8) 1.67Hz, 2G, 40G MorphOS 3.1 unregisterd
  • »29.12.12 - 09:25
    Profile
  • MorphOS Developer
    geit
    Posts: 1031 from 2004/9/23
    sadddam,
    Quote:


    is it possible with morphos/helios to use a pmac booted in firewire mode as a mass storage device with firewire?


    Yes, I do that all the time to backup my peg2 to PowerMac and clone it to my iBook for traveling. It works great.

    Geit
  • »29.12.12 - 09:31
    Profile