[uClinux-dev] How boot Palm m500 up ?

Fabian Skivée fskivee at skynet.be
Sun Apr 21 05:33:48 EDT 2002


Hello,

	I made a real-time operating system and I try to port it on the Palm m500. I
already succeed in doing a port on the Palm Vx (see init file attached) . I 
make a litlle program to boot up the Palm Vx, when I launch it, I receive the 
alphabet on the UART. But when I would like to boot up the m500, it doesn't 
work. I can't received any character from the UART.

	What's the harware connection difference beetween this 2 models ?
	Must I initialize some other M68VZ328 registers like DRAM controlleur
registers or IO Ports ?
	Where do you find the value of the PDDATA register ? 	

	Where can I find information about the electronic design of palm ? I already 
ask it in Palm forum but without response.

	Fabian Skivée

--
Skivée Fabian
[a] rue Petite Spinette 8, 4630 Soumagne, Belgium
[t] + 32 (0) 4 377 23 76
[g] + 32 (0) 498 62 47 03 (direct)
[e] fskivee at skynet.be

--

  .global __text_start
        .global __main
        .global __bss_start
        .global __bss_end
        .global __ram_start
        .global __ram_end
        .global __rom_start
        .global __rom_end
        .global __data_start
        .global __data_end

        .global splash_bits
        .global _start
        .global _stext

#define DEBUG 1
#define ROM_OFFSET 0x10C00000
#define STACK_GAURD 0x10

        .data
splash_bits:
#include "bootlogo.rh"

        .text

_start:
_stext:
        /* At this point, %a0 contains a pointer to the
           list of pages, which are in order but not
           necessarily contiguous.  We have to move
           things around, set up the stack and get into
           the kernel.  PalmOS has done much of the hard
           work for us setting up the hardware */

        movew   #0x2700, %sr            /* Exceptions off! */
        movew   #0x2400, 0xfffff200     /* PLLCR */
        movew   #0x0123, 0xfffff202     /* PLLFSR */
        moveb   #0x1f,   0xfffff207     /* Full power */

        /* Init chip registers.  PalmV specific */
        /* PalmOS has setup the device.  We just get on with it */

        movel   #splash_bits, 0xfffffA00 /* LSSA */

        moveb   #0x20,   0xfffff419     /* ForceON RS232 driver */
        moveb   #0x08,   0xfffff906     /* Ignore CTS */
        movew   #0x00c0, 0xfffff908     /* No, not Fscking IrDA */
        movew   #0x010b, 0xfffff902     /* BAUD to 9600 */
        movew   #0xe100, 0xfffff900     /* enable */

        movew   #16384, %d0  /* PLL settle wait loop */
L0:
        subw    #1, %d0
        bne     L0

        /* My parts are scattered, %a0 has a list.  Make me whole */
        moveal  #0x1400, %a2            /* FIXME: Hard coded load address */
        moveal  %a0@+, %a1              /* Move to page 1 (this is page 0) */
mvlp0:
#ifdef DEBUG
        moveq   #70, %d7                /* 'F' */
        moveb   %d7,0xfffff907          /* No absolute addresses */
pclp1:
        movew   0xfffff906, %d7
        andw    #0x2000, %d7
        beq     pclp1
#endif /* DEBUG */
        movew   #1024, %d6
        moveal  %a0@+, %a1
        movel   %a1, %d0
        beq     mvdone
mvlp1:
        movel   %a1@+, %d0
        movel   %d0, %a2@+
        subw    #1, %d6
#if 1
        bne     mvlp1
        bra     mvlp0
#endif
mvdone:

#ifdef DEBUG
        moveq   #82, %d7                /* 'R' */
        moveb   %d7,0xfffff907          /* No absolute addresses */
pclp3:
        movew   0xfffff906, %d7
        andw    #0x2000, %d7
        beq     pclp3
#endif /* DEBUG */
        moveal  #0x001ffff0, %ssp
        moveal  #__bss_start, %a0
        moveal  #__bss_end, %a1

        /* Copy 0 to %a0 until %a0 >= %a1 */
L1:
        movel   #0, %a0@+
        cmpal   %a0, %a1
        bhi     L1

#ifdef DEBUG
        moveq   #67, %d7                /* 'C' */
        jsr     putc
#endif /* DEBUG */

        pea     0
        pea     env
        pea     %sp@(4)
        pea     0

#ifdef DEBUG
        moveq   #70, %d7                /* 'F' */
        jsr     putc
#endif /* DEBUG */

lp:
        jsr     start_kernel
        moveq   #65, %d7
        jsr             putc
        jmp _exit
/*
test:
        addw    #1, %d7
        jsr             putc
        movel   %d7, %d6
        subw    #122, %d6
        bne             test
        moveq   #65, %d7
        jmp             test
*/
_exit:

        jmp     _exit

__main:
        /* nothing */
        rts

putc:
        moveb   %d7,0xfffff907
pclp:
        movew   0xfffff906, %d7
        andw    #0x2000, %d7
        beq     pclp
        rts

        .data
env:
        .long   0
This message resent by the uclinux-dev at uclinux.org list server http://www.uClinux.org/



More information about the uClinux-dev mailing list