Author: wmb Date: Fri Jun 29 23:04:07 2012 New Revision: 3023 URL: http://tracker.coreboot.org/trac/openfirmware/changeset/3023
Log: OLPC ARM - omnibus checkin of device tree additions to support the conversion of the XO Linux kernel to use the device tree.
Added: cpu/arm/mmp2/apbc.fth cpu/arm/mmp2/pmua.fth Modified: cpu/arm/linux.fth cpu/arm/mmp2/devices.fth cpu/arm/mmp2/gpio.fth cpu/arm/mmp2/irq.fth cpu/arm/mmp2/mfpr.fth cpu/arm/mmp2/spimaster.fth cpu/arm/mmp2/timer.fth cpu/arm/mmp2/twsi.fth cpu/arm/mmp2/uart.fth cpu/arm/olpc/1.75/usb.fth cpu/arm/olpc/build-fw.fth cpu/arm/olpc/rtc.fth cpu/arm/olpc/sdhci.fth cpu/arm/olpc/sdregs.fth cpu/arm/olpc/sound.fth cpu/arm/olpc/spcmd.fth dev/olpc/kb3700/spicmd.fth dev/olpc/mmp2camera/loadpkg.fth ofw/core/fdt.fth
Modified: cpu/arm/linux.fth ============================================================================== --- cpu/arm/linux.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/linux.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -104,6 +104,7 @@ arm-linux-machine-type to r1 [ifdef] flatten-device-tree use-fdt? if + load-base h# 40000 - to linux-params linux-params h# 40000 flatten-device-tree else args-buf cscount linux-params set-parameters
Added: cpu/arm/mmp2/apbc.fth ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ cpu/arm/mmp2/apbc.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -0,0 +1,90 @@ +0 0 " " " /" begin-package +" apbc" name +" mrvl,pxa-apbc" +compatible +" mrvl,mmp2-apbc" +compatible + +h# d4015000 h# 1000 reg +1 " #clock-cells" integer-property + +: +string encode-string encode+ ; + +0 0 encode-bytes +" RTC" +string \ 00 +" TWSI1" +string \ 01 +" TWSI2" +string \ 02 +" TWSI3" +string \ 03 +" TWSI4" +string \ 04 +" ONEWIRE" +string \ 05 +" KPC" +string \ 06 +" TB_ROTARY" +string \ 07 +" SW_JTAG" +string \ 08 +" TIMERS1" +string \ 09 +" UART1" +string \ 10 +" UART2" +string \ 11 +" UART3" +string \ 12 +" GPIO" +string \ 13 +" PWM0" +string \ 14 +" PWM1" +string \ 15 +" PWM2" +string \ 16 +" PWM3" +string \ 17 +" SSP0" +string \ 18 +" SSP1" +string \ 19 +" SSP2" +string \ 20 +" SSP3" +string \ 21 +" SSP4" +string \ 22 +" SSP5" +string \ 23 +" AIB" +string \ 24 +" ASFAR" +string \ 25 +" ASSAR" +string \ 26 +" USIM" +string \ 27 +" MPMU" +string \ 28 +" IPC" +string \ 29 +" TWSI5" +string \ 30 +" TWSI6" +string \ 31 +" UART4" +string \ 32 +" RIPC" +string \ 33 +" THSENS1" +string \ 34 +" clock-output-names" property + +: +int encode-int encode+ ; + +0 0 encode-bytes +\ offset clr-mask value rate +h# 00 +int h# f7 +int h# 87 +int d# 32,768 +int \ 00 RTC +h# 04 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 01 TWSI1 +h# 08 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 02 TWSI2 +h# 0c +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 03 TWSI3 +h# 10 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 04 TWSI4 +h# 14 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 05 ONEWIRE +h# 18 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 06 KPC +h# 1c +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 07 TB_ROTARY +h# 20 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 08 SW_JTAG +h# 24 +int h# 77 +int h# 17 +int d# 6,500,000 +int \ 09 TIMERS1 +h# 2c +int h# 77 +int h# 17 +int d# 26,000,000 +int \ 10 UART1 +h# 30 +int h# 77 +int h# 17 +int d# 26,000,000 +int \ 11 UART2 +h# 34 +int h# 77 +int h# 17 +int d# 26,000,000 +int \ 12 UART3 +h# 38 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 13 GPIO +h# 3c +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 14 PWM0 +h# 40 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 15 PWM1 +h# 44 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 16 PWM2 +h# 48 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 17 PWM3 +h# 4c +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 18 SSP0 +h# 50 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 19 SSP1 +h# 54 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 20 SSP2 +h# 58 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 21 SSP3 +h# 5c +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 22 SSP4 +h# 60 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 23 SSP5 +h# 64 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 24 AIB +h# 68 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 25 ASFAR +h# 6c +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 26 ASSAR +h# 70 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 27 USIM +h# 74 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 28 MPMU +h# 78 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 29 IPC +h# 7c +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 30 TWSI5 +h# 80 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 31 TWSI6 +h# 88 +int h# 77 +int h# 17 +int d# 26,000,000 +int \ 32 UART4 +h# 8c +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 33 RIPC +h# 90 +int h# 77 +int h# 7 +int d# 26,000,000 +int \ 34 THSENS1 +" clock-enable-registers" property + +end-package
Modified: cpu/arm/mmp2/devices.fth ============================================================================== --- cpu/arm/mmp2/devices.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/mmp2/devices.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -70,6 +70,7 @@
0 0 " d4018000" " /" begin-package \ UART3 fload ${BP}/cpu/arm/mmp2/uart.fth + d# 24 " interrupts" integer-property end-package devalias com1 /uart : com1 " com1" ;
Modified: cpu/arm/mmp2/gpio.fth ============================================================================== --- cpu/arm/mmp2/gpio.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/mmp2/gpio.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -39,3 +39,42 @@ : >gpio-xmsk ( gpio# -- mask pa ) >gpio-pin h# a8 + ; : gpio-set-xmsk ( gpio# -- ) >gpio-xmsk tuck io@ or swap io! ; : gpio-clr-xmsk ( gpio# -- ) >gpio-xmsk tuck io@ swap invert and swap io! ; + +\ See <Linux> Documentation/devicetree/bindings/gpio/mrvl-gpio.txt +0 0 " d4019000" " /" begin-package + " gpio" name + + " mrvl,mmp-gpio" encode-string + " mrvl,pxa-gpio" encode-string encode+ " compatible" property + + my-address my-space h# 1000 reg + + d# 49 encode-int " interrupts" property + " gpio_mux" " interrupt-names" string-property + " " " gpio-controller" property + 3 " #gpio-cells" integer-property + " " " interrupt-controller" property + 1 " #interrupt-cells" integer-property + + " /apbc" encode-phandle d# 13 encode-int encode+ " clocks" property + " GPIO" " clock-names" string-property + + + 1 " #address-cells" integer-property + 1 " #size-cells" integer-property + : encode-unit ( phys.. -- str ) push-hex (u.) pop-base ; + : decode-unit ( str -- phys.. ) push-hex $number if 0 then pop-base ; + + : make-gpio-mux-node ( offset -- ) + new-device + " gpio" name + 4 reg + finish-device + ; + h# 00 make-gpio-mux-node + h# 04 make-gpio-mux-node + h# 08 make-gpio-mux-node + h# 100 make-gpio-mux-node + h# 104 make-gpio-mux-node + h# 108 make-gpio-mux-node +end-package
Modified: cpu/arm/mmp2/irq.fth ============================================================================== --- cpu/arm/mmp2/irq.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/mmp2/irq.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -4,7 +4,8 @@ 0 0 " d4282000" " /" begin-package
" interrupt-controller" device-name -my-address my-space h# 400 reg +\ my-address my-space h# 400 reg +my-address my-space h# 1000 reg
0 value base-adr d# 64 constant #levels @@ -35,7 +36,7 @@ ;
: open ( -- flag ) - my-unit h# 400 " map-in" $call-parent to base-adr + my-unit h# 1000 " map-in" $call-parent to base-adr \ Leave the IRQ table alone so as not to steal interrupts from the SP \ block-irqs \ d# 64 0 do i disable-irq loop @@ -44,6 +45,133 @@ ; : close ( -- ) ;
+" mrvl,mmp2-intc" " compatible" string-property +1 " #address-cells" integer-property +1 " #size-cells" integer-property +: encode-unit ( phys.. -- str ) push-hex (u.) pop-base ; +: decode-unit ( str -- phys.. ) push-hex $number if 0 then pop-base ; + +0 0 " interrupt-controller" property +1 " #interrupt-cells" integer-property +\ d# 64 " mrvl,intc-numbers" integer-property +d# 64 " mrvl,intc-nr-irqs" integer-property +\ h# 20 " mrvl,intc-enable-mask" integer-property + +: make-mux-node ( statreg maskreg irq# #irqs ) + new-device + " interrupt-controller" name ( maskreg statreg irq# #irqs ) + " mrvl,intc-nr-irqs" integer-property ( maskreg statreg irq# ) + " interrupts" integer-property ( maskreg statreg ) + >r 4 encode-reg r> 4 encode-reg encode+ " reg" property ( ) + " mrvl,mmp2-mux-intc" +compatible + 0 0 " interrupt-controller" property + 1 " #interrupt-cells" integer-property + " mux status" encode-string " mux mask" encode-string encode+ " reg-names" property + finish-device +; + + h# 150 h# 168 4 2 make-mux-node \ intcmux4 + h# 154 h# 16c 5 2 make-mux-node \ intcmux5 + h# 180 h# 17c 9 3 make-mux-node \ intcmux9 + h# 158 h# 170 d# 17 5 make-mux-node \ intcmux17 + h# 15c h# 174 d# 35 d# 15 make-mux-node \ intcmux35 + h# 160 h# 178 d# 51 2 make-mux-node \ intcmux51 + h# 188 h# 184 d# 55 2 make-mux-node \ intcmux55 + +0 [if] +new-device + " interrupt-controller" name + " mrvl,mmp2-mux-intc" +compatible + + 0 0 + h# 150 encode-int encode+ 4 encode-int encode+ + h# 168 encode-int encode+ 4 encode-int encode+ " reg" property + \ h# 150 " mrvl,intc-status" integer-property + \ h# 168 " mrvl,intc-mask" integer-property + + 4 " interrupts" integer-property + d# 2 " mrvl,intc-nr-irqs" integer-property + \ 0: USB_CHARGER 1: PMIC +finish-device + +new-device + " interrupt-controller" name + " mrvl,mmp2-mux-intc" +compatible + + 0 0 + h# 154 encode-int encode+ 4 encode-int encode+ + h# 16c encode-int encode+ 4 encode-int encode+ " reg" property + + 5 " interrupts" integer-property + d# 2 " mrvl,intc-numbers" integer-property + d# 1 " mrvl,clr-mfp-irq" integer-property + \ 0: RTC_ALARM 1: RTC +finish-device + +new-device + " interrupt-controller" name + + " mrvl,mmp2-mux-intc" +compatible + + 0 0 + h# 180 encode-int encode+ 4 encode-int encode+ + h# 17c encode-int encode+ 4 encode-int encode+ " reg" property + + d# 9 " interrupts" integer-property + d# 3 " mrvl,intc-numbers" integer-property + \ 0:KPC (keypad) 1:ROT (rotary) 2: TBALL (trackball) + \ h# 15c " mrvl,intc-status" integer-property + \ h# 174 " mrvl,intc-mask" integer-property +finish-device + +new-device + " interrupt-controller" name + " mrvl,mmp2-mux-intc" +compatible + + 0 0 + h# 158 encode-int encode+ 4 encode-int encode+ + h# 170 encode-int encode+ 4 encode-int encode+ " reg" property + + d# 17 " interrupts" integer-property + d# 5 " mrvl,intc-numbers" integer-property + \ 0: TWSI2 1: TWSI3 2: TWSI4 3: TWSI5 4: TWSI6 +finish-device + +new-device + " interrupt-controller" name + + " mrvl,mmp2-mux-intc" +compatible + + 0 0 + h# 15c encode-int encode+ 4 encode-int encode+ + h# 174 encode-int encode+ 4 encode-int encode+ " reg" property + \ h# 15c " mrvl,intc-status" integer-property + \ h# 174 " mrvl,intc-mask" integer-property + + d# 35 " interrupts" integer-property + d# 15 " mrvl,intc-numbers" integer-property + \ 0: PERF 1: L2_PA_ECC 2: L2_ECC 3: L2_UECC 4: DDR + \ 5: FABRIC0_TO 6: FABRIC1_TO 7: FABRIC2_TO 8: resv 9: THERMAL + \ 10: MAIN_PMU 11: WDT2 12: CORESIGHT 13: COMMTX 14: COMMRX +finish-device + +new-device + " interrupt-controller" name + 0 0 " interrupt-controller" property + " mrvl,mmp2-mux-intc" +compatible + + 0 0 + h# 160 encode-int encode+ 4 encode-int encode+ + h# 178 encode-int encode+ 4 encode-int encode+ " reg" property + + d# 51 " interrupts" integer-property + d# 2 " mrvl,intc-numbers" integer-property + \ 0:HSI_CAWAKE 1:MIPI_HSI_INT1 + \ h# 15c " mrvl,intc-status" integer-property + \ h# 174 " mrvl,intc-mask" integer-property +finish-device +[then] + end-package
\ LICENSE_BEGIN
Modified: cpu/arm/mmp2/mfpr.fth ============================================================================== --- cpu/arm/mmp2/mfpr.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/mmp2/mfpr.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -64,3 +64,61 @@ : sleep0 ( n -- n' ) h# 0000 or ; : sleep1 ( n -- n' ) h# 0100 or ; : sleepi ( n -- n' ) h# 0080 or ; + +0 0 " d401e000" " /" begin-package \ MFPR + " mfpr" name + my-address my-space h# 1000 reg + " mrvl,pxa-mfpr" +compatible + + \ These are for generating a table in a form used by arch/arm/plat-pxa/mfp.c + : +int ( adr len n -- adr len' ) encode-int encode+ ; + : +mfpr ( adr len gpio# reg-offset -- adr len' ) >r +int -1 +int r> +int ; + : +mfpr-range ( adr len gpio#-start gpio#-end reg-offset -- adr len' ) + >r >r +int r> +int r> +int + ; + : +mfpr-end ( adr len -- adr len' ) -1 +int -1 +int -1 +int ; + + + 0 0 encode-bytes + d# 0 d# 58 h# 54 +mfpr-range + d# 59 d# 73 h# 280 +mfpr-range + d# 74 d# 101 h# 170 +mfpr-range + d# 102 d# 103 h# 00 +mfpr-range + d# 104 h# 1fc +mfpr + d# 105 h# 1f8 +mfpr + d# 106 h# 1f4 +mfpr + d# 107 h# 1f0 +mfpr + d# 108 h# 21c +mfpr + d# 109 h# 218 +mfpr + d# 110 h# 214 +mfpr + d# 111 h# 200 +mfpr + d# 112 h# 244 +mfpr + d# 113 h# 25c +mfpr + d# 114 h# 164 +mfpr + d# 115 d# 122 h# 260 +mfpr-range + d# 123 h# 148 +mfpr + d# 124 d# 141 h# 00c +mfpr-range + d# 142 h# 008 +mfpr + d# 143 d# 151 h# 220 +mfpr-range + d# 152 d# 152 h# 248 +mfpr-range + d# 154 d# 155 h# 254 +mfpr-range + d# 156 d# 159 h# 14c +mfpr-range + + d# 160 h# 250 +mfpr + d# 161 h# 210 +mfpr + d# 162 h# 20c +mfpr + d# 163 h# 208 +mfpr + d# 164 h# 204 +mfpr + d# 165 h# 1ec +mfpr + d# 166 h# 1e8 +mfpr + d# 167 h# 1e4 +mfpr + d# 168 h# 1e0 +mfpr + d# 171 h# 2c8 +mfpr \ PXA2128 only + h# 15b h# 15c h# 140 +mfpr-range \ MFPR_PIN_TWSI1_SCL - MFPR_PIN_TWSI1_SDA + h# 15d h# 15e h# 2bc +mfpr-range \ MFPR_PIN_TWSI4_SCL - MFPR_PIN_TWSI4_SDA + h# 159 h# 2c4 +mfpr \ MFPR_PIN_PMIC_INT + h# 15f h# 160 +mfpr \ MFPR_PIN_CLK_REQ + +mfpr-end + " mrvl,pin-map" property + +end-package
Added: cpu/arm/mmp2/pmua.fth ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ cpu/arm/mmp2/pmua.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -0,0 +1,74 @@ +also known-int-properties definitions +: clocks 2 ; +previous definitions + +0 0 " " " /" begin-package +" pmua" name +" mrvl,pxa-apmu" +compatible +" mrvl,mmp2-apmu" +compatible + +h# d4282800 h# 1000 reg +1 " #clock-cells" integer-property + +: +string encode-string encode+ ; + +0 0 encode-bytes +" IRE" +string \ 0 +" DISPLAY1" +string \ 1 +" CCIC" +string \ 2 +" SDH0" +string \ 3 +" SDH1" +string \ 4 +" USB" +string \ 5 +" NF" +string \ 6 +" DMA" +string \ 7 +" WTM" +string \ 8 +" BUS" +string \ 9 +" VMETA" +string \ 10 +" GC" +string \ 11 +" SMC" +string \ 12 +" MSPRO" +string \ 13 +" SDH2" +string \ 14 +" SDH3" +string \ 15 +" CCIC2" +string \ 16 +" HSIC1" +string \ 17 +" FSIC3" +string \ 18 +" HSI" +string \ 19 +" AUDIO" +string \ 20 +" DISPLAY2" +string \ 21 +" ISP" +string \ 22 +" EPD" +string \ 23 +" APB2" +string \ 24 +" clock-output-names" property + +: +int encode-int encode+ ; + +0 0 encode-bytes +\ offset clr-mask value rate +h# 048 +int h# 19 +int h# 19 +int d# 0 +int \ 0 IRE +h# 04c +int h# fffff +int h# 71b +int d# 400,000,000 +int \ 1 DISPLAY1 +h# 050 +int h# 3f +int h# 3f +int d# 0 +int \ 2 CCIC +h# 054 +int h# 1b +int h# 1b +int d# 200,000,000 +int \ 3 SDH0 +h# 058 +int h# 1b +int h# 1b +int d# 200,000,000 +int \ 4 SDH1 +h# 05c +int h# 09 +int h# 09 +int d# 480,000,000 +int \ 5 USB +h# 060 +int h# 1ff +int h# bf +int d# 100,000,000 +int \ 6 NF +h# 064 +int h# 09 +int h# 09 +int d# 0 +int \ 7 DMA +h# 068 +int h# 1b +int h# 1b +int d# 0 +int \ 8 WTM +h# 06c +int h# 01 +int h# 01 +int d# 0 +int \ 9 BUS +h# 0a4 +int h# 1b +int h# 1b +int d# 0 +int \ 10 VMETA +h# 0cc +int h# 0f +int h# 0f +int d# 0 +int \ 11 GC +h# 0d4 +int h# 1b +int h# 1b +int d# 0 +int \ 12 SMC +h# 0d8 +int h# 3f +int h# 3f +int d# 0 +int \ 13 MSPRO +h# 0e8 +int h# 1b +int h# 1b +int d# 200,000,000 +int \ 14 SDH2 +h# 0ec +int h# 1b +int h# 1b +int d# 200,000,000 +int \ 15 SDH3 +h# 0f4 +int h# 3f +int h# 3f +int d# 0 +int \ 16 CCIC2 +h# 0f8 +int h# 1b +int h# 1b +int d# 0 +int \ 17 HSIC1 +h# 100 +int h# 1b +int h# 1b +int d# 0 +int \ 18 FSIC3 +h# 108 +int h# 09 +int h# 09 +int d# 0 +int \ 19 HSI +h# 10c +int h# 13 +int h# 13 +int d# 0 +int \ 20 AUDIO +h# 110 +int h# 1b +int h# 1b +int d# 0 +int \ 21 DISPLAY2 +h# 120 +int h# 3f +int h# 3f +int d# 0 +int \ 22 ISP +h# 124 +int h# 1b +int h# 1b +int d# 0 +int \ 23 EPD +h# 134 +int h# 12 +int h# 12 +int d# 0 +int \ 24 APB2 +" clock-enable-registers" property + +end-package
Modified: cpu/arm/mmp2/spimaster.fth ============================================================================== --- cpu/arm/mmp2/spimaster.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/mmp2/spimaster.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -8,8 +8,9 @@ " spi" device-name
0 0 encode-bytes - " Marvell,ssp-spi" encode-string encode+ + " mrvl,ssp-spi" encode-string encode+ " compatible" property + " /abpc" encode-phandle d# 19 encode-int encode+ " clocks" property
my-address my-space h# 1000 encode-reg " reg" property
Modified: cpu/arm/mmp2/timer.fth ============================================================================== --- cpu/arm/mmp2/timer.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/mmp2/timer.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -188,3 +188,11 @@ do-lid ; ' safe-idle to stdin-idle + +0 0 " d4014000" " /" begin-package + " timer" name + " mrvl,mmp-timer" +compatible + my-address my-space h# 100 reg + d# 13 " interrupts" integer-property + " /apbc" encode-phandle 9 encode-int encode+ " clocks" property +end-package
Modified: cpu/arm/mmp2/twsi.fth ============================================================================== --- cpu/arm/mmp2/twsi.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/mmp2/twsi.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -156,6 +156,49 @@ : twsi-b! ( byte reg -- ) 2 twsi-out ;
[ifdef] begin-package +: make-twsi-node ( baseadr clock# irq# muxed-irq? fast? unit# -- ) + root-device + new-device + " linux,unit#" integer-property + " i2c" name + " mrvl,mmp-twsi" +compatible ( baseadr clock# irq# muxed-irq? fast? ) + if 0 0 " mrvl,i2c-fast-mode" property then ( baseadr clock# irq# muxed-irq? ) + if + " /interrupt-controller/interrupt-controller@158" encode-phandle " interrupt-parent" property + then ( baseadr clock# irq# ) + " interrupts" integer-property ( baseadr clock# ) + " /apbc" encode-phandle rot encode-int encode+ " clocks" property + + h# 1000 reg ( ) + 1 " #address-cells" integer-property + 1 " #size-cells" integer-property + " : open true ; : close ;" evaluate + " : encode-unit ( phys.. -- str ) push-hex (u.) pop-base ;" evaluate + " : decode-unit ( str -- phys.. ) push-hex $number if 0 then pop-base ;" evaluate + finish-device + device-end +; + +\ baseadr clk irq mux? fast? unit# +\ h# d4011000 1 7 false true N make-twsi-node \ TWSI1 +\ h# d4031000 2 0 true true N make-twsi-node \ TWSI2 +\ h# d4032000 3 1 true true N make-twsi-node \ TWSI3 + h# d4033000 4 2 true true 0 make-twsi-node \ TWSI4 +\ h# d4038000 d# 30 3 true true N make-twsi-node \ TWSI5 + h# d4034000 d# 31 4 true true 1 make-twsi-node \ TWSI6 + +0 0 " 30" " /i2c@d4033000" begin-package \ TWSI + " touchscreen" name + " raydium_ts" +compatible + my-address my-space 1 reg +end-package + +0 0 " 19" " /i2c@d4034000" begin-package + " accelerometer" name + " lis3lv02d" +compatible + my-address my-space 1 reg +end-package + 0 0 " " " /" begin-package " twsi" name
Modified: cpu/arm/mmp2/uart.fth ============================================================================== --- cpu/arm/mmp2/uart.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/mmp2/uart.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -1,4 +1,5 @@ " uart" name + " mrvl,mmp-uart" +compatible my-space h# 20 reg
: write ( adr len -- actual )
Modified: cpu/arm/olpc/1.75/usb.fth ============================================================================== --- cpu/arm/olpc/1.75/usb.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/olpc/1.75/usb.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -8,6 +8,9 @@ my-space swap " map-in" $call-parent h# 100 + ( adr ) ; : my-map-out ( adr len -- ) swap h# 100 - swap " map-out" $call-parent ; + " /pmua" encode-phandle 5 encode-int encode+ " clocks" property + d# 44 " interrupts" integer-property + false constant has-dbgp-regs? false constant needs-dummy-qh? : grab-controller ( config-adr -- error? ) drop false ;
Modified: cpu/arm/olpc/build-fw.fth ============================================================================== --- cpu/arm/olpc/build-fw.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/olpc/build-fw.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -81,6 +81,9 @@ ;
+fload ${BP}/cpu/arm/mmp2/pmua.fth +fload ${BP}/cpu/arm/mmp2/apbc.fth +fload ${BP}/cpu/arm/mmp2/irq.fth fload ${BP}/cpu/arm/mmp2/timer.fth fload ${BP}/cpu/arm/mmp2/twsi.fth fload ${BP}/cpu/arm/mmp2/mfpr.fth @@ -98,12 +101,13 @@ ; warning !
-fload ${BP}/cpu/arm/mmp2/irq.fth - fload ${BP}/cpu/arm/mmp2/watchdog.fth \ reset-all using watchdog timer
0 0 " d4018000" " /" begin-package \ UART3 fload ${BP}/cpu/arm/mmp2/uart.fth + " /apbc" encode-phandle d# 12 encode-int encode+ " clocks" property + d# 24 " interrupts" integer-property + 1 " linux,unit#" integer-property end-package devalias com1 /uart : com1 " com1" ; @@ -111,6 +115,9 @@
0 0 " d4030000" " /" begin-package \ UART1 fload ${BP}/cpu/arm/mmp2/uart.fth + d# 27 " interrupts" integer-property + " /apbc" encode-phandle d# 10 encode-int encode+ " clocks" property + 0 " linux,unit#" integer-property end-package devalias com2 /uart : com2 " com2" ; @@ -131,6 +138,8 @@ 0 0 " d4035000" " /" begin-package " flash" device-name
+ " /apbc" encode-phandle d# 19 encode-int encode+ " clocks" property + d# 0 " interrupts" integer-property h# 10.0000 value /device my-address my-space h# 100 reg fload ${BP}/dev/nonmmflash.fth @@ -177,8 +186,7 @@ : hdd-led-off ( -- ) ; : hdd-led-on ( -- ) ; : hdd-led-toggle ( -- ) ; -[then] -[ifdef] olpc-cl2 +[else] : hdd-led-off ( -- ) d# 10 gpio-clr ; : hdd-led-on ( -- ) d# 10 gpio-set ; : hdd-led-toggle ( -- ) d# 10 gpio-pin@ if hdd-led-off else hdd-led-on then ; @@ -219,13 +227,33 @@ : ofw-fw-filename$ " disk:\boot\olpc.rom" ; ' ofw-fw-filename$ to fw-filename$
+0 0 " f0400000" " /" begin-package + " vmeta" name + my-address my-space h# 1000 reg + + " mrvl,mmp2-vmeta" +compatible + + " /pmua" encode-phandle d# 10 encode-int encode+ " clocks" property + d# 26 " interrupts" integer-property +end-package + 0 0 " d420b000" " /" begin-package " display" name -+ olpc-cl2 fload ${BP}/cpu/arm/olpc/1.75/lcdcfg.fth -+ olpc-cl3 fload ${BP}/cpu/arm/olpc/3.0/lcdcfg.fth + my-address my-space h# 1000 reg + + " /pmua" encode-phandle 1 encode-int encode+ " clocks" property + d# 41 " interrupts" integer-property + +[ifdef] olpc-cl3 + fload ${BP}/cpu/arm/olpc/3.0/lcdcfg.fth +[else] + fload ${BP}/cpu/arm/olpc/1.75/lcdcfg.fth +[then]
fload ${BP}/cpu/arm/olpc/lcd.fth -+ olpc-cl2 fload ${BP}/dev/olpc/dcon/mmp2dcon.fth \ DCON control +[ifndef] olpc-cl3 + fload ${BP}/dev/olpc/dcon/mmp2dcon.fth \ DCON control +[then] defer convert-color ' noop to convert-color defer pixel* defer pixel+ @@ -299,18 +327,21 @@
devalias screen /display
-- olpc-cl3 devalias keyboard /keyboard +[ifdef] olpc-cl3 +create cp881-16 " ${BP}/ofw/termemu/cp881-16.obf" $file, +' cp881-16 to romfont +[else] +devalias keyboard /keyboard
-+ olpc-cl2 create 15x30pc " ${BP}/ofw/termemu/15x30pc.psf" $file, -+ olpc-cl2 ' 15x30pc to romfont -+ olpc-cl3 create cp881-16 " ${BP}/ofw/termemu/cp881-16.obf" $file, -+ olpc-cl3 ' cp881-16 to romfont +create 15x30pc " ${BP}/ofw/termemu/15x30pc.psf" $file, +' 15x30pc to romfont +[then]
fload ${BP}/cpu/arm/olpc/sdhci.fth - cl2-a1 fload ${BP}/cpu/arm/olpc/emmc.fth
-devalias int /sd/disk@3 -devalias ext /sd/disk@1 +devalias int /sd/sdhci@d4281000/disk +devalias ext /sd/sdhci@d4280000/disk devalias net /wlan \ XXX should report-net in case of USB Ethernet
fload ${BP}/dev/olpc/kb3700/spicmd.fth \ EC SPI Command Protocol @@ -370,6 +401,7 @@ + olpc-cl2 fload ${BP}/cpu/arm/olpc/1.75/usb.fth + olpc-cl3 fload ${BP}/cpu/arm/mmp2/ulpiphy.fth + olpc-cl3 fload ${BP}/cpu/arm/olpc/3.0/usb.fth ++ olpc-cl4 fload ${BP}/cpu/arm/olpc/cl4/usb.fth
fload ${BP}/dev/olpc/mmp2camera/loadpkg.fth
@@ -393,6 +425,7 @@ board-revision " board-revision-int" integer-property + olpc-cl2 " olpc,xo-1.75" " compatible" string-property + olpc-cl3 " olpc,xo-3.0" " compatible" string-property ++ olpc-cl4 " olpc,xo-cl4" " compatible" string-property
\ The "1-" removes the null byte " SN" find-tag if 1- else " Unknown" then " serial-number" string-property @@ -402,6 +435,11 @@ ['] ec-name$ catch 0= if " ec-name" string-property then ['] ec-date$ catch 0= if " ec-date" string-property then ['] ec-user$ catch 0= if " ec-user" string-property then + " /interrupt-controller" encode-phandle " interrupt-parent" property +\ " /interrupt-controller" find-package if +\ " interrupt-parent" integer-property +\ then + 0 0 " ranges" property dend
" /openprom" find-device @@ -420,6 +458,7 @@
fload ${BP}/cpu/arm/mmp2/thermal.fth fload ${BP}/cpu/arm/mmp2/fuse.fth +fload ${BP}/cpu/arm/olpc/bsl.fth
[ifndef] virtual-mode warning off @@ -509,8 +548,12 @@ false ;
-+ olpc-cl2 : rotate-button? ( -- flag ) d# 15 gpio-pin@ 0= ; -+ olpc-cl3 false value rotate-button? +[ifdef] olpc-cl3 +false value rotate-button? +[else] +: rotate-button? ( -- flag ) d# 15 gpio-pin@ 0= ; +[then] + warning @ warning off : init \ initial-heap add-memory @@ -625,15 +668,23 @@
code halt ( -- ) wfi c;
-+ olpc-cl3 fload ${BP}/cpu/arm/olpc/3.0/switches.fth \ Switches + olpc-cl2 fload ${BP}/cpu/arm/olpc/1.75/switches.fth \ Lid and ebook switches ++ olpc-cl3 fload ${BP}/cpu/arm/olpc/3.0/switches.fth \ Switches ++ olpc-cl4 fload ${BP}/cpu/arm/olpc/cl4/switches.fth \ Lid and ebook switches + fload ${BP}/cpu/arm/mmp2/rtc.fth \ Internal RTC, used for wakeups -+ olpc-cl3 fload ${BP}/cpu/arm/olpc/3.0/leds.fth \ LEDs + + olpc-cl2 fload ${BP}/cpu/arm/olpc/1.75/leds.fth \ LEDs ++ olpc-cl3 fload ${BP}/cpu/arm/olpc/3.0/leds.fth \ LEDs ++ olpc-cl4 fload ${BP}/cpu/arm/olpc/cl4/leds.fth \ LEDs + fload ${BP}/cpu/x86/pc/olpc/via/factory.fth \ Manufacturing tools
fload ${BP}/cpu/arm/olpc/accelerometer.fth -+ olpc-cl2 fload ${BP}/cpu/arm/olpc/1.75/compass.fth + +[ifndef] olpc-cl3 +fload ${BP}/cpu/arm/olpc/1.75/compass.fth +[then]
\ Suppress long memory test at final test stage dev /memory @@ -700,17 +751,22 @@
fload ${BP}/cpu/x86/pc/olpc/gamekeynames.fth
+[ifdef] cl2-a1 : game-key@ ( -- n ) 0 ( n ) -[ifdef] cl2-a1 d# 16 gpio-pin@ 0= if h# 80 or then \ O d# 17 gpio-pin@ 0= if h# 02 or then \ Check d# 18 gpio-pin@ 0= if h# 100 or then \ X d# 19 gpio-pin@ 0= if h# 01 or then \ Square d# 20 gpio-pin@ 0= if h# 40 or then \ Rotate +; [then] -[ifdef] olpc-cl2 -[ifdef] use_mmp2_keypad_control + +defined? olpc-cl2 defined? olpc-cl4 or [if] + + [ifdef] use_mmp2_keypad_control +: game-key@ ( -- n ) + 0 ( n ) d# 15 gpio-pin@ 0= if button-rotate or then ( n ) scan-keypad ( n keypad ) button-o h# 01 keypad-bit ( n' keypad ) @@ -722,7 +778,10 @@ rocker-down h# 40 keypad-bit ( n' keypad ) rocker-left h# 80 keypad-bit ( n' keypad ) drop ( n ) -[else] +; + [else] +: game-key@ ( -- n ) + 0 ( n ) d# 15 gpio-pin@ 0= if button-rotate or then d# 16 gpio-pin@ 0= if button-o or then d# 17 gpio-pin@ 0= if button-check or then @@ -732,9 +791,10 @@ d# 21 gpio-pin@ 0= if rocker-right or then d# 22 gpio-pin@ 0= if rocker-down or then d# 23 gpio-pin@ 0= if rocker-left or then -[then] -[then] ; + [then] + +[then]
fload ${BP}/cpu/x86/pc/olpc/gamekeys.fth
@@ -756,9 +816,11 @@
fload ${BP}/cpu/x86/pc/olpc/gridmap.fth \ Gridded display tools fload ${BP}/cpu/x86/pc/olpc/via/copynand.fth + ++ olpc-cl2 fload ${BP}/cpu/arm/olpc/rm3150-touchscreen.fth \ Touchscreen driver and diagnostic + olpc-cl3 fload ${BP}/cpu/arm/olpc/exc7200-touchscreen.fth \ Touchscreen driver and diagnostic + olpc-cl3 fload ${BP}/dev/softkeyboard.fth \ On-screen keyboard -+ olpc-cl2 fload ${BP}/cpu/arm/olpc/rm3150-touchscreen.fth \ Touchscreen driver and diagnostic ++ olpc-cl4 fload ${BP}/cpu/arm/olpc/nn-touchscreen.fth \ Touchscreen driver and diagnostic fload ${BP}/cpu/arm/olpc/roller.fth \ Accelerometer test
\ fload ${BP}/cpu/arm/olpc/pinch.fth \ Touchscreen gestures @@ -828,8 +890,7 @@ devalias fsdisk int:0
\ create pong-use-touchscreen -fload ${BP}/ofw/gui/ofpong.fth -fload ${BP}/cpu/x86/pc/olpc/life.fth +\ fload ${BP}/ofw/gui/ofpong.fth
d# 999 ' screen-#rows set-config-int-default \ Expand the terminal emulator to fill the screen d# 999 ' screen-#columns set-config-int-default \ Expand the terminal emulator to fill the screen @@ -897,11 +958,7 @@ : ?games ( -- ) rocker-right game-key? if protect-fw - time&date 5drop 1 and if - ['] pong guarded - else - ['] life-demo guarded - then +\ ['] pong guarded power-off then ; @@ -964,8 +1021,9 @@ [then]
fload ${BP}/cpu/arm/olpc/testitems.fth -+ olpc-cl3 fload ${BP}/cpu/arm/olpc/3.0/testinstructions.fth + olpc-cl2 fload ${BP}/cpu/arm/olpc/1.75/testinstructions.fth ++ olpc-cl3 fload ${BP}/cpu/arm/olpc/3.0/testinstructions.fth ++ olpc-cl4 fload ${BP}/cpu/arm/olpc/cl4/testinstructions.fth
: startup ( -- ) standalone? 0= if exit then
Modified: cpu/arm/olpc/rtc.fth ============================================================================== --- cpu/arm/olpc/rtc.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/olpc/rtc.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -1,7 +1,17 @@ purpose: Driver for external IDT1338 RTC chip on XO-1.75
-0 0 " " " /" begin-package -" rtc" name +0 0 " d4010000" " /" begin-package + " rtc" name + " mrvl,mmp-rtc" +compatible + my-address my-space h# 1000 reg + + d# 1 encode-int 0 encode-int encode+ " interrupts" property + " /interrupt-controller/interrupt-controller@154" encode-phandle " interrupt-parent" property + + " rtc 1Hz" encode-string " rtc alarm" encode-string encode+ " interrupt-names" property + + + " /apbc" encode-phandle 0 encode-int encode+ " clocks" property
[ifdef] cl2-a1 : set-address ( -- )
Modified: cpu/arm/olpc/sdhci.fth ============================================================================== --- cpu/arm/olpc/sdhci.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/olpc/sdhci.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -1,16 +1,22 @@ purpose: Load file for SDHCI (Secure Digital Host Controller Interface)
-0 0 " d4280000" " /" begin-package +0 0 " " " /" begin-package
fload ${BP}/cpu/arm/olpc/sdregs.fth fload ${BP}/dev/mmc/sdhci/sdhci.fth
+ " simple-bus" +compatible + h# d4280000 encode-int h# d4280000 encode-int encode+ h# 2000 encode-int encode+ " ranges" property + 1 " #address-cells" integer-property + 1 " #size-cells" integer-property + d# 1 to power-off-time \ A2 and A3 have turn-off clamps \ true to avoid-high-speed?
hex + : slot# ( -- n ) slot h# d4280000 - h# 800 / 1+ ; : olpc-card-inserted? ( -- flag ) - slot 1 = if d# 31 gpio-pin@ 0= else true then + slot# 1 = if d# 31 gpio-pin@ 0= else true then ; ' olpc-card-inserted? to card-inserted?
@@ -18,35 +24,72 @@ : gpio-power-on ( -- ) sdhci-card-power-on \ The CL3 version below actually works for CL2 >= B1 -+ olpc-cl2 d# 36 slot - gpio-set -+ olpc-cl3 slot 2 = if d# 34 gpio-set then ++ olpc-cl2 d# 36 slot# - gpio-set ++ olpc-cl3 slot# 2 = if d# 34 gpio-set then ; ' gpio-power-on to card-power-on
: gpio-power-off ( -- ) -+ olpc-cl2 d# 36 slot - gpio-clr -+ olpc-cl3 slot 2 = if d# 34 gpio-clr then ++ olpc-cl2 d# 36 slot# - gpio-clr ++ olpc-cl3 slot# 2 = if d# 34 gpio-clr then sdhci-card-power-off ; ' gpio-power-off to card-power-off
+ olpc-cl2 new-device -+ olpc-cl2 1 encode-int " reg" property -+ olpc-cl2 fload ${BP}/dev/mmc/sdhci/sdmmc.fth -+ olpc-cl2 fload ${BP}/dev/mmc/sdhci/selftest.fth -+ olpc-cl2 " external" " slot-name" string-property ++ olpc-cl2 h# d428.0000 h# 800 reg ++ olpc-cl2 8 encode-int " bus-width" property ++ olpc-cl2 " mrvl,pxav3-mmc" encode-string " compatible" property ++ olpc-cl2 d# 31 encode-int " clk-delay-cycles" property ++ olpc-cl2 fload ${BP}/dev/mmc/sdhci/slot.fth ++ olpc-cl2 d# 39 " interrupts" integer-property + ++ olpc-cl2 " /pmua" encode-phandle 3 encode-int encode+ " clocks" property ++ olpc-cl2 " PXA-SDHCLK" " clock-names" string-property + ++ olpc-cl2 new-device ++ olpc-cl2 fload ${BP}/dev/mmc/sdhci/sdmmc.fth ++ olpc-cl2 fload ${BP}/dev/mmc/sdhci/selftest.fth ++ olpc-cl2 " external" " slot-name" string-property ++ olpc-cl2 finish-device + olpc-cl2 finish-device
new-device - 2 encode-int " reg" property - fload ${BP}/dev/mmc/sdhci/mv8686/loadpkg.fth + h# d428.0800 h# 800 reg + 8 encode-int " bus-width" property + " sdhci-pxav3" +compatible + " mrvl,pxav3-mmc" +compatible + d# 31 encode-int " clk-delay-cycles" property + 0 0 " non-removable" property + d# 52 " interrupts" integer-property + + " /pmua" encode-phandle 4 encode-int encode+ " clocks" property + " PXA-SDHCLK" " clock-names" string-property + + fload ${BP}/dev/mmc/sdhci/slot.fth + new-device + fload ${BP}/dev/mmc/sdhci/mv8686/loadpkg.fth + finish-device finish-device
new-device - 3 encode-int " reg" property - fload ${BP}/dev/mmc/sdhci/sdmmc.fth - fload ${BP}/dev/mmc/sdhci/selftest.fth - " internal" " slot-name" string-property + h# d428.1000 h# 800 reg + 0 0 " non-removable" property + 8 encode-int " bus-width" property + " sdhci-pxav3" +compatible + " mrvl,pxav3-mmc" +compatible + d# 31 encode-int " clk-delay-cycles" property + d# 53 " interrupts" integer-property + + " /pmua" encode-phandle d# 14 encode-int encode+ " clocks" property + " PXA-SDHCLK" " clock-names" string-property + + fload ${BP}/dev/mmc/sdhci/slot.fth + new-device + fload ${BP}/dev/mmc/sdhci/sdmmc.fth + fload ${BP}/dev/mmc/sdhci/selftest.fth + " internal" " slot-name" string-property + finish-device finish-device
end-package
Modified: cpu/arm/olpc/sdregs.fth ============================================================================== --- cpu/arm/olpc/sdregs.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/olpc/sdregs.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -4,11 +4,11 @@ 0 instance value slot 0 instance value chip
-my-space /regs reg +\ my-space /regs reg
: map-regs ( -- ) chip if exit then - slot 1- h# 800 * my-space + /regs " map-in" $call-parent + slot /regs " map-in" $call-parent to chip ; : unmap-regs ( -- )
Modified: cpu/arm/olpc/sound.fth ============================================================================== --- cpu/arm/olpc/sound.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/olpc/sound.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -2,6 +2,9 @@ " audio" name my-space h# 800 reg
+" /pmua" encode-phandle d# 20 encode-int encode+ " clocks" property +d# 2 " interrupts" integer-property + 0 value sspa-base \ E.g. h# 2a.0c00 +io 0 value adma-base \ E.g. h# 2a.0800 +io : sspa! ( n offset -- ) sspa-base + rl! ; \ Write a register in SSPA1
Modified: cpu/arm/olpc/spcmd.fth ============================================================================== --- cpu/arm/olpc/spcmd.fth Fri Jun 29 22:52:33 2012 (r3022) +++ cpu/arm/olpc/spcmd.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -24,6 +24,8 @@ 0 0 encode-bytes " olpc,ap-sp" encode-string encode+ " compatible" property + d# 40 " interrupts" integer-property + " /pmua" encode-phandle 8 encode-int encode+ " clocks" property
my-address my-space h# 1000 encode-reg " reg" property
Modified: dev/olpc/kb3700/spicmd.fth ============================================================================== --- dev/olpc/kb3700/spicmd.fth Fri Jun 29 22:52:33 2012 (r3022) +++ dev/olpc/kb3700/spicmd.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -35,6 +35,10 @@ 1 " #address-cells" integer-property 0 " #size-cells" integer-property
+ d# 20 " interrupts" integer-property + " /apbc" encode-phandle d# 21 encode-int encode+ " clocks" property + + : encode-unit ( phys -- adr len ) push-hex (u.) pop-base ; : decode-unit ( adr len -- phys ) push-hex $number if 0 then pop-base ;
Modified: dev/olpc/mmp2camera/loadpkg.fth ============================================================================== --- dev/olpc/mmp2camera/loadpkg.fth Fri Jun 29 22:52:33 2012 (r3022) +++ dev/olpc/mmp2camera/loadpkg.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -1,6 +1,8 @@ " " " d420a000" " /" begin-package " camera" device-name - 0 0 reg \ A reg property makes "test-all" consider this device + my-address my-space h# 800 reg + " /pmua" encode-phandle 2 encode-int encode+ " clocks" property + d# 42 " interrupts" integer-property
0 [if] : alloc-capture-buffer ( len -- vadr padr )
Modified: ofw/core/fdt.fth ============================================================================== --- ofw/core/fdt.fth Fri Jun 29 22:52:33 2012 (r3022) +++ ofw/core/fdt.fth Fri Jun 29 23:04:07 2012 (r3023) @@ -52,7 +52,6 @@ fdt-string, ( offset ) ;
-also client-services : flatten-path ( -- ) the-node phandle>devname ( adr len ) fdt$, 0 fdt-c, 4 fdt-align ( ) @@ -176,7 +175,7 @@
\ Test for unprintable characters 2dup -null text? if - to-display-column -null type exit + to-display-column -null type cr exit then ( adr,len )
dup /n /mod swap 0= if ( adr len #ints ) @@ -213,8 +212,6 @@ again ;
-previous - \ LICENSE_BEGIN \ Copyright (c) 2012 FirmWorks \
openfirmware@openfirmware.info