Portál AbcLinuxu, 4. listopadu 2025 05:37
            Přímo na ARMuTo bych cekal, vzhledem ke stavu cross kompilace.
hw od Calxedy.Tahle kategorie ARMv7/ARMv8 HW je pro vetsinu uzivatelu Fedory v praxi nedostupna.
ARMv8 ještě na trhu neexistuje (64bit),Zatim, ale mam takove tuseni, ze tohle je ten pravy duvod onoho armiho cviceni.
ten ARMv7 máte ve všech těch zařízeních, co se o ně jedná (Cortex-A8, A9, A7, A15...).Jiste, jenze na nich genericky nenabootujete a to jde.
Což mi nevysvětluje, jestli chtějí nějak genericky řešit bootstrap na ARMu atd.Pokud nebudou cilit na nekolik dostupnych HW platforem a nebudou pro ne bootovatelne image, bude jen hracka pro par skalnich fandu ochotnych si hacknout nejaky Allwinner netbook ci tablet za par babek a na tom se primarni architektura asi stavet neda.
I pokud máte BareBox/u-boot bez podpory device-tree, tak se to na začátek dá obejít. V jádře lze zvolit
Boot options -> [*] Use appended device tree blob to zImage (EXPERIMENTAL) [*] Supplement the appended DTB with traditional ATAG informationPoté lze stáhnout data do RAM přes TFTP a přidat si vlastní startup helper, který správně nastaví registry před skokem do jádra
tftp vmx53/zImage zImage tftp vmx53/lnx-start-helper.bin lnx-start-helper tftp vmx53/atags.dat atags.dat memcpy -s zImage 0x0 0x70008000 4182973 memcpy -s lnx-start-helper 0x0 0x70007000 36 memcpy -s atags.dat 0x0 0x70000100 4096 go 0x70007000Zdroják helperu
.text
.code 32
.global _start
_start :
        ldr     r0, .LC_r0_val
        ldr     r1, .LC_r1_val
        ldr     r2, .LC_r2_val
        ldr     r3, .LC_jump_val
        mov     pc,r3
.LC_r0_val:
        .word   0x0
.LC_r1_val:
        .word   0x298
.LC_r2_val:
        .word   0x07000100
.LC_jump_val:
        .word   0x07008000
.end
R1 je machine ID a pro DT může být 0xffffffff, ale zdá se, že je alespoň pro náš build ignorované. R2 by mělo ukazovat na začátek ATAG, ty se dají vykopírovat z nabootovaného původního jádra/systému. Nejsou ale kritické. Kritická je adresa v R2, která musí ukazovat na start RAM+0x100. Z hodnoty se určí start RAM pro dekompresor a startovací minimální stránkovací tabulku. Zbytek si již jádro vytahá z přibaleného DT.
Optimální řešení to není, ale minimálně umožní odzkoušení nového jádra bez (s minimalizací) rizika pokažení loaderu ve FLASH.
            Problém je, že Android a další mají vlastní zprasená jádra a na mainline neběží a mainline nemají snahu o udržbu mainline.Coz je problem i mnoha HW vyrobcu, i ten bezny Allwinner neni v mainline a misto DT pouziva svuj proprietarni format.
Další možnost je DT do/za konec zImage přidat a tak to kombinovat pro různé desky i s tím embedded DT.Myslím, že by možná nebylo špatné mít možnost sestavit jádro se všemi možnýmy DT (nejlépe s možností vyprat je už během konfigurace jádra) a předat mu identifikátro toho správného až v okamžiku zavádění bootloaderm skrz parametr jádra, stejně, jako kdysi dávno u před-PnP ISA sběrnice na x68 šlo vnutit jádru porty, IRQ a DMA hardwaru (pokud nefungovala jeho autodetekce). Soubory
.dtb (přeložené binární DT) mají rádově kilobyty až několik desítek kilobitů, takže zas tak moc by to soubor s jádrem nezvětšilo.
            
.
            
            
.
            
        Tiskni
            
                Sdílej:
                
                
                
                
                
                
            
    
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.