From 3c325adf2c04b8498be6a5e05dc9aa83b142f7ef Mon Sep 17 00:00:00 2001 From: Lee Lup Yuen Date: Thu, 3 Aug 2023 18:06:53 +0800 Subject: [PATCH] Build OK yay! --- arch/risc-v/include/jh7110/irq.h | 8 +-- .../jh7110/star64/include/board_memorymap.h | 14 ++-- .../risc-v/jh7110/star64/src/jh7110_appinit.c | 2 +- init.S | 68 +++++++++--------- initrd | Bin 8115200 -> 8115200 bytes 5 files changed, 46 insertions(+), 46 deletions(-) diff --git a/arch/risc-v/include/jh7110/irq.h b/arch/risc-v/include/jh7110/irq.h index 6e626583e7775..8c5b93b9a4877 100644 --- a/arch/risc-v/include/jh7110/irq.h +++ b/arch/risc-v/include/jh7110/irq.h @@ -1,5 +1,5 @@ /**************************************************************************** - * arch/risc-v/include/jh7110irq.h + * arch/risc-v/include/jh7110/irq.h * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -18,8 +18,8 @@ * ****************************************************************************/ -#ifndef __ARCH_RISCV_INCLUDE_JH7110IRQ_H -#define __ARCH_RISCV_INCLUDE_JH7110IRQ_H +#ifndef __ARCH_RISCV_INCLUDE_JH7110_IRQ_H +#define __ARCH_RISCV_INCLUDE_JH7110_IRQ_H /**************************************************************************** * Included Files @@ -33,4 +33,4 @@ #define NR_IRQS (RISCV_IRQ_SEXT + 127) -#endif /* __ARCH_RISCV_INCLUDE_JH7110IRQ_H */ +#endif /* __ARCH_RISCV_INCLUDE_JH7110_IRQ_H */ diff --git a/boards/risc-v/jh7110/star64/include/board_memorymap.h b/boards/risc-v/jh7110/star64/include/board_memorymap.h index 3be84c0e8e87a..fff0cf0c331b6 100644 --- a/boards/risc-v/jh7110/star64/include/board_memorymap.h +++ b/boards/risc-v/jh7110/star64/include/board_memorymap.h @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/risc-v/jh7110/rv-virt/include/board_memorymap.h + * boards/risc-v/jh7110/star64/include/board_memorymap.h * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -18,8 +18,8 @@ * ****************************************************************************/ -#ifndef __BOARDS_RISCV_QEMURV_RVVIRT_INCLUDE_BOARD_MEMORYMAP_H -#define __BOARDS_RISCV_QEMURV_RVVIRT_INCLUDE_BOARD_MEMORYMAP_H +#ifndef __BOARDS_RISCV_JH7110_STAR64_INCLUDE_BOARD_MEMORYMAP_H +#define __BOARDS_RISCV_JH7110_STAR64_INCLUDE_BOARD_MEMORYMAP_H /**************************************************************************** * Included Files @@ -33,8 +33,8 @@ /* DDR start address */ -#define QEMURV_DDR_BASE (0x40200000) -#define QEMURV_DDR_SIZE (0x40000000) +#define JH7110_DDR_BASE (0x40200000) +#define JH7110_DDR_SIZE (0x40000000) /* Kernel code memory (RX) */ @@ -55,7 +55,7 @@ #define PGPOOL_SIZE (uintptr_t)__pgheap_size #define PGPOOL_END (PGPOOL_START + PGPOOL_SIZE) -/* Ramdisk */ +/* Ramdisk (RW) */ #define RAMDISK_START (uintptr_t)__ramdisk_start #define RAMDISK_SIZE (uintptr_t)__ramdisk_size @@ -85,4 +85,4 @@ extern uint8_t __pgheap_size[]; extern uint8_t __ramdisk_start[]; extern uint8_t __ramdisk_size[]; -#endif /* __BOARDS_RISC_V_QEMURV_RVVIRT_INCLUDE_BOARD_MEMORYMAP_H */ +#endif /* __BOARDS_RISCV_JH7110_STAR64_INCLUDE_BOARD_MEMORYMAP_H */ diff --git a/boards/risc-v/jh7110/star64/src/jh7110_appinit.c b/boards/risc-v/jh7110/star64/src/jh7110_appinit.c index e8fa7b1082152..e2668adbe5395 100644 --- a/boards/risc-v/jh7110/star64/src/jh7110_appinit.c +++ b/boards/risc-v/jh7110/star64/src/jh7110_appinit.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/risc-v/jh7110/rv-virt/src/jh7110_appinit.c + * boards/risc-v/jh7110/star64/src/jh7110_appinit.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/init.S b/init.S index cdb47189dfa15..88a374bfc36f4 100644 --- a/init.S +++ b/init.S @@ -25394,9 +25394,9 @@ SYMBOL TABLE: 0000000000008c3a l .text 0000000000000000 .L0 0000000000015568 l .rodata 0000000000000000 .LC4 0000000000008c42 l .text 0000000000000000 .L0 -0000000000015570 l .rodata 0000000000000000 .LC5 +0000000000015578 l .rodata 0000000000000000 .LC5 0000000000008c4a l .text 0000000000000000 .L0 -0000000000015580 l .rodata 0000000000000000 .LC6 +0000000000015588 l .rodata 0000000000000000 .LC6 0000000000008c68 l .text 0000000000000000 .L0 00000000000099b5 l .debug_abbrev 0000000000000000 .Ldebug_abbrev0 0000000000018d08 l .debug_str 0000000000000000 .LASF20 @@ -25466,7 +25466,7 @@ SYMBOL TABLE: 0000000000008bec l .text 0000000000000000 .L0 0000000000008c7a l .text 0000000000000000 .L0 0000000000000000 l df *ABS* 0000000000000000 pthread_attr_init.c -0000000000015588 l .rodata 0000000000000000 .LANCHOR0 +0000000000015590 l .rodata 0000000000000000 .LANCHOR0 0000000000008c8a l .text 0000000000000000 .L0 0000000000008ca4 l .text 0000000000000000 .L3 0000000000009aa6 l .debug_abbrev 0000000000000000 .Ldebug_abbrev0 @@ -25691,9 +25691,9 @@ SYMBOL TABLE: 0000000000008cd4 l .text 0000000000000000 .L0 0000000000000000 l df *ABS* 0000000000000000 pthread_create.c 0000000000008cd4 l F .text 0000000000000030 pthread_startup -00000000000155a0 l .rodata 0000000000000000 .LC0 +00000000000155a8 l .rodata 0000000000000000 .LC0 0000000000008cdc l .text 0000000000000000 .L0 -00000000000155b8 l .rodata 0000000000000000 .LC1 +00000000000155c0 l .rodata 0000000000000000 .LC1 0000000000008ce8 l .text 0000000000000000 .L0 0000000000008cf8 l .text 0000000000000000 .L2 0000000000008d0c l .text 0000000000000000 .L0 @@ -25996,9 +25996,9 @@ SYMBOL TABLE: 0000000000008d8a l .text 0000000000000000 .L0 0000000000008d7c l .text 0000000000000000 .L0 0000000000000000 l df *ABS* 0000000000000000 sched_getprioritymin.c -00000000000155d8 l .rodata 0000000000000000 .LC0 +00000000000155e0 l .rodata 0000000000000000 .LC0 0000000000008d9e l .text 0000000000000000 .L0 -00000000000155f8 l .rodata 0000000000000000 .LC1 +0000000000015600 l .rodata 0000000000000000 .LC1 0000000000008daa l .text 0000000000000000 .L0 0000000000008dbc l .text 0000000000000000 .L2 000000000000a158 l .debug_abbrev 0000000000000000 .Ldebug_abbrev0 @@ -26049,9 +26049,9 @@ SYMBOL TABLE: 0000000000008db4 l .text 0000000000000000 .L0 0000000000008dbc l .text 0000000000000000 .L0 0000000000000000 l df *ABS* 0000000000000000 lib_psfa_addopen.c -0000000000015618 l .rodata 0000000000000000 .LC0 +0000000000015620 l .rodata 0000000000000000 .LC0 0000000000008dde l .text 0000000000000000 .L0 -0000000000015638 l .rodata 0000000000000000 .LC1 +0000000000015640 l .rodata 0000000000000000 .LC1 0000000000008dea l .text 0000000000000000 .L0 0000000000008dde l .text 0000000000000000 .L2 0000000000008dfa l .text 0000000000000000 .L3 @@ -26171,9 +26171,9 @@ SYMBOL TABLE: 0000000000008e50 l .text 0000000000000000 .L0 0000000000008dd2 l .text 0000000000000000 .L0 0000000000000000 l df *ABS* 0000000000000000 lib_psfa_destroy.c -0000000000015658 l .rodata 0000000000000000 .LC0 +0000000000015660 l .rodata 0000000000000000 .LC0 0000000000008e6c l .text 0000000000000000 .L0 -0000000000015668 l .rodata 0000000000000000 .LC1 +0000000000015670 l .rodata 0000000000000000 .LC1 0000000000008e78 l .text 0000000000000000 .L0 0000000000008e88 l .text 0000000000000000 .L2 0000000000008e9c l .text 0000000000000000 .L4 @@ -26290,9 +26290,9 @@ SYMBOL TABLE: 0000000000008eaa l .text 0000000000000000 .L0 0000000000008eb2 l .text 0000000000000000 .L0 0000000000000000 l df *ABS* 0000000000000000 lib_psa_init.c -0000000000015688 l .rodata 0000000000000000 .LC0 +0000000000015690 l .rodata 0000000000000000 .LC0 0000000000008eba l .text 0000000000000000 .L0 -0000000000015690 l .rodata 0000000000000000 .LC1 +0000000000015698 l .rodata 0000000000000000 .LC1 0000000000008ec6 l .text 0000000000000000 .L0 0000000000008ed6 l .text 0000000000000000 .L2 0000000000008efe l .text 0000000000000000 .L3 @@ -26545,11 +26545,11 @@ SYMBOL TABLE: 0000000000008f86 l .text 0000000000000000 .L0 0000000000008f56 l .text 0000000000000000 .L0 0000000000000000 l df *ABS* 0000000000000000 lib_vasprintf.c -00000000000156a8 l .rodata 0000000000000000 .LC0 +00000000000156b0 l .rodata 0000000000000000 .LC0 0000000000008faa l .text 0000000000000000 .L0 -00000000000156b8 l .rodata 0000000000000000 .LC1 +00000000000156c0 l .rodata 0000000000000000 .LC1 0000000000008fb6 l .text 0000000000000000 .L0 -00000000000156d0 l .rodata 0000000000000000 .LC2 +00000000000156d8 l .rodata 0000000000000000 .LC2 000000000000901c l .text 0000000000000000 .L0 0000000000008faa l .text 0000000000000000 .L2 0000000000008fc6 l .text 0000000000000000 .L3 @@ -27124,9 +27124,9 @@ SYMBOL TABLE: 0000000000000000 l df *ABS* 0000000000000000 lib_memoutstream.c 00000000000092ac l F .text 0000000000000064 memoutstream_puts 0000000000009310 l F .text 000000000000001c memoutstream_putc -0000000000015700 l .rodata 0000000000000000 .LC0 +0000000000015708 l .rodata 0000000000000000 .LC0 00000000000092b6 l .text 0000000000000000 .L0 -0000000000015708 l .rodata 0000000000000000 .LC1 +0000000000015710 l .rodata 0000000000000000 .LC1 00000000000092c2 l .text 0000000000000000 .L0 00000000000092d2 l .text 0000000000000000 .L2 00000000000092e0 l .text 0000000000000000 .L3 @@ -27284,9 +27284,9 @@ SYMBOL TABLE: 0000000000000000 l df *ABS* 0000000000000000 lib_nulloutstream.c 000000000000935a l F .text 000000000000002e nulloutstream_puts 0000000000009388 l F .text 000000000000002a nulloutstream_putc -0000000000015728 l .rodata 0000000000000000 .LC0 +0000000000015730 l .rodata 0000000000000000 .LC0 0000000000009360 l .text 0000000000000000 .L0 -0000000000015730 l .rodata 0000000000000000 .LC1 +0000000000015738 l .rodata 0000000000000000 .LC1 000000000000936c l .text 0000000000000000 .L0 000000000000937e l .text 0000000000000000 .L2 000000000000938c l .text 0000000000000000 .L0 @@ -29061,11 +29061,11 @@ SYMBOL TABLE: 0000000000009912 l .text 0000000000000000 .L0 00000000000098f2 l .text 0000000000000000 .L0 0000000000000000 l df *ABS* 0000000000000000 lib_chdir.c -0000000000015758 l .rodata 0000000000000000 .LC1 +0000000000015760 l .rodata 0000000000000000 .LC1 0000000000009974 l .text 0000000000000000 .L0 -0000000000015750 l .rodata 0000000000000000 .LC0 +0000000000015758 l .rodata 0000000000000000 .LC0 0000000000009988 l .text 0000000000000000 .L0 -0000000000015760 l .rodata 0000000000000000 .LC2 +0000000000015768 l .rodata 0000000000000000 .LC2 0000000000009992 l .text 0000000000000000 .L0 00000000000099a6 l .text 0000000000000000 .L0 000000000000994e l .text 0000000000000000 .L2 @@ -29207,9 +29207,9 @@ SYMBOL TABLE: 0000000000009950 l .text 0000000000000000 .L0 0000000000009924 l .text 0000000000000000 .L0 0000000000000000 l df *ABS* 0000000000000000 lib_truncate.c -0000000000015768 l .rodata 0000000000000000 .LC0 +0000000000015770 l .rodata 0000000000000000 .LC0 00000000000099de l .text 0000000000000000 .L0 -0000000000015790 l .rodata 0000000000000000 .LC1 +0000000000015798 l .rodata 0000000000000000 .LC1 00000000000099ea l .text 0000000000000000 .L0 00000000000099de l .text 0000000000000000 .L2 00000000000099fa l .text 0000000000000000 .L3 @@ -29662,8 +29662,8 @@ SYMBOL TABLE: 0000000000009ac0 l .text 0000000000000000 .L0 0000000000009a72 l .text 0000000000000000 .L0 0000000000000000 l df *ABS* 0000000000000000 lib_daysbeforemonth.c -00000000000157a8 l O .rodata 000000000000001a g_daysbeforemonth -00000000000157a8 l .rodata 0000000000000000 .LANCHOR0 +00000000000157b0 l O .rodata 000000000000001a g_daysbeforemonth +00000000000157b0 l .rodata 0000000000000000 .LANCHOR0 0000000000009c02 l .text 0000000000000000 .L0 0000000000009c1c l .text 0000000000000000 .L2 000000000000c59b l .debug_abbrev 0000000000000000 .Ldebug_abbrev0 @@ -29837,9 +29837,9 @@ SYMBOL TABLE: 0000000000009d78 l .text 0000000000000000 .L18 0000000000009d24 l .text 0000000000000000 .L39 0000000000009c90 l .text 0000000000000000 .L3 -00000000000157c8 l .rodata 0000000000000000 .LC0 +00000000000157d0 l .rodata 0000000000000000 .LC0 0000000000009eae l .text 0000000000000000 .L0 -00000000000157e8 l .rodata 0000000000000000 .LC1 +00000000000157f0 l .rodata 0000000000000000 .LC1 0000000000009eba l .text 0000000000000000 .L0 0000000000009f8c l .text 0000000000000000 .L0 0000000000009e02 l .text 0000000000000000 .L68 @@ -30385,9 +30385,9 @@ SYMBOL TABLE: 0000000000009f9a l .text 0000000000000000 .L0 0000000000009fa4 l .text 0000000000000000 .L0 0000000000000000 l df *ABS* 0000000000000000 lib_getcwd.c -0000000000015810 l .rodata 0000000000000000 .LC1 +0000000000015818 l .rodata 0000000000000000 .LC1 0000000000009fd8 l .text 0000000000000000 .L0 -0000000000015808 l .rodata 0000000000000000 .LC0 +0000000000015810 l .rodata 0000000000000000 .LC0 0000000000009fec l .text 0000000000000000 .L0 0000000000009fd2 l .text 0000000000000000 .L2 0000000000009fd8 l .text 0000000000000000 .L3 @@ -37440,7 +37440,7 @@ SYMBOL TABLE: 00000000000099cc g F .text 0000000000000064 truncate 00000000000018bc g F .text 0000000000000016 sem_clockwait 0000000000000b16 g F .text 0000000000000040 __ultoa_invert -0000000000015588 g O .rodata 0000000000000018 g_default_pthread_attr +0000000000015590 g O .rodata 0000000000000018 g_default_pthread_attr 0000000000008b6a g F .text 0000000000000080 dirname 0000000000000df2 g F .text 0000000000000004 lib_noflush 000000000000a960 g O .rodata 000000000000001c g_fmtcmdnotfound @@ -37455,7 +37455,7 @@ SYMBOL TABLE: 000000000000a8e0 g O .rodata 000000000000001b g_fmtarginvalid 00000000000079c8 g F .text 0000000000000008 nsh_aliasfree 00000000000018d2 g F .text 000000000000000e sem_destroy -0000000000015814 g .rodata 0000000000000000 _srodata +000000000001581c g .rodata 0000000000000000 _srodata 0000000000008a1a g F .text 0000000000000010 tolower 0000000000001af4 g F .text 0000000000000096 nsh_newconsole 0000000000007c14 g F .text 000000000000000c malloc @@ -37679,7 +37679,7 @@ SYMBOL TABLE: 00000000000047a4 g F .text 0000000000000076 cmd_rmdir 0000000000009d8e g F .text 000000000000020c getopt_common 0000000000007c02 g F .text 0000000000000012 free -0000000000015814 g .rodata 0000000000000000 _erodata +000000000001581c g .rodata 0000000000000000 _erodata 0000000000008770 g F .text 0000000000000046 mm_size2ndx 0000000000000008 g O .data 0000000000000028 g_getopt_vars diff --git a/initrd b/initrd index eed059cfbbd0c2a8f47f12116d4240e1cc7a36df..bb96748dcf30d42965171ea6f92db0cb65cc3360 100644 GIT binary patch delta 2482 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