Changeset 2851


Ignore:
Timestamp:
Feb 4, 2012, 12:16:53 AM (3 years ago)
Author:
wmb
Message:

Flattened device tree fixes from debugging session.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpu/arm/linux.fth

    r2800 r2851  
    4949defer ofw-tag, ' noop to ofw-tag,  \ Define externally if appropriate 
    5050 
    51 : set-parameters  ( cmdline$ -- ) 
    52    linux-params to tag-adr 
     51: set-parameters  ( cmdline$ adr -- ) 
     52   to tag-adr 
    5353 
    5454   5           tag-l,    \ size    
     
    9595: linux-fixup  ( -- ) 
    9696[ifdef] linux-logo  linux-logo  [then] 
    97    use-fdt? 0=  if 
    98       args-buf cscount set-parameters          ( ) 
    99    then 
     97\   use-fdt? 0=  if 
     98\      args-buf cscount set-parameters          ( ) 
     99\   then 
    100100   disable-interrupts 
    101101 
     
    105105[ifdef] flatten-device-tree 
    106106   use-fdt?  if 
    107       flatten-device-tree to r2 
     107      linux-params h# 40000 flatten-device-tree 
    108108   else 
    109       linux-params to r2 
    110    then 
    111 [else] 
     109      args-buf cscount linux-params set-parameters 
     110   then 
     111[then] 
    112112   linux-params to r2 
    113 [then] 
    114113   linux-hook 
    115114; 
     
    128127   to ramdisk-adr 
    129128 
    130    ramdisk-adr " linux,initd-start"  chosen-int-property 
    131    ramdisk-adr /ramdisk +  " linux,initd-end"  chosen-int-property 
     129   ramdisk-adr " linux,initrd-start"  chosen-int-property 
     130   ramdisk-adr /ramdisk +  " linux,initrd-end"  chosen-int-property 
    132131; 
    133132: $load-ramdisk  ( name$ -- ) 
  • ofw/core/fdt.fth

    r2800 r2851  
    11110 value fdt-strings-ptr 
    12120 value fdt-strings-end 
    13 h# 40000 value /fdt 
     130 value /fdt 
    1414 
    15150 value the-node 
    1616 
    1717: fdt-remaining  ( -- n )  fdt-end fdt-ptr -  ; 
    18 : ?fdt-enough  ( n -- ) 
    19     
    20 ; 
    2118 
    2219: +fdt  ( n -- ptr ) 
     
    10299; 
    103100 
    104 : flatten-device-tree  ( -- adr ) 
    105    /fdt alloc-mem /fdt-align round-up to fdt 
    106    fdt /fdt erase 
     101: flatten-device-tree  ( adr len -- ) 
     102   to /fdt  to fdt 
    107103   fdt to fdt-ptr 
    108104   fdt /fdt + to fdt-end 
     
    167163   fdt 
    168164; 
     165 
     166: fdt@  ( offset -- l )  fdt + be-l@  ; 
     167: +fdt-ptr  ( n -- )  fdt-ptr + 4 round-up to fdt-ptr  ; 
     168: fdt@@  ( -- l )  fdt-ptr be-l@  /l +fdt-ptr  ; 
     169 
     170: fdt@$  ( -- adr len ) 
     171   fdt-ptr cscount   ( adr len ) 
     172   dup 1+ +fdt-ptr 
     173; 
     174: .fdt-value  ( value$ name$ -- ) 
     175   " compatible"  $=  if  show-strings  exit  then 
     176 
     177   \ Test for unprintable characters 
     178   2dup -null text?  if    
     179      to-display-column  -null  type  exit   
     180   then   ( adr,len ) 
     181 
     182   dup /n /mod  swap 0=  if         ( adr len #ints ) 
     183      .ints   exit                  ( -- ) 
     184   then                             ( adr,len #ints ) 
     185   drop                             ( adr,len ) 
     186 
     187   to-display-column  h# 10 min  cdump                             ( ) 
     188; 
     189: .fdt-property  ( -- ) 
     190   [ also hidden ] indent [ previous ] 
     191   fdt@@                                    ( value-length ) 
     192   fdt@@ fdt-strings + cscount  2dup type   ( value-length name$ ) 
     193   2>r  fdt-ptr over  2r>  .fdt-value       ( value-length ) 
     194   +fdt-ptr                                 ( ) 
     195; 
     196: .fdt-node  ( -- ) 
     197   [ also hidden ] indent [ previous ] 
     198   fdt@$ type cr 
     199; 
     200 
     201: dump-fdt  ( -- ) 
     202   0 fdt@ h# d00dfeed <> abort" FDT magic mismatch" 
     203   fdt  h# 0c fdt@ +  to fdt-strings 
     204   fdt h# 80 + to fdt-ptr 
     205   begin 
     206      fdt@@ case 
     207         1 of  .fdt-node 2 lmargin +!  endof 
     208         2 of  -2 lmargin +!  endof 
     209         3 of  .fdt-property  endof 
     210         9 of  exit  endof 
     211         ( -- ) ." Bogus DT tag " . cr exit 
     212      endcase 
     213   again 
     214; 
     215 
    169216previous 
    170217 
Note: See TracChangeset for help on using the changeset viewer.