I need to refresh my memory, but here's from my app_led.inc from when I was on it. Not sure if it's the latest, we need to cross-check this against the data sheet again:
USER_LCD_Init
;; notify that no graphical LCD is connected
bcf MIOS_BOX_CFG0, MIOS_BOX_CFG0_USE_GLCD
; (Initialization of Ports: done in Init_Ports)
SET_BSR USER_LCD_STATUS
clrf USER_LCD_STATUS, BANKED
movlw 100 ; 100 ms delay
call MIOS_Delay
bcf USER_LCD_LAT_RW, USER_LCD_PIN_RW ; LCD_WRITE
bcf USER_LCD_LAT_RS, USER_LCD_PIN_RS ; USER_LCD_PIN_RS_0
;; initialize LCD
movlw 0x3
movwf USER_LCD_LAT_D
rcall USER_LCD_Strobe_Set
movlw 10 ; 10 ms delay
call MIOS_Delay
rcall USER_LCD_Strobe_Clr
movlw 10 ; 10 ms delay
call MIOS_Delay
movlw 0x3
movwf USER_LCD_LAT_D
rcall USER_LCD_Strobe_Set
movlw 10 ; 10 ms delay
call MIOS_Delay
rcall USER_LCD_Strobe_Clr
movlw 10 ; 10 ms delay
call MIOS_Delay
movlw 0x3
movwf USER_LCD_LAT_D
rcall USER_LCD_Strobe_Set
movlw 10 ; 10 ms delay
call MIOS_Delay
rcall USER_LCD_Strobe_Clr
movlw 10 ; 10 ms delay
call MIOS_Delay
movlw 0x2
movwf USER_LCD_LAT_D
rcall USER_LCD_Strobe_Set
movlw 10 ; 10 ms delay
call MIOS_Delay
rcall USER_LCD_Strobe_Clr
movlw 10 ; 10 ms delay
call MIOS_Delay
movlw 50 ; 50 ms delay
call MIOS_Delay
movlw 0x2B ; Function set
rcall USER_LCD_Cmd
movlw 0x08 ; Display Off
rcall USER_LCD_Cmd
movlw 0x01 ; Display Clear
rcall USER_LCD_Cmd
movlw 0x06 ; Entry Mode Set to Auto Increment
rcall USER_LCD_Cmd
movlw 0x02 ; Home Command
rcall USER_LCD_Cmd
movlw 0x0C ; Display ON
rcall USER_LCD_Cmd
movlw 0x00 ; set cursor to zero pos
rgoto USER_LCD_CursorSet