linux loader: split 1gb/3gb payloads

Note: the submodule points to the 7.02 branch of ps4-kexec. To build Linux payload for 6.72, switch the branches manually.
This commit is contained in:
Sergey Lisov committed 2020-12-25 18:20:45 +03:00
1 parent a067e8a948
commit 1916c756e1
3 files changed
+23 -5

No files matched your search

+16 -2
View File
@@ -1,7 +1,7 @@
all: payload.bin payload-702.bin
all: payload.bin payload-702.bin payload-3gb.bin payload-702-3gb.bin
clean:
rm payload.elf payload.bin
rm -f payload.elf payload.bin payload-702.elf payload-702.bin payload-3gb.elf payload-3gb.bin payload-702-3gb.elf payload-702-3gb.bin
../lib/lib.a:
cd ../lib; make
@@ -20,5 +20,19 @@ payload-702.bin: payload-702.elf
objcopy payload-702.elf --only-section .text --only-section .data --only-section .bss --only-section .rodata -O binary payload-702.bin
file payload-702.bin | fgrep -q 'payload-702.bin: DOS executable (COM)'
payload-3gb.elf: ../lib/lib.a main.c ps4-kexec/kexec.bin
gcc -isystem ../../8cc/freebsd-headers -nostdinc -nostdlib -static ../lib/lib.a -DVRAM_GB=3 main.c -Wl,-gc-sections -o payload-3gb.elf
payload-3gb.bin: payload-3gb.elf
objcopy payload-3gb.elf --only-section .text --only-section .data --only-section .bss --only-section .rodata -O binary payload-3gb.bin
file payload-3gb.bin | fgrep -q 'payload-3gb.bin: DOS executable (COM)'
payload-702-3gb.elf: ../lib/lib.a main.c ps4-kexec/kexec.bin
gcc -isystem ../../8cc/freebsd-headers -nostdinc -nostdlib -static ../lib/lib.a -D__7_02__ -DVRAM_GB=3 main.c -Wl,-gc-sections -o payload-702-3gb.elf
payload-702-3gb.bin: payload-702-3gb.elf
objcopy payload-702-3gb.elf --only-section .text --only-section .data --only-section .bss --only-section .rodata -O binary payload-702-3gb.bin
file payload-702-3gb.bin | fgrep -q 'payload-702-3gb.bin: DOS executable (COM)'
ps4-kexec/kexec.bin:
cd ps4-kexec; make
+6 -2
View File
@@ -48,7 +48,7 @@ void kernel_main()
asm("kexec_load:\nmov %rcx, %r10\nmov $153, %rax\nsyscall\nret");
int kexec_load(char* kernel, unsigned long long kernel_size, char* initrd, unsigned long long initrd_size, char* cmdline);
int kexec_load(char* kernel, unsigned long long kernel_size, char* initrd, unsigned long long initrd_size, char* cmdline, int vram_gb);
int read_file(char* path, char** ptr, unsigned long long* sz)
{
@@ -99,6 +99,10 @@ void alert(const char* msg)
sceSysUtilSendSystemNotificationWithText(222, msg);
}
#ifndef VRAM_GB
#define VRAM_GB 1
#endif
int main()
{
struct sigaction sa = {
@@ -141,6 +145,6 @@ int main()
.rtp = NULL
};
thr_new(&thr, sizeof(thr));
kexec_load(kernel, kernel_size, initrd, initrd_size, cmdline);
kexec_load(kernel, kernel_size, initrd, initrd_size, cmdline, VRAM_GB);
for(;;);
}