Wednesday, June 3, 2009

Testing support for newer A320 with ILI9331 LCD controller

I finished disassemblying the .DL hardware initialization code of the newer A320 with ILI9331 LCD controller and modified the code in the kernel framebuffer driver. Since I don't have one of the newer A320 (soon to be fixed, thanks again for your donations) there's no way I can test it, so I need help here. Download the zImage (mediafire, I don't want to upload untested stuff to google code), try it and let me know if the framebuffer works.

If it works, I'll do some minor modifications in the kernel code to allow selecction of LCD initialization sequence and commit it to the subversion repository on google code. I'll be releasing two kernel images until I get one of the newer A320 units so I can work on autodetecting the LCD type.

UPDATE 1 (WRONG): at least one user has reported that the new driver doesn't work. It might be a silly detail but I'm blind and there's absolutely no way I can go any further until I get one of the newer A320. There's enough money in the donation pool (thanks again!) so I'll be ordering it in short (I'm trying to contact CraigX to see if he can make sure of shipping a newer model if I purchase it from him). Please be patient.

UPDATE 2: looks like that was a false alarm. It works. Read this entry.

7 comments:

  1. Hello, Booboo! Thank you for your work.

    I've just got my Dingoo with ILI9331, so I've tried a new zImage for it.
    Under Ubuntu_x64 usbtool successfully loads hwinit but loading of zImage fails with "bulk write error", so I've tried USB_Boot on Windows.
    Unfortunately, after executing of "go 0x80600000 0" it just stays with white screen (nothing else displays on Dingoo's LCD) and usb device disappears.
    There is a log below:

    D:\dingoo\usbboot1.4b-tools>USB_Boot.exe

    Welcome!
    USB Boot Host Software!
    USB Boot Software current version: 1.4b
    Handling user command.
    USBBoot :> boot 0

    Checking state of No.0 device: Unboot
    Now booting No.0 device:
    Download stage one program and execute at 0x80002000: Pass
    Download stage two program and execute at 0x80c00000: Pass
    Boot success!
    Now configure No.0 device:
    Now checking whether all configure args valid:
    Current device information: CPU is Jz4740
    Crystal work at 12MHz, the CCLK up to 336MHz and PMH_CLK up to 112MHz
    Total SDRAM size is 16 MB, work in 4 bank and 32 bit mode
    Nand page size 4096, ECC offset 28, bad block ID 127, use 2 plane mode
    Configure success!
    USBBoot :> load 0x80600000 zImage 0

    Total size to send in byte is :1212416
    Loading data to SDRAM :
    ############################################################
    #######################################
    USBBoot :> go 0x80600000 0

    Executing No.0 device at address 80600000 !
    USBBoot :> exit

    Exiting USB Boot software
    D:\dingoo\usbboot1.4b-tools>

    ReplyDelete
  2. Hello,
    tried booting on my ILI9331 Dingoo,

    USB Boot Host Software!
    USB Boot Software current version: 1.4b
    Handling user command.
    USBBoot :> boot 0

    Checking state of No.0 device: Unboot
    Now booting No.0 device:
    Download stage one program and execute at 0x80002000

    And it hangs and never goes to stage 2

    ReplyDelete
  3. Works for me with my ILI9331 Dingoo:

    sudo ./usbtool 1 hwinit.bin 0x80000000
    USBtool v0.4 - (C) 2008 Maurus Cuelenaere
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    [INFO] File size: 3144 bytes
    [INFO] Searching for device...
    [INFO] Found device, uploading application.
    [INFO] GET_CPU_INFO: JZ4740V1
    [INFO] SET_DATA_ADDRESS to 0x80000000... Done!
    [INFO] Sending data... Done!
    [INFO] Verifying data... Done!
    [INFO] Booting device [STAGE1]... Done!

    sudo ./usbtool 1 zImage 0x80600000
    USBtool v0.4 - (C) 2008 Maurus Cuelenaere
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    [INFO] File size: 1212416 bytes
    [INFO] Searching for device...
    [INFO] Found device, uploading application.
    [INFO] GET_CPU_INFO: JZ4740V1
    [INFO] SET_DATA_ADDRESS to 0x80600000... Done!
    [INFO] Sending data... Done!
    [INFO] Verifying data... Done!
    [INFO] Booting device [STAGE1]... Done!

    I even have stuff on the screen :)

    ReplyDelete
  4. bencropley said:
    >>Works for me with my ILI9331 Dingoo

    What is your Linux distribution?
    I still get a error message while loading zImage to device on Ubuntu_8.04_x64 and Ubuntu_8.10_x86.
    And YES: I have files named usbtool, hwinit.bin, zImage in the same directory; I'm root; I'm loading hwinit.bin first (successfully); I've also tried latest version of usbtool compiled from sources.

    There is a thread about this problem [1], but it seems that no solution were found yet.

    [1] http://a320.freeforums.org/linux-booting-problem-t502.html

    ReplyDelete
  5. I use Archlinux 32bit, I used usbtool precompiled of google code, zImage off this post and hwinit off google code. The commands I used are the ones in my post.

    ReplyDelete
  6. Kernel boots ok on new lcd with windows(i forgot to add hwinit.bin)

    ReplyDelete
  7. I changed system to Ubuntu 9.04 and now kernel loads, boots and works ok. Thanks to all!

    ReplyDelete