Dovolím si nesouhlasit.
Obskurního HW mi rukama prošlo hodně
Pamatuji například SCSI scanner.
Ale scanner s 1394 ne.
I kdyby se takový scanner našel, tak nesouhlasí druhá polovina tvrzení.
Zařízení které měli Firewire měli i USB.
Firewire bylo nejčastěji 400Mbit/s a USB 2.0 dává 480 Mbit/s.
Kvůli režii USB byl FW sice nepatrně rychlejší ale jen nepatrně.
Nedávalo smysl použit FW.
FW 800 potřeboval podporu na obou stranách. Ale "osmistovka" se tak málo rozšířila že se v praxi snad nikdy nepoužila.
Protoze nenazrany Apple. Kdyz se jim FW konecne rozjel a Intel to zacal davat do chipsetu, tak si rekli “wait a minute, tady lezi hromada penez” a zkusili zmenit licencni podminky a misto one-time platby za pristup k licenci si zacit uctovat dolar za kazdy FW port na kazdem zarizeni. Nacez Intel nastvane praskl dverma, zastavil vsechno spolecneho s FW a zacal tlacit USB2.0, Microsoftu se ta situace naramne hodila v konkurencnim boji s Apple, a bez podpory v PC HW a Windows se na FW vetsina trhu vykaslala - moc prace, drahe, proste tam dejme USB i kdyz ma o neco horsi parametry, ale stoji vyrazne min a bude to out of box.
7. 1. 2024, 08:34 editováno autorem komentáře
Souhlasím. Jen bych použil místo slov "o něco horší parametry" dalece horší parametry v tehdejším srovnání IEEE vs USB 2.0.
Při kopírování z USB CPU 100%, nic nešlo pořádně dělat.
Při kopírování z IEEE jsem mohl dělat cokoliv, protože to nevytěžovalo takto hloupě procesor.
7. 1. 2024, 11:33 editováno autorem komentáře
Puvodni USB bylo zalozene na OUTSW/INSB prenos dat musel tect pres CPU. DMA prislo az pozdeji. FireWire bylo od zacatku koncipovano jako SCSI na jine fyzicke vrstve se vsemi vyhodami, ktere to prinasi. Jako treba standartizovane rozhrani pro disky, cdrom, scannery a paskovy mechaniky.
PS: kamera se ovlada jako paskova mechanika.
Hezke cteni. Ja jen nechapu, jak mohl Apple sam rozhodnout o zmene licencovani FW? Na vyvoji se podilely taky jine spolecnosti, a FW samotne vyzaduje dalsich ~250 patentu od 10 spolecnosti (z nich Apple vlastni jenom 1/4). Krom toho o licencovani FW byla sjednana smlouva. Jak to, ze ji jedna strana mohla svevolne zrusit a zmenit licencovani? Se vubec nedivim, ze "PC-svet" nechce mit s Apple nic spolecnyho...
Pokud jsem ten commit dobře pochopil, mají ty VIA čipy bug při čtení jednoho z registrů. Commit pouze zabrání tomu čtení, přičemž přestane fungovat funkcionalita zajišťovaná tím registrem (zjištění přesného času na FW lince).
Jak vlastně může bug v PCI periférii způsobit reboot celého systému? To je tvrdý HW reset, nebo se zblázní následný kód v kernelu a ten vyvolá reset softwarově (což by teoreticky mohlo jít opravit pořádně)?
V tomhle případě jde o hardware nebo firmware bug, který dost možná bude opraven v nějaké další verzi AGESA balíku od AMD.
Commit tu opravu zavádí přes linux quirks, což je framework právě pro tyhle ad-hoc opravy špatného HW/FW. Early return z funkce to zapne právě tehdy, když detekuje, že běží na ryzenu s patřičným VIA čipem.
Lidem s jiným hardwarem tak žádná funkcionalita nezmizí, jen zaplatí malou runtime cenu za další "if" v driveru. Lidem s postiženým hardwarem se přestane resetovat počítač :-)
V případě, že by cena za if byla moc velká (např. v nějaké vnitřní smyčce), tak se to dá dělat i live-patchingem, kdy quirks kód po detekci hardwaru příslušnou problematickou funkci nahradí no-opem přímo v kódu Linuxu v paměti.
Pokud to dobře chápu, quirk dělá to, že místo přečtení konkrétní hodnoty v registru vrací natvrdo nulu. Přímo v popis commitu je:
====
This commit suppresses the unexpected system reboot in the combination of
hardware. It avoids the access itself. As a result, the software stack can
not provide the hardware time anymore to unit drivers, userspace
applications, and nodes in the same IEEE 1394 bus. It brings apparent
disadvantage since time-aware application programs require it, while
time-unaware applications are available again; e.g. sbp2.
===
Takže to dopad má a očividně ne úplně nepodstatný.
Pořád ale nerozumím tomu, jakým mechanizmem bug v PCI zařízení resetuje celý systém.
Jak už tu bylo řečeno, workaround je jen pro postižené systémy. Na nich je na výběr jen reset, nebo funkčnost aspoň zařízení, které tu časovou funkčnost nepotřebují. Kdo chce plně pracovat s FireWire, tak si pořídí jiný počítač (AMD vždycky mělo různé problémy s rozhraními, např dlouho nepodpora Thunderboltu a v dávných dobách pamatuju o dost nižší rychlost na USB 2.0, např kopírování z disku).
A jak dojde k resetu systému? Ten FireWire řadič je čip na desce, který může dělat cokoli. Může sáhnout někam do RAM, do registrů CPU nebo nějakého jiného čipu.
Princip "opravy" samozřejmě chápu, quirky se v driverech používají všude. Ale zajímá mě, jakým konkrétním mechanizmem PCI zařízení (i čip natvrdo na desce je pořád "jen" PCI zařízení) shodí systém. Do RAM se dostane jen přes DMA řadič čipsetu (jehož přístupy musí nakonfigurovat driver), opravdu má PCI zařízení RW přístup přímo k registrům CPU? Jaký jiný čip by mohl ovlivnit, jakým mechanizmem?
Opravdu mě to technicky zajímá, domníval jsem se, že PCI zařízení jsou od systému poměrně odstíněná, navíc tady to jde ještě přes další PCI-e -> PCI bridge.
To udělá firmware, prostě mu nějaká komponenta hodí výjimku a exception handler to vyřeší resetem. Nebo tam pro tuto konkrétní výjimku handler není, takže to spadne do default handleru, kterým je reset. Jistě by to šlo řešit méně destruktivně, např. resetem PCIe root hubu, ale musel by to někdo udělat (zaplatit, otestovat) :)
Děkuji, už se dostáváme ke konkrétnímu mechanizmu. Výjimkou komponenty myslíš error packet vrácený daným PCI/e zařízením, jak je popisované v https://www.design-reuse.com/articles/38374/pcie-error-logging-and-handling-on-a-typical-soc.html ? Handling těchto stavů je ještě pod kernelem, ve firmwaru čipsetu, který pak třeba některé některé pošle dál kernelu přes nějaký IRQ a některé vyřeší sám, třeba tím resetem celého systému? Díky moc.
"AMD vždycky mělo různé problémy s rozhraními, např dlouho nepodpora Thunderboltu"
Kopete hezky ale na špatnou stranu.
Za průtahy kolem TB může intel.
"Rychlost USB"
Reálná Rychlost USB kolísá od 20MB/s po 30MB/s
Největší vliv má OS a driver. Opět kopete na špatnou stranu. A navíc děláte velblouda z komára. Rozdíly jsou většinou kolem 10%.
Za prvé, Thunderbolt byl už dlouho otevřený, ale AMD čekalo s předěláním I/O části SoC na nové paměti. Bylo to o levnější udělat najednou.
Za druhé, já v té době žil a problém s rychlostí kopírování souborů jsem zažil u sebe, přátel a dokonce v té době brácha notebooky i recenzoval. Na Intelu to jelo plnou rychlostí a na AMD ty 2/3.