Browse Source

Merge pull request #541 from antonio-nino-diaz-arm/an/secondary-cpu-init

Initialize secondary CPUs during cold boot
pull/556/head
danh-arm 9 years ago
parent
commit
b6fc25e027
  1. BIN
      docs/diagrams/default_reset_code.png
  2. BIN
      docs/diagrams/reset_code_flow.dia
  3. BIN
      docs/diagrams/reset_code_no_boot_type_check.png
  4. BIN
      docs/diagrams/reset_code_no_checks.png
  5. BIN
      docs/diagrams/reset_code_no_cpu_check.png
  6. 21
      include/common/el3_common_macros.S

BIN
docs/diagrams/default_reset_code.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 41 KiB

BIN
docs/diagrams/reset_code_flow.dia

Binary file not shown.

BIN
docs/diagrams/reset_code_no_boot_type_check.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 42 KiB

BIN
docs/diagrams/reset_code_no_checks.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 39 KiB

BIN
docs/diagrams/reset_code_no_cpu_check.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 38 KiB

21
include/common/el3_common_macros.S

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@ -171,9 +171,19 @@
do_cold_boot:
.endif /* _warm_boot_mailbox */
/* ---------------------------------------------------------------------
* It is a cold boot.
* Perform any processor specific actions upon reset e.g. cache, TLB
* invalidations etc.
* ---------------------------------------------------------------------
*/
bl reset_handler
el3_arch_init_common \_exception_vectors
.if \_secondary_cold_boot
/* -------------------------------------------------------------
* It is a cold boot.
* Check if this is a primary or secondary CPU cold boot.
* The primary CPU will set up the platform while the
* secondaries are placed in a platform-specific state until the
* primary CPU performs the necessary actions to bring them out
@ -193,13 +203,10 @@
.endif /* _secondary_cold_boot */
/* ---------------------------------------------------------------------
* Perform any processor specific actions upon reset e.g. cache, TLB
* invalidations etc.
* Initialize memory now. Secondary CPU initialization won't get to this
* point.
* ---------------------------------------------------------------------
*/
bl reset_handler
el3_arch_init_common \_exception_vectors
.if \_init_memory
bl platform_mem_init

Loading…
Cancel
Save