Changeset 9d5e23c in mainline


Ignore:
Timestamp:
2005-12-07T23:52:25Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ac0cb2a
Parents:
f62355a
Message:

Fixed bug in Intel32/AMD64 boot, that could cause page fault on boot.
Fixes of configuration program.

Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • arch/amd64/src/mm/page.c

    rf62355a r9d5e23c  
    3636#include <memstr.h>
    3737
    38 __address bootstrap_dba;
     38static __address bootstrap_dba;
    3939
    4040void page_arch_init(void)
     
    6060        }
    6161        else {
    62                 /*
    63                  * Application processors need to create their own view of the
    64                  * virtual address space. Because of that, each AP copies
    65                  * already-initialized paging information from the bootstrap
    66                  * processor and adjusts it to fulfill its needs.
    67                  */
    68 
    69                 dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME);
    70                 memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE);
    71                 write_cr3(KA2PA(dba));
     62                write_cr3(KA2PA(bootstrap_dba));
    7263        }
    7364}
  • arch/ia32/include/mm/frame.h

    rf62355a r9d5e23c  
    3434#define FRAME_SIZE      4096
    3535
    36 extern __address bootstrap_dba;
    3736extern __address last_frame;
    3837
  • arch/ia32/src/mm/page.c

    rf62355a r9d5e23c  
    4141#include <print.h>
    4242
    43 __address bootstrap_dba;
     43static __address bootstrap_dba;
    4444
    4545void page_arch_init(void)
     
    6464        }
    6565        else {
    66                 /*
    67                  * Application processors need to create their own view of the
    68                  * virtual address space. Because of that, each AP copies
    69                  * already-initialized paging information from the bootstrap
    70                  * processor and adjusts it to fulfill its needs.
    71                  */
    72 
    73                 dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME);
    74                 memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE);
    75                 write_cr3(KA2PA(dba));
     66                write_cr3(KA2PA(bootstrap_dba));
    7667        }
    7768
  • kernel.config

    rf62355a r9d5e23c  
    7979@ [ARCH=ia32|ARCH=amd64] "fpu/fpu1" Intel fpu test 1
    8080@ [ARCH=ia32|ARCH=amd64] "fpu/sse1" Intel Sse test 1
    81 @ [ARCH=mips] "fpu/mips1" Mips FPU test 1
     81@ [ARCH=mips32&MIPS_MACHINE!=msim&MIPS_MACHINE!=msim4kc] "fpu/mips1" Mips FPU test 1
    8282@ "print/print1" Printf test 1
    8383@ "thread/trhead1" Thread test 1
  • tools/config.py

    rf62355a r9d5e23c  
    266266def parse_config(input, output, dlg, defaults={}, askonly=None):
    267267    "Parse configuration file and create Makefile.config on the fly"
    268     def ask_the_question():
     268    def ask_the_question(dialog):
    269269        "Ask question based on the type of variables to ask"
    270270        # This is quite a hack, this thingy is written just to
    271271        # have access to local variables..
    272272        if vartype == 'y/n':
    273             return dlg.yesno(comment, default)
     273            return dialog.yesno(comment, default)
    274274        elif vartype == 'n/y':
    275             return dlg.noyes(comment, default)
     275            return dialog.noyes(comment, default)
    276276        elif vartype == 'choice':
    277277            defopt = None
     
    281281                        defopt = i
    282282                        break
    283             return dlg.choice(comment, choices, defopt)
     283            return dialog.choice(comment, choices, defopt)
    284284        else:
    285285            raise RuntimeError("Bad method: %s" % vartype)
     
    317317                    if arg.startswith('$'):
    318318                        args[i] = defaults[arg[1:]]
    319 
    320                 subc = os.popen(' '.join(args),'r')
    321                 data = subc.read().strip()
    322                 if subc.close():
     319                data,status = commands.getstatusoutput(' '.join(args))
     320                if status:
    323321                    raise RuntimeError('Error running: %s' % ' '.join(args))
    324                 outf.write('%s = %s\n' % (varname,data))
     322                outf.write('%s = %s\n' % (varname,data.strip()))
    325323            continue
    326324           
     
    348346
    349347            if default is None or not askonly or askonly == varname:
    350                 default = ask_the_question()
     348                default = ask_the_question(dlg)
     349            else:
     350                default = ask_the_question(DefaultDialog(dlg))
    351351
    352352            outf.write('%s = %s\n' % (varname, default))
Note: See TracChangeset for help on using the changeset viewer.