* Fix PS/2 keyboard problem caused by statically initialized variable
authorwdenk <wdenk>
Wed, 21 Jan 2004 20:46:28 +0000 (20:46 +0000)
committerwdenk <wdenk>
Wed, 21 Jan 2004 20:46:28 +0000 (20:46 +0000)
  pointing to a location in flash

* Fix INCA-IP clock calculation: 400/3 = 133.3 MHz, not 130.

CHANGELOG
cpu/mips/incaip_clock.c
drivers/keyboard.c
drivers/ps2ser.c
include/configs/bms2003.h

index 65608598e5b8c314cbd51df807b7322630a6b37b..32110df1f29970e43a8efd8f3921243fad48d0ca 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,11 @@
 Changes since U-Boot 1.0.1:
 ======================================================================
 
+* Fix PS/2 keyboard problem caused by statically initialized variable
+  pointing to a location in flash
+
+* Fix INCA-IP clock calculation: 400/3 = 133.3 MHz, not 130.
+
 * The PS/2 mux on the BMS2003 board needs 450 ms after power on
   before we can access it; add delay in case we are faster (with no
   CF card inserted)
index a042b8a6f7ebb1a639fa1725b478b495804ae339..9f327594f41e6b159e659703e56ca52434f4d577 100644 (file)
@@ -33,8 +33,8 @@
 *
 * RETURNS:
 *          150.000.000 for 150 MHz
-*          130.000.000. for 130 Mhz
-*          100.000.000. for 100 Mhz
+*          133.333.333 for 133 Mhz (= 400MHz/3)
+*          100.000.000 for 100 Mhz (= 400MHz/4)
 * NOTE:
 *   This functions should be used by the hardware driver to get the correct
 *   frequency of the CPU. Don't use the macros, which are set to init the CPU
@@ -55,7 +55,7 @@ uint incaip_get_cpuclk (void)
                if (*((volatile ulong *) INCA_IP_CGU_CGU_DIVCR) & 0x40) {
                        /* Division value is 1/3, maximum CPU operating */
                        /* frequency is 133.3 MHz                       */
-                       return 130000000;
+                       return 133333333;
                } else {
                        /* Division value is 1/4, maximum CPU operating */
                        /* frequency is 100 MHz                         */
index 738ff9f15ba093452293bd9b092108c3d14a15e0..a42468f0c6aed1160b91230037265f65e1ed665f 100644 (file)
@@ -194,7 +194,7 @@ void handle_scancode(unsigned char scancode)
        case 0xBA: /* caps lock released */
                return; /* just swallow */
        }
-#if 0
+#if 1
        if((scancode&0x80)==0x80) /* key released */
                return;
 #else
index 71658d7ca0a9c8649fa0e98c52a7d9c11fcaab0c..52f1db9ad9dca60336efe357b191cd6c480b0dc1 100644 (file)
@@ -29,7 +29,7 @@ static int    ps2ser_getc_hw(void);
 static void    ps2ser_interrupt(void *dev_id);
 
 extern struct  serial_state rs_table[]; /* in serial.c */
-static struct  serial_state *state = rs_table + CONFIG_PS2SERIAL;
+static struct  serial_state *state;
 
 static u_char  ps2buf[PS2BUF_SIZE];
 static atomic_t        ps2buf_cnt;
@@ -49,8 +49,13 @@ static inline void ps2ser_out(int offset, int value)
 
 int ps2ser_init(void)
 {
-       int quot = state->baud_base / PS2SER_BAUD;
-       unsigned cval = 0x3; /* 8N1 - 8 data bits, no parity bits, 1 stop bit */
+       int quot;
+       unsigned cval;
+
+       state = rs_table + CONFIG_PS2SERIAL;
+
+       quot = state->baud_base / PS2SER_BAUD;
+       cval = 0x3; /* 8N1 - 8 data bits, no parity bits, 1 stop bit */
 
          /* Set speed, enable interrupts, enable FIFO
           */
index 40baad0fd3fd2da44287f43f4a71dc330d7479d3..18170d4438d6b65773d831cad2216d478ee31b06 100644 (file)
@@ -78,7 +78,7 @@
                "bootm $(kernel_addr) $(ramdisk_addr)\0"                \
        "net_nfs=tftp 200000 $(bootfile);run nfsargs addip;bootm\0"     \
        "rootpath=/opt/eldk/ppc_8xx\0"                                  \
-       "bootfile=/tftpboot/TQM860L/uImage\0"                           \
+       "bootfile=/tftpboot/BMS/uImage\0"                               \
        "kernel_addr=40040000\0"                                        \
        "ramdisk_addr=40100000\0"                                       \
        ""