diff options
| author | Geoff Levand <geoffrey.levand@am.sony.com> | 2007-10-06 17:35:44 -0400 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2007-10-09 07:01:57 -0400 |
| commit | 01263e88c3b8c4ec9621062a40b42814e0859e92 (patch) | |
| tree | 9b098a8f370e4172a35cda7a3bc4ae8777937f37 | |
| parent | ca94297f0c169710848a095a2fd986195e546cb3 (diff) | |
[POWERPC] PS3: Remove unused os-area params
Updates for PS3 os-area startup params
o Remove some unused PS3 os-area startup params from struct saved_params.
o Rename ps3_os_area_init() to ps3_os_area_save_params().
o Zero mirrored header after saving params.
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
| -rw-r--r-- | arch/powerpc/platforms/ps3/os-area.c | 44 | ||||
| -rw-r--r-- | arch/powerpc/platforms/ps3/platform.h | 2 | ||||
| -rw-r--r-- | arch/powerpc/platforms/ps3/setup.c | 2 |
3 files changed, 21 insertions, 27 deletions
diff --git a/arch/powerpc/platforms/ps3/os-area.c b/arch/powerpc/platforms/ps3/os-area.c index ee463d0f87ad..f5112248802b 100644 --- a/arch/powerpc/platforms/ps3/os-area.c +++ b/arch/powerpc/platforms/ps3/os-area.c | |||
| @@ -114,27 +114,12 @@ struct os_area_params { | |||
| 114 | #define SECONDS_FROM_1970_TO_2000 946684800LL | 114 | #define SECONDS_FROM_1970_TO_2000 946684800LL |
| 115 | 115 | ||
| 116 | /** | 116 | /** |
| 117 | * struct saved_params - Static working copies of data from the 'Other OS' area. | 117 | * struct saved_params - Static working copies of data from the PS3 'os area'. |
| 118 | * | ||
| 119 | * For the convinience of the guest, the HV makes a copy of the 'Other OS' area | ||
| 120 | * in flash to a high address in the boot memory region and then puts that RAM | ||
| 121 | * address and the byte count into the repository for retreval by the guest. | ||
| 122 | * We copy the data we want into a static variable and allow the memory setup | ||
| 123 | * by the HV to be claimed by the lmb manager. | ||
| 124 | */ | 118 | */ |
| 125 | 119 | ||
| 126 | struct saved_params { | 120 | struct saved_params { |
| 127 | /* param 0 */ | ||
| 128 | s64 rtc_diff; | 121 | s64 rtc_diff; |
| 129 | unsigned int av_multi_out; | 122 | unsigned int av_multi_out; |
| 130 | unsigned int ctrl_button; | ||
| 131 | /* param 1 */ | ||
| 132 | u8 static_ip_addr[4]; | ||
| 133 | u8 network_mask[4]; | ||
| 134 | u8 default_gateway[4]; | ||
| 135 | /* param 2 */ | ||
| 136 | u8 dns_primary[4]; | ||
| 137 | u8 dns_secondary[4]; | ||
| 138 | } static saved_params; | 123 | } static saved_params; |
| 139 | 124 | ||
| 140 | #define dump_header(_a) _dump_header(_a, __func__, __LINE__) | 125 | #define dump_header(_a) _dump_header(_a, __func__, __LINE__) |
| @@ -201,7 +186,17 @@ static int __init verify_header(const struct os_area_header *header) | |||
| 201 | return 0; | 186 | return 0; |
| 202 | } | 187 | } |
| 203 | 188 | ||
| 204 | int __init ps3_os_area_init(void) | 189 | /** |
| 190 | * ps3_os_area_save_params - Copy data from os area mirror to @saved_params. | ||
| 191 | * | ||
| 192 | * For the convenience of the guest, the HV makes a copy of the os area in | ||
| 193 | * flash to a high address in the boot memory region and then puts that RAM | ||
| 194 | * address and the byte count into the repository for retreval by the guest. | ||
| 195 | * We copy the data we want into a static variable and allow the memory setup | ||
| 196 | * by the HV to be claimed by the lmb manager. | ||
| 197 | */ | ||
| 198 | |||
| 199 | void __init ps3_os_area_save_params(void) | ||
| 205 | { | 200 | { |
| 206 | int result; | 201 | int result; |
| 207 | u64 lpar_addr; | 202 | u64 lpar_addr; |
| @@ -209,12 +204,14 @@ int __init ps3_os_area_init(void) | |||
| 209 | struct os_area_header *header; | 204 | struct os_area_header *header; |
| 210 | struct os_area_params *params; | 205 | struct os_area_params *params; |
| 211 | 206 | ||
| 207 | pr_debug(" -> %s:%d\n", __func__, __LINE__); | ||
| 208 | |||
| 212 | result = ps3_repository_read_boot_dat_info(&lpar_addr, &size); | 209 | result = ps3_repository_read_boot_dat_info(&lpar_addr, &size); |
| 213 | 210 | ||
| 214 | if (result) { | 211 | if (result) { |
| 215 | pr_debug("%s:%d ps3_repository_read_boot_dat_info failed\n", | 212 | pr_debug("%s:%d ps3_repository_read_boot_dat_info failed\n", |
| 216 | __func__, __LINE__); | 213 | __func__, __LINE__); |
| 217 | return result; | 214 | return; |
| 218 | } | 215 | } |
| 219 | 216 | ||
| 220 | header = (struct os_area_header *)__va(lpar_addr); | 217 | header = (struct os_area_header *)__va(lpar_addr); |
| @@ -226,7 +223,7 @@ int __init ps3_os_area_init(void) | |||
| 226 | if (result) { | 223 | if (result) { |
| 227 | pr_debug("%s:%d verify_header failed\n", __func__, __LINE__); | 224 | pr_debug("%s:%d verify_header failed\n", __func__, __LINE__); |
| 228 | dump_header(header); | 225 | dump_header(header); |
| 229 | return -EIO; | 226 | return; |
| 230 | } | 227 | } |
| 231 | 228 | ||
| 232 | dump_header(header); | 229 | dump_header(header); |
| @@ -234,13 +231,10 @@ int __init ps3_os_area_init(void) | |||
| 234 | 231 | ||
| 235 | saved_params.rtc_diff = params->rtc_diff; | 232 | saved_params.rtc_diff = params->rtc_diff; |
| 236 | saved_params.av_multi_out = params->av_multi_out; | 233 | saved_params.av_multi_out = params->av_multi_out; |
| 237 | saved_params.ctrl_button = params->ctrl_button; | ||
| 238 | memcpy(saved_params.static_ip_addr, params->static_ip_addr, 4); | ||
| 239 | memcpy(saved_params.network_mask, params->network_mask, 4); | ||
| 240 | memcpy(saved_params.default_gateway, params->default_gateway, 4); | ||
| 241 | memcpy(saved_params.dns_secondary, params->dns_secondary, 4); | ||
| 242 | 234 | ||
| 243 | return result; | 235 | memset(header, 0, sizeof(*header)); |
| 236 | |||
| 237 | pr_debug(" <- %s:%d\n", __func__, __LINE__); | ||
| 244 | } | 238 | } |
| 245 | 239 | ||
| 246 | /** | 240 | /** |
diff --git a/arch/powerpc/platforms/ps3/platform.h b/arch/powerpc/platforms/ps3/platform.h index 27c7d099816a..9109c313e492 100644 --- a/arch/powerpc/platforms/ps3/platform.h +++ b/arch/powerpc/platforms/ps3/platform.h | |||
| @@ -62,7 +62,7 @@ int ps3_set_rtc_time(struct rtc_time *time); | |||
| 62 | 62 | ||
| 63 | /* os area */ | 63 | /* os area */ |
| 64 | 64 | ||
| 65 | int __init ps3_os_area_init(void); | 65 | void __init ps3_os_area_save_params(void); |
| 66 | u64 ps3_os_area_rtc_diff(void); | 66 | u64 ps3_os_area_rtc_diff(void); |
| 67 | 67 | ||
| 68 | /* spu */ | 68 | /* spu */ |
diff --git a/arch/powerpc/platforms/ps3/setup.c b/arch/powerpc/platforms/ps3/setup.c index 609945dbe394..f0d5ec51ef17 100644 --- a/arch/powerpc/platforms/ps3/setup.c +++ b/arch/powerpc/platforms/ps3/setup.c | |||
| @@ -228,7 +228,7 @@ static int __init ps3_probe(void) | |||
| 228 | 228 | ||
| 229 | powerpc_firmware_features |= FW_FEATURE_PS3_POSSIBLE; | 229 | powerpc_firmware_features |= FW_FEATURE_PS3_POSSIBLE; |
| 230 | 230 | ||
| 231 | ps3_os_area_init(); | 231 | ps3_os_area_save_params(); |
| 232 | ps3_mm_init(); | 232 | ps3_mm_init(); |
| 233 | ps3_mm_vas_create(&htab_size); | 233 | ps3_mm_vas_create(&htab_size); |
| 234 | ps3_hpte_init(htab_size); | 234 | ps3_hpte_init(htab_size); |
