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.