]> Pileus Git - ~andy/linux/blobdiff - arch/ia64/hp/sim/boot/fw-emu.c
[IA64] hpsim, fix SAL handling in fw-emu
[~andy/linux] / arch / ia64 / hp / sim / boot / fw-emu.c
index 5a0a7afcfc3a0ad010ceb29ff18a8618fdc81b4d..0216e28300fad70af57562b7b1a74796703a0196 100644 (file)
@@ -160,28 +160,19 @@ sal_emulator (long index, unsigned long in1, unsigned long in2,
         */
        status = 0;
        if (index == SAL_FREQ_BASE) {
-               switch (in1) {
-                     case SAL_FREQ_BASE_PLATFORM:
+               if (in1 == SAL_FREQ_BASE_PLATFORM)
                        r9 = 200000000;
-                       break;
-
-                     case SAL_FREQ_BASE_INTERVAL_TIMER:
+               else if (in1 == SAL_FREQ_BASE_INTERVAL_TIMER) {
                        /*
                         * Is this supposed to be the cr.itc frequency
                         * or something platform specific?  The SAL
                         * doc ain't exactly clear on this...
                         */
                        r9 = 700000000;
-                       break;
-
-                     case SAL_FREQ_BASE_REALTIME_CLOCK:
+               } else if (in1 == SAL_FREQ_BASE_REALTIME_CLOCK)
                        r9 = 1;
-                       break;
-
-                     default:
+               else
                        status = -1;
-                       break;
-               }
        } else if (index == SAL_SET_VECTORS) {
                ;
        } else if (index == SAL_GET_STATE_INFO) {
@@ -285,9 +276,9 @@ sys_fw_init (const char *args, int arglen)
        }
        cmd_line[arglen] = '\0';
 
-       memset(efi_systab, 0, sizeof(efi_systab));
+       memset(efi_systab, 0, sizeof(*efi_systab));
        efi_systab->hdr.signature = EFI_SYSTEM_TABLE_SIGNATURE;
-       efi_systab->hdr.revision  = EFI_SYSTEM_TABLE_REVISION;
+       efi_systab->hdr.revision  = ((1 << 16) | 00);
        efi_systab->hdr.headersize = sizeof(efi_systab->hdr);
        efi_systab->fw_vendor = __pa("H\0e\0w\0l\0e\0t\0t\0-\0P\0a\0c\0k\0a\0r\0d\0\0");
        efi_systab->fw_revision = 1;
@@ -329,11 +320,6 @@ sys_fw_init (const char *args, int arglen)
        strcpy(sal_systab->product_id, "HP-simulator");
 #endif
 
-#ifdef CONFIG_IA64_SDV
-       strcpy(sal_systab->oem_id, "Intel");
-       strcpy(sal_systab->product_id, "SDV");
-#endif
-
        /* fill in an entry point: */
        sal_ed->type = SAL_DESC_ENTRY_POINT;
        sal_ed->pal_proc = __pa(pal_desc[0]);