On Sun, Sep 23, 2018 at 9:00 AM ron minnich <rminn...@gmail.com> wrote: > > ah sorry I forgot. > > I think selfboot could be reworked (and should be) to interpret "0" as > "somewhere useful"?
Why is the kernel being loaded at 0? > > On Sat, Sep 22, 2018 at 10:47 PM ron minnich <rminn...@gmail.com> wrote: >> >> shouldn't we fix the riscv kernel build process? it's producing bad elf >> files? >> >> On Sat, Sep 22, 2018 at 4:40 PM Jonathan Neuschäfer <j.neuschae...@gmx.net> >> wrote: >>> >>> Hi, >>> >>> we've discussed this briefly at OSFC: Linux's ELF file (vmlinux) >>> currently has segments starting at 0x0 (if you look at the physical >>> address field) and an entry point at 0xffffffe000000000: >>> >>> > $ readelf -l vmlinux >>> > >>> > Elf file type is EXEC (Executable file) >>> > Entry point 0xffffffe000000000 >>> > There are 3 program headers, starting at offset 64 >>> > >>> > Program Headers: >>> > Type Offset VirtAddr PhysAddr >>> > FileSiz MemSiz Flags Align >>> > LOAD 0x0000000000001000 0xffffffe000000000 0x0000000000000000 >>> > 0x000000000000ffce 0x000000000000ffce R E 0x1000 >>> > LOAD 0x0000000000011000 0xffffffe000010000 0x0000000000010000 >>> > 0x00000000002cda3c 0x00000000002cda3c RWE 0x1000 >>> > NOTE 0x00000000002dea00 0xffffffe0002dda00 0x00000000002dda00 >>> > 0x000000000000003c 0x000000000000003c R 0x4 >>> > >>> > Section to Segment mapping: >>> > Segment Sections... >>> > 00 .init.text >>> > 01 .init.data .exit.text .data..percpu .text .softirqentry.text >>> > .rodata __param __modver .srodata .data __bug_table .sdata .bss >>> > __ex_table .notes >>> > 02 .notes >>> >>> >>> coreboot's SELF loader rightly points out that 0x0 is not in RAM: >>> >>> > Loading segment from ROM address 0x00000000200287b8 >>> > code (compression=0) >>> > New segment dstaddr 0x0 memsize 0xffce srcaddr 0x2002880c filesize >>> > 0xffce >>> > Loading segment from ROM address 0x00000000200287d4 >>> > code (compression=0) >>> > New segment dstaddr 0x10000 memsize 0x2cda3c srcaddr 0x200387da >>> > filesize 0x2cda3c >>> > Loading segment from ROM address 0x00000000200287f0 >>> > Entry Point 0xffffffe000000000 >>> > SELF Payload doesn't target RAM: >>> > Failed Segment: 0x0, 65486 bytes >>> > 0. 0000000080000000-0000000080011fff: RAMSTAGE >>> > 1. 0000000080012000-000000008003ffff: RAM >>> > 2. 0000000080040000-0000000080044fff: RAMSTAGE >>> > 3. 0000000080045000-00000000fffdbfff: RAM >>> > 4. 00000000fffdc000-00000000ffffffff: CONFIGURATION TABLES >>> > 5. 0000000100000000-000000027fffffff: RAM >>> > Payload not loaded. >>> >>> >>> How should we solve this? >>> >>> One option I see is to keep CONFIG_PAYLOAD_ELF as is, and add quirks to >>> CONFIG_PAYLOAD_LINUX. >>> >>> >>> Jonathan > > -- > coreboot mailing list: coreboot@coreboot.org > https://mail.coreboot.org/mailman/listinfo/coreboot -- coreboot mailing list: coreboot@coreboot.org https://mail.coreboot.org/mailman/listinfo/coreboot