1
2
3
4
5
6
7
8#ifndef __COMMON_H_
9#define __COMMON_H_ 1
10
11#ifndef __ASSEMBLY__
12
13typedef unsigned char uchar;
14typedef volatile unsigned long vu_long;
15typedef volatile unsigned short vu_short;
16typedef volatile unsigned char vu_char;
17
18#include <config.h>
19#include <errno.h>
20#include <asm-offsets.h>
21#include <linux/bitops.h>
22#include <linux/types.h>
23#include <linux/string.h>
24#include <linux/stringify.h>
25#include <asm/ptrace.h>
26#include <stdarg.h>
27#include <linux/kernel.h>
28#if defined(CONFIG_PCI) && defined(CONFIG_4xx)
29#include <pci.h>
30#endif
31#if defined(CONFIG_8xx)
32#include <asm/8xx_immap.h>
33#if defined(CONFIG_MPC859) || defined(CONFIG_MPC859T) || \
34 defined(CONFIG_MPC866) || \
35 defined(CONFIG_MPC866P)
36# define CONFIG_MPC866_FAMILY 1
37#elif defined(CONFIG_MPC885)
38# define CONFIG_MPC885_FAMILY 1
39#endif
40#if defined(CONFIG_MPC860) \
41 || defined(CONFIG_MPC860T) \
42 || defined(CONFIG_MPC866_FAMILY) \
43 || defined(CONFIG_MPC885_FAMILY)
44# define CONFIG_MPC86x 1
45#endif
46#elif defined(CONFIG_5xx)
47#include <asm/5xx_immap.h>
48#elif defined(CONFIG_MPC5xxx)
49#include <mpc5xxx.h>
50#elif defined(CONFIG_MPC512X)
51#include <asm/immap_512x.h>
52#elif defined(CONFIG_MPC8260)
53#if defined(CONFIG_MPC8247) \
54 || defined(CONFIG_MPC8272)
55#define CONFIG_MPC8272_FAMILY 1
56#endif
57#include <asm/immap_8260.h>
58#endif
59#ifdef CONFIG_MPC86xx
60#include <mpc86xx.h>
61#include <asm/immap_86xx.h>
62#endif
63#ifdef CONFIG_MPC85xx
64#include <mpc85xx.h>
65#include <asm/immap_85xx.h>
66#endif
67#ifdef CONFIG_MPC83xx
68#include <mpc83xx.h>
69#include <asm/immap_83xx.h>
70#endif
71#ifdef CONFIG_4xx
72#include <asm/ppc4xx.h>
73#endif
74#ifdef CONFIG_BLACKFIN
75#include <asm/blackfin.h>
76#endif
77#ifdef CONFIG_SOC_DA8XX
78#include <asm/arch/hardware.h>
79#endif
80#ifdef CONFIG_FSL_LSCH3
81#include <asm/arch/immap_lsch3.h>
82#endif
83#ifdef CONFIG_FSL_LSCH2
84#include <asm/arch/immap_lsch2.h>
85#endif
86
87#include <part.h>
88#include <flash.h>
89#include <image.h>
90
91
92#define __STDC_FORMAT_MACROS
93
94#ifdef __LP64__
95#define CONFIG_SYS_SUPPORT_64BIT_DATA
96#endif
97
98#ifdef DEBUG
99#define _DEBUG 1
100#else
101#define _DEBUG 0
102#endif
103
104#ifndef pr_fmt
105#define pr_fmt(fmt) fmt
106#endif
107
108
109
110
111
112
113#define debug_cond(cond, fmt, args...) \
114 do { \
115 if (cond) \
116 printf(pr_fmt(fmt), ##args); \
117 } while (0)
118
119#define debug(fmt, args...) \
120 debug_cond(_DEBUG, fmt, ##args)
121
122
123
124
125
126
127
128
129
130
131void __assert_fail(const char *assertion, const char *file, unsigned line,
132 const char *function);
133#define assert(x) \
134 ({ if (!(x) && _DEBUG) \
135 __assert_fail(#x, __FILE__, __LINE__, __func__); })
136
137#define error(fmt, args...) do { \
138 printf("ERROR: " pr_fmt(fmt) "\nat %s:%d/%s()\n", \
139 ##args, __FILE__, __LINE__, __func__); \
140} while (0)
141
142#ifndef BUG
143#define BUG() do { \
144 printf("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
145 panic("BUG!"); \
146} while (0)
147#define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
148#endif
149
150typedef void (interrupt_handler_t)(void *);
151
152#include <asm/u-boot.h>
153#include <asm/global_data.h>
154
155
156
157
158
159
160
161#if defined(CONFIG_TQM823M) || defined(CONFIG_TQM850M) || \
162 defined(CONFIG_TQM855M) || defined(CONFIG_TQM860M) || \
163 defined(CONFIG_TQM862M) || defined(CONFIG_TQM866M)
164# ifndef CONFIG_TQM8xxM
165# define CONFIG_TQM8xxM
166# endif
167#endif
168#if defined(CONFIG_TQM823L) || defined(CONFIG_TQM850L) || \
169 defined(CONFIG_TQM855L) || defined(CONFIG_TQM860L) || \
170 defined(CONFIG_TQM862L) || defined(CONFIG_TQM8xxM) || \
171 defined(CONFIG_TQM885D)
172# ifndef CONFIG_TQM8xxL
173# define CONFIG_TQM8xxL
174# endif
175#endif
176
177#if defined(CONFIG_ENV_IS_EMBEDDED)
178#define TOTAL_MALLOC_LEN CONFIG_SYS_MALLOC_LEN
179#elif ( ((CONFIG_ENV_ADDR+CONFIG_ENV_SIZE) < CONFIG_SYS_MONITOR_BASE) || \
180 (CONFIG_ENV_ADDR >= (CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)) ) || \
181 defined(CONFIG_ENV_IS_IN_NVRAM)
182#define TOTAL_MALLOC_LEN (CONFIG_SYS_MALLOC_LEN + CONFIG_ENV_SIZE)
183#else
184#define TOTAL_MALLOC_LEN CONFIG_SYS_MALLOC_LEN
185#endif
186
187
188
189
190int dram_init(void);
191
192void hang (void) __attribute__ ((noreturn));
193
194int timer_init(void);
195int cpu_init(void);
196
197
198phys_size_t initdram (int);
199
200#include <display_options.h>
201
202
203void main_loop (void);
204int run_command(const char *cmd, int flag);
205int run_command_repeatable(const char *cmd, int flag);
206
207
208
209
210
211
212
213
214
215
216
217
218int run_command_list(const char *cmd, int len, int flag);
219
220
221void board_init_f(ulong);
222void board_init_r(gd_t *, ulong) __attribute__ ((noreturn));
223
224
225
226
227
228
229
230
231
232
233
234ulong board_init_f_alloc_reserve(ulong top);
235
236
237
238
239
240
241
242
243
244void board_init_f_init_reserve(ulong base);
245
246
247
248
249
250
251
252
253
254
255
256
257
258void arch_setup_gd(gd_t *gd_ptr);
259
260int checkboard(void);
261int show_board_info(void);
262int checkflash(void);
263int checkdram(void);
264int last_stage_init(void);
265extern ulong monitor_flash_len;
266int mac_read_from_eeprom(void);
267extern u8 __dtb_dt_begin[];
268int set_cpu_clk_info(void);
269int mdm_init(void);
270#if defined(CONFIG_DISPLAY_CPUINFO)
271int print_cpuinfo(void);
272#else
273static inline int print_cpuinfo(void)
274{
275 return 0;
276}
277#endif
278int update_flash_size(int flash_size);
279int arch_early_init_r(void);
280
281
282
283
284
285
286
287
288
289
290int arch_cpu_init_dm(void);
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308__weak int arch_reserve_stacks(void);
309
310
311
312
313
314
315
316
317void board_show_dram(phys_size_t size);
318
319
320
321
322
323
324
325
326
327int arch_fixup_fdt(void *blob);
328
329
330void flash_perror (int);
331
332
333int source (ulong addr, const char *fit_uname);
334
335extern ulong load_addr;
336extern ulong save_addr;
337extern ulong save_size;
338
339
340void doc_probe(unsigned long physadr);
341
342
343int do_tftpb(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
344
345
346int do_fat_fsload(cmd_tbl_t *, int, int, char * const []);
347
348
349int do_ext2load(cmd_tbl_t *, int, int, char * const []);
350
351
352int env_init (void);
353void env_relocate (void);
354int envmatch (uchar *, int);
355
356
357#ifdef CONFIG_SANDBOX
358#define getenv uboot_getenv
359#endif
360char *getenv (const char *);
361int getenv_f (const char *name, char *buf, unsigned len);
362ulong getenv_ulong(const char *name, int base, ulong default_val);
363
364
365
366
367
368
369
370
371
372
373
374ulong getenv_hex(const char *varname, ulong default_val);
375
376
377
378
379
380int getenv_yesno(const char *var);
381int saveenv (void);
382int setenv (const char *, const char *);
383int setenv_ulong(const char *varname, ulong value);
384int setenv_hex(const char *varname, ulong value);
385
386
387
388
389
390
391
392static inline int setenv_addr(const char *varname, const void *addr)
393{
394 return setenv_hex(varname, (ulong)addr);
395}
396
397#ifdef CONFIG_ARM
398# include <asm/mach-types.h>
399# include <asm/setup.h>
400# include <asm/u-boot-arm.h>
401#endif
402#ifdef CONFIG_X86
403# include <asm/u-boot-x86.h>
404#endif
405#ifdef CONFIG_SANDBOX
406# include <asm/u-boot-sandbox.h>
407#endif
408#ifdef CONFIG_NDS32
409# include <asm/mach-types.h>
410# include <asm/setup.h>
411# include <asm/u-boot-nds32.h>
412#endif
413#ifdef CONFIG_MIPS
414# include <asm/u-boot-mips.h>
415#endif
416#ifdef CONFIG_ARC
417# include <asm/u-boot-arc.h>
418#endif
419
420#ifdef CONFIG_AUTO_COMPLETE
421int env_complete(char *var, int maxv, char *cmdv[], int maxsz, char *buf);
422#endif
423int get_env_id (void);
424
425void pci_init (void);
426void pci_init_board(void);
427
428#if defined(CONFIG_PCI) && defined(CONFIG_4xx)
429 int pci_pre_init (struct pci_controller *);
430 int is_pci_host (struct pci_controller *);
431#endif
432
433#if defined(CONFIG_PCI) && (defined(CONFIG_440) || defined(CONFIG_405EX))
434# if defined(CONFIG_SYS_PCI_TARGET_INIT)
435 void pci_target_init (struct pci_controller *);
436# endif
437# if defined(CONFIG_SYS_PCI_MASTER_INIT)
438 void pci_master_init (struct pci_controller *);
439# endif
440#if defined(CONFIG_440SPE) || \
441 defined(CONFIG_460EX) || defined(CONFIG_460GT) || \
442 defined(CONFIG_405EX)
443 void pcie_setup_hoses(int busno);
444#endif
445#endif
446
447int misc_init_f (void);
448int misc_init_r (void);
449
450
451void jumptable_init(void);
452
453
454const char *symbol_lookup(unsigned long addr, unsigned long *caddr);
455
456
457void api_init (void);
458
459
460long get_ram_size (long *, long);
461phys_size_t get_effective_memsize(void);
462
463
464void reset_phy (void);
465void fdc_hw_init (void);
466
467
468void eeprom_init (int bus);
469int eeprom_read (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt);
470int eeprom_write (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt);
471
472
473
474
475
476#if defined(CONFIG_SPI) || !defined(CONFIG_SYS_I2C_EEPROM_ADDR)
477# define CONFIG_SYS_DEF_EEPROM_ADDR 0
478#else
479#if !defined(CONFIG_ENV_EEPROM_IS_ON_I2C)
480# define CONFIG_SYS_DEF_EEPROM_ADDR CONFIG_SYS_I2C_EEPROM_ADDR
481#endif
482#endif
483
484#if defined(CONFIG_SPI)
485extern void spi_init_f (void);
486extern void spi_init_r (void);
487extern ssize_t spi_read (uchar *, int, uchar *, int);
488extern ssize_t spi_write (uchar *, int, uchar *, int);
489#endif
490
491
492int board_early_init_f (void);
493int board_late_init (void);
494int board_postclk_init (void);
495int board_early_init_r (void);
496void board_poweroff (void);
497
498#if defined(CONFIG_SYS_DRAM_TEST)
499int testdram(void);
500#endif
501
502
503#if defined(CONFIG_5xx) || \
504 defined(CONFIG_8xx)
505uint get_immr (uint);
506#endif
507#if defined(CONFIG_MPC5xxx)
508uint get_svr (void);
509#endif
510uint get_pvr (void);
511uint get_svr (void);
512uint rd_ic_cst (void);
513void wr_ic_cst (uint);
514void wr_ic_adr (uint);
515uint rd_dc_cst (void);
516void wr_dc_cst (uint);
517void wr_dc_adr (uint);
518int icache_status (void);
519void icache_enable (void);
520void icache_disable(void);
521int dcache_status (void);
522void dcache_enable (void);
523void dcache_disable(void);
524void mmu_disable(void);
525#if defined(CONFIG_ARM)
526void relocate_code(ulong);
527#else
528void relocate_code(ulong, gd_t *, ulong) __attribute__ ((noreturn));
529#endif
530ulong get_endaddr (void);
531void trap_init (ulong);
532#if defined (CONFIG_4xx) || \
533 defined (CONFIG_MPC5xxx) || \
534 defined (CONFIG_MPC85xx) || \
535 defined (CONFIG_MPC86xx) || \
536 defined (CONFIG_MPC83xx)
537unsigned char in8(unsigned int);
538void out8(unsigned int, unsigned char);
539unsigned short in16(unsigned int);
540unsigned short in16r(unsigned int);
541void out16(unsigned int, unsigned short value);
542void out16r(unsigned int, unsigned short value);
543unsigned long in32(unsigned int);
544unsigned long in32r(unsigned int);
545void out32(unsigned int, unsigned long value);
546void out32r(unsigned int, unsigned long value);
547void ppcDcbf(unsigned long value);
548void ppcDcbi(unsigned long value);
549void ppcSync(void);
550void ppcDcbz(unsigned long value);
551#endif
552#if defined (CONFIG_MICROBLAZE)
553unsigned short in16(unsigned int);
554void out16(unsigned int, unsigned short value);
555#endif
556
557#if defined (CONFIG_MPC83xx)
558void ppcDWload(unsigned int *addr, unsigned int *ret);
559void ppcDWstore(unsigned int *addr, unsigned int *value);
560void disable_addr_trans(void);
561void enable_addr_trans(void);
562#if defined(CONFIG_DDR_ECC) && !defined(CONFIG_ECC_INIT_VIA_DDRCONTROLLER)
563void ddr_enable_ecc(unsigned int dram_size);
564#endif
565#endif
566
567
568
569
570
571ulong timer_get_us(void);
572
573
574static inline int cpumask_next(int cpu, unsigned int mask)
575{
576 for (cpu++; !((1 << cpu) & mask); cpu++)
577 ;
578
579 return cpu;
580}
581
582#define for_each_cpu(iter, cpu, num_cpus, mask) \
583 for (iter = 0, cpu = cpumask_next(-1, mask); \
584 iter < num_cpus; \
585 iter++, cpu = cpumask_next(cpu, mask)) \
586
587int cpu_numcores (void);
588int cpu_num_dspcores(void);
589u32 cpu_mask (void);
590u32 cpu_dsp_mask(void);
591int is_core_valid (unsigned int);
592int probecpu (void);
593int checkcpu (void);
594int checkicache (void);
595int checkdcache (void);
596void upmconfig (unsigned int, unsigned int *, unsigned int);
597ulong get_tbclk (void);
598void reset_misc (void);
599void reset_cpu (ulong addr);
600void ft_cpu_setup(void *blob, bd_t *bd);
601void ft_pci_setup(void *blob, bd_t *bd);
602
603void smp_set_core_boot_addr(unsigned long addr, int corenr);
604void smp_kick_all_cpus(void);
605
606
607int serial_init (void);
608void serial_setbrg (void);
609void serial_putc (const char);
610void serial_putc_raw(const char);
611void serial_puts (const char *);
612int serial_getc (void);
613int serial_tstc (void);
614
615
616struct stdio_dev;
617int serial_stub_getc(struct stdio_dev *sdev);
618int serial_stub_tstc(struct stdio_dev *sdev);
619
620
621int get_clocks (void);
622int get_clocks_866 (void);
623int sdram_adjust_866 (void);
624int adjust_sdram_tbs_8xx (void);
625#if defined(CONFIG_MPC8260)
626int prt_8260_clks (void);
627#elif defined(CONFIG_MPC5xxx)
628int prt_mpc5xxx_clks (void);
629#endif
630#ifdef CONFIG_4xx
631ulong get_OPB_freq (void);
632ulong get_PCI_freq (void);
633#endif
634#if defined(CONFIG_S3C24X0) || \
635 defined(CONFIG_LH7A40X) || \
636 defined(CONFIG_EP93XX)
637ulong get_FCLK (void);
638ulong get_HCLK (void);
639ulong get_PCLK (void);
640ulong get_UCLK (void);
641#endif
642#if defined(CONFIG_LH7A40X)
643ulong get_PLLCLK (void);
644#endif
645#if defined(CONFIG_IMX)
646ulong get_systemPLLCLK(void);
647ulong get_FCLK(void);
648ulong get_HCLK(void);
649ulong get_BCLK(void);
650ulong get_PERCLK1(void);
651ulong get_PERCLK2(void);
652ulong get_PERCLK3(void);
653#endif
654ulong get_bus_freq (ulong);
655int get_serial_clock(void);
656
657#if defined(CONFIG_MPC85xx)
658typedef MPC85xx_SYS_INFO sys_info_t;
659void get_sys_info ( sys_info_t * );
660void ft_fixup_cpu(void *, u64);
661void ft_fixup_num_cores(void *);
662#endif
663#if defined(CONFIG_MPC86xx)
664typedef MPC86xx_SYS_INFO sys_info_t;
665void get_sys_info ( sys_info_t * );
666static inline ulong get_ddr_freq(ulong dummy)
667{
668 return get_bus_freq(dummy);
669}
670#else
671ulong get_ddr_freq(ulong);
672#endif
673
674#if defined(CONFIG_4xx)
675# if defined(CONFIG_440)
676# if defined(CONFIG_440SPE)
677 unsigned long determine_sysper(void);
678 unsigned long determine_pci_clock_per(void);
679# endif
680# endif
681typedef PPC4xx_SYS_INFO sys_info_t;
682int ppc440spe_revB(void);
683void get_sys_info ( sys_info_t * );
684#endif
685
686
687#if defined(CONFIG_8xx) || defined(CONFIG_MPC8260)
688void cpu_init_f (volatile immap_t *immr);
689#endif
690#if defined(CONFIG_4xx) || defined(CONFIG_MCF52x2) || defined(CONFIG_MPC86xx)
691void cpu_init_f (void);
692#endif
693#ifdef CONFIG_MPC85xx
694ulong cpu_init_f(void);
695#endif
696
697int cpu_init_r (void);
698#if defined(CONFIG_MPC8260)
699int prt_8260_rsr (void);
700#elif defined(CONFIG_MPC83xx)
701int prt_83xx_rsr (void);
702#endif
703
704
705int interrupt_init (void);
706void timer_interrupt (struct pt_regs *);
707void external_interrupt (struct pt_regs *);
708void irq_install_handler(int, interrupt_handler_t *, void *);
709void irq_free_handler (int);
710void reset_timer (void);
711ulong get_timer (ulong base);
712
713
714unsigned long timer_get_us(void);
715
716void enable_interrupts (void);
717int disable_interrupts (void);
718
719
720int dpram_init (void);
721uint dpram_base(void);
722uint dpram_base_align(uint align);
723uint dpram_alloc(uint size);
724uint dpram_alloc_align(uint size,uint align);
725void bootcount_store (ulong);
726ulong bootcount_load (void);
727#define BOOTCOUNT_MAGIC 0xB001C041
728
729
730void mii_init (void);
731
732
733ulong lcd_setmem (ulong);
734
735
736ulong video_setmem (ulong);
737
738
739void enable_caches(void);
740void flush_cache (unsigned long, unsigned long);
741void flush_dcache_all(void);
742void flush_dcache_range(unsigned long start, unsigned long stop);
743void invalidate_dcache_range(unsigned long start, unsigned long stop);
744void invalidate_dcache_all(void);
745void invalidate_icache_all(void);
746
747enum {
748
749 CBL_DISABLE_CACHES = 1 << 0,
750 CBL_SHOW_BOOTSTAGE_REPORT = 1 << 1,
751
752 CBL_ALL = 3,
753};
754
755
756
757
758
759
760int cleanup_before_linux_select(int flags);
761
762
763uint64_t get_ticks(void);
764void wait_ticks (unsigned long);
765
766
767void __udelay (unsigned long);
768ulong usec2ticks (unsigned long usec);
769ulong ticks2usec (unsigned long ticks);
770int init_timebase (void);
771
772
773int gunzip(void *, int, unsigned char *, unsigned long *);
774int zunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp,
775 int stoponerr, int offset);
776
777
778
779
780
781
782
783
784
785
786void gzwrite_progress_init(u64 expected_size);
787
788void gzwrite_progress(int iteration,
789 u64 bytes_written,
790 u64 total_bytes);
791
792void gzwrite_progress_finish(int retcode,
793 u64 totalwritten,
794 u64 totalsize,
795 u32 expected_crc,
796 u32 calculated_crc);
797
798
799
800
801
802
803
804
805
806
807
808
809
810int gzwrite(unsigned char *src, int len,
811 struct blk_desc *dev,
812 unsigned long szwritebuf,
813 u64 startoffs,
814 u64 szexpected);
815
816
817int ulz4fn(const void *src, size_t srcn, void *dst, size_t *dstn);
818
819
820void qsort(void *base, size_t nmemb, size_t size,
821 int(*compar)(const void *, const void *));
822int strcmp_compar(const void *, const void *);
823
824
825void udelay (unsigned long);
826void mdelay(unsigned long);
827
828
829#include <uuid.h>
830
831
832#include <vsprintf.h>
833
834
835char * strmhz(char *buf, unsigned long hz);
836
837
838#include <u-boot/crc.h>
839
840
841#define RAND_MAX -1U
842void srand(unsigned int seed);
843unsigned int rand(void);
844unsigned int rand_r(unsigned int *seedp);
845
846
847
848
849
850int serial_printf (const char *fmt, ...)
851 __attribute__ ((format (__printf__, 1, 2)));
852
853int getc(void);
854int tstc(void);
855
856
857#if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_SPL_SERIAL_SUPPORT)
858#define putc(...) do { } while (0)
859#define puts(...) do { } while (0)
860#define printf(...) do { } while (0)
861#define vprintf(...) do { } while (0)
862#else
863void putc(const char c);
864void puts(const char *s);
865int printf(const char *fmt, ...)
866 __attribute__ ((format (__printf__, 1, 2)));
867int vprintf(const char *fmt, va_list args);
868#endif
869
870
871#define eputc(c) fputc(stderr, c)
872#define eputs(s) fputs(stderr, s)
873#define eprintf(fmt,args...) fprintf(stderr,fmt ,##args)
874
875
876
877
878#define stdin 0
879#define stdout 1
880#define stderr 2
881#define MAX_FILES 3
882
883int fprintf(int file, const char *fmt, ...)
884 __attribute__ ((format (__printf__, 2, 3)));
885void fputs(int file, const char *s);
886void fputc(int file, const char c);
887int ftstc(int file);
888int fgetc(int file);
889
890
891int gzip(void *dst, unsigned long *lenp,
892 unsigned char *src, unsigned long srclen);
893int zzip(void *dst, unsigned long *lenp, unsigned char *src,
894 unsigned long srclen, int stoponerr,
895 int (*func)(unsigned long, unsigned long));
896
897
898#include <net.h>
899static inline struct in_addr getenv_ip(char *var)
900{
901 return string_to_ip(getenv(var));
902}
903
904int pcmcia_init (void);
905
906#ifdef CONFIG_STATUS_LED
907# include <status_led.h>
908#endif
909
910#include <bootstage.h>
911
912#ifdef CONFIG_SHOW_ACTIVITY
913void show_activity(int arg);
914#endif
915
916
917#ifdef CONFIG_MP
918int cpu_status(int nr);
919int cpu_reset(int nr);
920int cpu_disable(int nr);
921int cpu_release(int nr, int argc, char * const argv[]);
922#endif
923
924#endif
925
926#ifdef CONFIG_PPC
927
928
929
930
931#include <asm/cache.h>
932#endif
933
934
935
936#ifdef CONFIG_POST
937#define CONFIG_HAS_POST
938#ifndef CONFIG_POST_ALT_LIST
939#define CONFIG_POST_STD_LIST
940#endif
941#endif
942
943#ifdef CONFIG_INIT_CRITICAL
944#error CONFIG_INIT_CRITICAL is deprecated!
945#error Read section CONFIG_SKIP_LOWLEVEL_INIT in README.
946#endif
947
948#define ROUND(a,b) (((a) + (b) - 1) & ~((b) - 1))
949
950
951
952
953
954
955
956
957#define check_member(structure, member, offset) _Static_assert( \
958 offsetof(struct structure, member) == offset, \
959 "`struct " #structure "` offset for `" #member "` is not " #offset)
960
961
962#ifdef CONFIG_EFI_STUB
963#define ll_boot_init() false
964#else
965#define ll_boot_init() true
966#endif
967
968
969#ifdef DO_DEPS_ONLY
970# include <environment.h>
971#endif
972
973#endif
974