From: Jeff D. <jd...@ka...> - 2000-05-02 03:44:38
|
> I've now merged my changes in and have a kernel which goes as far as > mounting the root filesystem, although I haven't managed to run an > init yet. The patch is attached. It will break i386 in its current > state, unfortunately. Great. I'm going to go through it and merge in the things that don't break my pool. > There were some leftover references to Intel registers around. I've > added a couple more defines for them. I fixed these. > There's one reference to EDX in finish_exec() - what's that one for? You need to worry about this one. Elf binaries take a value in EDI (on i386) which is an address of an initialization procedure or something. Linux doesn't use it, so it goes in as zero. Look through asm-ppc/*elf*.h for something similar. > I've deleted a large chunk of arch/um/kernel/syscall_kern.c for > system calls which don't seem to exist on PPC. This sucks. > There are some references to CR2, which does map to a PPC register > (DAR I think) of a different name. I think they could be renamed to > something more generic. True. > +#define UM_SP_OFFSET UESP > +#define UM_IP_OFFSET EIP These are wrong, and I bet the ppc equivalents you've got are wrong, too. These are byte offsets so they need to be multiplied by the register length. I.e. #define UM_IP_OFFSET (EIP * sizeof(long)) That might be hurting your attempts to exec init. I would prefer that you have your Makefile make links to arch/ppc files that you're just going to steal whole. That keeps the patch size down, and gives this kernel the benefit of whatever changes are made in those files in the future. On the whole, those changes look fairly clean. Jeff |