- /* copy the command line parameter from the primary VSP */
- HvCallEvent_dmaToSp(cmd_line, 2 * 64* 1024, 256,
- HvLpDma_Direction_RemoteToLocal);
-
- p = cmd_line;
- q = cmd_line + 255;
- while( p < q ) {
- if (!*p || *p == '\n')
- break;
- ++p;
- }
- *p = 0;
-
- if (strstr(cmd_line, "dprofile=")) {
- for (q = cmd_line; (p = strstr(q, "dprofile=")) != 0; ) {
- unsigned long size, new_klimit;
-
- q = p + 9;
- if ((p > cmd_line) && (p[-1] != ' '))
- continue;
- dprof_shift = simple_strtoul(q, &q, 0);
- dprof_len = (unsigned long)_etext -
- (unsigned long)_stext;
- dprof_len >>= dprof_shift;
- size = ((dprof_len * sizeof(unsigned int)) +
- (PAGE_SIZE-1)) & PAGE_MASK;
- dprof_buffer = (unsigned int *)((klimit +
- (PAGE_SIZE-1)) & PAGE_MASK);
- new_klimit = ((unsigned long)dprof_buffer) + size;
- lmb_reserve(__pa(klimit), (new_klimit-klimit));
- klimit = new_klimit;
- memset(dprof_buffer, 0, size);
- }
- }
-
- iSeries_setup_dprofile();
-