Changeset 2851
- Timestamp:
- Feb 4, 2012 12:16:53 AM (16 months ago)
- Files:
-
- 2 edited
-
cpu/arm/linux.fth (modified) (4 diffs)
-
ofw/core/fdt.fth (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
cpu/arm/linux.fth
r2800 r2851 49 49 defer ofw-tag, ' noop to ofw-tag, \ Define externally if appropriate 50 50 51 : set-parameters ( cmdline$ -- )52 linux-paramsto tag-adr51 : set-parameters ( cmdline$ adr -- ) 52 to tag-adr 53 53 54 54 5 tag-l, \ size … … 95 95 : linux-fixup ( -- ) 96 96 [ifdef] linux-logo linux-logo [then] 97 use-fdt? 0= if98 args-buf cscount set-parameters ( )99 then97 \ use-fdt? 0= if 98 \ args-buf cscount set-parameters ( ) 99 \ then 100 100 disable-interrupts 101 101 … … 105 105 [ifdef] flatten-device-tree 106 106 use-fdt? if 107 flatten-device-tree to r2107 linux-params h# 40000 flatten-device-tree 108 108 else 109 linux-params to r2110 then 111 [ else]109 args-buf cscount linux-params set-parameters 110 then 111 [then] 112 112 linux-params to r2 113 [then]114 113 linux-hook 115 114 ; … … 128 127 to ramdisk-adr 129 128 130 ramdisk-adr " linux,init d-start" chosen-int-property131 ramdisk-adr /ramdisk + " linux,init d-end" chosen-int-property129 ramdisk-adr " linux,initrd-start" chosen-int-property 130 ramdisk-adr /ramdisk + " linux,initrd-end" chosen-int-property 132 131 ; 133 132 : $load-ramdisk ( name$ -- ) -
ofw/core/fdt.fth
r2800 r2851 11 11 0 value fdt-strings-ptr 12 12 0 value fdt-strings-end 13 h# 40000 value /fdt13 0 value /fdt 14 14 15 15 0 value the-node 16 16 17 17 : fdt-remaining ( -- n ) fdt-end fdt-ptr - ; 18 : ?fdt-enough ( n -- )19 20 ;21 18 22 19 : +fdt ( n -- ptr ) … … 102 99 ; 103 100 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 107 103 fdt to fdt-ptr 108 104 fdt /fdt + to fdt-end … … 167 163 fdt 168 164 ; 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 169 216 previous 170 217
Note: See TracChangeset
for help on using the changeset viewer.
